tree-element 0.1.0 → 0.2.0
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/README.md +49 -29
- package/lib/animation.js +5 -5
- package/lib/animation.js.map +1 -1
- package/lib/classNames.d.ts.map +1 -1
- package/lib/classNames.js +2 -2
- package/lib/classNames.js.map +1 -1
- package/lib/dataLoader.d.ts.map +1 -1
- package/lib/dataLoader.js +18 -21
- package/lib/dataLoader.js.map +1 -1
- package/lib/dragAndDropHandler/binarySearch.js +3 -3
- package/lib/dragAndDropHandler/binarySearch.js.map +1 -1
- package/lib/dragAndDropHandler/dragElement.d.ts.map +1 -1
- package/lib/dragAndDropHandler/dragElement.js +9 -12
- package/lib/dragAndDropHandler/dragElement.js.map +1 -1
- package/lib/dragAndDropHandler/generateHitAreas.d.ts.map +1 -1
- package/lib/dragAndDropHandler/generateHitAreas.js +25 -25
- package/lib/dragAndDropHandler/generateHitAreas.js.map +1 -1
- package/lib/dragAndDropHandler/index.d.ts.map +1 -1
- package/lib/dragAndDropHandler/index.js +90 -114
- package/lib/dragAndDropHandler/index.js.map +1 -1
- package/lib/dragAndDropHandler/iterateVisibleNodes.d.ts.map +1 -1
- package/lib/dragAndDropHandler/iterateVisibleNodes.js +10 -10
- package/lib/dragAndDropHandler/iterateVisibleNodes.js.map +1 -1
- package/lib/dragAndDropHandler/types.d.ts.map +1 -1
- package/lib/elementsRenderer.d.ts +15 -6
- package/lib/elementsRenderer.d.ts.map +1 -1
- package/lib/elementsRenderer.js +157 -121
- package/lib/elementsRenderer.js.map +1 -1
- package/lib/events.d.ts +11 -4
- package/lib/events.d.ts.map +1 -1
- package/lib/index.d.ts +5 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +249 -252
- package/lib/index.js.map +1 -1
- package/lib/keyHandler.d.ts +2 -3
- package/lib/keyHandler.d.ts.map +1 -1
- package/lib/keyHandler.js +26 -25
- package/lib/keyHandler.js.map +1 -1
- package/lib/methodTypes.d.ts +1 -1
- package/lib/methodTypes.d.ts.map +1 -1
- package/lib/mouseHandler.d.ts.map +1 -1
- package/lib/mouseHandler.js +26 -42
- package/lib/mouseHandler.js.map +1 -1
- package/lib/mouseUtils.d.ts.map +1 -1
- package/lib/mouseUtils.js +2 -2
- package/lib/mouseUtils.js.map +1 -1
- package/lib/node.d.ts +2 -1
- package/lib/node.d.ts.map +1 -1
- package/lib/node.js +36 -35
- package/lib/node.js.map +1 -1
- package/lib/nodeElement/borderDropHint.d.ts.map +1 -1
- package/lib/nodeElement/borderDropHint.js +4 -5
- package/lib/nodeElement/borderDropHint.js.map +1 -1
- package/lib/nodeElement/folderElement.d.ts +7 -4
- package/lib/nodeElement/folderElement.d.ts.map +1 -1
- package/lib/nodeElement/folderElement.js +61 -42
- package/lib/nodeElement/folderElement.js.map +1 -1
- package/lib/nodeElement/ghostDropHint.d.ts.map +1 -1
- package/lib/nodeElement/ghostDropHint.js +5 -9
- package/lib/nodeElement/ghostDropHint.js.map +1 -1
- package/lib/nodeElement/index.d.ts +2 -1
- package/lib/nodeElement/index.d.ts.map +1 -1
- package/lib/nodeElement/index.js +34 -26
- package/lib/nodeElement/index.js.map +1 -1
- package/lib/nodeUtils.d.ts.map +1 -1
- package/lib/nodeUtils.js +1 -1
- package/lib/nodeUtils.js.map +1 -1
- package/lib/options.d.ts.map +1 -1
- package/lib/positionUtils.js +3 -3
- package/lib/positionUtils.js.map +1 -1
- package/lib/requestUrl.d.ts +1 -1
- package/lib/requestUrl.d.ts.map +1 -1
- package/lib/requestUrl.js +4 -6
- package/lib/requestUrl.js.map +1 -1
- package/lib/saveStateHandler.d.ts.map +1 -1
- package/lib/saveStateHandler.js +38 -48
- package/lib/saveStateHandler.js.map +1 -1
- package/lib/scrollHandler/containerScrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/containerScrollParent.js +9 -11
- package/lib/scrollHandler/containerScrollParent.js.map +1 -1
- package/lib/scrollHandler/createScrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/createScrollParent.js +10 -10
- package/lib/scrollHandler/createScrollParent.js.map +1 -1
- package/lib/scrollHandler/documentScrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/documentScrollParent.js +16 -19
- package/lib/scrollHandler/documentScrollParent.js.map +1 -1
- package/lib/scrollHandler/scrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/scrollParent.js +11 -17
- package/lib/scrollHandler/scrollParent.js.map +1 -1
- package/lib/scrollHandler.d.ts.map +1 -1
- package/lib/scrollHandler.js +11 -14
- package/lib/scrollHandler.js.map +1 -1
- package/lib/selectNodeHandler.d.ts +2 -2
- package/lib/selectNodeHandler.d.ts.map +1 -1
- package/lib/selectNodeHandler.js +45 -54
- package/lib/selectNodeHandler.js.map +1 -1
- package/lib/setDefaultOptions.d.ts.map +1 -1
- package/lib/setDefaultOptions.js +23 -28
- package/lib/setDefaultOptions.js.map +1 -1
- package/lib/triggerCustomEvent.d.ts.map +1 -1
- package/lib/triggerCustomEvent.js +2 -2
- package/lib/triggerCustomEvent.js.map +1 -1
- package/lib/util.d.ts.map +1 -1
- package/lib/util.js +2 -2
- package/lib/util.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +7 -3
- package/src/animation.ts +1 -1
- package/src/classNames.ts +52 -52
- package/src/dataLoader.ts +68 -70
- package/src/dragAndDropHandler/binarySearch.ts +17 -17
- package/src/dragAndDropHandler/dragElement.ts +50 -50
- package/src/dragAndDropHandler/generateHitAreas.ts +156 -161
- package/src/dragAndDropHandler/index.ts +342 -351
- package/src/dragAndDropHandler/iterateVisibleNodes.ts +59 -63
- package/src/dragAndDropHandler/types.ts +5 -5
- package/src/elementsRenderer.ts +351 -298
- package/src/events.ts +216 -209
- package/src/header.txt +1 -1
- package/src/index.ts +52 -82
- package/src/keyHandler.ts +125 -115
- package/src/methodTypes.ts +4 -7
- package/src/mouseHandler.ts +314 -317
- package/src/mouseUtils.ts +14 -14
- package/src/node.ts +761 -766
- package/src/nodeElement/borderDropHint.ts +25 -25
- package/src/nodeElement/folderElement.ts +135 -112
- package/src/nodeElement/ghostDropHint.ts +62 -62
- package/src/nodeElement/index.ts +88 -74
- package/src/nodeUtils.ts +5 -5
- package/src/options.ts +6 -2
- package/src/requestUrl.ts +3 -3
- package/src/saveStateHandler.ts +204 -206
- package/src/scrollHandler/containerScrollParent.ts +49 -52
- package/src/scrollHandler/createScrollParent.ts +27 -27
- package/src/scrollHandler/documentScrollParent.ts +70 -70
- package/src/scrollHandler/scrollParent.ts +98 -98
- package/src/scrollHandler.ts +45 -45
- package/src/selectNodeHandler.ts +176 -166
- package/src/setDefaultOptions.ts +25 -22
- package/src/triggerCustomEvent.ts +7 -3
- package/src/util.ts +2 -2
- package/src/version.ts +1 -1
- package/tree_element.debug.js +3770 -3799
- package/tree_element.debug.js.map +1 -1
- package/tree_element.js +2 -2
- package/tree_element.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Tree-element
|
|
2
2
|
|
|
3
3
|
Tree widget in plain javascript. No jQuery, no framework, no runtime dependencies.
|
|
4
4
|
|
|
@@ -11,6 +11,10 @@ Tree widget in plain javascript. No jQuery, no framework, no runtime dependencie
|
|
|
11
11
|
|
|
12
12
|
Full documentation: https://mbraak.github.io/tree-element/
|
|
13
13
|
|
|
14
|
+
npm package: https://www.npmjs.com/package/tree-element
|
|
15
|
+
|
|
16
|
+

|
|
17
|
+
|
|
14
18
|
## Install
|
|
15
19
|
|
|
16
20
|
```sh
|
|
@@ -75,32 +79,32 @@ new TreeElement({
|
|
|
75
79
|
|
|
76
80
|
## Options
|
|
77
81
|
|
|
78
|
-
| Option | Default
|
|
79
|
-
| ----------------- |
|
|
80
|
-
| `animationSpeed` | `"fast"`
|
|
81
|
-
| `autoEscape` | `true`
|
|
82
|
-
| `autoOpen` | `false`
|
|
83
|
-
| `buttonLeft` | `true`
|
|
82
|
+
| Option | Default | Description |
|
|
83
|
+
| ----------------- | ----------------------- | --------------------------------------------------------------------------------- |
|
|
84
|
+
| `animationSpeed` | `"fast"` | `"fast"`, `"slow"`, or a number of milliseconds |
|
|
85
|
+
| `autoEscape` | `true` | Escape node names. Set to `false` to render html in a name |
|
|
86
|
+
| `autoOpen` | `false` | `true` opens everything, a number opens that many levels (`0` is the first level) |
|
|
87
|
+
| `buttonLeft` | `true` | Put the open/close button left of the title |
|
|
84
88
|
| `classPrefix` | `"tree-element"` | The prefix of all css classes |
|
|
85
|
-
| `closedIcon` | `►` (`◄` in rtl)
|
|
89
|
+
| `closedIcon` | `►` (`◄` in rtl) | Html string or element |
|
|
86
90
|
| `commonClassName` | `"tree-element-common"` | The class that every element gets |
|
|
87
|
-
| `data` |
|
|
88
|
-
| `dataFilter` |
|
|
89
|
-
| `dataUrl` | `data-url` attribute
|
|
90
|
-
| `dragAndDrop` | `false`
|
|
91
|
-
| `keyboardSupport` | `true`
|
|
92
|
-
| `nodeClass` | `Node`
|
|
93
|
-
| `openFolderDelay` | `500`
|
|
94
|
-
| `openedIcon` | `▼`
|
|
95
|
-
| `rtl` | `data-rtl` attribute
|
|
96
|
-
| `saveState` | `false`
|
|
97
|
-
| `selectable` | `true`
|
|
98
|
-
| `showEmptyFolder` | `false`
|
|
99
|
-
| `slide` | `true`
|
|
100
|
-
| `startDndDelay` | `300`
|
|
101
|
-
| `tabIndex` | `0`
|
|
91
|
+
| `data` | | The nodes to display |
|
|
92
|
+
| `dataFilter` | | Transforms the response of `dataUrl` into node data |
|
|
93
|
+
| `dataUrl` | `data-url` attribute | Url, or a function returning a url |
|
|
94
|
+
| `dragAndDrop` | `false` | Enable drag and drop |
|
|
95
|
+
| `keyboardSupport` | `true` | Navigate with the arrow keys |
|
|
96
|
+
| `nodeClass` | `Node` | Subclass of `Node` to use for nodes |
|
|
97
|
+
| `openFolderDelay` | `500` | Milliseconds before a folder opens while dragging over it. `false` disables it |
|
|
98
|
+
| `openedIcon` | `▼` | Html string or element |
|
|
99
|
+
| `rtl` | `data-rtl` attribute | Right-to-left rendering |
|
|
100
|
+
| `saveState` | `false` | `true`, or a string to use as the storage key |
|
|
101
|
+
| `selectable` | `true` | Allow selecting nodes |
|
|
102
|
+
| `showEmptyFolder` | `false` | Show the open/close button for nodes without children |
|
|
103
|
+
| `slide` | `true` | Animate opening and closing |
|
|
104
|
+
| `startDndDelay` | `300` | Milliseconds to hold before a drag starts |
|
|
105
|
+
| `tabIndex` | `0` | Tab index of the tree element |
|
|
102
106
|
| `treeClassName` | `"tree-element"` | The class of the root `ul` |
|
|
103
|
-
| `useContextMenu` | `true`
|
|
107
|
+
| `useContextMenu` | `true` | Fire `tree.contextmenu` on right click |
|
|
104
108
|
|
|
105
109
|
### Callbacks
|
|
106
110
|
|
|
@@ -188,11 +192,11 @@ const data: NodeData[] = [{ name: "root", id: 1 }];
|
|
|
188
192
|
|
|
189
193
|
## Entry points
|
|
190
194
|
|
|
191
|
-
|
|
|
192
|
-
|
|
|
193
|
-
| `import "tree-element"`
|
|
194
|
-
| `require`, script tag
|
|
195
|
-
| `tree-element/tree_element.css` | The stylesheet
|
|
195
|
+
| | |
|
|
196
|
+
| ------------------------------- | ------------------------------------------------------------------ |
|
|
197
|
+
| `import "tree-element"` | `lib/index.js`, unbundled es modules |
|
|
198
|
+
| `require`, script tag | `tree_element.js`, minified iife exposing the global `TreeElement` |
|
|
199
|
+
| `tree-element/tree_element.css` | The stylesheet |
|
|
196
200
|
|
|
197
201
|
`tree_element.debug.js` is the same bundle without minification.
|
|
198
202
|
|
|
@@ -216,6 +220,22 @@ pnpm ci # lint, typecheck, check the docs and test
|
|
|
216
220
|
|
|
217
221
|
`pnpm test` runs the vitest unit tests and the playwright browser tests.
|
|
218
222
|
|
|
223
|
+
### Releasing
|
|
224
|
+
|
|
225
|
+
Describe the changes under "Unreleased" in `CHANGELOG.md` as you go. To release,
|
|
226
|
+
make sure `master` is pushed and CI is green, then run:
|
|
227
|
+
|
|
228
|
+
```sh
|
|
229
|
+
pnpm release patch # or minor, major, or an explicit version
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Add `--dry-run` to see the version bump and changelog change without committing.
|
|
233
|
+
|
|
234
|
+
This bumps the version, moves the unreleased changes in the changelog to the new
|
|
235
|
+
version, commits, tags `v<version>` and pushes. The
|
|
236
|
+
[Release workflow](.github/workflows/release.yml) then runs the checks, publishes
|
|
237
|
+
to npm with provenance and creates the GitHub release.
|
|
238
|
+
|
|
219
239
|
## License
|
|
220
240
|
|
|
221
241
|
Apache-2.0. See [LICENSE](LICENSE).
|
package/lib/animation.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
let getAnimationDuration = duration => {
|
|
2
2
|
if (typeof duration === "number") {
|
|
3
3
|
return duration;
|
|
4
4
|
}
|
|
5
5
|
return duration === "slow" ? 600 : 200;
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
let slideDown = (element, animationSpeed, onFinished) => {
|
|
8
8
|
element.style.display = "block";
|
|
9
|
-
|
|
9
|
+
let animation = element.animate([{
|
|
10
10
|
height: "0",
|
|
11
11
|
overflow: "hidden"
|
|
12
12
|
}, {
|
|
@@ -19,8 +19,8 @@ const slideDown = (element, animationSpeed, onFinished) => {
|
|
|
19
19
|
onFinished();
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
let slideUp = (element, animationSpeed, onFinished) => {
|
|
23
|
+
let animation = element.animate([{
|
|
24
24
|
height: `${element.scrollHeight}px`,
|
|
25
25
|
overflow: "hidden"
|
|
26
26
|
}, {
|
package/lib/animation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animation.js","sources":["../src/animation.ts"],"sourcesContent":["export type AnimationSpeed = \"fast\" | \"slow\" | number;\n\nexport const getAnimationDuration = (duration: AnimationSpeed): number => {\n if (typeof duration === \"number\") {\n return duration;\n }\n\n return duration === \"slow\" ? 600 : 200;\n};\n\nexport const slideDown = (\n element: HTMLElement,\n animationSpeed: AnimationSpeed,\n onFinished: () => void,\n): void => {\n element.style.display = \"block\";\n\n const animation = element.animate(\n [\n { height: \"0\", overflow: \"hidden\" },\n { height: `${element.scrollHeight}px`, overflow: \"hidden\" },\n ],\n { duration: getAnimationDuration(animationSpeed) },\n );\n\n animation.onfinish = () => {\n onFinished();\n };\n};\n\nexport const slideUp = (\n element: HTMLElement,\n animationSpeed: AnimationSpeed,\n onFinished: () => void,\n): void => {\n const animation = element.animate(\n [\n { height: `${element.scrollHeight}px`, overflow: \"hidden\" },\n { height: \"0\", overflow: \"hidden\" },\n ],\n { duration: getAnimationDuration(animationSpeed) },\n );\n\n animation.onfinish = () => {\n element.style.display = \"none\";\n onFinished();\n };\n}
|
|
1
|
+
{"version":3,"file":"animation.js","sources":["../src/animation.ts"],"sourcesContent":["export type AnimationSpeed = \"fast\" | \"slow\" | number;\n\nexport const getAnimationDuration = (duration: AnimationSpeed): number => {\n if (typeof duration === \"number\") {\n return duration;\n }\n\n return duration === \"slow\" ? 600 : 200;\n};\n\nexport const slideDown = (\n element: HTMLElement,\n animationSpeed: AnimationSpeed,\n onFinished: () => void,\n): void => {\n element.style.display = \"block\";\n\n const animation = element.animate(\n [\n { height: \"0\", overflow: \"hidden\" },\n { height: `${element.scrollHeight}px`, overflow: \"hidden\" },\n ],\n { duration: getAnimationDuration(animationSpeed) },\n );\n\n animation.onfinish = () => {\n onFinished();\n };\n};\n\nexport const slideUp = (\n element: HTMLElement,\n animationSpeed: AnimationSpeed,\n onFinished: () => void,\n): void => {\n const animation = element.animate(\n [\n { height: `${element.scrollHeight}px`, overflow: \"hidden\" },\n { height: \"0\", overflow: \"hidden\" },\n ],\n { duration: getAnimationDuration(animationSpeed) },\n );\n\n animation.onfinish = () => {\n element.style.display = \"none\";\n onFinished();\n };\n};\n"],"names":[],"mappings":"AAEO,IAAM,oBAAoB,GAAI,QAAwB,IAAa;AACxE,EAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,IAAA,OAAO,QAAQ;AACjB,EAAA;AAEA,EAAA,OAAO,QAAQ,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG;AACxC;AAEO,IAAM,SAAS,GAAG,CACvB,OAAoB,EACpB,cAA8B,EAC9B,UAAsB,KACb;AACT,EAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AAE/B,EAAA,IAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAC/B,CACE;AAAE,IAAA,MAAM,EAAE,GAAG;AAAE,IAAA,QAAQ,EAAE;AAAS,GAAC,EACnC;AAAE,IAAA,MAAM,EAAE,CAAA,EAAG,OAAO,CAAC,YAAY,CAAA,EAAA,CAAI;AAAE,IAAA,QAAQ,EAAE;AAAS,GAAC,CAC5D,EACD;IAAE,QAAQ,EAAE,oBAAoB,CAAC,cAAc;AAAE,GACnD,CAAC;EAED,SAAS,CAAC,QAAQ,GAAG,MAAM;AACzB,IAAA,UAAU,EAAE;EACd,CAAC;AACH;AAEO,IAAM,OAAO,GAAG,CACrB,OAAoB,EACpB,cAA8B,EAC9B,UAAsB,KACb;AACT,EAAA,IAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAC/B,CACE;AAAE,IAAA,MAAM,EAAE,CAAA,EAAG,OAAO,CAAC,YAAY,CAAA,EAAA,CAAI;AAAE,IAAA,QAAQ,EAAE;AAAS,GAAC,EAC3D;AAAE,IAAA,MAAM,EAAE,GAAG;AAAE,IAAA,QAAQ,EAAE;AAAS,GAAC,CACpC,EACD;IAAE,QAAQ,EAAE,oBAAoB,CAAC,cAAc;AAAE,GACnD,CAAC;EAED,SAAS,CAAC,QAAQ,GAAG,MAAM;AACzB,IAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC9B,IAAA,UAAU,EAAE;EACd,CAAC;AACH;;"}
|
package/lib/classNames.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../src/classNames.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;
|
|
1
|
+
{"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../src/classNames.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAOnD,QAAA,MAAM,gBAAgB,GAAI,kDAIvB,iBAAiB,KAAG,UAwBrB,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
package/lib/classNames.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
let DEFAULT_CLASS_PREFIX = "tree-element";
|
|
2
2
|
|
|
3
3
|
/* Create the class names that the widget puts on the elements it creates.
|
|
4
4
|
* They are all derived from classPrefix, except for the class of the root
|
|
5
5
|
* element and the class that every element gets, which have an option of
|
|
6
6
|
* their own.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
let createClassNames = ({
|
|
9
9
|
classPrefix,
|
|
10
10
|
commonClassName,
|
|
11
11
|
treeClassName
|
package/lib/classNames.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classNames.js","sources":["../src/classNames.ts"],"sourcesContent":["export interface ClassNames {\n
|
|
1
|
+
{"version":3,"file":"classNames.js","sources":["../src/classNames.ts"],"sourcesContent":["export interface ClassNames {\n border: string;\n circle: string;\n closed: string;\n common: string;\n dnd: string;\n dragging: string;\n element: string;\n folder: string;\n ghost: string;\n inside: string;\n line: string;\n loading: string;\n moving: string;\n rtl: string;\n selected: string;\n title: string;\n titleButtonLeft: string;\n titleButtonRight: string;\n titleFolder: string;\n toggler: string;\n togglerLeft: string;\n togglerRight: string;\n tree: string;\n}\n\nexport interface ClassNamesOptions {\n classPrefix: string;\n commonClassName?: string;\n treeClassName?: string;\n}\n\nexport const DEFAULT_CLASS_PREFIX = \"tree-element\";\n\n/* Create the class names that the widget puts on the elements it creates.\n * They are all derived from classPrefix, except for the class of the root\n * element and the class that every element gets, which have an option of\n * their own.\n */\nconst createClassNames = ({\n classPrefix,\n commonClassName,\n treeClassName,\n}: ClassNamesOptions): ClassNames => ({\n border: `${classPrefix}-border`,\n circle: `${classPrefix}-circle`,\n closed: `${classPrefix}-closed`,\n common: commonClassName ?? `${classPrefix}-common`,\n dnd: `${classPrefix}-dnd`,\n dragging: `${classPrefix}-dragging`,\n element: `${classPrefix}-element`,\n folder: `${classPrefix}-folder`,\n ghost: `${classPrefix}-ghost`,\n inside: `${classPrefix}-inside`,\n line: `${classPrefix}-line`,\n loading: `${classPrefix}-loading`,\n moving: `${classPrefix}-moving`,\n rtl: `${classPrefix}-rtl`,\n selected: `${classPrefix}-selected`,\n title: `${classPrefix}-title`,\n titleButtonLeft: `${classPrefix}-title-button-left`,\n titleButtonRight: `${classPrefix}-title-button-right`,\n titleFolder: `${classPrefix}-title-folder`,\n toggler: `${classPrefix}-toggler`,\n togglerLeft: `${classPrefix}-toggler-left`,\n togglerRight: `${classPrefix}-toggler-right`,\n tree: treeClassName ?? classPrefix,\n});\n\nexport default createClassNames;\n"],"names":[],"mappings":"AAgCO,IAAM,oBAAoB,GAAG;;AAEpC;AACA;AACA;AACA;AACA;AACA,IAAM,gBAAgB,GAAG,CAAC;EACxB,WAAW;EACX,eAAe;AACf,EAAA;AACiB,CAAC,MAAkB;EACpC,MAAM,EAAE,CAAA,EAAG,WAAW,CAAA,OAAA,CAAS;EAC/B,MAAM,EAAE,CAAA,EAAG,WAAW,CAAA,OAAA,CAAS;EAC/B,MAAM,EAAE,CAAA,EAAG,WAAW,CAAA,OAAA,CAAS;AAC/B,EAAA,MAAM,EAAE,eAAe,IAAI,CAAA,EAAG,WAAW,CAAA,OAAA,CAAS;EAClD,GAAG,EAAE,CAAA,EAAG,WAAW,CAAA,IAAA,CAAM;EACzB,QAAQ,EAAE,CAAA,EAAG,WAAW,CAAA,SAAA,CAAW;EACnC,OAAO,EAAE,CAAA,EAAG,WAAW,CAAA,QAAA,CAAU;EACjC,MAAM,EAAE,CAAA,EAAG,WAAW,CAAA,OAAA,CAAS;EAC/B,KAAK,EAAE,CAAA,EAAG,WAAW,CAAA,MAAA,CAAQ;EAC7B,MAAM,EAAE,CAAA,EAAG,WAAW,CAAA,OAAA,CAAS;EAC/B,IAAI,EAAE,CAAA,EAAG,WAAW,CAAA,KAAA,CAAO;EAC3B,OAAO,EAAE,CAAA,EAAG,WAAW,CAAA,QAAA,CAAU;EACjC,MAAM,EAAE,CAAA,EAAG,WAAW,CAAA,OAAA,CAAS;EAC/B,GAAG,EAAE,CAAA,EAAG,WAAW,CAAA,IAAA,CAAM;EACzB,QAAQ,EAAE,CAAA,EAAG,WAAW,CAAA,SAAA,CAAW;EACnC,KAAK,EAAE,CAAA,EAAG,WAAW,CAAA,MAAA,CAAQ;EAC7B,eAAe,EAAE,CAAA,EAAG,WAAW,CAAA,kBAAA,CAAoB;EACnD,gBAAgB,EAAE,CAAA,EAAG,WAAW,CAAA,mBAAA,CAAqB;EACrD,WAAW,EAAE,CAAA,EAAG,WAAW,CAAA,aAAA,CAAe;EAC1C,OAAO,EAAE,CAAA,EAAG,WAAW,CAAA,QAAA,CAAU;EACjC,WAAW,EAAE,CAAA,EAAG,WAAW,CAAA,aAAA,CAAe;EAC1C,YAAY,EAAE,CAAA,EAAG,WAAW,CAAA,cAAA,CAAgB;EAC5C,IAAI,EAAE,aAAa,IAAI;AACzB,CAAC;;"}
|
package/lib/dataLoader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataLoader.d.ts","sourceRoot":"","sources":["../src/dataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAE3C,UAAU,gBAAgB;
|
|
1
|
+
{"version":3,"file":"dataLoader.d.ts","sourceRoot":"","sources":["../src/dataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAE3C,UAAU,gBAAgB;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;gBAEvB,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,WAAW,EACX,YAAY,GACb,EAAE,gBAAgB;IASZ,MAAM,IAAI,IAAI;IAIR,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAgDtE"}
|
package/lib/dataLoader.js
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
class DataLoader {
|
|
2
|
-
_abortController;
|
|
3
|
-
_classNames;
|
|
4
|
-
_dataFilter;
|
|
5
|
-
_loadData;
|
|
6
|
-
_treeElement;
|
|
7
|
-
_triggerEvent;
|
|
8
2
|
constructor({
|
|
9
|
-
classNames,
|
|
10
|
-
dataFilter,
|
|
11
|
-
loadData,
|
|
12
|
-
treeElement,
|
|
13
|
-
triggerEvent
|
|
3
|
+
_classNames: classNames,
|
|
4
|
+
_dataFilter: dataFilter,
|
|
5
|
+
_loadData: loadData,
|
|
6
|
+
_treeElement: treeElement,
|
|
7
|
+
_triggerEvent: triggerEvent
|
|
14
8
|
}) {
|
|
15
9
|
this._abortController = new AbortController();
|
|
16
10
|
this._classNames = classNames;
|
|
@@ -19,26 +13,26 @@ class DataLoader {
|
|
|
19
13
|
this._treeElement = treeElement;
|
|
20
14
|
this._triggerEvent = triggerEvent;
|
|
21
15
|
}
|
|
22
|
-
|
|
16
|
+
_deinit() {
|
|
23
17
|
this._abortController.abort();
|
|
24
18
|
}
|
|
25
|
-
async
|
|
26
|
-
|
|
19
|
+
async _loadFromUrl(url, node) {
|
|
20
|
+
let element = node?.element ?? this._treeElement;
|
|
27
21
|
element.classList.add(this._classNames.loading);
|
|
28
22
|
this._triggerEvent("tree.loading_data", {
|
|
29
23
|
element,
|
|
30
24
|
node
|
|
31
25
|
});
|
|
32
|
-
|
|
26
|
+
let stopLoading = () => {
|
|
33
27
|
element.classList.remove(this._classNames.loading);
|
|
34
28
|
this._triggerEvent("tree.loaded_data", {
|
|
35
29
|
element,
|
|
36
30
|
node
|
|
37
31
|
});
|
|
38
32
|
};
|
|
39
|
-
|
|
33
|
+
let handleResponse = async response => {
|
|
40
34
|
if (response.ok) {
|
|
41
|
-
|
|
35
|
+
let data = await response.json();
|
|
42
36
|
stopLoading();
|
|
43
37
|
this._loadData(this._dataFilter ? this._dataFilter(data) : data, node);
|
|
44
38
|
} else {
|
|
@@ -48,9 +42,9 @@ class DataLoader {
|
|
|
48
42
|
});
|
|
49
43
|
}
|
|
50
44
|
};
|
|
51
|
-
|
|
52
|
-
url.
|
|
53
|
-
return fetch(url.
|
|
45
|
+
let signal = this._abortController.signal;
|
|
46
|
+
url._setSearchParam("_", Date.now().toString());
|
|
47
|
+
return fetch(url._value(), {
|
|
54
48
|
headers: {
|
|
55
49
|
"Content-Type": "application/json"
|
|
56
50
|
},
|
|
@@ -60,7 +54,10 @@ class DataLoader {
|
|
|
60
54
|
// The request was aborted by deinit.
|
|
61
55
|
return;
|
|
62
56
|
}
|
|
63
|
-
|
|
57
|
+
stopLoading();
|
|
58
|
+
this._triggerEvent("tree.load_failed", {
|
|
59
|
+
error
|
|
60
|
+
});
|
|
64
61
|
});
|
|
65
62
|
}
|
|
66
63
|
}
|
package/lib/dataLoader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataLoader.js","sources":["../src/dataLoader.ts"],"sourcesContent":["import type { ClassNames } from \"./classNames\";\nimport type { LoadData, TriggerEvent } from \"./methodTypes\";\nimport type { Node, NodeData } from \"./node\";\nimport type { DataFilter } from \"./options\";\nimport type RequestUrl from \"./requestUrl\";\n\ninterface DataLoaderParams {\n
|
|
1
|
+
{"version":3,"file":"dataLoader.js","sources":["../src/dataLoader.ts"],"sourcesContent":["import type { ClassNames } from \"./classNames\";\nimport type { LoadData, TriggerEvent } from \"./methodTypes\";\nimport type { Node, NodeData } from \"./node\";\nimport type { DataFilter } from \"./options\";\nimport type RequestUrl from \"./requestUrl\";\n\ninterface DataLoaderParams {\n classNames: ClassNames;\n dataFilter?: DataFilter;\n loadData: LoadData;\n treeElement: HTMLElement;\n triggerEvent: TriggerEvent;\n}\n\nexport default class DataLoader {\n private abortController: AbortController;\n private classNames: ClassNames;\n private dataFilter?: DataFilter;\n private loadData: LoadData;\n private treeElement: HTMLElement;\n private triggerEvent: TriggerEvent;\n\n constructor({\n classNames,\n dataFilter,\n loadData,\n treeElement,\n triggerEvent,\n }: DataLoaderParams) {\n this.abortController = new AbortController();\n this.classNames = classNames;\n this.dataFilter = dataFilter;\n this.loadData = loadData;\n this.treeElement = treeElement;\n this.triggerEvent = triggerEvent;\n }\n\n public deinit(): void {\n this.abortController.abort();\n }\n\n public async loadFromUrl(url: RequestUrl, node?: Node): Promise<void> {\n const element = node?.element ?? this.treeElement;\n element.classList.add(this.classNames.loading);\n\n this.triggerEvent(\"tree.loading_data\", {\n element,\n node,\n });\n\n const stopLoading = (): void => {\n element.classList.remove(this.classNames.loading);\n this.triggerEvent(\"tree.loaded_data\", {\n element,\n node,\n });\n };\n\n const handleResponse = async (response: Response): Promise<void> => {\n if (response.ok) {\n const data = (await response.json()) as NodeData[];\n\n stopLoading();\n this.loadData(this.dataFilter ? this.dataFilter(data) : data, node);\n } else {\n stopLoading();\n\n this.triggerEvent(\"tree.load_failed\", { response });\n }\n };\n\n const signal = this.abortController.signal;\n url.setSearchParam(\"_\", Date.now().toString());\n\n return fetch(url.value(), {\n headers: { \"Content-Type\": \"application/json\" },\n signal,\n })\n .then(handleResponse)\n .catch((error: unknown) => {\n if (this.abortController.signal.aborted) {\n // The request was aborted by deinit.\n return;\n }\n\n stopLoading();\n this.triggerEvent(\"tree.load_failed\", { error });\n });\n }\n}\n"],"names":["abortController","classNames","dataFilter","loadData","treeElement","triggerEvent","deinit","loadFromUrl","setSearchParam","value"],"mappings":"AAce,MAAM,UAAU,CAAC;AAQ9B,EAAA,WAAW,CAAC;IACV,WAAA,EAAA,UAAU;IACV,WAAA,EAAA,UAAU;IACV,SAAA,EAAA,QAAQ;IACR,YAAA,EAAA,WAAW;AACX,IAAA,aAAA,EAAA;AACgB,GAAC,EAAE;AACnB,IAAA,IAAI,CAACA,gBAAe,GAAG,IAAI,eAAe,EAAE;IAC5C,IAAI,CAACC,WAAU,GAAG,UAAU;IAC5B,IAAI,CAACC,WAAU,GAAG,UAAU;IAC5B,IAAI,CAACC,SAAQ,GAAG,QAAQ;IACxB,IAAI,CAACC,YAAW,GAAG,WAAW;IAC9B,IAAI,CAACC,aAAY,GAAG,YAAY;AAClC,EAAA;AAEOC,EAAAA,OAAMA,GAAS;AACpB,IAAA,IAAI,CAACN,gBAAe,CAAC,KAAK,EAAE;AAC9B,EAAA;AAEA,EAAA,MAAaO,YAAWA,CAAC,GAAe,EAAE,IAAW,EAAiB;IACpE,IAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAACH,YAAW;IACjD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAACH,WAAU,CAAC,OAAO,CAAC;AAE9C,IAAA,IAAI,CAACI,aAAY,CAAC,mBAAmB,EAAE;MACrC,OAAO;AACP,MAAA;AACF,KAAC,CAAC;IAEF,IAAM,WAAW,GAAG,MAAY;MAC9B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAACJ,WAAU,CAAC,OAAO,CAAC;AACjD,MAAA,IAAI,CAACI,aAAY,CAAC,kBAAkB,EAAE;QACpC,OAAO;AACP,QAAA;AACF,OAAC,CAAC;IACJ,CAAC;AAED,IAAA,IAAM,cAAc,GAAG,MAAO,QAAkB,IAAoB;MAClE,IAAI,QAAQ,CAAC,EAAE,EAAE;AACf,QAAA,IAAM,IAAI,GAAI,MAAM,QAAQ,CAAC,IAAI,EAAiB;AAElD,QAAA,WAAW,EAAE;AACb,QAAA,IAAI,CAACF,SAAQ,CAAC,IAAI,CAACD,WAAU,GAAG,IAAI,CAACA,WAAU,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;AACrE,MAAA,CAAC,MAAM;AACL,QAAA,WAAW,EAAE;AAEb,QAAA,IAAI,CAACG,aAAY,CAAC,kBAAkB,EAAE;AAAE,UAAA;AAAS,SAAC,CAAC;AACrD,MAAA;IACF,CAAC;AAED,IAAA,IAAM,MAAM,GAAG,IAAI,CAACL,gBAAe,CAAC,MAAM;AAC1C,IAAA,GAAG,CAACQ,eAAc,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;AAE9C,IAAA,OAAO,KAAK,CAAC,GAAG,CAACC,MAAK,EAAE,EAAE;AACxB,MAAA,OAAO,EAAE;AAAE,QAAA,cAAc,EAAE;OAAoB;AAC/C,MAAA;KACD,CAAC,CACC,IAAI,CAAC,cAAc,CAAC,CACpB,KAAK,CAAE,KAAc,IAAK;AACzB,MAAA,IAAI,IAAI,CAACT,gBAAe,CAAC,MAAM,CAAC,OAAO,EAAE;AACvC;AACA,QAAA;AACF,MAAA;AAEA,MAAA,WAAW,EAAE;AACb,MAAA,IAAI,CAACK,aAAY,CAAC,kBAAkB,EAAE;AAAE,QAAA;AAAM,OAAC,CAAC;AAClD,IAAA,CAAC,CAAC;AACN,EAAA;AACF;;"}
|
|
@@ -2,12 +2,12 @@ function binarySearch(items, compareFn) {
|
|
|
2
2
|
let low = 0;
|
|
3
3
|
let high = items.length;
|
|
4
4
|
while (low < high) {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
let mid = low + high >> 1;
|
|
6
|
+
let item = items[mid];
|
|
7
7
|
if (item === undefined) {
|
|
8
8
|
return null;
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
let compareResult = compareFn(item);
|
|
11
11
|
if (compareResult > 0) {
|
|
12
12
|
high = mid;
|
|
13
13
|
} else if (compareResult < 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binarySearch.js","sources":["../../src/dragAndDropHandler/binarySearch.ts"],"sourcesContent":["function binarySearch<T>(items: T[], compareFn: (a: T) => number): null | T {\n
|
|
1
|
+
{"version":3,"file":"binarySearch.js","sources":["../../src/dragAndDropHandler/binarySearch.ts"],"sourcesContent":["function binarySearch<T>(items: T[], compareFn: (a: T) => number): null | T {\n let low = 0;\n let high = items.length;\n\n while (low < high) {\n const mid = (low + high) >> 1;\n const item = items[mid];\n\n if (item === undefined) {\n return null;\n }\n\n const compareResult = compareFn(item);\n\n if (compareResult > 0) {\n high = mid;\n } else if (compareResult < 0) {\n low = mid + 1;\n } else {\n return item;\n }\n }\n\n return null;\n}\n\nexport default binarySearch;\n"],"names":[],"mappings":"AAAA,SAAS,YAAY,CAAI,KAAU,EAAE,SAA2B,EAAY;EAC1E,IAAI,GAAG,GAAG,CAAC;AACX,EAAA,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM;EAEvB,OAAO,GAAG,GAAG,IAAI,EAAE;AACjB,IAAA,IAAM,GAAG,GAAI,GAAG,GAAG,IAAI,IAAK,CAAC;AAC7B,IAAA,IAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;IAEvB,IAAI,IAAI,KAAK,SAAS,EAAE;AACtB,MAAA,OAAO,IAAI;AACb,IAAA;AAEA,IAAA,IAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;IAErC,IAAI,aAAa,GAAG,CAAC,EAAE;AACrB,MAAA,IAAI,GAAG,GAAG;AACZ,IAAA,CAAC,MAAM,IAAI,aAAa,GAAG,CAAC,EAAE;MAC5B,GAAG,GAAG,GAAG,GAAG,CAAC;AACf,IAAA,CAAC,MAAM;AACL,MAAA,OAAO,IAAI;AACb,IAAA;AACF,EAAA;AAEA,EAAA,OAAO,IAAI;AACb;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dragElement.d.ts","sourceRoot":"","sources":["../../src/dragAndDropHandler/dragElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,UAAU,iBAAiB;
|
|
1
|
+
{"version":3,"file":"dragElement.d.ts","sourceRoot":"","sources":["../../src/dragAndDropHandler/dragElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,UAAU,iBAAiB;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,cAAM,WAAW;IACf,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAW,GACZ,EAAE,iBAAiB;IASb,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKxC,MAAM,IAAI,IAAI;IAIrB,OAAO,CAAC,aAAa;CAkBtB;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,29 +1,26 @@
|
|
|
1
1
|
class DragElement {
|
|
2
|
-
_element;
|
|
3
|
-
_offsetX;
|
|
4
|
-
_offsetY;
|
|
5
2
|
constructor({
|
|
6
|
-
autoEscape,
|
|
7
|
-
classNames,
|
|
8
|
-
nodeName,
|
|
9
|
-
offsetX,
|
|
10
|
-
offsetY,
|
|
11
|
-
treeElement
|
|
3
|
+
_autoEscape: autoEscape,
|
|
4
|
+
_classNames: classNames,
|
|
5
|
+
_nodeName: nodeName,
|
|
6
|
+
_offsetX: offsetX,
|
|
7
|
+
_offsetY: offsetY,
|
|
8
|
+
_treeElement: treeElement
|
|
12
9
|
}) {
|
|
13
10
|
this._offsetX = offsetX;
|
|
14
11
|
this._offsetY = offsetY;
|
|
15
12
|
this._element = this._createElement(nodeName, autoEscape, classNames);
|
|
16
13
|
treeElement.appendChild(this._element);
|
|
17
14
|
}
|
|
18
|
-
|
|
15
|
+
_move(pageX, pageY) {
|
|
19
16
|
this._element.style.left = `${pageX - this._offsetX}px`;
|
|
20
17
|
this._element.style.top = `${pageY - this._offsetY}px`;
|
|
21
18
|
}
|
|
22
|
-
|
|
19
|
+
_remove() {
|
|
23
20
|
this._element.remove();
|
|
24
21
|
}
|
|
25
22
|
_createElement(nodeName, autoEscape, classNames) {
|
|
26
|
-
|
|
23
|
+
let element = document.createElement("span");
|
|
27
24
|
element.classList.add(classNames.title, classNames.dragging);
|
|
28
25
|
if (autoEscape) {
|
|
29
26
|
element.textContent = nodeName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dragElement.js","sources":["../../src/dragAndDropHandler/dragElement.ts"],"sourcesContent":["import type { ClassNames } from \"../classNames\";\n\ninterface DragElementParams {\n
|
|
1
|
+
{"version":3,"file":"dragElement.js","sources":["../../src/dragAndDropHandler/dragElement.ts"],"sourcesContent":["import type { ClassNames } from \"../classNames\";\n\ninterface DragElementParams {\n autoEscape: boolean;\n classNames: ClassNames;\n nodeName: string;\n offsetX: number;\n offsetY: number;\n treeElement: HTMLElement;\n}\n\nclass DragElement {\n private element: HTMLElement;\n private offsetX: number;\n private offsetY: number;\n\n constructor({\n autoEscape,\n classNames,\n nodeName,\n offsetX,\n offsetY,\n treeElement,\n }: DragElementParams) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n\n this.element = this.createElement(nodeName, autoEscape, classNames);\n\n treeElement.appendChild(this.element);\n }\n\n public move(pageX: number, pageY: number): void {\n this.element.style.left = `${pageX - this.offsetX}px`;\n this.element.style.top = `${pageY - this.offsetY}px`;\n }\n\n public remove(): void {\n this.element.remove();\n }\n\n private createElement(\n nodeName: string,\n autoEscape: boolean,\n classNames: ClassNames,\n ) {\n const element = document.createElement(\"span\");\n element.classList.add(classNames.title, classNames.dragging);\n\n if (autoEscape) {\n element.textContent = nodeName;\n } else {\n element.innerHTML = nodeName;\n }\n\n element.style.position = \"absolute\";\n\n return element;\n }\n}\n\nexport default DragElement;\n"],"names":["offsetX","offsetY","element","createElement","move","remove"],"mappings":"AAWA,MAAM,WAAW,CAAC;AAKhB,EAAA,WAAW,CAAC;IACV,WAAA,EAAA,UAAU;IACV,WAAA,EAAA,UAAU;IACV,SAAA,EAAA,QAAQ;IACR,QAAA,EAAA,OAAO;IACP,QAAA,EAAA,OAAO;AACP,IAAA,YAAA,EAAA;AACiB,GAAC,EAAE;IACpB,IAAI,CAACA,QAAO,GAAG,OAAO;IACtB,IAAI,CAACC,QAAO,GAAG,OAAO;AAEtB,IAAA,IAAI,CAACC,QAAO,GAAG,IAAI,CAACC,cAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;AAEnE,IAAA,WAAW,CAAC,WAAW,CAAC,IAAI,CAACD,QAAO,CAAC;AACvC,EAAA;AAEOE,EAAAA,KAAIA,CAAC,KAAa,EAAE,KAAa,EAAQ;AAC9C,IAAA,IAAI,CAACF,QAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,KAAK,GAAG,IAAI,CAACF,QAAO,CAAA,EAAA,CAAI;AACrD,IAAA,IAAI,CAACE,QAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,KAAK,GAAG,IAAI,CAACD,QAAO,CAAA,EAAA,CAAI;AACtD,EAAA;AAEOI,EAAAA,OAAMA,GAAS;AACpB,IAAA,IAAI,CAACH,QAAO,CAAC,MAAM,EAAE;AACvB,EAAA;AAEQC,EAAAA,cAAaA,CACnB,QAAgB,EAChB,UAAmB,EACnB,UAAsB,EACtB;AACA,IAAA,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9C,IAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC;AAE5D,IAAA,IAAI,UAAU,EAAE;MACd,OAAO,CAAC,WAAW,GAAG,QAAQ;AAChC,IAAA,CAAC,MAAM;MACL,OAAO,CAAC,SAAS,GAAG,QAAQ;AAC9B,IAAA;AAEA,IAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AAEnC,IAAA,OAAO,OAAO;AAChB,EAAA;AACF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateHitAreas.d.ts","sourceRoot":"","sources":["../../src/dragAndDropHandler/generateHitAreas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC,UAAU,WAAW;
|
|
1
|
+
{"version":3,"file":"generateHitAreas.d.ts","sourceRoot":"","sources":["../../src/dragAndDropHandler/generateHitAreas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC,UAAU,WAAW;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,IAAI,GAAG,QAAQ,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,oBAAoB,GAC/B,MAAM,IAAI,EACV,aAAa,IAAI,KAChB,WAAW,EA8Gb,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,UAAU,OAAO,EAAE,EACnB,kBAAkB,WAAW,EAAE,EAC/B,KAAK,MAAM,EACX,QAAQ,MAAM,SAsBf,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,cAAc,WAAW,EAAE,EAC3B,YAAY,MAAM,KACjB,OAAO,EAuBT,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAI,MAAM,IAAI,EAAE,aAAa,IAAI,EAAE,YAAY,MAAM,cAIxE,CAAC;AAEJ,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { getOffsetTop } from '../positionUtils.js';
|
|
2
2
|
import iterateVisibleNodes from './iterateVisibleNodes.js';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
let generateHitPositions = (tree, currentNode) => {
|
|
5
|
+
let hitPositions = [];
|
|
6
6
|
let lastTop = 0;
|
|
7
|
-
|
|
7
|
+
let addHitPosition = (node, position, top) => {
|
|
8
8
|
hitPositions.push({
|
|
9
9
|
node,
|
|
10
10
|
position,
|
|
@@ -12,7 +12,7 @@ const generateHitPositions = (tree, currentNode) => {
|
|
|
12
12
|
});
|
|
13
13
|
lastTop = top;
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
let handleAfterOpenFolder = (node, nextNode) => {
|
|
16
16
|
if (node === currentNode || nextNode === currentNode) {
|
|
17
17
|
// Cannot move before or after current item
|
|
18
18
|
addHitPosition(node, null, lastTop);
|
|
@@ -20,8 +20,8 @@ const generateHitPositions = (tree, currentNode) => {
|
|
|
20
20
|
addHitPosition(node, "after", lastTop);
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
let handleClosedFolder = (node, nextNode, element) => {
|
|
24
|
+
let top = getOffsetTop(element);
|
|
25
25
|
if (node === currentNode) {
|
|
26
26
|
// Cannot move after current item
|
|
27
27
|
addHitPosition(node, null, top);
|
|
@@ -34,13 +34,13 @@ const generateHitPositions = (tree, currentNode) => {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
-
|
|
37
|
+
let handleFirstNode = node => {
|
|
38
38
|
if (node !== currentNode && node.element) {
|
|
39
39
|
addHitPosition(node, "before", getOffsetTop(node.element));
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
let handleNode = (node, nextNode, element) => {
|
|
43
|
+
let top = getOffsetTop(element);
|
|
44
44
|
if (node === currentNode) {
|
|
45
45
|
// Cannot move inside current item
|
|
46
46
|
addHitPosition(node, null, top);
|
|
@@ -54,13 +54,13 @@ const generateHitPositions = (tree, currentNode) => {
|
|
|
54
54
|
addHitPosition(node, "after", top);
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
|
-
|
|
57
|
+
let handleOpenFolder = (node, element) => {
|
|
58
58
|
if (node === currentNode) {
|
|
59
59
|
// Cannot move inside current item
|
|
60
60
|
|
|
61
61
|
// Dnd over the current element is not possible: add a position with type None for the top and the bottom.
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
let top = getOffsetTop(element);
|
|
63
|
+
let height = element.clientHeight;
|
|
64
64
|
addHitPosition(node, null, top);
|
|
65
65
|
if (height > 5) {
|
|
66
66
|
// Subtract 5 pixels to allow more space for the next element.
|
|
@@ -80,21 +80,21 @@ const generateHitPositions = (tree, currentNode) => {
|
|
|
80
80
|
return true;
|
|
81
81
|
};
|
|
82
82
|
iterateVisibleNodes(tree, {
|
|
83
|
-
handleAfterOpenFolder,
|
|
84
|
-
handleClosedFolder,
|
|
85
|
-
handleFirstNode,
|
|
86
|
-
handleNode,
|
|
87
|
-
handleOpenFolder
|
|
83
|
+
_handleAfterOpenFolder: handleAfterOpenFolder,
|
|
84
|
+
_handleClosedFolder: handleClosedFolder,
|
|
85
|
+
_handleFirstNode: handleFirstNode,
|
|
86
|
+
_handleNode: handleNode,
|
|
87
|
+
_handleOpenFolder: handleOpenFolder
|
|
88
88
|
});
|
|
89
89
|
return hitPositions;
|
|
90
90
|
};
|
|
91
|
-
|
|
91
|
+
let generateHitAreasForGroup = (hitAreas, positionsInGroup, top, bottom) => {
|
|
92
92
|
// limit positions in group
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
let positionCount = Math.min(positionsInGroup.length, 4);
|
|
94
|
+
let areaHeight = Math.round((bottom - top) / positionCount);
|
|
95
95
|
let areaTop = top;
|
|
96
96
|
for (let i = 0; i < positionCount; i++) {
|
|
97
|
-
|
|
97
|
+
let position = positionsInGroup[i];
|
|
98
98
|
if (position.position) {
|
|
99
99
|
hitAreas.push({
|
|
100
100
|
bottom: areaTop + areaHeight,
|
|
@@ -106,14 +106,14 @@ const generateHitAreasForGroup = (hitAreas, positionsInGroup, top, bottom) => {
|
|
|
106
106
|
areaTop += areaHeight;
|
|
107
107
|
}
|
|
108
108
|
};
|
|
109
|
-
|
|
109
|
+
let generateHitAreasFromPositions = (hitPositions, treeBottom) => {
|
|
110
110
|
if (!hitPositions.length) {
|
|
111
111
|
return [];
|
|
112
112
|
}
|
|
113
113
|
let previousTop = hitPositions[0].top;
|
|
114
114
|
let group = [];
|
|
115
|
-
|
|
116
|
-
for (
|
|
115
|
+
let hitAreas = [];
|
|
116
|
+
for (let position of hitPositions) {
|
|
117
117
|
if (position.top !== previousTop && group.length) {
|
|
118
118
|
generateHitAreasForGroup(hitAreas, group, previousTop, position.top);
|
|
119
119
|
previousTop = position.top;
|
|
@@ -124,7 +124,7 @@ const generateHitAreasFromPositions = (hitPositions, treeBottom) => {
|
|
|
124
124
|
generateHitAreasForGroup(hitAreas, group, previousTop, treeBottom);
|
|
125
125
|
return hitAreas;
|
|
126
126
|
};
|
|
127
|
-
|
|
127
|
+
let generateHitAreas = (tree, currentNode, treeBottom) => generateHitAreasFromPositions(generateHitPositions(tree, currentNode), treeBottom);
|
|
128
128
|
|
|
129
129
|
export { generateHitAreas as default, generateHitAreasForGroup, generateHitAreasFromPositions, generateHitPositions };
|
|
130
130
|
//# sourceMappingURL=generateHitAreas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateHitAreas.js","sources":["../../src/dragAndDropHandler/generateHitAreas.ts"],"sourcesContent":["import type { Node, Position } from \"../node\";\nimport type { HitArea } from \"./types\";\n\nimport { getOffsetTop } from \"../positionUtils\";\nimport iterateVisibleNodes from \"./iterateVisibleNodes\";\n\ninterface HitPosition {\n
|
|
1
|
+
{"version":3,"file":"generateHitAreas.js","sources":["../../src/dragAndDropHandler/generateHitAreas.ts"],"sourcesContent":["import type { Node, Position } from \"../node\";\nimport type { HitArea } from \"./types\";\n\nimport { getOffsetTop } from \"../positionUtils\";\nimport iterateVisibleNodes from \"./iterateVisibleNodes\";\n\ninterface HitPosition {\n node: Node;\n position: null | Position;\n top: number;\n}\n\nexport const generateHitPositions = (\n tree: Node,\n currentNode: Node,\n): HitPosition[] => {\n const hitPositions: HitPosition[] = [];\n let lastTop = 0;\n\n const addHitPosition = (\n node: Node,\n position: null | Position,\n top: number,\n ) => {\n hitPositions.push({\n node,\n position,\n top,\n });\n lastTop = top;\n };\n\n const handleAfterOpenFolder = (node: Node, nextNode: Node | null) => {\n if (node === currentNode || nextNode === currentNode) {\n // Cannot move before or after current item\n addHitPosition(node, null, lastTop);\n } else {\n addHitPosition(node, \"after\", lastTop);\n }\n };\n\n const handleClosedFolder = (\n node: Node,\n nextNode: Node | null,\n element: HTMLElement,\n ) => {\n const top = getOffsetTop(element);\n\n if (node === currentNode) {\n // Cannot move after current item\n addHitPosition(node, null, top);\n } else {\n addHitPosition(node, \"inside\", top);\n\n // Cannot move before current item\n if (nextNode !== currentNode) {\n addHitPosition(node, \"after\", top);\n }\n }\n };\n\n const handleFirstNode = (node: Node) => {\n if (node !== currentNode && node.element) {\n addHitPosition(node, \"before\", getOffsetTop(node.element));\n }\n };\n\n const handleNode = (\n node: Node,\n nextNode: Node | null,\n element: HTMLElement,\n ) => {\n const top = getOffsetTop(element);\n\n if (node === currentNode) {\n // Cannot move inside current item\n addHitPosition(node, null, top);\n } else {\n addHitPosition(node, \"inside\", top);\n }\n\n if (nextNode === currentNode || node === currentNode) {\n // Cannot move before or after current item\n addHitPosition(node, null, top);\n } else {\n addHitPosition(node, \"after\", top);\n }\n };\n\n const handleOpenFolder = (node: Node, element: HTMLElement) => {\n if (node === currentNode) {\n // Cannot move inside current item\n\n // Dnd over the current element is not possible: add a position with type None for the top and the bottom.\n const top = getOffsetTop(element);\n const height = element.clientHeight;\n addHitPosition(node, null, top);\n\n if (height > 5) {\n // Subtract 5 pixels to allow more space for the next element.\n addHitPosition(node, null, top + height - 5);\n }\n\n // Stop iterating\n return false;\n }\n\n // Cannot move before current item\n if (node.children[0] !== currentNode) {\n addHitPosition(node, \"inside\", getOffsetTop(element));\n }\n\n // Continue iterating\n return true;\n };\n\n iterateVisibleNodes(tree, {\n handleAfterOpenFolder,\n handleClosedFolder,\n handleFirstNode,\n handleNode,\n handleOpenFolder,\n });\n\n return hitPositions;\n};\n\nexport const generateHitAreasForGroup = (\n hitAreas: HitArea[],\n positionsInGroup: HitPosition[],\n top: number,\n bottom: number,\n) => {\n // limit positions in group\n const positionCount = Math.min(positionsInGroup.length, 4);\n\n const areaHeight = Math.round((bottom - top) / positionCount);\n let areaTop = top;\n\n for (let i = 0; i < positionCount; i++) {\n const position = positionsInGroup[i] as HitPosition;\n\n if (position.position) {\n hitAreas.push({\n bottom: areaTop + areaHeight,\n node: position.node,\n position: position.position,\n top: areaTop,\n });\n }\n\n areaTop += areaHeight;\n }\n};\n\nexport const generateHitAreasFromPositions = (\n hitPositions: HitPosition[],\n treeBottom: number,\n): HitArea[] => {\n if (!hitPositions.length) {\n return [];\n }\n\n let previousTop = (hitPositions[0] as HitPosition).top;\n let group: HitPosition[] = [];\n const hitAreas: HitArea[] = [];\n\n for (const position of hitPositions) {\n if (position.top !== previousTop && group.length) {\n generateHitAreasForGroup(hitAreas, group, previousTop, position.top);\n\n previousTop = position.top;\n group = [];\n }\n\n group.push(position);\n }\n\n generateHitAreasForGroup(hitAreas, group, previousTop, treeBottom);\n\n return hitAreas;\n};\n\nconst generateHitAreas = (tree: Node, currentNode: Node, treeBottom: number) =>\n generateHitAreasFromPositions(\n generateHitPositions(tree, currentNode),\n treeBottom,\n );\n\nexport default generateHitAreas;\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dragAndDropHandler/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dragAndDropHandler/index.ts"],"names":[],"mappings":"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"}
|