react-native-tree-multi-select 3.0.0-beta.2 → 3.0.0-beta.3
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 +1 -1
- package/lib/module/components/NodeList.js +7 -0
- package/lib/module/components/NodeList.js.map +1 -1
- package/lib/module/helpers/toggleCheckbox.helper.js +1 -1
- package/lib/module/hooks/useDragDrop.js +27 -15
- package/lib/module/hooks/useDragDrop.js.map +1 -1
- package/lib/typescript/src/hooks/useDragDrop.d.ts.map +1 -1
- package/lib/typescript/src/types/dragDrop.types.d.ts +9 -0
- package/lib/typescript/src/types/dragDrop.types.d.ts.map +1 -1
- package/lib/typescript/src/types/treeView.types.d.ts +90 -4
- package/lib/typescript/src/types/treeView.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/NodeList.tsx +8 -0
- package/src/helpers/toggleCheckbox.helper.ts +1 -1
- package/src/hooks/useDragDrop.ts +31 -17
- package/src/types/dragDrop.types.ts +9 -0
- package/src/types/treeView.types.ts +90 -7
package/README.md
CHANGED
|
@@ -130,7 +130,7 @@ export function DragDropExample(){
|
|
|
130
130
|
const treeViewRef = React.useRef<TreeViewRef | null>(null);
|
|
131
131
|
|
|
132
132
|
const handleDragEnd = (event: DragEndEvent) => {
|
|
133
|
-
// event.newTreeData contains the reordered tree
|
|
133
|
+
// event.newTreeData contains the reordered tree - just set it
|
|
134
134
|
setData(event.newTreeData);
|
|
135
135
|
};
|
|
136
136
|
|
|
@@ -239,10 +239,17 @@ function _Node(props) {
|
|
|
239
239
|
// Track when this node was dragged so we can swallow the onPress/onCheck
|
|
240
240
|
// that fires when the user lifts their finger after a long-press-initiated drag.
|
|
241
241
|
// The flag is set during render (synchronous) and cleared on the next touch start.
|
|
242
|
+
// It is also cleared via effect when dragging ends, to prevent stale `true`
|
|
243
|
+
// values surviving FlashList recycling (where refs persist across items).
|
|
242
244
|
const wasDraggedRef = React.useRef(false);
|
|
243
245
|
if (isDraggingGlobal && isBeingDragged) {
|
|
244
246
|
wasDraggedRef.current = true;
|
|
245
247
|
}
|
|
248
|
+
React.useEffect(() => {
|
|
249
|
+
if (!isDraggingGlobal) {
|
|
250
|
+
wasDraggedRef.current = false;
|
|
251
|
+
}
|
|
252
|
+
}, [isDraggingGlobal]);
|
|
246
253
|
const _onToggleExpand = React.useCallback(() => {
|
|
247
254
|
if (wasDraggedRef.current) return;
|
|
248
255
|
handleToggleExpand(storeId, node.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","DragOverlay","defaultIndentationMultiplier","useShallow","typedMemo","ScrollToNodeHandler","useDragDrop","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","NodeList","_NodeList","props","storeId","scrollToNodeHandlerRef","initialScrollNodeID","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","dragEnabled","onDragEnd","longPressDuration","autoScrollThreshold","autoScrollSpeed","dragOverlayOffset","autoExpandDelay","dragDropCustomizations","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","state","flashListRef","useRef","containerRef","internalDataRef","measuredItemHeightRef","handleItemLayout","useCallback","height","current","initialScrollIndex","setInitialScrollIndex","useState","filteredTree","useMemo","trim","toLowerCase","flattenedFilteredNodes","useEffect","updatedInnerMostChildrenIds","effectiveIndentationMultiplier","panResponder","overlayY","overlayX","isDragging","draggedNode","effectiveDropLevel","handleNodeTouchStart","handleNodeTouchEnd","cancelLongPressTimer","scrollOffsetRef","flattenedNodes","handleScroll","event","nativeEvent","contentOffset","y","onScroll","nodeRenderer","item","index","Node","node","level","nodeIndex","onNodeTouchStart","undefined","onNodeTouchEnd","onItemLayout","_userOnScroll","restFlashListProps","flashListElement","ref","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","scrollEnabled","data","renderItem","children","style","styles","dragContainer","panHandlers","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","isDraggingGlobal","isExpanded","value","isBeingDragged","isDragInvalid","isDropTarget","nodeDropPosition","nodeDropLevel","has","id","checked","indeterminate","draggedNodeId","invalidDragTargetIds","dropTargetNodeId","dropPosition","dropLevel","wasDraggedRef","_onToggleExpand","_onCheck","handleTouchStart","e","pageY","locationY","handleTouchEnd","dragOpacity","draggedNodeOpacity","nodeOpacity","handleLayout","layout","touchHandlers","onTouchStart","onTouchEnd","onTouchCancel","CustomDropIndicator","CustomDropIndicatorComponent","indicatorLevel","dropIndicator","position","NodeDropIndicator","styleProps","dropIndicatorStyleProps","testID","onLayout","nodeCheckboxAndArrowRow","paddingStart","opacity","nodeOverflowVisible","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","isDragTarget","isDraggedNode","lineColor","lineThickness","circleSize","highlightColor","highlightBorderColor","leftOffset","pointerEvents","dropHighlight","left","backgroundColor","borderColor","safeLeftOffset","Math","max","dropLineContainer","dropLineTop","dropLineBottom","width","borderRadius","marginLeft","dropLine","create","padding","flex","flexDirection","alignItems","minWidth","top","bottom","right","borderWidth","zIndex","overflow"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","DragOverlay","defaultIndentationMultiplier","useShallow","typedMemo","ScrollToNodeHandler","useDragDrop","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","NodeList","_NodeList","props","storeId","scrollToNodeHandlerRef","initialScrollNodeID","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","dragEnabled","onDragEnd","longPressDuration","autoScrollThreshold","autoScrollSpeed","dragOverlayOffset","autoExpandDelay","dragDropCustomizations","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","state","flashListRef","useRef","containerRef","internalDataRef","measuredItemHeightRef","handleItemLayout","useCallback","height","current","initialScrollIndex","setInitialScrollIndex","useState","filteredTree","useMemo","trim","toLowerCase","flattenedFilteredNodes","useEffect","updatedInnerMostChildrenIds","effectiveIndentationMultiplier","panResponder","overlayY","overlayX","isDragging","draggedNode","effectiveDropLevel","handleNodeTouchStart","handleNodeTouchEnd","cancelLongPressTimer","scrollOffsetRef","flattenedNodes","handleScroll","event","nativeEvent","contentOffset","y","onScroll","nodeRenderer","item","index","Node","node","level","nodeIndex","onNodeTouchStart","undefined","onNodeTouchEnd","onItemLayout","_userOnScroll","restFlashListProps","flashListElement","ref","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","scrollEnabled","data","renderItem","children","style","styles","dragContainer","panHandlers","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","isDraggingGlobal","isExpanded","value","isBeingDragged","isDragInvalid","isDropTarget","nodeDropPosition","nodeDropLevel","has","id","checked","indeterminate","draggedNodeId","invalidDragTargetIds","dropTargetNodeId","dropPosition","dropLevel","wasDraggedRef","_onToggleExpand","_onCheck","handleTouchStart","e","pageY","locationY","handleTouchEnd","dragOpacity","draggedNodeOpacity","nodeOpacity","handleLayout","layout","touchHandlers","onTouchStart","onTouchEnd","onTouchCancel","CustomDropIndicator","CustomDropIndicatorComponent","indicatorLevel","dropIndicator","position","NodeDropIndicator","styleProps","dropIndicatorStyleProps","testID","onLayout","nodeCheckboxAndArrowRow","paddingStart","opacity","nodeOverflowVisible","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","isDragTarget","isDraggedNode","lineColor","lineThickness","circleSize","highlightColor","highlightBorderColor","leftOffset","pointerEvents","dropHighlight","left","backgroundColor","borderColor","safeLeftOffset","Math","max","dropLineContainer","dropLineTop","dropLineBottom","width","borderRadius","marginLeft","dropLine","create","padding","flex","flexDirection","alignItems","minWidth","top","bottom","right","borderWidth","zIndex","overflow"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACIC,IAAI,EACJC,UAAU,EACVC,gBAAgB,QAGb,cAAc;AACrB,SAASC,SAAS,QAAQ,qBAAqB;AAW/C,SAASC,gBAAgB,QAAQ,4BAAyB;AAC1D,SACIC,mBAAmB,EACnBC,oBAAoB,EACpBC,6BAA6B,EAC7BC,kBAAkB,EAClBC,gBAAgB,QACb,qBAAY;AACnB,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,WAAW,QAAQ,kBAAe;AAE3C,SAASC,4BAA4B,QAAQ,oCAAiC;AAC9E,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,SAAS,QAAQ,uBAAoB;AAC9C,SAASC,mBAAmB,QAAQ,oCAAiC;AACrE,SAASC,WAAW,QAAQ,yBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEnD,MAAMC,QAAQ,GAAGT,SAAS,CAACU,SAAS,CAAC;AACrC,eAAeD,QAAQ;AAEvB,SAASC,SAASA,CAAKC,KAAwB,EAAE;EAC7C,MAAM;IACFC,OAAO;IAEPC,sBAAsB;IACtBC,mBAAmB;IAEnBC,kBAAkB;IAClBC,sBAAsB;IACtBC,qBAAqB;IAErBC,iBAAiB;IACjBC,2BAA2B;IAC3BC,gCAAgC;IAChCC,sBAAsB;IAEtBC,WAAW;IACXC,SAAS;IACTC,iBAAiB,GAAG,GAAG;IACvBC,mBAAmB,GAAG,EAAE;IACxBC,eAAe,GAAG,GAAG;IACrBC,iBAAiB,GAAG,CAAC,CAAC;IACtBC,eAAe,GAAG,GAAG;IACrBC;EACJ,CAAC,GAAGlB,KAAK;EAET,MAAM;IACFmB,QAAQ;IACRC,mBAAmB;IACnBC,0BAA0B;IAC1BC,UAAU;IACVC;EACJ,CAAC,GAAG7C,gBAAgB,CAAKuB,OAAO,CAAC,CAACb,UAAU,CACxCoC,KAAK,KAAK;IACNL,QAAQ,EAAEK,KAAK,CAACL,QAAQ;IACxBC,mBAAmB,EAAEI,KAAK,CAACJ,mBAAmB;IAC9CC,0BAA0B,EAAEG,KAAK,CAACH,0BAA0B;IAC5DC,UAAU,EAAEE,KAAK,CAACF,UAAU;IAC5BC,UAAU,EAAEC,KAAK,CAACD;EACtB,CAAC,CACL,CAAC,CAAC;EAEF,MAAME,YAAY,GAAGpD,KAAK,CAACqD,MAAM,CAA8C,IAAI,CAAC;EACpF,MAAMC,YAAY,GAAGtD,KAAK,CAACqD,MAAM,CAAO,IAAI,CAAC;EAC7C,MAAME,eAAe,GAAGvD,KAAK,CAACqD,MAAM,CAAwB,IAAI,CAAC;EACjE,MAAMG,qBAAqB,GAAGxD,KAAK,CAACqD,MAAM,CAAC,CAAC,CAAC;EAE7C,MAAMI,gBAAgB,GAAGzD,KAAK,CAAC0D,WAAW,CAAEC,MAAc,IAAK;IAC3D,IAAIH,qBAAqB,CAACI,OAAO,KAAK,CAAC,IAAID,MAAM,GAAG,CAAC,EAAE;MACnDH,qBAAqB,CAACI,OAAO,GAAGD,MAAM;IAC1C;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM,CAACE,kBAAkB,EAAEC,qBAAqB,CAAC,GAAG9D,KAAK,CAAC+D,QAAQ,CAAS,CAAC,CAAC,CAAC;;EAE9E;EACA,MAAMC,YAAY,GAAGhE,KAAK,CAACiE,OAAO,CAAC,MAAM3D,mBAAmB,CACxDyC,mBAAmB,EACnBG,UAAU,CAACgB,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,EAC/BlB,UACJ,CAAC,EAAE,CAACF,mBAAmB,EAAEG,UAAU,EAAED,UAAU,CAAC,CAAC;;EAEjD;EACA,MAAMmB,sBAAsB,GAAGpE,KAAK,CAACiE,OAAO,CAAC,MAAM1D,oBAAoB,CACnEyD,YAAY,EACZlB,QACJ,CAAC,EAAE,CAACkB,YAAY,EAAElB,QAAQ,CAAC,CAAC;;EAE5B;EACA9C,KAAK,CAACqE,SAAS,CAAC,MAAM;IAClB,MAAMC,2BAA2B,GAAG9D,6BAA6B,CAC7DwD,YACJ,CAAC;IACDhB,0BAA0B,CAACsB,2BAA2B,CAAC;EAC3D,CAAC,EAAE,CAACN,YAAY,EAAEhB,0BAA0B,CAAC,CAAC;EAE9C,MAAMuB,8BAA8B,GAAGtC,qBAAqB,IAAInB,4BAA4B;;EAE5F;EACA,MAAM;IACF0D,YAAY;IACZC,QAAQ;IACRC,QAAQ;IACRC,UAAU;IACVC,WAAW;IACXC,kBAAkB;IAClBC,oBAAoB;IACpBC,kBAAkB;IAClBC,oBAAoB;IACpBC;EACJ,CAAC,GAAG/D,WAAW,CAAK;IAChBU,OAAO;IACPsD,cAAc,EAAEd,sBAAsB;IACtChB,YAAY;IACZE,YAAY;IACZhB,WAAW,EAAEA,WAAW,IAAI,KAAK;IACjCC,SAAS;IACTC,iBAAiB;IACjBC,mBAAmB;IACnBC,eAAe;IACfa,eAAe;IACfC,qBAAqB;IACrBb,iBAAiB;IACjBC,eAAe;IACfX,qBAAqB,EAAEsC;EAC3B,CAAC,CAAC;;EAEF;EACA,MAAMY,YAAY,GAAGnF,KAAK,CAAC0D,WAAW,CAClC0B,KAA8C,IAC7C;IACDH,eAAe,CAACrB,OAAO,GAAGwB,KAAK,CAACC,WAAW,CAACC,aAAa,CAACC,CAAC;IAC3D;IACAP,oBAAoB,CAAC,CAAC;IACtB;IACAjD,kBAAkB,EAAEyD,QAAQ,GAAGJ,KAAY,CAAC;EAChD,CAAC,EAAE,CAACH,eAAe,EAAED,oBAAoB,EAAEjD,kBAAkB,CAAC,CAAC;EAE/D,MAAM0D,YAAY,GAAGzF,KAAK,CAAC0D,WAAW,CAAC,CACnC;IAAEgC,IAAI;IAAEC;EAA2D,CAAC,KACnE;IACD,oBACIvE,IAAA,CAACwE,IAAI;MACDhE,OAAO,EAAEA,OAAQ;MAEjBiE,IAAI,EAAEH,IAAK;MACXI,KAAK,EAAEJ,IAAI,CAACI,KAAK,IAAI,CAAE;MAEvB9D,sBAAsB,EAAEA,sBAAuB;MAC/CC,qBAAqB,EAAEA,qBAAsB;MAE7CC,iBAAiB,EAAEA,iBAAkB;MACrCC,2BAA2B,EAAEA,2BAA4B;MACzDC,gCAAgC,EAAEA,gCAAiC;MACnEC,sBAAsB,EAAEA,sBAAuB;MAE/C0D,SAAS,EAAEJ,KAAM;MACjBrD,WAAW,EAAEA,WAAY;MACzBqC,UAAU,EAAEA,UAAW;MACvBqB,gBAAgB,EAAE1D,WAAW,GAAGwC,oBAAoB,GAAGmB,SAAU;MACjEC,cAAc,EAAE5D,WAAW,GAAGyC,kBAAkB,GAAGkB,SAAU;MAC7DE,YAAY,EAAE7D,WAAW,GAAGmB,gBAAgB,GAAGwC,SAAU;MACzDpD,sBAAsB,EAAEA;IAAuB,CAClD,CAAC;EAEV,CAAC,EAAE,CACCjB,OAAO,EACPM,iBAAiB,EACjBC,2BAA2B,EAC3BC,gCAAgC,EAChCC,sBAAsB,EACtBL,sBAAsB,EACtBC,qBAAqB,EACrBK,WAAW,EACXqC,UAAU,EACVG,oBAAoB,EACpBC,kBAAkB,EAClBlC,sBAAsB,EACtBY,gBAAgB,CACnB,CAAC;;EAEF;EACA;EACA,MAAM;IAAE+B,QAAQ,EAAEY,aAAa;IAAE,GAAGC;EAAmB,CAAC,GAAGtE,kBAAkB,IAAI,CAAC,CAAC;EAEnF,MAAMuE,gBAAgB,gBAClBlF,IAAA,CAAChB,SAAS;IACNmG,GAAG,EAAEnD,YAAa;IAClBoD,iBAAiB,EAAE,EAAG;IACtB3C,kBAAkB,EAAEA,kBAAmB;IACvC4C,qBAAqB,EAAE,IAAK;IAC5BC,yBAAyB,EAAC,SAAS;IACnCC,YAAY,EAAE,EAAG;IACjBC,mBAAmB,eAAExF,IAAA,CAACyF,gBAAgB,IAAE,CAAE;IAC1CC,mBAAmB,eAAE1F,IAAA,CAACyF,gBAAgB,IAAE,CAAE;IAAA,GACtCR,kBAAkB;IACtBb,QAAQ,EAAEL,YAAa;IACvB4B,aAAa,EAAEpC,UAAU,GAAG,KAAK,GAAI0B,kBAAkB,EAAEU,aAAa,IAAI,IAAM;IAChFC,IAAI,EAAE5C,sBAAuB;IAC7B6C,UAAU,EAAExB;EAAa,CAC5B,CACJ;EAED,oBACInE,KAAA,CAAAE,SAAA;IAAA0F,QAAA,gBACI9F,IAAA,CAACH,mBAAmB;MAChBsF,GAAG,EAAE1E,sBAAuB;MAC5BD,OAAO,EAAEA,OAAQ;MACjBwB,YAAY,EAAEA,YAAa;MAC3BgB,sBAAsB,EAAEA,sBAAuB;MAC/CN,qBAAqB,EAAEA,qBAAsB;MAC7ChC,mBAAmB,EAAEA;IAAoB,CAAE,CAAC,EAE/CQ,WAAW,gBACRhB,KAAA,CAACrB,IAAI;MACDsG,GAAG,EAAEjD,YAAa;MAClB6D,KAAK,EAAEC,MAAM,CAACC,aAAc;MAAA,GACxB7C,YAAY,CAAC8C,WAAW;MAAAJ,QAAA,GAE3BZ,gBAAgB,EAChB3B,UAAU,IAAIC,WAAW,iBACtBxD,IAAA,CAACP,WAAW;QACR4D,QAAQ,EAAEA,QAAS;QACnBC,QAAQ,EAAEA,QAAS;QACnBmB,IAAI,EAAEjB,WAAY;QAClBkB,KAAK,EAAEjB,kBAAmB;QAC1B5C,qBAAqB,EAAEsC,8BAA+B;QACtDrC,iBAAiB,EAAEA,iBAAkB;QACrCC,2BAA2B,EAAEA,2BAA4B;QACzDE,sBAAsB,EAAEA,sBAAuB;QAC/CL,sBAAsB,EAAEA,sBAAuB;QAC/Ca,sBAAsB,EAAEA;MAAuB,CAClD,CACJ;IAAA,CACC,CAAC,GAEPyD,gBACH;EAAA,CACH,CAAC;AAEX;AAAC;AAED,SAASO,gBAAgBA,CAAA,EAAG;EACxB,oBACIzF,IAAA,CAACnB,IAAI;IAACkH,KAAK,EAAEC,MAAM,CAACG;EAAoB,CAAE,CAAC;AAEnD;AAEA,SAASC,QAAQA,CACbC,SAAkB,EAClBC,eAAwB,EACP;EACjB,IAAIA,eAAe,EAAE;IACjB,OAAO,eAAe;EAC1B,CAAC,MAAM,IAAID,SAAS,EAAE;IAClB,OAAO,IAAI;EACf,CAAC,MAAM;IACH,OAAO,KAAK;EAChB;AACJ;AAEA,MAAM7B,IAAI,GAAG5E,SAAS,CAAC2G,KAAK,CAAC;AAC7B,SAASA,KAAKA,CAAKhG,KAAoB,EAAE;EACrC,MAAM;IACFC,OAAO;IAEPiE,IAAI;IACJC,KAAK;IAEL9D,sBAAsB;IACtBC,qBAAqB,GAAGnB,4BAA4B;IAEpDqB,2BAA2B,GAAGvB,wBAAwB;IACtDsB,iBAAiB,GAAGvB,YAAY;IAChCyB,gCAAgC,GAAGjC,gBAAgB;IACnDkC,sBAAsB;IAEtB0D,SAAS,GAAG,CAAC;IACbzD,WAAW;IACXqC,UAAU,EAAEiD,gBAAgB;IAC5B5B,gBAAgB;IAChBE,cAAc;IACdC,YAAY;IACZtD;EACJ,CAAC,GAAGlB,KAAK;EAET,MAAM;IACFkG,UAAU;IACVC,KAAK;IACLC,cAAc;IACdC,aAAa;IACbC,YAAY;IACZC,gBAAgB;IAChBC;EACJ,CAAC,GAAG9H,gBAAgB,CAAKuB,OAAO,CAAC,CAACb,UAAU,CACxCoC,KAAK,KAAK;IACN0E,UAAU,EAAE1E,KAAK,CAACL,QAAQ,CAACsF,GAAG,CAACvC,IAAI,CAACwC,EAAE,CAAC;IACvCP,KAAK,EAAEN,QAAQ,CACXrE,KAAK,CAACmF,OAAO,CAACF,GAAG,CAACvC,IAAI,CAACwC,EAAE,CAAC,EAC1BlF,KAAK,CAACoF,aAAa,CAACH,GAAG,CAACvC,IAAI,CAACwC,EAAE,CACnC,CAAC;IACDN,cAAc,EAAE5E,KAAK,CAACqF,aAAa,KAAK3C,IAAI,CAACwC,EAAE;IAC/CL,aAAa,EAAE7E,KAAK,CAACsF,oBAAoB,CAACL,GAAG,CAACvC,IAAI,CAACwC,EAAE,CAAC;IACtDJ,YAAY,EAAE9E,KAAK,CAACuF,gBAAgB,KAAK7C,IAAI,CAACwC,EAAE;IAChDH,gBAAgB,EAAE/E,KAAK,CAACuF,gBAAgB,KAAK7C,IAAI,CAACwC,EAAE,GAAGlF,KAAK,CAACwF,YAAY,GAAG,IAAI;IAChFR,aAAa,EAAEhF,KAAK,CAACuF,gBAAgB,KAAK7C,IAAI,CAACwC,EAAE,GAAGlF,KAAK,CAACyF,SAAS,GAAG;EAC1E,CAAC,CACL,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA,MAAMC,aAAa,GAAG7I,KAAK,CAACqD,MAAM,CAAC,KAAK,CAAC;EACzC,IAAIuE,gBAAgB,IAAIG,cAAc,EAAE;IACpCc,aAAa,CAACjF,OAAO,GAAG,IAAI;EAChC;EAEA5D,KAAK,CAACqE,SAAS,CAAC,MAAM;IAClB,IAAI,CAACuD,gBAAgB,EAAE;MACnBiB,aAAa,CAACjF,OAAO,GAAG,KAAK;IACjC;EACJ,CAAC,EAAE,CAACgE,gBAAgB,CAAC,CAAC;EAEtB,MAAMkB,eAAe,GAAG9I,KAAK,CAAC0D,WAAW,CAAC,MAAM;IAC5C,IAAImF,aAAa,CAACjF,OAAO,EAAE;IAC3BnD,kBAAkB,CAACmB,OAAO,EAAEiE,IAAI,CAACwC,EAAE,CAAC;EACxC,CAAC,EAAE,CAACzG,OAAO,EAAEiE,IAAI,CAACwC,EAAE,CAAC,CAAC;EAEtB,MAAMU,QAAQ,GAAG/I,KAAK,CAAC0D,WAAW,CAAC,MAAM;IACrC,IAAImF,aAAa,CAACjF,OAAO,EAAE;IAC3BlD,gBAAgB,CAACkB,OAAO,EAAE,CAACiE,IAAI,CAACwC,EAAE,CAAC,CAAC;EACxC,CAAC,EAAE,CAACzG,OAAO,EAAEiE,IAAI,CAACwC,EAAE,CAAC,CAAC;EAEtB,MAAMW,gBAAgB,GAAGhJ,KAAK,CAAC0D,WAAW,CAAEuF,CAAM,IAAK;IACnDJ,aAAa,CAACjF,OAAO,GAAG,KAAK;IAC7B,IAAI,CAACoC,gBAAgB,EAAE;IACvB,MAAM;MAAEkD,KAAK;MAAEC;IAAU,CAAC,GAAGF,CAAC,CAAC5D,WAAW;IAC1CW,gBAAgB,CAACH,IAAI,CAACwC,EAAE,EAAEa,KAAK,EAAEC,SAAS,EAAEpD,SAAS,CAAC;EAC1D,CAAC,EAAE,CAACF,IAAI,CAACwC,EAAE,EAAEtC,SAAS,EAAEC,gBAAgB,CAAC,CAAC;EAE1C,MAAMoD,cAAc,GAAGpJ,KAAK,CAAC0D,WAAW,CAAC,MAAM;IAC3CwC,cAAc,GAAG,CAAC;EACtB,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;;EAEpB;EACA,MAAMmD,WAAW,GAAGxG,sBAAsB,EAAEyG,kBAAkB,IAAI,GAAG;EACrE,MAAMC,WAAW,GAAI3B,gBAAgB,KAAKG,cAAc,IAAIC,aAAa,CAAC,GACpEqB,WAAW,GACX,GAAG;EAET,MAAMG,YAAY,GAAGxJ,KAAK,CAAC0D,WAAW,CAAEuF,CAAM,IAAK;IAC/C9C,YAAY,GAAG8C,CAAC,CAAC5D,WAAW,CAACoE,MAAM,CAAC9F,MAAM,CAAC;EAC/C,CAAC,EAAE,CAACwC,YAAY,CAAC,CAAC;EAElB,MAAMuD,aAAa,GAAGpH,WAAW,GAAG;IAChCqH,YAAY,EAAEX,gBAAgB;IAC9BY,UAAU,EAAER,cAAc;IAC1BS,aAAa,EAAET;EACnB,CAAC,GAAGnD,SAAS;EAEb,MAAM6D,mBAAmB,GAAGjH,sBAAsB,EAAEkH,4BAA4B;EAChF,MAAMC,cAAc,GAAG7B,aAAa,IAAIrC,KAAK;EAC7C,MAAMmE,aAAa,GAAGhC,YAAY,IAAIC,gBAAgB,GAClD4B,mBAAmB,gBACb1I,IAAA,CAAC0I,mBAAmB;IAACI,QAAQ,EAAEhC,gBAAiB;IAACpC,KAAK,EAAEkE,cAAe;IAAC/H,qBAAqB,EAAEA;EAAsB,CAAE,CAAC,gBACxHb,IAAA,CAAC+I,iBAAiB;IAACD,QAAQ,EAAEhC,gBAAiB;IAACpC,KAAK,EAAEkE,cAAe;IAAC/H,qBAAqB,EAAEA,qBAAsB;IAACmI,UAAU,EAAEvH,sBAAsB,EAAEwH;EAAwB,CAAE,CAAC,GACzL,IAAI;EAER,IAAI,CAAChI,sBAAsB,EAAE;IACzB,oBACIf,KAAA,CAACrB,IAAI;MACDqK,MAAM,EAAE,YAAYzE,IAAI,CAACwC,EAAE,EAAG;MAAA,GAC1BqB,aAAa;MACjBa,QAAQ,EAAEpE,YAAY,GAAGqD,YAAY,GAAGvD,SAAU;MAClDkB,KAAK,EAAE,CACHC,MAAM,CAACoD,uBAAuB,EAC9B;QAAEC,YAAY,EAAE3E,KAAK,GAAG7D;MAAsB,CAAC,EAC/C;QAAEyI,OAAO,EAAEnB;MAAY,CAAC,EACxBU,aAAa,GAAG7C,MAAM,CAACuD,mBAAmB,GAAG1E,SAAS,CACxD;MAAAiB,QAAA,GACD+C,aAAa,eACd7I,IAAA,CAACc,iBAAiB;QACd0I,IAAI,EAAE/E,IAAI,CAACgF,IAAK;QAChBC,aAAa,EAAE/B,QAAS;QACxBjB,KAAK,EAAEA,KAAM;QACbwC,MAAM,EAAE,GAAGzE,IAAI,CAACwC,EAAE,EAAG;QAAA,GACjBrG;MAAsB,CAAG,CAAC,EAEjC6D,IAAI,CAACqB,QAAQ,EAAE6D,MAAM,gBAClB3J,IAAA,CAACgB,gCAAgC;QAC7BkI,MAAM,EAAE,oBAAoBzE,IAAI,CAACwC,EAAE,EAAG;QACtClB,KAAK,EAAEC,MAAM,CAAC4D,4BAA6B;QAC3CC,OAAO,EAAEnC,eAAgB;QAAA5B,QAAA,eACzB9F,IAAA,CAACe,2BAA2B;UACxB0F,UAAU,EAAEA;QAAW,CAC1B;MAAC,CAC4B,CAAC,GACnC,IAAI;IAAA,CACN,CAAC;EAEf,CAAC,MACI;IACD,oBACIvG,KAAA,CAACrB,IAAI;MAAA,GACGyJ,aAAa;MACjBa,QAAQ,EAAEpE,YAAY,GAAGqD,YAAY,GAAGvD,SAAU;MAClDkB,KAAK,EAAE,CACH;QAAEuD,OAAO,EAAEnB;MAAY,CAAC,EACxBU,aAAa,GAAG7C,MAAM,CAACuD,mBAAmB,GAAG1E,SAAS,CACxD;MAAAiB,QAAA,GAED+C,aAAa,eACd7I,IAAA,CAACiB,sBAAsB;QACnBwD,IAAI,EAAEA,IAAK;QACXC,KAAK,EAAEA,KAAM;QACboF,YAAY,EAAEpD,KAAM;QACpBD,UAAU,EAAEA,UAAW;QACvBsD,OAAO,EAAEpC,QAAS;QAClBqC,QAAQ,EAAEtC,eAAgB;QAC1BuC,YAAY,EAAErD,aAAc;QAC5BrD,UAAU,EAAEiD,gBAAiB;QAC7B0D,aAAa,EAAEvD;MAAe,CACjC,CAAC;IAAA,CACA,CAAC;EAEf;AACJ;AAAC;AAED,SAASoC,iBAAiBA,CAAC;EAAED,QAAQ;EAAEpE,KAAK;EAAE7D,qBAAqB;EAAEmI;AAKrE,CAAC,EAAE;EACC,MAAMmB,SAAS,GAAGnB,UAAU,EAAEmB,SAAS,IAAI,SAAS;EACpD,MAAMC,aAAa,GAAGpB,UAAU,EAAEoB,aAAa,IAAI,CAAC;EACpD,MAAMC,UAAU,GAAGrB,UAAU,EAAEqB,UAAU,IAAI,EAAE;EAC/C,MAAMC,cAAc,GAAGtB,UAAU,EAAEsB,cAAc,IAAI,yBAAyB;EAC9E,MAAMC,oBAAoB,GAAGvB,UAAU,EAAEuB,oBAAoB,IAAI,wBAAwB;;EAEzF;EACA;EACA,MAAMC,UAAU,GAAG9F,KAAK,GAAG7D,qBAAqB;EAEhD,IAAIiI,QAAQ,KAAK,QAAQ,EAAE;IACvB,oBACI9I,IAAA,CAACnB,IAAI;MACD4L,aAAa,EAAC,MAAM;MACpB1E,KAAK,EAAE,CACHC,MAAM,CAAC0E,aAAa,EACpB;QACIC,IAAI,EAAEH,UAAU;QAChBI,eAAe,EAAEN,cAAc;QAC/BO,WAAW,EAAEN;MACjB,CAAC;IACH,CACL,CAAC;EAEV;;EAEA;EACA,MAAMO,cAAc,GAAGC,IAAI,CAACC,GAAG,CAACR,UAAU,EAAEH,UAAU,GAAG,CAAC,CAAC;EAE3D,oBACInK,KAAA,CAACrB,IAAI;IACD4L,aAAa,EAAC,MAAM;IACpB1E,KAAK,EAAE,CACHC,MAAM,CAACiF,iBAAiB,EACxB;MAAE1I,MAAM,EAAE6H,aAAa;MAAEO,IAAI,EAAEG;IAAe,CAAC,EAC/ChC,QAAQ,KAAK,OAAO,GAAG9C,MAAM,CAACkF,WAAW,GAAGlF,MAAM,CAACmF,cAAc,CACnE;IAAArF,QAAA,gBAEF9F,IAAA,CAACnB,IAAI;MAACkH,KAAK,EAAE;QACTqF,KAAK,EAAEf,UAAU;QACjB9H,MAAM,EAAE8H,UAAU;QAClBgB,YAAY,EAAEhB,UAAU,GAAG,CAAC;QAC5BO,eAAe,EAAET,SAAS;QAC1BmB,UAAU,EAAE,EAAEjB,UAAU,GAAG,CAAC;MAChC;IAAE,CAAE,CAAC,eACLrK,IAAA,CAACnB,IAAI;MAACkH,KAAK,EAAE,CACTC,MAAM,CAACuF,QAAQ,EACf;QACIhJ,MAAM,EAAE6H,aAAa;QACrBQ,eAAe,EAAET;MACrB,CAAC;IACH,CAAE,CAAC;EAAA,CACH,CAAC;AAEf;AAEA,MAAMnE,MAAM,GAAGlH,UAAU,CAAC0M,MAAM,CAAC;EAC7BrF,mBAAmB,EAAE;IACjBsF,OAAO,EAAE;EACb,CAAC;EACD7B,4BAA4B,EAAE;IAC1B8B,IAAI,EAAE;EACV,CAAC;EACDtC,uBAAuB,EAAE;IACrBsC,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,QAAQ,EAAE;EACd,CAAC;EACD5F,aAAa,EAAE;IACXyF,IAAI,EAAE;EACV,CAAC;EACD;EACAhB,aAAa,EAAE;IACX5B,QAAQ,EAAE,UAAU;IACpBgD,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE,CAAC;IACTpB,IAAI,EAAE,CAAC;IACPqB,KAAK,EAAE,CAAC;IACRpB,eAAe,EAAE,yBAAyB;IAC1CqB,WAAW,EAAE,CAAC;IACdpB,WAAW,EAAE,wBAAwB;IACrCQ,YAAY,EAAE,CAAC;IACfa,MAAM,EAAE;EACZ,CAAC;EACDjB,iBAAiB,EAAE;IACfnC,QAAQ,EAAE,UAAU;IACpB6B,IAAI,EAAE,CAAC;IACPqB,KAAK,EAAE,CAAC;IACRL,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBrJ,MAAM,EAAE,CAAC;IACT2J,MAAM,EAAE,EAAE;IACVC,QAAQ,EAAE;EACd,CAAC;EACDjB,WAAW,EAAE;IACTY,GAAG,EAAE;EACT,CAAC;EACDX,cAAc,EAAE;IACZY,MAAM,EAAE;EACZ,CAAC;EACDR,QAAQ,EAAE;IACNG,IAAI,EAAE,CAAC;IACPnJ,MAAM,EAAE,CAAC;IACTqI,eAAe,EAAE;EACrB,CAAC;EACDrB,mBAAmB,EAAE;IACjB4C,QAAQ,EAAE;EACd;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -210,7 +210,7 @@ export function recalculateCheckedStates(storeId) {
|
|
|
210
210
|
const tempIndeterminate = new Set(indeterminate);
|
|
211
211
|
|
|
212
212
|
// Collect parent nodes and clean up leaf nodes that shouldn't be indeterminate.
|
|
213
|
-
// A leaf node (no children) can never be indeterminate
|
|
213
|
+
// A leaf node (no children) can never be indeterminate - this can happen when
|
|
214
214
|
// all children of a formerly-indeterminate parent are dragged away.
|
|
215
215
|
const parentNodes = [];
|
|
216
216
|
for (const [id, node] of nodeMap) {
|
|
@@ -72,7 +72,7 @@ export function useDragDrop(params) {
|
|
|
72
72
|
const [dropTarget, setDropTarget] = useState(null);
|
|
73
73
|
const [effectiveDropLevel, setEffectiveDropLevel] = useState(0);
|
|
74
74
|
|
|
75
|
-
// Ref mirror of dropTarget
|
|
75
|
+
// Ref mirror of dropTarget - avoids nesting Zustand updates inside React state updaters
|
|
76
76
|
const dropTargetRef = useRef(null);
|
|
77
77
|
|
|
78
78
|
// --- Long press timer ---
|
|
@@ -296,7 +296,7 @@ export function useDragDrop(params) {
|
|
|
296
296
|
shallowLevel = nextLevel;
|
|
297
297
|
}
|
|
298
298
|
} else if (currentLevel > 0) {
|
|
299
|
-
// Last item in the list
|
|
299
|
+
// Last item in the list - treat as cliff to root level
|
|
300
300
|
isCliff = true;
|
|
301
301
|
shallowLevel = 0;
|
|
302
302
|
}
|
|
@@ -337,7 +337,7 @@ export function useDragDrop(params) {
|
|
|
337
337
|
const prevLevel = prevNode?.level ?? 0;
|
|
338
338
|
const currentLevel = targetNode.level ?? 0;
|
|
339
339
|
if (prevNode && prevLevel > currentLevel) {
|
|
340
|
-
// Level cliff above
|
|
340
|
+
// Level cliff above - same generous threshold
|
|
341
341
|
const threshold = (prevLevel + currentLevel) / 2 * indentationMultiplier + indentationMultiplier * 2;
|
|
342
342
|
if (fingerLocalX >= threshold) {
|
|
343
343
|
clampedIndex = clampedIndex - 1;
|
|
@@ -380,10 +380,10 @@ export function useDragDrop(params) {
|
|
|
380
380
|
const upperLevel = nodes[upperIdx]?.level ?? 0;
|
|
381
381
|
const lowerLevel = nodes[lowerIdx]?.level ?? 0;
|
|
382
382
|
if (upperLevel === lowerLevel) {
|
|
383
|
-
// Same level
|
|
383
|
+
// Same level - pure visual hysteresis, keep previous
|
|
384
384
|
return;
|
|
385
385
|
}
|
|
386
|
-
// Level cliff
|
|
386
|
+
// Level cliff - horizontal control already resolved this,
|
|
387
387
|
// let the result pass through.
|
|
388
388
|
}
|
|
389
389
|
}
|
|
@@ -405,7 +405,7 @@ export function useDragDrop(params) {
|
|
|
405
405
|
// --- Auto-expand: if hovering "inside" a collapsed expandable node ---
|
|
406
406
|
if (isValid && position === "inside" && targetNode.children?.length && !expanded.has(targetNode.id)) {
|
|
407
407
|
if (autoExpandTargetRef.current !== targetNode.id) {
|
|
408
|
-
// New hover target
|
|
408
|
+
// New hover target - start timer
|
|
409
409
|
cancelAutoExpandTimer();
|
|
410
410
|
autoExpandTargetRef.current = targetNode.id;
|
|
411
411
|
autoExpandTimerRef.current = setTimeout(() => {
|
|
@@ -416,7 +416,7 @@ export function useDragDrop(params) {
|
|
|
416
416
|
}, autoExpandDelay);
|
|
417
417
|
}
|
|
418
418
|
} else {
|
|
419
|
-
// Not hovering inside a collapsed expandable node
|
|
419
|
+
// Not hovering inside a collapsed expandable node - cancel timer
|
|
420
420
|
if (autoExpandTargetRef.current !== null) {
|
|
421
421
|
cancelAutoExpandTimer();
|
|
422
422
|
}
|
|
@@ -541,17 +541,29 @@ export function useDragDrop(params) {
|
|
|
541
541
|
newTreeData: newData
|
|
542
542
|
});
|
|
543
543
|
|
|
544
|
-
// Scroll to the dropped node after React processes the expansion
|
|
544
|
+
// Scroll to the dropped node after React processes the expansion,
|
|
545
|
+
// but only if it's outside the visible viewport. An animated
|
|
546
|
+
// scroll would consume the user's next touch (RN stops the
|
|
547
|
+
// animation on tap), so we skip when the node is already visible.
|
|
545
548
|
setTimeout(() => {
|
|
546
549
|
const nodes = flattenedNodesRef.current;
|
|
547
550
|
const idx = nodes.findIndex(n => n.id === droppedNodeId);
|
|
548
|
-
if (idx
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
551
|
+
if (idx < 0) return;
|
|
552
|
+
const itemH = itemHeightRef.current;
|
|
553
|
+
const scrollTop = scrollOffsetRef.current;
|
|
554
|
+
const containerH = containerHeightRef.current;
|
|
555
|
+
const estimatedTop = idx * itemH;
|
|
556
|
+
const estimatedBottom = estimatedTop + itemH;
|
|
557
|
+
|
|
558
|
+
// Already in view → no scroll needed
|
|
559
|
+
if (estimatedTop >= scrollTop && estimatedBottom <= scrollTop + containerH) {
|
|
560
|
+
return;
|
|
554
561
|
}
|
|
562
|
+
flashListRef.current?.scrollToIndex?.({
|
|
563
|
+
index: idx,
|
|
564
|
+
animated: true,
|
|
565
|
+
viewPosition: 0.5
|
|
566
|
+
});
|
|
555
567
|
}, 100);
|
|
556
568
|
}
|
|
557
569
|
|
|
@@ -636,7 +648,7 @@ export function useDragDrop(params) {
|
|
|
636
648
|
// Calculate drop target (horizontal position used at level cliffs)
|
|
637
649
|
calculateDropTarget(fingerPageY, evt.nativeEvent.pageX);
|
|
638
650
|
|
|
639
|
-
// Auto-scroll at edges
|
|
651
|
+
// Auto-scroll at edges - use delta-based position relative to container
|
|
640
652
|
const fingerInContainer = initialFingerContainerYRef.current + (fingerPageY - initialFingerPageYRef.current);
|
|
641
653
|
updateAutoScroll(fingerInContainer);
|
|
642
654
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","useState","Animated","PanResponder","getTreeViewStore","collapseNodes","expandNodes","handleToggleExpand","initializeNodeMaps","recalculateCheckedStates","moveTreeNode","useDragDrop","params","storeId","flattenedNodes","flashListRef","containerRef","dragEnabled","onDragEnd","longPressDuration","autoScrollThreshold","autoScrollSpeed","internalDataRef","measuredItemHeightRef","dragOverlayOffset","autoExpandDelay","indentationMultiplier","isDraggingRef","draggedNodeRef","draggedNodeIdRef","draggedNodeIndexRef","longPressTimerRef","containerPageXRef","containerPageYRef","containerHeightRef","grabOffsetYRef","scrollOffsetRef","headerOffsetRef","itemHeightRef","overlayY","Value","current","overlayX","prevEffectiveLevelRef","autoScrollRAFRef","autoScrollSpeedRef","initialFingerPageYRef","initialFingerContainerYRef","autoExpandTimerRef","autoExpandTargetRef","autoExpandedDuringDragRef","Set","panResponderActiveRef","prevDropTargetRef","flattenedNodesRef","onDragEndRef","isDragging","setIsDragging","draggedNode","setDraggedNode","dropTarget","setDropTarget","effectiveDropLevel","setEffectiveDropLevel","dropTargetRef","cancelLongPressTimer","clearTimeout","getDescendantIds","nodeId","store","nodeMap","getState","descendants","stack","length","currentId","pop","node","get","children","child","add","id","push","initiateDrag","pageY","locationY","nodeIndex","container","measureInWindow","x","y","_w","h","nodes","expanded","has","measured","estimatedSize","props","estimatedItemSize","fingerLocalY","iH","listHeaderHeight","updateDraggedNodeId","updateInvalidDragTargetIds","overlayLocalY","setValue","level","clear","startAutoScrollLoop","handleNodeTouchStart","setTimeout","loop","newOffset","Math","max","scrollToOffset","offset","animated","requestAnimationFrame","stopAutoScroll","cancelAnimationFrame","updateAutoScroll","fingerInContainer","threshold","maxSpeed","containerH","ratio","cancelAutoExpandTimer","calculateDropTarget","fingerPageY","fingerPageX","fingerContentY","adjustedContentY","rawIndex","floor","clampedIndex","min","targetNode","positionInItem","position","fingerLocalX","logicalTargetId","logicalPosition","visualDropLevel","currentLevel","isCliff","shallowLevel","nextNode","nextLevel","childToParentMap","ancestorId","walkLevel","parentId","undefined","prevNode","prevLevel","expandedSet","prev","sameGap","targetIndex","upperIdx","lowerIdx","upperLevel","lowerLevel","indicatorTop","invalidDragTargetIds","draggedNodeId","isValid","draggedLevel","effectiveLevel","spring","toValue","useNativeDriver","speed","bounciness","start","newTarget","targetNodeId","targetLevel","updateDropTarget","prevTarget","handleDragEnd","currentTarget","droppedNodeId","currentData","initialTreeViewData","newData","updateInitialTreeViewData","newTreeData","idx","findIndex","n","scrollToIndex","index","viewPosition","size","store3","ancestorIds","walkId","toCollapse","store2","handleNodeTouchEnd","panResponder","create","onStartShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderGrant","onPanResponderMove","evt","nativeEvent","pageX","onPanResponderRelease","onPanResponderTerminate"],"sourceRoot":"../../../src","sources":["hooks/useDragDrop.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAChE,SACIC,QAAQ,EACRC,YAAY,QAET,cAAc;AAKrB,SAASC,gBAAgB,QAAQ,4BAAyB;AAC1D,SAASC,aAAa,EAAEC,WAAW,EAAEC,kBAAkB,EAAEC,kBAAkB,EAAEC,wBAAwB,QAAQ,qBAAY;AACzH,SAASC,YAAY,QAAQ,mCAAgC;AAwC7D,OAAO,SAASC,WAAWA,CACvBC,MAA6B,EACR;EACrB,MAAM;IACFC,OAAO;IACPC,cAAc;IACdC,YAAY;IACZC,YAAY;IACZC,WAAW;IACXC,SAAS;IACTC,iBAAiB;IACjBC,mBAAmB;IACnBC,eAAe;IACfC,eAAe;IACfC,qBAAqB;IACrBC,iBAAiB;IACjBC,eAAe;IACfC;EACJ,CAAC,GAAGd,MAAM;;EAEV;EACA,MAAMe,aAAa,GAAG3B,MAAM,CAAC,KAAK,CAAC;EACnC,MAAM4B,cAAc,GAAG5B,MAAM,CAAmC,IAAI,CAAC;EACrE,MAAM6B,gBAAgB,GAAG7B,MAAM,CAAY,IAAI,CAAC;EAChD,MAAM8B,mBAAmB,GAAG9B,MAAM,CAAC,CAAC,CAAC,CAAC;EAEtC,MAAM+B,iBAAiB,GAAG/B,MAAM,CAAuC,IAAI,CAAC;EAE5E,MAAMgC,iBAAiB,GAAGhC,MAAM,CAAC,CAAC,CAAC;EACnC,MAAMiC,iBAAiB,GAAGjC,MAAM,CAAC,CAAC,CAAC;EACnC,MAAMkC,kBAAkB,GAAGlC,MAAM,CAAC,CAAC,CAAC;EACpC,MAAMmC,cAAc,GAAGnC,MAAM,CAAC,CAAC,CAAC;EAChC,MAAMoC,eAAe,GAAGpC,MAAM,CAAC,CAAC,CAAC;EACjC,MAAMqC,eAAe,GAAGrC,MAAM,CAAC,CAAC,CAAC;EACjC,MAAMsC,aAAa,GAAGtC,MAAM,CAAC,EAAE,CAAC;EAEhC,MAAMuC,QAAQ,GAAGvC,MAAM,CAAC,IAAIE,QAAQ,CAACsC,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EACtD,MAAMC,QAAQ,GAAG1C,MAAM,CAAC,IAAIE,QAAQ,CAACsC,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EACtD,MAAME,qBAAqB,GAAG3C,MAAM,CAAgB,IAAI,CAAC;EAEzD,MAAM4C,gBAAgB,GAAG5C,MAAM,CAAgB,IAAI,CAAC;EACpD,MAAM6C,kBAAkB,GAAG7C,MAAM,CAAC,CAAC,CAAC;;EAEpC;EACA,MAAM8C,qBAAqB,GAAG9C,MAAM,CAAC,CAAC,CAAC;EACvC,MAAM+C,0BAA0B,GAAG/C,MAAM,CAAC,CAAC,CAAC;;EAE5C;EACA,MAAMgD,kBAAkB,GAAGhD,MAAM,CAAuC,IAAI,CAAC;EAC7E,MAAMiD,mBAAmB,GAAGjD,MAAM,CAAY,IAAI,CAAC;EACnD;EACA,MAAMkD,yBAAyB,GAAGlD,MAAM,CAAU,IAAImD,GAAG,CAAC,CAAC,CAAC;;EAE5D;EACA,MAAMC,qBAAqB,GAAGpD,MAAM,CAAC,KAAK,CAAC;;EAE3C;EACA,MAAMqD,iBAAiB,GAAGrD,MAAM,CAAyE,IAAI,CAAC;;EAE9G;EACA,MAAMsD,iBAAiB,GAAGtD,MAAM,CAACc,cAAc,CAAC;EAChDwC,iBAAiB,CAACb,OAAO,GAAG3B,cAAc;;EAE1C;EACA,MAAMyC,YAAY,GAAGvD,MAAM,CAACkB,SAAS,CAAC;EACtCqC,YAAY,CAACd,OAAO,GAAGvB,SAAS;;EAEhC;EACA,MAAM,CAACsC,UAAU,EAAEC,aAAa,CAAC,GAAGxD,QAAQ,CAAC,KAAK,CAAC;EACnD,MAAM,CAACyD,WAAW,EAAEC,cAAc,CAAC,GAAG1D,QAAQ,CAAmC,IAAI,CAAC;EACtF,MAAM,CAAC2D,UAAU,EAAEC,aAAa,CAAC,GAAG5D,QAAQ,CAAwB,IAAI,CAAC;EACzE,MAAM,CAAC6D,kBAAkB,EAAEC,qBAAqB,CAAC,GAAG9D,QAAQ,CAAC,CAAC,CAAC;;EAE/D;EACA,MAAM+D,aAAa,GAAGhE,MAAM,CAAwB,IAAI,CAAC;;EAEzD;EACA,MAAMiE,oBAAoB,GAAGnE,WAAW,CAAC,MAAM;IAC3C,IAAIiC,iBAAiB,CAACU,OAAO,EAAE;MAC3ByB,YAAY,CAACnC,iBAAiB,CAACU,OAAO,CAAC;MACvCV,iBAAiB,CAACU,OAAO,GAAG,IAAI;IACpC;EACJ,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAM0B,gBAAgB,GAAGrE,WAAW,CAC/BsE,MAAU,IAAc;IACrB,MAAMC,KAAK,GAAGjE,gBAAgB,CAAKS,OAAO,CAAC;IAC3C,MAAM;MAAEyD;IAAQ,CAAC,GAAGD,KAAK,CAACE,QAAQ,CAAC,CAAC;IACpC,MAAMC,WAAW,GAAG,IAAIrB,GAAG,CAAK,CAAC;IACjC,MAAMsB,KAAW,GAAG,CAACL,MAAM,CAAC;IAE5B,OAAOK,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;MACrB,MAAMC,SAAS,GAAGF,KAAK,CAACG,GAAG,CAAC,CAAE;MAC9B,MAAMC,IAAI,GAAGP,OAAO,CAACQ,GAAG,CAACH,SAAS,CAAC;MACnC,IAAIE,IAAI,EAAEE,QAAQ,EAAE;QAChB,KAAK,MAAMC,KAAK,IAAIH,IAAI,CAACE,QAAQ,EAAE;UAC/BP,WAAW,CAACS,GAAG,CAACD,KAAK,CAACE,EAAE,CAAC;UACzBT,KAAK,CAACU,IAAI,CAACH,KAAK,CAACE,EAAE,CAAC;QACxB;MACJ;IACJ;IACA,OAAOV,WAAW;EACtB,CAAC,EACD,CAAC3D,OAAO,CACZ,CAAC;;EAED;EACA,MAAMuE,YAAY,GAAGtF,WAAW,CAC5B,CAACsE,MAAU,EAAEiB,KAAa,EAAEC,SAAiB,EAAEC,SAAiB,KAAK;IACjE,IAAI,CAACtE,WAAW,EAAE;IAElB,MAAMuE,SAAS,GAAGxE,YAAY,CAACyB,OAAO;IACtC,IAAI,CAAC+C,SAAS,EAAE;IAEhBA,SAAS,CAACC,eAAe,CAAC,CAACC,CAAC,EAAEC,CAAC,EAAEC,EAAE,EAAEC,CAAC,KAAK;MACvC7D,iBAAiB,CAACS,OAAO,GAAGiD,CAAC;MAC7BzD,iBAAiB,CAACQ,OAAO,GAAGkD,CAAC;MAC7BzD,kBAAkB,CAACO,OAAO,GAAGoD,CAAC;;MAE9B;MACA,MAAMC,KAAK,GAAGxC,iBAAiB,CAACb,OAAO;MACvC,MAAMoC,IAAI,GAAGiB,KAAK,CAACP,SAAS,CAAC;MAC7B,IAAI,CAACV,IAAI,EAAE;;MAEX;MACA,MAAMR,KAAK,GAAGjE,gBAAgB,CAAKS,OAAO,CAAC;MAC3C,MAAM;QAAEkF;MAAS,CAAC,GAAG1B,KAAK,CAACE,QAAQ,CAAC,CAAC;MACrC,IAAIwB,QAAQ,CAACC,GAAG,CAAC5B,MAAM,CAAC,IAAIS,IAAI,CAACE,QAAQ,EAAEL,MAAM,EAAE;QAC/CnE,kBAAkB,CAACM,OAAO,EAAEuD,MAAM,CAAC;MACvC;;MAEA;MACAjC,cAAc,CAACM,OAAO,GAAG6C,SAAS;MAClC1D,cAAc,CAACa,OAAO,GAAGoC,IAAI;MAC7BhD,gBAAgB,CAACY,OAAO,GAAG2B,MAAM;MACjCtC,mBAAmB,CAACW,OAAO,GAAG8C,SAAS;;MAEvC;MACA,MAAMU,QAAQ,GAAG1E,qBAAqB,CAACkB,OAAO;MAC9C,MAAMyD,aAAa,GACdnF,YAAY,CAAC0B,OAAO,EAAU0D,KAAK,EAAEC,iBAAiB,IAAI,EAAE;MACjE9D,aAAa,CAACG,OAAO,GAAGwD,QAAQ,GAAG,CAAC,GAAGA,QAAQ,GAAGC,aAAa;;MAE/D;MACA;MACA;MACA;MACA,MAAMG,YAAY,GAAGhB,KAAK,GAAGpD,iBAAiB,CAACQ,OAAO;MACtDJ,eAAe,CAACI,OAAO,GACnB4D,YAAY,GACZjE,eAAe,CAACK,OAAO,GACvB6C,SAAS,GACTC,SAAS,GAAGjD,aAAa,CAACG,OAAO;;MAErC;MACA;MACA;MACA,MAAM6D,EAAE,GAAGhE,aAAa,CAACG,OAAO;MAChC,MAAM8D,gBAAgB,GAAG,EAAE,CAAC,CAAC;MAC7BzD,qBAAqB,CAACL,OAAO,GAAG4C,KAAK;MACrCtC,0BAA0B,CAACN,OAAO,GAC9B8D,gBAAgB,GAAGhB,SAAS,GAAGe,EAAE,GAAGlE,eAAe,CAACK,OAAO,GAAG6C,SAAS;;MAE3E;MACA,MAAMd,WAAW,GAAGL,gBAAgB,CAACC,MAAM,CAAC;MAC5CI,WAAW,CAACS,GAAG,CAACb,MAAM,CAAC;;MAEvB;MACAC,KAAK,CAACE,QAAQ,CAAC,CAAC,CAACiC,mBAAmB,CAACpC,MAAM,CAAC;MAC5CC,KAAK,CAACE,QAAQ,CAAC,CAAC,CAACkC,0BAA0B,CAACjC,WAAW,CAAC;;MAExD;MACA,MAAMkC,aAAa,GAAGL,YAAY,GAAGf,SAAS,GAAG9D,iBAAiB,GAAGc,aAAa,CAACG,OAAO;MAC1FF,QAAQ,CAACoE,QAAQ,CAACD,aAAa,CAAC;;MAEhC;MACAhE,QAAQ,CAACiE,QAAQ,CAAC,CAAC,CAAC;MACpBhE,qBAAqB,CAACF,OAAO,GAAGoC,IAAI,CAAC+B,KAAK,IAAI,CAAC;;MAE/C;MACAjF,aAAa,CAACc,OAAO,GAAG,IAAI;MAC5BS,yBAAyB,CAACT,OAAO,CAACoE,KAAK,CAAC,CAAC;MACzCpD,aAAa,CAAC,IAAI,CAAC;MACnBE,cAAc,CAACkB,IAAI,CAAC;MACpBd,qBAAqB,CAACc,IAAI,CAAC+B,KAAK,IAAI,CAAC,CAAC;MACtC/C,aAAa,CAAC,IAAI,CAAC;;MAEnB;MACAiD,mBAAmB,CAAC,CAAC;IACzB,CAAC,CAAC;EACN,CAAC;EACD;EACA,CACI7F,WAAW,EACXJ,OAAO,EACPG,YAAY,EACZD,YAAY,EACZoD,gBAAgB,EAChB5B,QAAQ,CAEhB,CAAC;;EAED;EACA,MAAMwE,oBAAoB,GAAGjH,WAAW,CACpC,CAACsE,MAAU,EAAEiB,KAAa,EAAEC,SAAiB,EAAEC,SAAiB,KAAK;IACjE,IAAI,CAACtE,WAAW,EAAE;;IAElB;IACAgD,oBAAoB,CAAC,CAAC;;IAEtB;IACAlC,iBAAiB,CAACU,OAAO,GAAGuE,UAAU,CAAC,MAAM;MACzCjF,iBAAiB,CAACU,OAAO,GAAG,IAAI;MAChC2C,YAAY,CAAChB,MAAM,EAAEiB,KAAK,EAAEC,SAAS,EAAEC,SAAS,CAAC;IACrD,CAAC,EAAEpE,iBAAiB,CAAC;EACzB,CAAC,EACD,CAACF,WAAW,EAAEE,iBAAiB,EAAE8C,oBAAoB,EAAEmB,YAAY,CACvE,CAAC;;EAED;EACA,MAAM0B,mBAAmB,GAAGhH,WAAW,CAAC,MAAM;IAC1C,MAAMmH,IAAI,GAAGA,CAAA,KAAM;MACf,IAAI,CAACtF,aAAa,CAACc,OAAO,EAAE;MAE5B,IAAII,kBAAkB,CAACJ,OAAO,KAAK,CAAC,EAAE;QAClC,MAAMyE,SAAS,GAAGC,IAAI,CAACC,GAAG,CACtB,CAAC,EACDhF,eAAe,CAACK,OAAO,GAAGI,kBAAkB,CAACJ,OACjD,CAAC;QACDL,eAAe,CAACK,OAAO,GAAGyE,SAAS;QAClCnG,YAAY,CAAC0B,OAAO,EAAU4E,cAAc,GAAG;UAC5CC,MAAM,EAAEJ,SAAS;UACjBK,QAAQ,EAAE;QACd,CAAC,CAAC;MACN;MAEA3E,gBAAgB,CAACH,OAAO,GAAG+E,qBAAqB,CAACP,IAAI,CAAC;IAC1D,CAAC;IACDrE,gBAAgB,CAACH,OAAO,GAAG+E,qBAAqB,CAACP,IAAI,CAAC;EAC1D,CAAC,EAAE,CAAClG,YAAY,CAAC,CAAC;EAElB,MAAM0G,cAAc,GAAG3H,WAAW,CAAC,MAAM;IACrC,IAAI8C,gBAAgB,CAACH,OAAO,KAAK,IAAI,EAAE;MACnCiF,oBAAoB,CAAC9E,gBAAgB,CAACH,OAAO,CAAC;MAC9CG,gBAAgB,CAACH,OAAO,GAAG,IAAI;IACnC;IACAI,kBAAkB,CAACJ,OAAO,GAAG,CAAC;EAClC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMkF,gBAAgB,GAAG7H,WAAW,CAC/B8H,iBAAyB,IAAK;IAC3B,MAAMC,SAAS,GAAGzG,mBAAmB;IACrC,MAAM0G,QAAQ,GAAG,CAAC,GAAGzG,eAAe;IACpC,MAAM0G,UAAU,GAAG7F,kBAAkB,CAACO,OAAO;IAE7C,IAAImF,iBAAiB,GAAGC,SAAS,EAAE;MAC/B;MACA,MAAMG,KAAK,GAAG,CAAC,GAAGb,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEQ,iBAAiB,CAAC,GAAGC,SAAS;MAC5DhF,kBAAkB,CAACJ,OAAO,GAAG,CAACqF,QAAQ,GAAGE,KAAK;IAClD,CAAC,MAAM,IAAIJ,iBAAiB,GAAGG,UAAU,GAAGF,SAAS,EAAE;MACnD;MACA,MAAMG,KAAK,GACP,CAAC,GAAGb,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEW,UAAU,GAAGH,iBAAiB,CAAC,GAAGC,SAAS;MAC/DhF,kBAAkB,CAACJ,OAAO,GAAGqF,QAAQ,GAAGE,KAAK;IACjD,CAAC,MAAM;MACHnF,kBAAkB,CAACJ,OAAO,GAAG,CAAC;IAClC;EACJ,CAAC,EACD,CAACrB,mBAAmB,EAAEC,eAAe,CACzC,CAAC;;EAED;EACA,MAAM4G,qBAAqB,GAAGnI,WAAW,CAAC,MAAM;IAC5C,IAAIkD,kBAAkB,CAACP,OAAO,EAAE;MAC5ByB,YAAY,CAAClB,kBAAkB,CAACP,OAAO,CAAC;MACxCO,kBAAkB,CAACP,OAAO,GAAG,IAAI;IACrC;IACAQ,mBAAmB,CAACR,OAAO,GAAG,IAAI;EACtC,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMyF,mBAAmB,GAAGpI,WAAW,CACnC,CAACqI,WAAmB,EAAEC,WAAmB,KAAK;IAC1C,MAAMtC,KAAK,GAAGxC,iBAAiB,CAACb,OAAO;IACvC,IAAIqD,KAAK,CAACpB,MAAM,KAAK,CAAC,EAAE;IAExB,MAAM2B,YAAY,GACd8B,WAAW,GAAGlG,iBAAiB,CAACQ,OAAO;IAC3C,MAAM4F,cAAc,GAChBhC,YAAY,GAAGjE,eAAe,CAACK,OAAO;IAC1C,MAAM6F,gBAAgB,GAClBD,cAAc,GAAGhG,eAAe,CAACI,OAAO;IAC5C,MAAM6D,EAAE,GAAGhE,aAAa,CAACG,OAAO;IAEhC,MAAM8F,QAAQ,GAAGpB,IAAI,CAACqB,KAAK,CAACF,gBAAgB,GAAGhC,EAAE,CAAC;IAClD,IAAImC,YAAY,GAAGtB,IAAI,CAACC,GAAG,CACvB,CAAC,EACDD,IAAI,CAACuB,GAAG,CAACH,QAAQ,EAAEzC,KAAK,CAACpB,MAAM,GAAG,CAAC,CACvC,CAAC;IACD,IAAIiE,UAAU,GAAG7C,KAAK,CAAC2C,YAAY,CAAC;IACpC,IAAI,CAACE,UAAU,EAAE;;IAEjB;IACA,MAAMC,cAAc,GAChB,CAACN,gBAAgB,GAAGG,YAAY,GAAGnC,EAAE,IAAIA,EAAE;IAC/C,IAAIuC,QAAsC;IAC1C,IAAID,cAAc,GAAG,IAAI,EAAE;MACvBC,QAAQ,GAAG,OAAO;IACtB,CAAC,MAAM,IAAID,cAAc,GAAG,IAAI,EAAE;MAC9BC,QAAQ,GAAG,OAAO;IACtB,CAAC,MAAM;MACHA,QAAQ,GAAG,QAAQ;IACvB;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMC,YAAY,GAAGV,WAAW,GAAGpG,iBAAiB,CAACS,OAAO;IAC5D;IACA;IACA,IAAIsG,eAA0B,GAAG,IAAI;IACrC,IAAIC,eAAoD,GAAG,IAAI;IAC/D,IAAIC,eAA8B,GAAG,IAAI;IAEzC,IAAIJ,QAAQ,KAAK,OAAO,IAAIA,QAAQ,KAAK,QAAQ,EAAE;MAC/C,MAAMK,YAAY,GAAGP,UAAU,CAAC/B,KAAK,IAAI,CAAC;MAC1C,IAAIuC,OAAO,GAAG,KAAK;MACnB,IAAIC,YAAY,GAAG,CAAC;MAEpB,IAAIX,YAAY,GAAG3C,KAAK,CAACpB,MAAM,GAAG,CAAC,EAAE;QACjC,MAAM2E,QAAQ,GAAGvD,KAAK,CAAC2C,YAAY,GAAG,CAAC,CAAC;QACxC,MAAMa,SAAS,GAAGD,QAAQ,EAAEzC,KAAK,IAAI,CAAC;QACtC,IAAIyC,QAAQ,IAAIC,SAAS,GAAGJ,YAAY,EAAE;UACtCC,OAAO,GAAG,IAAI;UACdC,YAAY,GAAGE,SAAS;QAC5B;MACJ,CAAC,MAAM,IAAIJ,YAAY,GAAG,CAAC,EAAE;QACzB;QACAC,OAAO,GAAG,IAAI;QACdC,YAAY,GAAG,CAAC;MACpB;MAEA,IAAID,OAAO,EAAE;QACT;QACA,MAAMtB,SAAS,GACV,CAACqB,YAAY,GAAGE,YAAY,IAAI,CAAC,GAAI1H,qBAAqB,GACzDA,qBAAqB,GAAG,CAAC;QAE/B,IAAIoH,YAAY,GAAGjB,SAAS,EAAE;UAC1B;UACA,IAAIY,YAAY,GAAG3C,KAAK,CAACpB,MAAM,GAAG,CAAC,EAAE;YACjC;YACA,MAAM2E,QAAQ,GAAGvD,KAAK,CAAC2C,YAAY,GAAG,CAAC,CAAE;YACzCA,YAAY,GAAGA,YAAY,GAAG,CAAC;YAC/BE,UAAU,GAAGU,QAAQ;YACrBR,QAAQ,GAAG,OAAO;UACtB,CAAC,MAAM;YACH;YACA,MAAM;cAAEU;YAAiB,CAAC,GAAGnJ,gBAAgB,CAAKS,OAAO,CAAC,CAAC0D,QAAQ,CAAC,CAAC;YACrE,IAAIiF,UAAU,GAAGb,UAAU,CAACzD,EAAE;YAC9B,IAAIuE,SAAS,GAAGP,YAAY;YAC5B,OAAOO,SAAS,GAAGL,YAAY,EAAE;cAC7B,MAAMM,QAAQ,GAAGH,gBAAgB,CAACzE,GAAG,CAAC0E,UAAU,CAAC;cACjD,IAAIE,QAAQ,KAAKC,SAAS,EAAE;cAC5BH,UAAU,GAAGE,QAAQ;cACrBD,SAAS,EAAE;YACf;YACA;YACAV,eAAe,GAAGS,UAAU;YAC5BR,eAAe,GAAG,OAAO;YACzBC,eAAe,GAAGG,YAAY;UAClC;QACJ;MACJ;IACJ;IACA,IAAIP,QAAQ,KAAK,OAAO,IAAIJ,YAAY,GAAG,CAAC,EAAE;MAC1C,MAAMmB,QAAQ,GAAG9D,KAAK,CAAC2C,YAAY,GAAG,CAAC,CAAC;MACxC,MAAMoB,SAAS,GAAGD,QAAQ,EAAEhD,KAAK,IAAI,CAAC;MACtC,MAAMsC,YAAY,GAAGP,UAAU,CAAC/B,KAAK,IAAI,CAAC;MAC1C,IAAIgD,QAAQ,IAAIC,SAAS,GAAGX,YAAY,EAAE;QACtC;QACA,MAAMrB,SAAS,GACV,CAACgC,SAAS,GAAGX,YAAY,IAAI,CAAC,GAAIxH,qBAAqB,GACtDA,qBAAqB,GAAG,CAAC;QAE/B,IAAIoH,YAAY,IAAIjB,SAAS,EAAE;UAC3BY,YAAY,GAAGA,YAAY,GAAG,CAAC;UAC/BE,UAAU,GAAGiB,QAAQ;UACrBf,QAAQ,GAAG,OAAO;QACtB;MACJ;IACJ;;IAEA;IACA;IACA;IACA,IAAIA,QAAQ,KAAK,OAAO,EAAE;MACtB,MAAMiB,WAAW,GAAG1J,gBAAgB,CAAKS,OAAO,CAAC,CAAC0D,QAAQ,CAAC,CAAC,CAACwB,QAAQ;;MAErE;MACA;MACA,IAAI4C,UAAU,CAAC5D,QAAQ,EAAEL,MAAM,IAAIoF,WAAW,CAAC9D,GAAG,CAAC2C,UAAU,CAACzD,EAAE,CAAC,EAAE;QAC/D2D,QAAQ,GAAG,QAAQ;MACvB;MACA;MACA;MAAA,KACK,IAAIJ,YAAY,GAAG3C,KAAK,CAACpB,MAAM,GAAG,CAAC,EAAE;QACtC,MAAM2E,QAAQ,GAAGvD,KAAK,CAAC2C,YAAY,GAAG,CAAC,CAAC;QACxC,IAAIY,QAAQ,IAAI,CAACA,QAAQ,CAACzC,KAAK,IAAI,CAAC,MAAM+B,UAAU,CAAC/B,KAAK,IAAI,CAAC,CAAC,EAAE;UAC9DiC,QAAQ,GAAG,QAAQ;QACvB;MACJ;IACJ;;IAEA;IACA;IACA;IACA,MAAMkB,IAAI,GAAG1G,iBAAiB,CAACZ,OAAO;IACtC,IAAIsH,IAAI,EAAE;MACN,MAAMC,OAAO,GACRD,IAAI,CAAClB,QAAQ,KAAK,OAAO,IAAIA,QAAQ,KAAK,OAAO,IAC9CkB,IAAI,CAACE,WAAW,KAAKxB,YAAY,GAAG,CAAC,IACxCsB,IAAI,CAAClB,QAAQ,KAAK,OAAO,IAAIA,QAAQ,KAAK,OAAO,IAC9CJ,YAAY,KAAKsB,IAAI,CAACE,WAAW,GAAG,CAAE;MAC9C,IAAID,OAAO,EAAE;QACT,MAAME,QAAQ,GAAG/C,IAAI,CAACuB,GAAG,CAACqB,IAAI,CAACE,WAAW,EAAExB,YAAY,CAAC;QACzD,MAAM0B,QAAQ,GAAGhD,IAAI,CAACC,GAAG,CAAC2C,IAAI,CAACE,WAAW,EAAExB,YAAY,CAAC;QACzD,MAAM2B,UAAU,GAAGtE,KAAK,CAACoE,QAAQ,CAAC,EAAEtD,KAAK,IAAI,CAAC;QAC9C,MAAMyD,UAAU,GAAGvE,KAAK,CAACqE,QAAQ,CAAC,EAAEvD,KAAK,IAAI,CAAC;QAE9C,IAAIwD,UAAU,KAAKC,UAAU,EAAE;UAC3B;UACA;QACJ;QACA;QACA;MACJ;IACJ;IACAhH,iBAAiB,CAACZ,OAAO,GAAG;MAAEwH,WAAW,EAAExB,YAAY;MAAEI;IAAS,CAAC;IAEnE,MAAMyB,YAAY,GAAGjE,YAAY,GAAGlE,cAAc,CAACM,OAAO;;IAE1D;IACA,MAAM4B,KAAK,GAAGjE,gBAAgB,CAAKS,OAAO,CAAC;IAC3C,MAAM;MAAE0J,oBAAoB;MAAEC,aAAa;MAAEzE;IAAS,CAAC,GACnD1B,KAAK,CAACE,QAAQ,CAAC,CAAC;IACpB,MAAMkG,OAAO,GACT9B,UAAU,CAACzD,EAAE,KAAKsF,aAAa,IAC/B,CAACD,oBAAoB,CAACvE,GAAG,CAAC2C,UAAU,CAACzD,EAAE,CAAC;;IAE5C;IACA,IAAIuF,OAAO,IAAI5B,QAAQ,KAAK,QAAQ,IAAIF,UAAU,CAAC5D,QAAQ,EAAEL,MAAM,IAAI,CAACqB,QAAQ,CAACC,GAAG,CAAC2C,UAAU,CAACzD,EAAE,CAAC,EAAE;MACjG,IAAIjC,mBAAmB,CAACR,OAAO,KAAKkG,UAAU,CAACzD,EAAE,EAAE;QAC/C;QACA+C,qBAAqB,CAAC,CAAC;QACvBhF,mBAAmB,CAACR,OAAO,GAAGkG,UAAU,CAACzD,EAAE;QAC3ClC,kBAAkB,CAACP,OAAO,GAAGuE,UAAU,CAAC,MAAM;UAC1ChE,kBAAkB,CAACP,OAAO,GAAG,IAAI;UACjC;UACAlC,kBAAkB,CAACM,OAAO,EAAE8H,UAAU,CAACzD,EAAE,CAAC;UAC1ChC,yBAAyB,CAACT,OAAO,CAACwC,GAAG,CAAC0D,UAAU,CAACzD,EAAE,CAAC;QACxD,CAAC,EAAEzD,eAAe,CAAC;MACvB;IACJ,CAAC,MAAM;MACH;MACA,IAAIwB,mBAAmB,CAACR,OAAO,KAAK,IAAI,EAAE;QACtCwF,qBAAqB,CAAC,CAAC;MAC3B;IACJ;;IAEA;IACA;IACA;IACA,MAAMyC,YAAY,GAAG9I,cAAc,CAACa,OAAO,EAAEmE,KAAK,IAAI,CAAC;IACvD;IACA;IACA,MAAM+D,cAAc,GAAGF,OAAO,GACvBxB,eAAe,KAAK,IAAI,GACrBA,eAAe,CAAE;IAAA,EACjBJ,QAAQ,KAAK,QAAQ,GACjB,CAACF,UAAU,CAAC/B,KAAK,IAAI,CAAC,IAAI,CAAC,GAC1B+B,UAAU,CAAC/B,KAAK,IAAI,CAAE,GAC/B8D,YAAY;IAClB,IAAIC,cAAc,KAAKhI,qBAAqB,CAACF,OAAO,EAAE;MAClD,MAAMoH,SAAS,GAAGlH,qBAAqB,CAACF,OAAO,IAAIkI,cAAc;MACjEhI,qBAAqB,CAACF,OAAO,GAAGkI,cAAc;MAC9C5G,qBAAqB,CAAC4G,cAAc,CAAC;;MAErC;MACA;MACA;MACA,IAAId,SAAS,KAAKc,cAAc,EAAE;QAC9BjI,QAAQ,CAACiE,QAAQ,CACb,CAACkD,SAAS,GAAGc,cAAc,IAAIjJ,qBACnC,CAAC;QACDxB,QAAQ,CAAC0K,MAAM,CAAClI,QAAQ,EAAE;UACtBmI,OAAO,EAAE,CAAC;UACVC,eAAe,EAAE,IAAI;UACrBC,KAAK,EAAE,EAAE;UACTC,UAAU,EAAE;QAChB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;MACd;IACJ;IAEA,MAAMC,SAAyB,GAAG;MAC9BC,YAAY,EAAExC,UAAU,CAACzD,EAAE;MAC3B+E,WAAW,EAAExB,YAAY;MACzBI,QAAQ;MACR4B,OAAO;MACPW,WAAW,EAAEzC,UAAU,CAAC/B,KAAK,IAAI,CAAC;MAClC0D;IACJ,CAAC;;IAED;IACA,IAAIG,OAAO,EAAE;MACTpG,KAAK,CAACE,QAAQ,CAAC,CAAC,CAAC8G,gBAAgB,CAAC1C,UAAU,CAACzD,EAAE,EAAE2D,QAAQ,EAAEI,eAAe,CAAC;IAC/E,CAAC,MAAM;MACH5E,KAAK,CAACE,QAAQ,CAAC,CAAC,CAAC8G,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC;IACjD;;IAEA;IACA;IACA;IACA,IAAItC,eAAe,KAAK,IAAI,IAAIC,eAAe,KAAK,IAAI,EAAE;MACtDhF,aAAa,CAACvB,OAAO,GAAG;QACpB,GAAGyI,SAAS;QACZC,YAAY,EAAEpC,eAAe;QAC7BF,QAAQ,EAAEG;MACd,CAAC;IACL,CAAC,MAAM;MACHhF,aAAa,CAACvB,OAAO,GAAGyI,SAAS;IACrC;IAEArH,aAAa,CAAEyH,UAAU,IAAK;MAC1B,IACIA,UAAU,EAAEH,YAAY,KAAKD,SAAS,CAACC,YAAY,IACnDG,UAAU,EAAEzC,QAAQ,KAAKqC,SAAS,CAACrC,QAAQ,IAC3CyC,UAAU,EAAEb,OAAO,KAAKS,SAAS,CAACT,OAAO,IACzCa,UAAU,EAAEhB,YAAY,KAAKY,SAAS,CAACZ,YAAY,EACrD;QACE,OAAOgB,UAAU;MACrB;MACA,OAAOJ,SAAS;IACpB,CAAC,CAAC;EACN,CAAC,EACD,CAACrK,OAAO,EAAEY,eAAe,EAAEwG,qBAAqB,EAAEvG,qBAAqB,EAAEgB,QAAQ,CACrF,CAAC;;EAED;EACA,MAAM6I,aAAa,GAAGzL,WAAW,CAC7B,CAACqI,WAAoB,EAAEC,WAAoB,KAAK;IAC5CX,cAAc,CAAC,CAAC;IAChBxD,oBAAoB,CAAC,CAAC;IACtBgE,qBAAqB,CAAC,CAAC;IACvB5E,iBAAiB,CAACZ,OAAO,GAAG,IAAI;IAEhC,IAAI,CAACd,aAAa,CAACc,OAAO,EAAE;IAC5Bd,aAAa,CAACc,OAAO,GAAG,KAAK;;IAE7B;IACA,IAAI0F,WAAW,KAAKwB,SAAS,EAAE;MAC3BzB,mBAAmB,CAACC,WAAW,EAAEC,WAAW,IAAI,CAAC,CAAC;IACtD;;IAEA;IACA;IACAH,qBAAqB,CAAC,CAAC;;IAEvB;IACA;IACA;IACA;IACA,MAAMuD,aAAa,GAAGxH,aAAa,CAACvB,OAAO;IAC3C,MAAMgJ,aAAa,GAAG5J,gBAAgB,CAACY,OAAO;IAE9C,IACI+I,aAAa,EAAEf,OAAO,IACtBgB,aAAa,KAAK,IAAI,EACxB;MACE,MAAMpH,KAAK,GAAGjE,gBAAgB,CAAKS,OAAO,CAAC;MAC3C,MAAM6K,WAAW,GACbrH,KAAK,CAACE,QAAQ,CAAC,CAAC,CAACoH,mBAAmB;MACxC,MAAMC,OAAO,GAAGlL,YAAY,CACxBgL,WAAW,EACXD,aAAa,EACbD,aAAa,CAACL,YAAY,EAC1BK,aAAa,CAAC3C,QAClB,CAAC;;MAED;MACAxE,KAAK,CACAE,QAAQ,CAAC,CAAC,CACVsH,yBAAyB,CAACD,OAAO,CAAC;MACvCpL,kBAAkB,CAACK,OAAO,EAAE+K,OAAO,CAAC;;MAEpC;MACA;MACAnL,wBAAwB,CAAKI,OAAO,CAAC;;MAErC;MACA,IAAI2K,aAAa,CAAC3C,QAAQ,KAAK,QAAQ,EAAE;QACrCvI,WAAW,CAACO,OAAO,EAAE,CAAC2K,aAAa,CAACL,YAAY,CAAC,CAAC;MACtD;;MAEA;MACA7K,WAAW,CAACO,OAAO,EAAE,CAAC4K,aAAa,CAAC,EAAE,IAAI,CAAC;;MAE3C;MACA;MACAnK,eAAe,CAACmB,OAAO,GAAGmJ,OAAO;;MAEjC;MACArI,YAAY,CAACd,OAAO,GAAG;QACnB+H,aAAa,EAAEiB,aAAa;QAC5BN,YAAY,EAAEK,aAAa,CAACL,YAAY;QACxCtC,QAAQ,EAAE2C,aAAa,CAAC3C,QAAQ;QAChCiD,WAAW,EAAEF;MACjB,CAAC,CAAC;;MAEF;MACA5E,UAAU,CAAC,MAAM;QACb,MAAMlB,KAAK,GAAGxC,iBAAiB,CAACb,OAAO;QACvC,MAAMsJ,GAAG,GAAGjG,KAAK,CAACkG,SAAS,CAACC,CAAC,IAAIA,CAAC,CAAC/G,EAAE,KAAKuG,aAAa,CAAC;QACxD,IAAIM,GAAG,IAAI,CAAC,EAAE;UACVhL,YAAY,CAAC0B,OAAO,EAAEyJ,aAAa,GAAG;YAClCC,KAAK,EAAEJ,GAAG;YACVxE,QAAQ,EAAE,IAAI;YACd6E,YAAY,EAAE;UAClB,CAAC,CAAC;QACN;MACJ,CAAC,EAAE,GAAG,CAAC;IACX;;IAEA;IACA,IAAIlJ,yBAAyB,CAACT,OAAO,CAAC4J,IAAI,GAAG,CAAC,EAAE;MAC5C,MAAMC,MAAM,GAAGlM,gBAAgB,CAAKS,OAAO,CAAC;MAC5C,MAAM;QAAE0I;MAAiB,CAAC,GAAG+C,MAAM,CAAC/H,QAAQ,CAAC,CAAC;;MAE9C;MACA,MAAMgI,WAAW,GAAG,IAAIpJ,GAAG,CAAK,CAAC;MACjC,IAAIqI,aAAa,EAAEf,OAAO,EAAE;QACxB,IAAI+B,MAAsB,GAAGhB,aAAa,CAACL,YAAY;QACvD,OAAOqB,MAAM,KAAK7C,SAAS,EAAE;UACzB4C,WAAW,CAACtH,GAAG,CAACuH,MAAM,CAAC;UACvBA,MAAM,GAAGjD,gBAAgB,CAACzE,GAAG,CAAC0H,MAAM,CAAC;QACzC;MACJ;;MAEA;MACA,MAAMC,UAAgB,GAAG,EAAE;MAC3B,KAAK,MAAMrI,MAAM,IAAIlB,yBAAyB,CAACT,OAAO,EAAE;QACpD,IAAI,CAAC8J,WAAW,CAACvG,GAAG,CAAC5B,MAAM,CAAC,EAAE;UAC1BqI,UAAU,CAACtH,IAAI,CAACf,MAAM,CAAC;QAC3B;MACJ;MACA,IAAIqI,UAAU,CAAC/H,MAAM,GAAG,CAAC,EAAE;QACvBrE,aAAa,CAACQ,OAAO,EAAE4L,UAAU,CAAC;MACtC;MACAvJ,yBAAyB,CAACT,OAAO,CAACoE,KAAK,CAAC,CAAC;IAC7C;;IAEA;IACA,MAAM6F,MAAM,GAAGtM,gBAAgB,CAAKS,OAAO,CAAC;IAC5C6L,MAAM,CAACnI,QAAQ,CAAC,CAAC,CAACiC,mBAAmB,CAAC,IAAI,CAAC;IAC3CkG,MAAM,CAACnI,QAAQ,CAAC,CAAC,CAACkC,0BAA0B,CAAC,IAAItD,GAAG,CAAC,CAAC,CAAC;IACvDuJ,MAAM,CAACnI,QAAQ,CAAC,CAAC,CAAC8G,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC;;IAE9C;IACA3I,QAAQ,CAACiE,QAAQ,CAAC,CAAC,CAAC;IACpBhE,qBAAqB,CAACF,OAAO,GAAG,IAAI;IACpCuB,aAAa,CAACvB,OAAO,GAAG,IAAI;IAC5Bb,cAAc,CAACa,OAAO,GAAG,IAAI;IAC7BZ,gBAAgB,CAACY,OAAO,GAAG,IAAI;IAC/BX,mBAAmB,CAACW,OAAO,GAAG,CAAC,CAAC;IAEhCoB,aAAa,CAAC,IAAI,CAAC;IACnBJ,aAAa,CAAC,KAAK,CAAC;IACpBE,cAAc,CAAC,IAAI,CAAC;EACxB,CAAC;EACD;EACA,CACI9C,OAAO,EACP4G,cAAc,EACdxD,oBAAoB,EACpBgE,qBAAqB,EACrBC,mBAAmB,EACnB5G,eAAe,CAEvB,CAAC;;EAED;EACA;EACA;EACA,MAAMqL,kBAAkB,GAAG7M,WAAW,CAAC,MAAM;IACzCmE,oBAAoB,CAAC,CAAC;IACtB,IAAItC,aAAa,CAACc,OAAO,IAAI,CAACW,qBAAqB,CAACX,OAAO,EAAE;MACzD8I,aAAa,CAAC,CAAC;IACnB;EACJ,CAAC,EAAE,CAACtH,oBAAoB,EAAEsH,aAAa,CAAC,CAAC;;EAEzC;EACA,MAAMqB,YAAY,GAAG5M,MAAM,CACvBG,YAAY,CAAC0M,MAAM,CAAC;IAChBC,4BAA4B,EAAEA,CAAA,KAAM,KAAK;IACzCC,mCAAmC,EAAEA,CAAA,KACjCpL,aAAa,CAACc,OAAO;IACzBuK,2BAA2B,EAAEA,CAAA,KAAMrL,aAAa,CAACc,OAAO;IACxDwK,kCAAkC,EAAEA,CAAA,KAChCtL,aAAa,CAACc,OAAO;IAEzByK,mBAAmB,EAAEA,CAAA,KAAM;MACvB9J,qBAAqB,CAACX,OAAO,GAAG,IAAI;IACxC,CAAC;IAED0K,kBAAkB,EAAGC,GAAG,IAAK;MACzB,IAAI,CAACzL,aAAa,CAACc,OAAO,EAAE;MAE5B,MAAM0F,WAAW,GAAGiF,GAAG,CAACC,WAAW,CAAChI,KAAK;MACzC,MAAMgB,YAAY,GACd8B,WAAW,GAAGlG,iBAAiB,CAACQ,OAAO;;MAE3C;MACA,MAAMiE,aAAa,GACfL,YAAY,GAAGlE,cAAc,CAACM,OAAO,GAAGjB,iBAAiB,GAAGc,aAAa,CAACG,OAAO;MACrFF,QAAQ,CAACoE,QAAQ,CAACD,aAAa,CAAC;;MAEhC;MACAwB,mBAAmB,CAACC,WAAW,EAAEiF,GAAG,CAACC,WAAW,CAACC,KAAK,CAAC;;MAEvD;MACA,MAAM1F,iBAAiB,GACnB7E,0BAA0B,CAACN,OAAO,IACjC0F,WAAW,GAAGrF,qBAAqB,CAACL,OAAO,CAAC;MACjDkF,gBAAgB,CAACC,iBAAiB,CAAC;IACvC,CAAC;IAED2F,qBAAqB,EAAGH,GAAG,IAAK;MAC5BhK,qBAAqB,CAACX,OAAO,GAAG,KAAK;MACrC8I,aAAa,CAAC6B,GAAG,CAACC,WAAW,CAAChI,KAAK,EAAE+H,GAAG,CAACC,WAAW,CAACC,KAAK,CAAC;IAC/D,CAAC;IAEDE,uBAAuB,EAAEA,CAAA,KAAM;MAC3BpK,qBAAqB,CAACX,OAAO,GAAG,KAAK;MACrC8I,aAAa,CAAC,CAAC;IACnB;EACJ,CAAC,CACL,CAAC,CAAC9I,OAAO;;EAET;EACA1C,SAAS,CAAC,MAAM;IACZ,OAAO,MAAM;MACTkE,oBAAoB,CAAC,CAAC;MACtBgE,qBAAqB,CAAC,CAAC;MACvBR,cAAc,CAAC,CAAC;MAChB,IAAI9F,aAAa,CAACc,OAAO,EAAE;QACvBd,aAAa,CAACc,OAAO,GAAG,KAAK;QAC7B,MAAM4B,KAAK,GAAGjE,gBAAgB,CAAKS,OAAO,CAAC;QAC3CwD,KAAK,CAACE,QAAQ,CAAC,CAAC,CAACiC,mBAAmB,CAAC,IAAI,CAAC;QAC1CnC,KAAK,CAACE,QAAQ,CAAC,CAAC,CAACkC,0BAA0B,CAAC,IAAItD,GAAG,CAAC,CAAC,CAAC;QACtDkB,KAAK,CAACE,QAAQ,CAAC,CAAC,CAAC8G,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC;MACjD;IACJ,CAAC;EACL,CAAC,EAAE,CAACxK,OAAO,EAAEoD,oBAAoB,EAAEgE,qBAAqB,EAAER,cAAc,CAAC,CAAC;EAE1E,OAAO;IACHmF,YAAY;IACZrK,QAAQ;IACRG,QAAQ;IACRc,UAAU;IACVE,WAAW;IACXE,UAAU;IACVE,kBAAkB;IAClBiD,oBAAoB;IACpB4F,kBAAkB;IAClB1I,oBAAoB;IACpB7B,eAAe;IACfC;EACJ,CAAC;AACL","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","Animated","PanResponder","getTreeViewStore","collapseNodes","expandNodes","handleToggleExpand","initializeNodeMaps","recalculateCheckedStates","moveTreeNode","useDragDrop","params","storeId","flattenedNodes","flashListRef","containerRef","dragEnabled","onDragEnd","longPressDuration","autoScrollThreshold","autoScrollSpeed","internalDataRef","measuredItemHeightRef","dragOverlayOffset","autoExpandDelay","indentationMultiplier","isDraggingRef","draggedNodeRef","draggedNodeIdRef","draggedNodeIndexRef","longPressTimerRef","containerPageXRef","containerPageYRef","containerHeightRef","grabOffsetYRef","scrollOffsetRef","headerOffsetRef","itemHeightRef","overlayY","Value","current","overlayX","prevEffectiveLevelRef","autoScrollRAFRef","autoScrollSpeedRef","initialFingerPageYRef","initialFingerContainerYRef","autoExpandTimerRef","autoExpandTargetRef","autoExpandedDuringDragRef","Set","panResponderActiveRef","prevDropTargetRef","flattenedNodesRef","onDragEndRef","isDragging","setIsDragging","draggedNode","setDraggedNode","dropTarget","setDropTarget","effectiveDropLevel","setEffectiveDropLevel","dropTargetRef","cancelLongPressTimer","clearTimeout","getDescendantIds","nodeId","store","nodeMap","getState","descendants","stack","length","currentId","pop","node","get","children","child","add","id","push","initiateDrag","pageY","locationY","nodeIndex","container","measureInWindow","x","y","_w","h","nodes","expanded","has","measured","estimatedSize","props","estimatedItemSize","fingerLocalY","iH","listHeaderHeight","updateDraggedNodeId","updateInvalidDragTargetIds","overlayLocalY","setValue","level","clear","startAutoScrollLoop","handleNodeTouchStart","setTimeout","loop","newOffset","Math","max","scrollToOffset","offset","animated","requestAnimationFrame","stopAutoScroll","cancelAnimationFrame","updateAutoScroll","fingerInContainer","threshold","maxSpeed","containerH","ratio","cancelAutoExpandTimer","calculateDropTarget","fingerPageY","fingerPageX","fingerContentY","adjustedContentY","rawIndex","floor","clampedIndex","min","targetNode","positionInItem","position","fingerLocalX","logicalTargetId","logicalPosition","visualDropLevel","currentLevel","isCliff","shallowLevel","nextNode","nextLevel","childToParentMap","ancestorId","walkLevel","parentId","undefined","prevNode","prevLevel","expandedSet","prev","sameGap","targetIndex","upperIdx","lowerIdx","upperLevel","lowerLevel","indicatorTop","invalidDragTargetIds","draggedNodeId","isValid","draggedLevel","effectiveLevel","spring","toValue","useNativeDriver","speed","bounciness","start","newTarget","targetNodeId","targetLevel","updateDropTarget","prevTarget","handleDragEnd","currentTarget","droppedNodeId","currentData","initialTreeViewData","newData","updateInitialTreeViewData","newTreeData","idx","findIndex","n","itemH","scrollTop","estimatedTop","estimatedBottom","scrollToIndex","index","viewPosition","size","store3","ancestorIds","walkId","toCollapse","store2","handleNodeTouchEnd","panResponder","create","onStartShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderGrant","onPanResponderMove","evt","nativeEvent","pageX","onPanResponderRelease","onPanResponderTerminate"],"sourceRoot":"../../../src","sources":["hooks/useDragDrop.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDragDrop.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDragDrop.ts"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EAER,KAAK,oBAAoB,EAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKxE,UAAU,iBAAiB,CAAC,EAAE;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5C,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3E,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;QAAE,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"useDragDrop.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDragDrop.ts"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EAER,KAAK,oBAAoB,EAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKxE,UAAU,iBAAiB,CAAC,EAAE;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5C,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3E,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;QAAE,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;KAAE,GAAG,IAAI,CAAC,CAAC;IAC/H,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/D,qBAAqB,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,qBAAqB,EAAE,MAAM,CAAC;CACjC;AAED,UAAU,iBAAiB,CAAC,EAAE;IAC1B,YAAY,EAAE,oBAAoB,CAAC;IACnC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,qBAAqB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAC9C,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,CAClB,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,KAChB,IAAI,CAAC;IACV,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,eAAe,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAChD,eAAe,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACnD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAC1B,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,EAAE,CAAC,CA0xBvB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { TreeNode } from "./treeView.types";
|
|
2
|
+
/** Where a node is dropped relative to the target: as a sibling above/below, or as a child inside */
|
|
2
3
|
export type DropPosition = "above" | "below" | "inside";
|
|
4
|
+
/** Event payload passed to the onDragEnd callback after a successful drop */
|
|
3
5
|
export interface DragEndEvent<ID = string> {
|
|
4
6
|
/** The id of the node that was dragged */
|
|
5
7
|
draggedNodeId: ID;
|
|
@@ -10,12 +12,19 @@ export interface DragEndEvent<ID = string> {
|
|
|
10
12
|
/** The reordered tree data after the move */
|
|
11
13
|
newTreeData: TreeNode<ID>[];
|
|
12
14
|
}
|
|
15
|
+
/** Internal representation of the current drop target during a drag operation */
|
|
13
16
|
export interface DropTarget<ID = string> {
|
|
17
|
+
/** The id of the node being hovered over */
|
|
14
18
|
targetNodeId: ID;
|
|
19
|
+
/** Index of the target node in the flattened list */
|
|
15
20
|
targetIndex: number;
|
|
21
|
+
/** Where the drop would occur relative to the target */
|
|
16
22
|
position: DropPosition;
|
|
23
|
+
/** Whether this is a valid drop location (e.g. not dropping a node onto itself or its descendants) */
|
|
17
24
|
isValid: boolean;
|
|
25
|
+
/** Nesting level of the target node */
|
|
18
26
|
targetLevel: number;
|
|
27
|
+
/** Y-coordinate for positioning the drop indicator */
|
|
19
28
|
indicatorTop: number;
|
|
20
29
|
}
|
|
21
30
|
//# sourceMappingURL=dragDrop.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dragDrop.types.d.ts","sourceRoot":"","sources":["../../../../src/types/dragDrop.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,YAAY,CAAC,EAAE,GAAG,MAAM;IACrC,0CAA0C;IAC1C,aAAa,EAAE,EAAE,CAAC;IAClB,mEAAmE;IACnE,YAAY,EAAE,EAAE,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,EAAE,YAAY,CAAC;IACvB,6CAA6C;IAC7C,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU,CAAC,EAAE,GAAG,MAAM;IACnC,YAAY,EAAE,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"dragDrop.types.d.ts","sourceRoot":"","sources":["../../../../src/types/dragDrop.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qGAAqG;AACrG,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExD,6EAA6E;AAC7E,MAAM,WAAW,YAAY,CAAC,EAAE,GAAG,MAAM;IACrC,0CAA0C;IAC1C,aAAa,EAAE,EAAE,CAAC;IAClB,mEAAmE;IACnE,YAAY,EAAE,EAAE,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,EAAE,YAAY,CAAC;IACvB,6CAA6C;IAC7C,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;CAC/B;AAED,iFAAiF;AACjF,MAAM,WAAW,UAAU,CAAC,EAAE,GAAG,MAAM;IACnC,4CAA4C;IAC5C,YAAY,EAAE,EAAE,CAAC;IACjB,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,QAAQ,EAAE,YAAY,CAAC;IACvB,sGAAsG;IACtG,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -3,61 +3,111 @@ import type { FlashListProps } from "@shopify/flash-list";
|
|
|
3
3
|
import type { ScrollToNodeHandlerRef, ScrollToNodeParams } from "../handlers/ScrollToNodeHandler";
|
|
4
4
|
import type { CheckboxProps as _CheckboxProps } from "@futurejj/react-native-checkbox";
|
|
5
5
|
import type { DragEndEvent, DropPosition } from "./dragDrop.types";
|
|
6
|
+
/** The tri-state value of a checkbox: checked, unchecked, or indeterminate */
|
|
6
7
|
export type CheckboxValueType = boolean | "indeterminate";
|
|
8
|
+
/** Props passed to a custom expand/collapse icon component */
|
|
7
9
|
export interface ExpandIconProps {
|
|
10
|
+
/** Whether the node is currently expanded */
|
|
8
11
|
isExpanded: boolean;
|
|
9
12
|
}
|
|
13
|
+
/** A single node in the tree data structure */
|
|
10
14
|
export interface TreeNode<ID = string> {
|
|
15
|
+
/** Unique identifier for this node */
|
|
11
16
|
id: ID;
|
|
17
|
+
/** Display name for this node */
|
|
12
18
|
name: string;
|
|
19
|
+
/** Child nodes (omit or empty array for leaf nodes) */
|
|
13
20
|
children?: TreeNode<ID>[];
|
|
21
|
+
/** Additional custom data fields */
|
|
14
22
|
[key: string]: any;
|
|
15
23
|
}
|
|
24
|
+
/** Internal flattened representation of a tree node with its nesting level */
|
|
16
25
|
export interface __FlattenedTreeNode__<ID = string> extends TreeNode<ID> {
|
|
26
|
+
/** Nesting depth of this node (0 = root level) */
|
|
17
27
|
level?: number;
|
|
18
28
|
}
|
|
29
|
+
/** FlashList props available for customization (excludes `data` and `renderItem`) */
|
|
19
30
|
export type TreeFlatListProps<ItemT = any> = Omit<FlashListProps<ItemT>, "data" | "renderItem">;
|
|
31
|
+
/** Props passed to a custom node row component */
|
|
20
32
|
export interface NodeRowProps<ID = string> {
|
|
33
|
+
/** The tree node to render */
|
|
21
34
|
node: TreeNode<ID>;
|
|
35
|
+
/** Nesting depth of this node (0 = root level) */
|
|
22
36
|
level: number;
|
|
37
|
+
/** Current checkbox state of this node */
|
|
23
38
|
checkedValue: CheckboxValueType;
|
|
39
|
+
/** Whether this node's children are currently visible */
|
|
24
40
|
isExpanded: boolean;
|
|
41
|
+
/** Callback to toggle this node's checked state */
|
|
25
42
|
onCheck: () => void;
|
|
43
|
+
/** Callback to toggle this node's expanded/collapsed state */
|
|
26
44
|
onExpand: () => void;
|
|
45
|
+
/** Whether this node is an invalid drop target during a drag operation */
|
|
27
46
|
isDragTarget?: boolean;
|
|
47
|
+
/** Whether a drag operation is currently in progress */
|
|
28
48
|
isDragging?: boolean;
|
|
49
|
+
/** Whether this node is the one being dragged */
|
|
29
50
|
isDraggedNode?: boolean;
|
|
30
51
|
}
|
|
52
|
+
/** Customization options for tree item appearance and behavior */
|
|
31
53
|
export interface TreeItemCustomizations<ID> {
|
|
54
|
+
/** Style props for the built-in checkbox view */
|
|
32
55
|
checkBoxViewStyleProps?: BuiltInCheckBoxViewStyleProps;
|
|
56
|
+
/** Pixels of indentation per nesting level. Default: 15 */
|
|
33
57
|
indentationMultiplier?: number;
|
|
58
|
+
/** Custom checkbox component replacing the built-in checkbox */
|
|
34
59
|
CheckboxComponent?: React.ComponentType<CheckBoxViewProps>;
|
|
60
|
+
/** Custom expand/collapse icon component */
|
|
35
61
|
ExpandCollapseIconComponent?: React.ComponentType<ExpandIconProps>;
|
|
62
|
+
/** Custom touchable component wrapping the expand/collapse icon */
|
|
36
63
|
ExpandCollapseTouchableComponent?: React.ComponentType<TouchableOpacityProps>;
|
|
64
|
+
/** Fully custom node row component replacing the entire built-in row */
|
|
37
65
|
CustomNodeRowComponent?: React.ComponentType<NodeRowProps<ID>>;
|
|
38
66
|
}
|
|
67
|
+
/** Internal props for a single node in the list (extends TreeItemCustomizations) */
|
|
39
68
|
export interface NodeProps<ID> extends TreeItemCustomizations<ID> {
|
|
69
|
+
/** The flattened tree node data */
|
|
40
70
|
node: __FlattenedTreeNode__<ID>;
|
|
71
|
+
/** Nesting depth of this node */
|
|
41
72
|
level: number;
|
|
73
|
+
/** Internal store identifier */
|
|
42
74
|
storeId: string;
|
|
75
|
+
/** Index of this node in the flattened list */
|
|
43
76
|
nodeIndex?: number;
|
|
77
|
+
/** Whether drag-and-drop is enabled */
|
|
44
78
|
dragEnabled?: boolean;
|
|
79
|
+
/** Whether a drag operation is currently in progress */
|
|
45
80
|
isDragging?: boolean;
|
|
81
|
+
/** Callback when a touch starts on this node (used for drag initiation) */
|
|
46
82
|
onNodeTouchStart?: (nodeId: ID, pageY: number, locationY: number, nodeIndex: number) => void;
|
|
83
|
+
/** Callback when a touch ends on this node */
|
|
47
84
|
onNodeTouchEnd?: () => void;
|
|
85
|
+
/** Long press duration in ms to start drag */
|
|
48
86
|
longPressDuration?: number;
|
|
87
|
+
/** Callback reporting this node's measured height */
|
|
49
88
|
onItemLayout?: (height: number) => void;
|
|
89
|
+
/** Customizations for drag-and-drop visuals */
|
|
50
90
|
dragDropCustomizations?: DragDropCustomizations<ID>;
|
|
51
91
|
}
|
|
92
|
+
/** Props for the NodeList component that renders the flattened tree */
|
|
52
93
|
export interface NodeListProps<ID> extends TreeItemCustomizations<ID> {
|
|
94
|
+
/** Additional props passed to the underlying FlashList */
|
|
53
95
|
treeFlashListProps?: TreeFlatListProps;
|
|
96
|
+
/** Ref for programmatic scroll-to-node functionality */
|
|
54
97
|
scrollToNodeHandlerRef: React.RefObject<ScrollToNodeHandlerRef<ID>>;
|
|
98
|
+
/** Node ID to scroll to on initial render */
|
|
55
99
|
initialScrollNodeID?: ID;
|
|
100
|
+
/** Internal store identifier */
|
|
56
101
|
storeId: string;
|
|
102
|
+
/** Enable drag-and-drop reordering */
|
|
57
103
|
dragEnabled?: boolean;
|
|
104
|
+
/** Callback fired after a node is dropped at a new position */
|
|
58
105
|
onDragEnd?: (event: DragEndEvent<ID>) => void;
|
|
106
|
+
/** Long press duration in ms to start drag. Default: 400 */
|
|
59
107
|
longPressDuration?: number;
|
|
108
|
+
/** Distance from edge (px) to trigger auto-scroll during drag. Default: 60 */
|
|
60
109
|
autoScrollThreshold?: number;
|
|
110
|
+
/** Speed multiplier for auto-scroll during drag. Default: 1.0 */
|
|
61
111
|
autoScrollSpeed?: number;
|
|
62
112
|
/** Offset of the dragged overlay from the finger, in item-height units. Default: -1 (one item above finger) */
|
|
63
113
|
dragOverlayOffset?: number;
|
|
@@ -66,12 +116,19 @@ export interface NodeListProps<ID> extends TreeItemCustomizations<ID> {
|
|
|
66
116
|
/** Customizations for drag-and-drop visuals (overlay, indicator, opacity) */
|
|
67
117
|
dragDropCustomizations?: DragDropCustomizations<ID>;
|
|
68
118
|
}
|
|
119
|
+
/** Props for the TreeView component */
|
|
69
120
|
export interface TreeViewProps<ID = string> extends Omit<NodeListProps<ID>, "storeId" | "scrollToNodeHandlerRef"> {
|
|
121
|
+
/** The tree data to render */
|
|
70
122
|
data: TreeNode<ID>[];
|
|
123
|
+
/** Callback fired when checked nodes change. Receives checked and indeterminate node IDs. */
|
|
71
124
|
onCheck?: (checkedIds: ID[], indeterminateIds: ID[]) => void;
|
|
125
|
+
/** Callback fired when expanded nodes change. Receives all currently expanded node IDs. */
|
|
72
126
|
onExpand?: (expandedIds: ID[]) => void;
|
|
127
|
+
/** Node IDs that should be checked on initial render */
|
|
73
128
|
preselectedIds?: ID[];
|
|
129
|
+
/** Node IDs that should be expanded on initial render */
|
|
74
130
|
preExpandedIds?: ID[];
|
|
131
|
+
/** Controls whether checking a node propagates to its children and/or parents */
|
|
75
132
|
selectionPropagation?: SelectionPropagation;
|
|
76
133
|
/** Enable drag-and-drop reordering */
|
|
77
134
|
dragEnabled?: boolean;
|
|
@@ -79,9 +136,9 @@ export interface TreeViewProps<ID = string> extends Omit<NodeListProps<ID>, "sto
|
|
|
79
136
|
onDragEnd?: (event: DragEndEvent<ID>) => void;
|
|
80
137
|
/** Long press duration in ms to start drag. Default: 400 */
|
|
81
138
|
longPressDuration?: number;
|
|
82
|
-
/** Distance from edge (px) to trigger auto-scroll. Default: 60 */
|
|
139
|
+
/** Distance from edge (px) to trigger auto-scroll during drag. Default: 60 */
|
|
83
140
|
autoScrollThreshold?: number;
|
|
84
|
-
/** Speed multiplier for auto-scroll. Default: 1.0 */
|
|
141
|
+
/** Speed multiplier for auto-scroll during drag. Default: 1.0 */
|
|
85
142
|
autoScrollSpeed?: number;
|
|
86
143
|
/** Offset of the dragged overlay from the finger, in item-height units. Default: -1 (one item above finger) */
|
|
87
144
|
dragOverlayOffset?: number;
|
|
@@ -89,37 +146,66 @@ export interface TreeViewProps<ID = string> extends Omit<NodeListProps<ID>, "sto
|
|
|
89
146
|
autoExpandDelay?: number;
|
|
90
147
|
}
|
|
91
148
|
type CheckboxProps = Omit<_CheckboxProps, "onPress" | "status">;
|
|
149
|
+
/** Props for the checkbox view component */
|
|
92
150
|
export interface CheckBoxViewProps {
|
|
151
|
+
/** Current checkbox state */
|
|
93
152
|
value: CheckboxValueType;
|
|
153
|
+
/** Callback when the checkbox value changes */
|
|
94
154
|
onValueChange: (value: boolean) => void;
|
|
155
|
+
/** Label text displayed next to the checkbox */
|
|
95
156
|
text: string;
|
|
157
|
+
/** Test ID for testing frameworks */
|
|
96
158
|
testID?: string;
|
|
97
159
|
}
|
|
160
|
+
/** Style props for customizing the built-in checkbox view */
|
|
98
161
|
export interface BuiltInCheckBoxViewStyleProps {
|
|
162
|
+
/** Style for the outermost container wrapping the checkbox and text */
|
|
99
163
|
outermostParentViewStyle?: StyleProp<ViewStyle>;
|
|
164
|
+
/** Style for the view wrapping the checkbox itself */
|
|
100
165
|
checkboxParentViewStyle?: StyleProp<ViewStyle>;
|
|
166
|
+
/** Style for the touchable area wrapping the label text */
|
|
101
167
|
textTouchableStyle?: StyleProp<ViewStyle>;
|
|
168
|
+
/** Additional props passed to the underlying Checkbox component */
|
|
102
169
|
checkboxProps?: CheckboxProps;
|
|
170
|
+
/** Props passed to the label Text component */
|
|
103
171
|
textProps?: TextProps;
|
|
104
172
|
}
|
|
173
|
+
/** Combined props for the built-in checkbox view (CheckBoxViewProps + style props) */
|
|
105
174
|
export type BuiltInCheckBoxViewProps = CheckBoxViewProps & BuiltInCheckBoxViewStyleProps;
|
|
175
|
+
/** Ref handle exposed by the TreeView component for imperative operations */
|
|
106
176
|
export interface TreeViewRef<ID = string> {
|
|
177
|
+
/** Select (check) all nodes in the tree */
|
|
107
178
|
selectAll: () => void;
|
|
179
|
+
/** Unselect (uncheck) all nodes in the tree */
|
|
108
180
|
unselectAll: () => void;
|
|
181
|
+
/** Select all nodes that match the current search filter */
|
|
109
182
|
selectAllFiltered: () => void;
|
|
183
|
+
/** Unselect all nodes that match the current search filter */
|
|
110
184
|
unselectAllFiltered: () => void;
|
|
185
|
+
/** Expand all nodes in the tree */
|
|
111
186
|
expandAll: () => void;
|
|
187
|
+
/** Collapse all nodes in the tree */
|
|
112
188
|
collapseAll: () => void;
|
|
189
|
+
/** Expand specific nodes by their IDs */
|
|
113
190
|
expandNodes: (ids: ID[]) => void;
|
|
191
|
+
/** Collapse specific nodes by their IDs */
|
|
114
192
|
collapseNodes: (ids: ID[]) => void;
|
|
193
|
+
/** Select (check) specific nodes by their IDs */
|
|
115
194
|
selectNodes: (ids: ID[]) => void;
|
|
195
|
+
/** Unselect (uncheck) specific nodes by their IDs */
|
|
116
196
|
unselectNodes: (ids: ID[]) => void;
|
|
197
|
+
/** Set the search text and optionally specify which node fields to search */
|
|
117
198
|
setSearchText: (searchText: string, searchKeys?: string[]) => void;
|
|
199
|
+
/** Programmatically scroll to a specific node by its ID */
|
|
118
200
|
scrollToNodeID: (scrollToNodeParams: ScrollToNodeParams<ID>) => void;
|
|
201
|
+
/** Get a map of child node IDs to their parent node IDs */
|
|
119
202
|
getChildToParentMap: () => Map<ID, ID>;
|
|
120
203
|
}
|
|
204
|
+
/** Controls how checkbox selection propagates through the tree hierarchy */
|
|
121
205
|
export interface SelectionPropagation {
|
|
206
|
+
/** Whether checking a parent node automatically checks all its children. Default: true */
|
|
122
207
|
toChildren?: boolean;
|
|
208
|
+
/** Whether checking all children automatically checks their parent. Default: true */
|
|
123
209
|
toParents?: boolean;
|
|
124
210
|
}
|
|
125
211
|
/** Props for the drop indicator rendered on the target node during drag */
|
|
@@ -167,9 +253,9 @@ export interface DragDropCustomizations<ID = string> {
|
|
|
167
253
|
dropIndicatorStyleProps?: DropIndicatorStyleProps;
|
|
168
254
|
/** Style props for the drag overlay (lifted node ghost) */
|
|
169
255
|
dragOverlayStyleProps?: DragOverlayStyleProps;
|
|
170
|
-
/** Fully custom drop indicator component
|
|
256
|
+
/** Fully custom drop indicator component - replaces the built-in line/highlight */
|
|
171
257
|
CustomDropIndicatorComponent?: React.ComponentType<DropIndicatorComponentProps>;
|
|
172
|
-
/** Fully custom drag overlay component
|
|
258
|
+
/** Fully custom drag overlay component - replaces the built-in ghost node */
|
|
173
259
|
CustomDragOverlayComponent?: React.ComponentType<DragOverlayComponentProps<ID>>;
|
|
174
260
|
}
|
|
175
261
|
/** Props passed to a custom drag overlay component */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../../src/types/treeView.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,SAAS,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACR,sBAAsB,EACtB,kBAAkB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACR,aAAa,IAAI,cAAc,EAClC,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEnE,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,eAAe,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ,CAAC,EAAE,GAAG,MAAM;IACjC,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB,CAAC,EAAE,GAAG,MAAM,CAAE,SAAQ,QAAQ,CAAC,EAAE,CAAC;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../../src/types/treeView.types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-tree-multi-select",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.3",
|
|
4
4
|
"description": "A super-fast, customizable tree view component for React Native with multi-selection, checkboxes, and search filtering capabilities.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -330,11 +330,19 @@ function _Node<ID>(props: NodeProps<ID>) {
|
|
|
330
330
|
// Track when this node was dragged so we can swallow the onPress/onCheck
|
|
331
331
|
// that fires when the user lifts their finger after a long-press-initiated drag.
|
|
332
332
|
// The flag is set during render (synchronous) and cleared on the next touch start.
|
|
333
|
+
// It is also cleared via effect when dragging ends, to prevent stale `true`
|
|
334
|
+
// values surviving FlashList recycling (where refs persist across items).
|
|
333
335
|
const wasDraggedRef = React.useRef(false);
|
|
334
336
|
if (isDraggingGlobal && isBeingDragged) {
|
|
335
337
|
wasDraggedRef.current = true;
|
|
336
338
|
}
|
|
337
339
|
|
|
340
|
+
React.useEffect(() => {
|
|
341
|
+
if (!isDraggingGlobal) {
|
|
342
|
+
wasDraggedRef.current = false;
|
|
343
|
+
}
|
|
344
|
+
}, [isDraggingGlobal]);
|
|
345
|
+
|
|
338
346
|
const _onToggleExpand = React.useCallback(() => {
|
|
339
347
|
if (wasDraggedRef.current) return;
|
|
340
348
|
handleToggleExpand(storeId, node.id);
|
|
@@ -225,7 +225,7 @@ export function recalculateCheckedStates<ID>(storeId: string) {
|
|
|
225
225
|
const tempIndeterminate = new Set(indeterminate);
|
|
226
226
|
|
|
227
227
|
// Collect parent nodes and clean up leaf nodes that shouldn't be indeterminate.
|
|
228
|
-
// A leaf node (no children) can never be indeterminate
|
|
228
|
+
// A leaf node (no children) can never be indeterminate - this can happen when
|
|
229
229
|
// all children of a formerly-indeterminate parent are dragged away.
|
|
230
230
|
const parentNodes: ID[] = [];
|
|
231
231
|
for (const [id, node] of nodeMap) {
|
package/src/hooks/useDragDrop.ts
CHANGED
|
@@ -16,7 +16,7 @@ interface UseDragDropParams<ID> {
|
|
|
16
16
|
storeId: string;
|
|
17
17
|
flattenedNodes: __FlattenedTreeNode__<ID>[];
|
|
18
18
|
flashListRef: React.RefObject<FlashList<__FlattenedTreeNode__<ID>> | null>;
|
|
19
|
-
containerRef: React.RefObject<{ measureInWindow: (cb: (x: number, y: number, w: number, h: number) => void) => void } | null>;
|
|
19
|
+
containerRef: React.RefObject<{ measureInWindow: (cb: (x: number, y: number, w: number, h: number) => void) => void; } | null>;
|
|
20
20
|
dragEnabled: boolean;
|
|
21
21
|
onDragEnd?: (event: DragEndEvent<ID>) => void;
|
|
22
22
|
longPressDuration: number;
|
|
@@ -107,7 +107,7 @@ export function useDragDrop<ID>(
|
|
|
107
107
|
const panResponderActiveRef = useRef(false);
|
|
108
108
|
|
|
109
109
|
// Previous drop target for hysteresis (prevents flicker between "below N" / "above N+1")
|
|
110
|
-
const prevDropTargetRef = useRef<{ targetIndex: number; position: "above" | "below" | "inside" } | null>(null);
|
|
110
|
+
const prevDropTargetRef = useRef<{ targetIndex: number; position: "above" | "below" | "inside"; } | null>(null);
|
|
111
111
|
|
|
112
112
|
// Keep flattenedNodes ref current for PanResponder closures
|
|
113
113
|
const flattenedNodesRef = useRef(flattenedNodes);
|
|
@@ -123,7 +123,7 @@ export function useDragDrop<ID>(
|
|
|
123
123
|
const [dropTarget, setDropTarget] = useState<DropTarget<ID> | null>(null);
|
|
124
124
|
const [effectiveDropLevel, setEffectiveDropLevel] = useState(0);
|
|
125
125
|
|
|
126
|
-
// Ref mirror of dropTarget
|
|
126
|
+
// Ref mirror of dropTarget - avoids nesting Zustand updates inside React state updaters
|
|
127
127
|
const dropTargetRef = useRef<DropTarget<ID> | null>(null);
|
|
128
128
|
|
|
129
129
|
// --- Long press timer ---
|
|
@@ -391,7 +391,7 @@ export function useDragDrop<ID>(
|
|
|
391
391
|
shallowLevel = nextLevel;
|
|
392
392
|
}
|
|
393
393
|
} else if (currentLevel > 0) {
|
|
394
|
-
// Last item in the list
|
|
394
|
+
// Last item in the list - treat as cliff to root level
|
|
395
395
|
isCliff = true;
|
|
396
396
|
shallowLevel = 0;
|
|
397
397
|
}
|
|
@@ -434,7 +434,7 @@ export function useDragDrop<ID>(
|
|
|
434
434
|
const prevLevel = prevNode?.level ?? 0;
|
|
435
435
|
const currentLevel = targetNode.level ?? 0;
|
|
436
436
|
if (prevNode && prevLevel > currentLevel) {
|
|
437
|
-
// Level cliff above
|
|
437
|
+
// Level cliff above - same generous threshold
|
|
438
438
|
const threshold =
|
|
439
439
|
((prevLevel + currentLevel) / 2) * indentationMultiplier
|
|
440
440
|
+ indentationMultiplier * 2;
|
|
@@ -485,10 +485,10 @@ export function useDragDrop<ID>(
|
|
|
485
485
|
const lowerLevel = nodes[lowerIdx]?.level ?? 0;
|
|
486
486
|
|
|
487
487
|
if (upperLevel === lowerLevel) {
|
|
488
|
-
// Same level
|
|
488
|
+
// Same level - pure visual hysteresis, keep previous
|
|
489
489
|
return;
|
|
490
490
|
}
|
|
491
|
-
// Level cliff
|
|
491
|
+
// Level cliff - horizontal control already resolved this,
|
|
492
492
|
// let the result pass through.
|
|
493
493
|
}
|
|
494
494
|
}
|
|
@@ -507,7 +507,7 @@ export function useDragDrop<ID>(
|
|
|
507
507
|
// --- Auto-expand: if hovering "inside" a collapsed expandable node ---
|
|
508
508
|
if (isValid && position === "inside" && targetNode.children?.length && !expanded.has(targetNode.id)) {
|
|
509
509
|
if (autoExpandTargetRef.current !== targetNode.id) {
|
|
510
|
-
// New hover target
|
|
510
|
+
// New hover target - start timer
|
|
511
511
|
cancelAutoExpandTimer();
|
|
512
512
|
autoExpandTargetRef.current = targetNode.id;
|
|
513
513
|
autoExpandTimerRef.current = setTimeout(() => {
|
|
@@ -518,7 +518,7 @@ export function useDragDrop<ID>(
|
|
|
518
518
|
}, autoExpandDelay);
|
|
519
519
|
}
|
|
520
520
|
} else {
|
|
521
|
-
// Not hovering inside a collapsed expandable node
|
|
521
|
+
// Not hovering inside a collapsed expandable node - cancel timer
|
|
522
522
|
if (autoExpandTargetRef.current !== null) {
|
|
523
523
|
cancelAutoExpandTimer();
|
|
524
524
|
}
|
|
@@ -673,17 +673,31 @@ export function useDragDrop<ID>(
|
|
|
673
673
|
newTreeData: newData,
|
|
674
674
|
});
|
|
675
675
|
|
|
676
|
-
// Scroll to the dropped node after React processes the expansion
|
|
676
|
+
// Scroll to the dropped node after React processes the expansion,
|
|
677
|
+
// but only if it's outside the visible viewport. An animated
|
|
678
|
+
// scroll would consume the user's next touch (RN stops the
|
|
679
|
+
// animation on tap), so we skip when the node is already visible.
|
|
677
680
|
setTimeout(() => {
|
|
678
681
|
const nodes = flattenedNodesRef.current;
|
|
679
682
|
const idx = nodes.findIndex(n => n.id === droppedNodeId);
|
|
680
|
-
if (idx
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
683
|
+
if (idx < 0) return;
|
|
684
|
+
|
|
685
|
+
const itemH = itemHeightRef.current;
|
|
686
|
+
const scrollTop = scrollOffsetRef.current;
|
|
687
|
+
const containerH = containerHeightRef.current;
|
|
688
|
+
const estimatedTop = idx * itemH;
|
|
689
|
+
const estimatedBottom = estimatedTop + itemH;
|
|
690
|
+
|
|
691
|
+
// Already in view → no scroll needed
|
|
692
|
+
if (estimatedTop >= scrollTop && estimatedBottom <= scrollTop + containerH) {
|
|
693
|
+
return;
|
|
686
694
|
}
|
|
695
|
+
|
|
696
|
+
flashListRef.current?.scrollToIndex?.({
|
|
697
|
+
index: idx,
|
|
698
|
+
animated: true,
|
|
699
|
+
viewPosition: 0.5,
|
|
700
|
+
});
|
|
687
701
|
}, 100);
|
|
688
702
|
}
|
|
689
703
|
|
|
@@ -783,7 +797,7 @@ export function useDragDrop<ID>(
|
|
|
783
797
|
// Calculate drop target (horizontal position used at level cliffs)
|
|
784
798
|
calculateDropTarget(fingerPageY, evt.nativeEvent.pageX);
|
|
785
799
|
|
|
786
|
-
// Auto-scroll at edges
|
|
800
|
+
// Auto-scroll at edges - use delta-based position relative to container
|
|
787
801
|
const fingerInContainer =
|
|
788
802
|
initialFingerContainerYRef.current +
|
|
789
803
|
(fingerPageY - initialFingerPageYRef.current);
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { TreeNode } from "./treeView.types";
|
|
2
2
|
|
|
3
|
+
/** Where a node is dropped relative to the target: as a sibling above/below, or as a child inside */
|
|
3
4
|
export type DropPosition = "above" | "below" | "inside";
|
|
4
5
|
|
|
6
|
+
/** Event payload passed to the onDragEnd callback after a successful drop */
|
|
5
7
|
export interface DragEndEvent<ID = string> {
|
|
6
8
|
/** The id of the node that was dragged */
|
|
7
9
|
draggedNodeId: ID;
|
|
@@ -13,11 +15,18 @@ export interface DragEndEvent<ID = string> {
|
|
|
13
15
|
newTreeData: TreeNode<ID>[];
|
|
14
16
|
}
|
|
15
17
|
|
|
18
|
+
/** Internal representation of the current drop target during a drag operation */
|
|
16
19
|
export interface DropTarget<ID = string> {
|
|
20
|
+
/** The id of the node being hovered over */
|
|
17
21
|
targetNodeId: ID;
|
|
22
|
+
/** Index of the target node in the flattened list */
|
|
18
23
|
targetIndex: number;
|
|
24
|
+
/** Where the drop would occur relative to the target */
|
|
19
25
|
position: DropPosition;
|
|
26
|
+
/** Whether this is a valid drop location (e.g. not dropping a node onto itself or its descendants) */
|
|
20
27
|
isValid: boolean;
|
|
28
|
+
/** Nesting level of the target node */
|
|
21
29
|
targetLevel: number;
|
|
30
|
+
/** Y-coordinate for positioning the drop indicator */
|
|
22
31
|
indicatorTop: number;
|
|
23
32
|
}
|
|
@@ -14,89 +14,138 @@ import type {
|
|
|
14
14
|
} from "@futurejj/react-native-checkbox";
|
|
15
15
|
import type { DragEndEvent, DropPosition } from "./dragDrop.types";
|
|
16
16
|
|
|
17
|
+
/** The tri-state value of a checkbox: checked, unchecked, or indeterminate */
|
|
17
18
|
export type CheckboxValueType = boolean | "indeterminate";
|
|
18
19
|
|
|
20
|
+
/** Props passed to a custom expand/collapse icon component */
|
|
19
21
|
export interface ExpandIconProps {
|
|
22
|
+
/** Whether the node is currently expanded */
|
|
20
23
|
isExpanded: boolean;
|
|
21
24
|
}
|
|
22
25
|
|
|
26
|
+
/** A single node in the tree data structure */
|
|
23
27
|
export interface TreeNode<ID = string> {
|
|
28
|
+
/** Unique identifier for this node */
|
|
24
29
|
id: ID;
|
|
30
|
+
/** Display name for this node */
|
|
25
31
|
name: string;
|
|
32
|
+
/** Child nodes (omit or empty array for leaf nodes) */
|
|
26
33
|
children?: TreeNode<ID>[];
|
|
34
|
+
/** Additional custom data fields */
|
|
27
35
|
[key: string]: any;
|
|
28
36
|
}
|
|
29
37
|
|
|
38
|
+
/** Internal flattened representation of a tree node with its nesting level */
|
|
30
39
|
export interface __FlattenedTreeNode__<ID = string> extends TreeNode<ID> {
|
|
40
|
+
/** Nesting depth of this node (0 = root level) */
|
|
31
41
|
level?: number;
|
|
32
42
|
}
|
|
33
43
|
|
|
34
|
-
|
|
44
|
+
/** FlashList props available for customization (excludes `data` and `renderItem`) */
|
|
35
45
|
export type TreeFlatListProps<ItemT = any> = Omit<
|
|
36
46
|
FlashListProps<ItemT>,
|
|
37
47
|
"data"
|
|
38
48
|
| "renderItem"
|
|
39
49
|
>;
|
|
40
50
|
|
|
51
|
+
/** Props passed to a custom node row component */
|
|
41
52
|
export interface NodeRowProps<ID = string> {
|
|
53
|
+
/** The tree node to render */
|
|
42
54
|
node: TreeNode<ID>;
|
|
55
|
+
/** Nesting depth of this node (0 = root level) */
|
|
43
56
|
level: number;
|
|
44
57
|
|
|
58
|
+
/** Current checkbox state of this node */
|
|
45
59
|
checkedValue: CheckboxValueType;
|
|
60
|
+
/** Whether this node's children are currently visible */
|
|
46
61
|
isExpanded: boolean;
|
|
47
62
|
|
|
63
|
+
/** Callback to toggle this node's checked state */
|
|
48
64
|
onCheck: () => void;
|
|
65
|
+
/** Callback to toggle this node's expanded/collapsed state */
|
|
49
66
|
onExpand: () => void;
|
|
50
67
|
|
|
68
|
+
/** Whether this node is an invalid drop target during a drag operation */
|
|
51
69
|
isDragTarget?: boolean;
|
|
70
|
+
/** Whether a drag operation is currently in progress */
|
|
52
71
|
isDragging?: boolean;
|
|
72
|
+
/** Whether this node is the one being dragged */
|
|
53
73
|
isDraggedNode?: boolean;
|
|
54
74
|
}
|
|
55
75
|
|
|
76
|
+
/** Customization options for tree item appearance and behavior */
|
|
56
77
|
export interface TreeItemCustomizations<ID> {
|
|
78
|
+
/** Style props for the built-in checkbox view */
|
|
57
79
|
checkBoxViewStyleProps?: BuiltInCheckBoxViewStyleProps;
|
|
58
80
|
|
|
81
|
+
/** Pixels of indentation per nesting level. Default: 15 */
|
|
59
82
|
indentationMultiplier?: number;
|
|
60
83
|
|
|
84
|
+
/** Custom checkbox component replacing the built-in checkbox */
|
|
61
85
|
CheckboxComponent?: React.ComponentType<CheckBoxViewProps>;
|
|
86
|
+
/** Custom expand/collapse icon component */
|
|
62
87
|
ExpandCollapseIconComponent?: React.ComponentType<ExpandIconProps>;
|
|
88
|
+
/** Custom touchable component wrapping the expand/collapse icon */
|
|
63
89
|
ExpandCollapseTouchableComponent?: React.ComponentType<TouchableOpacityProps>;
|
|
64
90
|
|
|
91
|
+
/** Fully custom node row component replacing the entire built-in row */
|
|
65
92
|
CustomNodeRowComponent?: React.ComponentType<NodeRowProps<ID>>;
|
|
66
93
|
}
|
|
67
94
|
|
|
95
|
+
/** Internal props for a single node in the list (extends TreeItemCustomizations) */
|
|
68
96
|
export interface NodeProps<ID> extends TreeItemCustomizations<ID> {
|
|
97
|
+
/** The flattened tree node data */
|
|
69
98
|
node: __FlattenedTreeNode__<ID>;
|
|
99
|
+
/** Nesting depth of this node */
|
|
70
100
|
level: number;
|
|
101
|
+
/** Internal store identifier */
|
|
71
102
|
storeId: string;
|
|
72
103
|
|
|
104
|
+
/** Index of this node in the flattened list */
|
|
73
105
|
nodeIndex?: number;
|
|
106
|
+
/** Whether drag-and-drop is enabled */
|
|
74
107
|
dragEnabled?: boolean;
|
|
108
|
+
/** Whether a drag operation is currently in progress */
|
|
75
109
|
isDragging?: boolean;
|
|
110
|
+
/** Callback when a touch starts on this node (used for drag initiation) */
|
|
76
111
|
onNodeTouchStart?: (
|
|
77
112
|
nodeId: ID,
|
|
78
113
|
pageY: number,
|
|
79
114
|
locationY: number,
|
|
80
115
|
nodeIndex: number
|
|
81
116
|
) => void;
|
|
117
|
+
/** Callback when a touch ends on this node */
|
|
82
118
|
onNodeTouchEnd?: () => void;
|
|
119
|
+
/** Long press duration in ms to start drag */
|
|
83
120
|
longPressDuration?: number;
|
|
121
|
+
/** Callback reporting this node's measured height */
|
|
84
122
|
onItemLayout?: (height: number) => void;
|
|
123
|
+
/** Customizations for drag-and-drop visuals */
|
|
85
124
|
dragDropCustomizations?: DragDropCustomizations<ID>;
|
|
86
125
|
}
|
|
87
126
|
|
|
127
|
+
/** Props for the NodeList component that renders the flattened tree */
|
|
88
128
|
export interface NodeListProps<ID> extends TreeItemCustomizations<ID> {
|
|
129
|
+
/** Additional props passed to the underlying FlashList */
|
|
89
130
|
treeFlashListProps?: TreeFlatListProps;
|
|
90
131
|
|
|
132
|
+
/** Ref for programmatic scroll-to-node functionality */
|
|
91
133
|
scrollToNodeHandlerRef: React.RefObject<ScrollToNodeHandlerRef<ID>>;
|
|
134
|
+
/** Node ID to scroll to on initial render */
|
|
92
135
|
initialScrollNodeID?: ID;
|
|
93
136
|
|
|
137
|
+
/** Internal store identifier */
|
|
94
138
|
storeId: string;
|
|
95
139
|
|
|
140
|
+
/** Enable drag-and-drop reordering */
|
|
96
141
|
dragEnabled?: boolean;
|
|
142
|
+
/** Callback fired after a node is dropped at a new position */
|
|
97
143
|
onDragEnd?: (event: DragEndEvent<ID>) => void;
|
|
144
|
+
/** Long press duration in ms to start drag. Default: 400 */
|
|
98
145
|
longPressDuration?: number;
|
|
146
|
+
/** Distance from edge (px) to trigger auto-scroll during drag. Default: 60 */
|
|
99
147
|
autoScrollThreshold?: number;
|
|
148
|
+
/** Speed multiplier for auto-scroll during drag. Default: 1.0 */
|
|
100
149
|
autoScrollSpeed?: number;
|
|
101
150
|
/** Offset of the dragged overlay from the finger, in item-height units. Default: -1 (one item above finger) */
|
|
102
151
|
dragOverlayOffset?: number;
|
|
@@ -106,18 +155,25 @@ export interface NodeListProps<ID> extends TreeItemCustomizations<ID> {
|
|
|
106
155
|
dragDropCustomizations?: DragDropCustomizations<ID>;
|
|
107
156
|
}
|
|
108
157
|
|
|
158
|
+
/** Props for the TreeView component */
|
|
109
159
|
export interface TreeViewProps<ID = string> extends Omit<
|
|
110
160
|
NodeListProps<ID>, "storeId" | "scrollToNodeHandlerRef"
|
|
111
161
|
> {
|
|
162
|
+
/** The tree data to render */
|
|
112
163
|
data: TreeNode<ID>[];
|
|
113
164
|
|
|
165
|
+
/** Callback fired when checked nodes change. Receives checked and indeterminate node IDs. */
|
|
114
166
|
onCheck?: (checkedIds: ID[], indeterminateIds: ID[]) => void;
|
|
167
|
+
/** Callback fired when expanded nodes change. Receives all currently expanded node IDs. */
|
|
115
168
|
onExpand?: (expandedIds: ID[]) => void;
|
|
116
169
|
|
|
170
|
+
/** Node IDs that should be checked on initial render */
|
|
117
171
|
preselectedIds?: ID[];
|
|
118
172
|
|
|
173
|
+
/** Node IDs that should be expanded on initial render */
|
|
119
174
|
preExpandedIds?: ID[];
|
|
120
175
|
|
|
176
|
+
/** Controls whether checking a node propagates to its children and/or parents */
|
|
121
177
|
selectionPropagation?: SelectionPropagation;
|
|
122
178
|
|
|
123
179
|
/** Enable drag-and-drop reordering */
|
|
@@ -126,9 +182,9 @@ export interface TreeViewProps<ID = string> extends Omit<
|
|
|
126
182
|
onDragEnd?: (event: DragEndEvent<ID>) => void;
|
|
127
183
|
/** Long press duration in ms to start drag. Default: 400 */
|
|
128
184
|
longPressDuration?: number;
|
|
129
|
-
/** Distance from edge (px) to trigger auto-scroll. Default: 60 */
|
|
185
|
+
/** Distance from edge (px) to trigger auto-scroll during drag. Default: 60 */
|
|
130
186
|
autoScrollThreshold?: number;
|
|
131
|
-
/** Speed multiplier for auto-scroll. Default: 1.0 */
|
|
187
|
+
/** Speed multiplier for auto-scroll during drag. Default: 1.0 */
|
|
132
188
|
autoScrollSpeed?: number;
|
|
133
189
|
/** Offset of the dragged overlay from the finger, in item-height units. Default: -1 (one item above finger) */
|
|
134
190
|
dragOverlayOffset?: number;
|
|
@@ -138,53 +194,80 @@ export interface TreeViewProps<ID = string> extends Omit<
|
|
|
138
194
|
|
|
139
195
|
type CheckboxProps = Omit<_CheckboxProps, "onPress" | "status">;
|
|
140
196
|
|
|
197
|
+
/** Props for the checkbox view component */
|
|
141
198
|
export interface CheckBoxViewProps {
|
|
199
|
+
/** Current checkbox state */
|
|
142
200
|
value: CheckboxValueType;
|
|
201
|
+
/** Callback when the checkbox value changes */
|
|
143
202
|
onValueChange: (value: boolean) => void;
|
|
203
|
+
/** Label text displayed next to the checkbox */
|
|
144
204
|
text: string;
|
|
205
|
+
/** Test ID for testing frameworks */
|
|
145
206
|
testID?: string;
|
|
146
207
|
}
|
|
147
208
|
|
|
209
|
+
/** Style props for customizing the built-in checkbox view */
|
|
148
210
|
export interface BuiltInCheckBoxViewStyleProps {
|
|
149
|
-
|
|
211
|
+
/** Style for the outermost container wrapping the checkbox and text */
|
|
150
212
|
outermostParentViewStyle?: StyleProp<ViewStyle>;
|
|
213
|
+
/** Style for the view wrapping the checkbox itself */
|
|
151
214
|
checkboxParentViewStyle?: StyleProp<ViewStyle>;
|
|
215
|
+
/** Style for the touchable area wrapping the label text */
|
|
152
216
|
textTouchableStyle?: StyleProp<ViewStyle>;
|
|
153
217
|
|
|
154
|
-
|
|
218
|
+
/** Additional props passed to the underlying Checkbox component */
|
|
155
219
|
checkboxProps?: CheckboxProps;
|
|
220
|
+
/** Props passed to the label Text component */
|
|
156
221
|
textProps?: TextProps;
|
|
157
222
|
}
|
|
158
223
|
|
|
224
|
+
/** Combined props for the built-in checkbox view (CheckBoxViewProps + style props) */
|
|
159
225
|
export type BuiltInCheckBoxViewProps =
|
|
160
226
|
CheckBoxViewProps
|
|
161
227
|
& BuiltInCheckBoxViewStyleProps;
|
|
162
228
|
|
|
229
|
+
/** Ref handle exposed by the TreeView component for imperative operations */
|
|
163
230
|
export interface TreeViewRef<ID = string> {
|
|
231
|
+
/** Select (check) all nodes in the tree */
|
|
164
232
|
selectAll: () => void;
|
|
233
|
+
/** Unselect (uncheck) all nodes in the tree */
|
|
165
234
|
unselectAll: () => void;
|
|
166
235
|
|
|
236
|
+
/** Select all nodes that match the current search filter */
|
|
167
237
|
selectAllFiltered: () => void;
|
|
238
|
+
/** Unselect all nodes that match the current search filter */
|
|
168
239
|
unselectAllFiltered: () => void;
|
|
169
240
|
|
|
241
|
+
/** Expand all nodes in the tree */
|
|
170
242
|
expandAll: () => void;
|
|
243
|
+
/** Collapse all nodes in the tree */
|
|
171
244
|
collapseAll: () => void;
|
|
172
245
|
|
|
246
|
+
/** Expand specific nodes by their IDs */
|
|
173
247
|
expandNodes: (ids: ID[]) => void;
|
|
248
|
+
/** Collapse specific nodes by their IDs */
|
|
174
249
|
collapseNodes: (ids: ID[]) => void;
|
|
175
250
|
|
|
251
|
+
/** Select (check) specific nodes by their IDs */
|
|
176
252
|
selectNodes: (ids: ID[]) => void;
|
|
253
|
+
/** Unselect (uncheck) specific nodes by their IDs */
|
|
177
254
|
unselectNodes: (ids: ID[]) => void;
|
|
178
255
|
|
|
256
|
+
/** Set the search text and optionally specify which node fields to search */
|
|
179
257
|
setSearchText: (searchText: string, searchKeys?: string[]) => void;
|
|
180
258
|
|
|
259
|
+
/** Programmatically scroll to a specific node by its ID */
|
|
181
260
|
scrollToNodeID: (scrollToNodeParams: ScrollToNodeParams<ID>) => void;
|
|
182
261
|
|
|
262
|
+
/** Get a map of child node IDs to their parent node IDs */
|
|
183
263
|
getChildToParentMap: () => Map<ID, ID>;
|
|
184
264
|
}
|
|
185
265
|
|
|
266
|
+
/** Controls how checkbox selection propagates through the tree hierarchy */
|
|
186
267
|
export interface SelectionPropagation {
|
|
268
|
+
/** Whether checking a parent node automatically checks all its children. Default: true */
|
|
187
269
|
toChildren?: boolean;
|
|
270
|
+
/** Whether checking all children automatically checks their parent. Default: true */
|
|
188
271
|
toParents?: boolean;
|
|
189
272
|
}
|
|
190
273
|
|
|
@@ -238,9 +321,9 @@ export interface DragDropCustomizations<ID = string> {
|
|
|
238
321
|
dropIndicatorStyleProps?: DropIndicatorStyleProps;
|
|
239
322
|
/** Style props for the drag overlay (lifted node ghost) */
|
|
240
323
|
dragOverlayStyleProps?: DragOverlayStyleProps;
|
|
241
|
-
/** Fully custom drop indicator component
|
|
324
|
+
/** Fully custom drop indicator component - replaces the built-in line/highlight */
|
|
242
325
|
CustomDropIndicatorComponent?: React.ComponentType<DropIndicatorComponentProps>;
|
|
243
|
-
/** Fully custom drag overlay component
|
|
326
|
+
/** Fully custom drag overlay component - replaces the built-in ghost node */
|
|
244
327
|
CustomDragOverlayComponent?: React.ComponentType<DragOverlayComponentProps<ID>>;
|
|
245
328
|
}
|
|
246
329
|
|