@principal-ade/dynamic-file-tree 0.1.34 → 0.1.35
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +23 -6
- package/dist/src/components/DynamicFileTree.d.ts +1 -0
- package/dist/src/components/DynamicFileTree.d.ts.map +1 -1
- package/dist/src/components/GitStatusFileTree.d.ts +1 -0
- package/dist/src/components/GitStatusFileTree.d.ts.map +1 -1
- package/dist/src/components/TelemetryCoverageFileTree.d.ts +2 -0
- package/dist/src/components/TelemetryCoverageFileTree.d.ts.map +1 -1
- package/dist/src/hooks/useDndManager.d.ts +19 -0
- package/dist/src/hooks/useDndManager.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { useContainerHeight } from './src/hooks/useContainerHeight';
|
|
2
|
+
export { getDndProps } from './src/hooks/useDndManager';
|
|
2
3
|
export { DirectoryFilterInput } from './src/components/DirectoryFilterInput';
|
|
3
4
|
export type { DirectoryFilter, DirectoryFilterInputProps } from './src/components/DirectoryFilterInput';
|
|
4
5
|
export { TreeNode } from './src/components/TreeNode';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAGxG,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGhG,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,YAAY,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAGjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,SAAS,EACV,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,YAAY,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAGnG,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAClF,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGjG,OAAO,EACL,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,8BAA8B,EAC9B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,kCAAkC,EAAE,MAAM,qDAAqD,CAAC;AACzG,YAAY,EAAE,uCAAuC,EAAE,MAAM,qDAAqD,CAAC;AAGnH,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.mjs
CHANGED
|
@@ -18,6 +18,13 @@ var useContainerHeight = (initialHeight = 600) => {
|
|
|
18
18
|
}, []);
|
|
19
19
|
return [containerRef, containerHeight];
|
|
20
20
|
};
|
|
21
|
+
// src/hooks/useDndManager.ts
|
|
22
|
+
var getDndProps = (enableDragAndDrop = false) => {
|
|
23
|
+
return {
|
|
24
|
+
disableDrag: !enableDragAndDrop,
|
|
25
|
+
disableDrop: !enableDragAndDrop
|
|
26
|
+
};
|
|
27
|
+
};
|
|
21
28
|
// src/components/DirectoryFilterInput.tsx
|
|
22
29
|
import React, { useState as useState2, useCallback, useRef as useRef2, useEffect as useEffect2 } from "react";
|
|
23
30
|
var DirectoryFilterInput = ({
|
|
@@ -400,8 +407,10 @@ var DynamicFileTree = ({
|
|
|
400
407
|
verticalPadding,
|
|
401
408
|
onContextMenu,
|
|
402
409
|
initialHeight = 600,
|
|
403
|
-
autoHeight = false
|
|
410
|
+
autoHeight = false,
|
|
411
|
+
enableDragAndDrop = false
|
|
404
412
|
}) => {
|
|
413
|
+
const dndProps = getDndProps(enableDragAndDrop);
|
|
405
414
|
const NodeRenderer = (props) => {
|
|
406
415
|
const nodePath = props.node.data.id;
|
|
407
416
|
const isSelectedOrChild = selectedDirectories.some((selectedDir) => {
|
|
@@ -470,7 +479,8 @@ var DynamicFileTree = ({
|
|
|
470
479
|
...selectedFile !== undefined && { selection: selectedFile },
|
|
471
480
|
width: "100%",
|
|
472
481
|
height: containerHeight,
|
|
473
|
-
rowHeight: 28
|
|
482
|
+
rowHeight: 28,
|
|
483
|
+
...dndProps
|
|
474
484
|
}, NodeRenderer));
|
|
475
485
|
};
|
|
476
486
|
// src/components/OrderedFileList.tsx
|
|
@@ -1136,8 +1146,10 @@ var GitStatusFileTree = ({
|
|
|
1136
1146
|
onNodeHover,
|
|
1137
1147
|
openByDefault,
|
|
1138
1148
|
initialHeight = 600,
|
|
1139
|
-
autoHeight = false
|
|
1149
|
+
autoHeight = false,
|
|
1150
|
+
enableDragAndDrop = false
|
|
1140
1151
|
}) => {
|
|
1152
|
+
const dndProps = getDndProps(enableDragAndDrop);
|
|
1141
1153
|
const gitStatusMap = useMemo5(() => {
|
|
1142
1154
|
const map = new Map;
|
|
1143
1155
|
gitStatusData.forEach((item) => {
|
|
@@ -1259,7 +1271,8 @@ var GitStatusFileTree = ({
|
|
|
1259
1271
|
...openByDefault !== undefined && { openByDefault },
|
|
1260
1272
|
width: "100%",
|
|
1261
1273
|
height: containerHeight,
|
|
1262
|
-
rowHeight: 28
|
|
1274
|
+
rowHeight: 28,
|
|
1275
|
+
...dndProps
|
|
1263
1276
|
}, NodeRenderer)));
|
|
1264
1277
|
};
|
|
1265
1278
|
// src/components/GitStatusFileTreeContainer.tsx
|
|
@@ -1988,8 +2001,10 @@ var TelemetryCoverageFileTree = ({
|
|
|
1988
2001
|
openByDefault = true,
|
|
1989
2002
|
initialHeight = 600,
|
|
1990
2003
|
autoHeight = false,
|
|
1991
|
-
testFilePatterns = DEFAULT_TEST_PATTERNS
|
|
2004
|
+
testFilePatterns = DEFAULT_TEST_PATTERNS,
|
|
2005
|
+
enableDragAndDrop = false
|
|
1992
2006
|
}) => {
|
|
2007
|
+
const dndProps = getDndProps(enableDragAndDrop);
|
|
1993
2008
|
const coverageMap = useMemo9(() => {
|
|
1994
2009
|
const map = new Map;
|
|
1995
2010
|
coverageData.forEach((item) => {
|
|
@@ -2124,7 +2139,8 @@ var TelemetryCoverageFileTree = ({
|
|
|
2124
2139
|
openByDefault,
|
|
2125
2140
|
width: "100%",
|
|
2126
2141
|
height: containerHeight,
|
|
2127
|
-
rowHeight: 28
|
|
2142
|
+
rowHeight: 28,
|
|
2143
|
+
...dndProps
|
|
2128
2144
|
}, NodeRenderer)));
|
|
2129
2145
|
};
|
|
2130
2146
|
var calculateTelemetryCoverageStats = (coverageData) => {
|
|
@@ -2323,6 +2339,7 @@ export {
|
|
|
2323
2339
|
useContainerHeight,
|
|
2324
2340
|
updateTreePaths,
|
|
2325
2341
|
parseUnifiedPath,
|
|
2342
|
+
getDndProps,
|
|
2326
2343
|
filterFileTreeByPaths,
|
|
2327
2344
|
extractNameFromPath,
|
|
2328
2345
|
combineRepositoryTrees,
|
|
@@ -16,6 +16,7 @@ export interface DynamicFileTreeProps {
|
|
|
16
16
|
onContextMenu?: (event: React.MouseEvent, nodePath: string, isFolder: boolean) => void;
|
|
17
17
|
initialHeight?: number;
|
|
18
18
|
autoHeight?: boolean;
|
|
19
|
+
enableDragAndDrop?: boolean;
|
|
19
20
|
}
|
|
20
21
|
export declare const DynamicFileTree: React.FC<DynamicFileTreeProps>;
|
|
21
22
|
//# sourceMappingURL=DynamicFileTree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/DynamicFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DynamicFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/DynamicFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAkB,MAAM,OAAO,CAAC;AAiBvC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAqGD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAmH1D,CAAC"}
|
|
@@ -26,6 +26,7 @@ export interface GitStatusFileTreeProps {
|
|
|
26
26
|
openByDefault?: boolean;
|
|
27
27
|
initialHeight?: number;
|
|
28
28
|
autoHeight?: boolean;
|
|
29
|
+
enableDragAndDrop?: boolean;
|
|
29
30
|
}
|
|
30
31
|
export declare const GitStatusFileTree: React.FC<GitStatusFileTreeProps>;
|
|
31
32
|
//# sourceMappingURL=GitStatusFileTree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitStatusFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/GitStatusFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAS9E,OAAO,KAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"GitStatusFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/GitStatusFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAS9E,OAAO,KAAkB,MAAM,OAAO,CAAC;AASvC,MAAM,MAAM,SAAS,GACjB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAGT,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;CACnB;AAmBD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA0JD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAmM9D,CAAC"}
|
|
@@ -45,6 +45,8 @@ export interface TelemetryCoverageFileTreeProps {
|
|
|
45
45
|
autoHeight?: boolean;
|
|
46
46
|
/** Test file patterns (default: common test patterns) */
|
|
47
47
|
testFilePatterns?: RegExp[];
|
|
48
|
+
/** Enable drag-and-drop (default: false). Requires DndProvider at app root to avoid conflicts. */
|
|
49
|
+
enableDragAndDrop?: boolean;
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
50
52
|
* TelemetryCoverageFileTree Component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelemetryCoverageFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/TelemetryCoverageFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAO9E,OAAO,KAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TelemetryCoverageFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/TelemetryCoverageFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAO9E,OAAO,KAAkB,MAAM,OAAO,CAAC;AAQvC;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,MAAM,EAAE,uBAAuB,CAAC;IAChC,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAoBD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,kGAAkG;IAClG,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA6KD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,8BAA8B,CAiN9E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAAI,cAAc,qBAAqB,EAAE;;;;;;;;CAgBpF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility to check drag-and-drop availability.
|
|
3
|
+
*
|
|
4
|
+
* To prevent "Cannot have two HTML5 backends at the same time" errors when
|
|
5
|
+
* multiple file tree instances are rendered (e.g., from different panel packages),
|
|
6
|
+
* we disable drag-and-drop by default.
|
|
7
|
+
*
|
|
8
|
+
* If the parent application provides a DndProvider at the root level and passes
|
|
9
|
+
* `enableDragAndDrop={true}` to the tree components, drag-and-drop will be enabled
|
|
10
|
+
* and all tree instances will share the same DnD backend.
|
|
11
|
+
*
|
|
12
|
+
* @param enableDragAndDrop - Whether drag-and-drop should be enabled (default: false)
|
|
13
|
+
* @returns Object with `disableDrag` and `disableDrop` props for react-arborist Tree
|
|
14
|
+
*/
|
|
15
|
+
export declare const getDndProps: (enableDragAndDrop?: boolean) => {
|
|
16
|
+
disableDrag: boolean;
|
|
17
|
+
disableDrop: boolean;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=useDndManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDndManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDndManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,GAAI,2BAAyB,KAAG;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAOnG,CAAC"}
|
package/package.json
CHANGED