@procore/core-react 11.24.4 → 11.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Avatar/Avatar.d.ts +1 -1
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.d.ts +7 -7
- package/dist/AvatarStack/AvatarStack.styles.d.ts +1 -1
- package/dist/AvatarStack/AvatarStack.styles.js +7 -7
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/Banner/Banner.styles.js +10 -10
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Button/Button.styles.js +5 -5
- package/dist/Calendar/Calendar.d.ts +1 -1
- package/dist/Calendar/Calendar.styles.js +8 -8
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.d.ts +1 -1
- package/dist/Checkbox/Checkbox.js +26 -6
- package/dist/Checkbox/Checkbox.js.map +1 -1
- package/dist/Checkbox/Checkbox.styles.d.ts +6 -2
- package/dist/Checkbox/Checkbox.styles.js +21 -17
- package/dist/Checkbox/Checkbox.styles.js.map +1 -1
- package/dist/Checkbox/Checkbox.types.d.ts +10 -0
- package/dist/Checkbox/Checkbox.types.js.map +1 -1
- package/dist/ContactItem/ContactItem.styles.d.ts +1 -1
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/Content/Content.d.ts +3 -3
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.styles.js +6 -6
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.d.ts +2 -2
- package/dist/DropdownFlyout/DropdownFlyout.helpers.d.ts +1 -1
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
- package/dist/Dropzone/Dropzone.d.ts +2 -2
- package/dist/Dropzone/Dropzone.js +1 -1
- package/dist/Dropzone/Dropzone.styles.js +9 -9
- package/dist/EmptyState/EmptyState.styles.js +6 -6
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.d.ts +1 -1
- package/dist/FileList/FileList.styles.js +4 -4
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.d.ts +2 -2
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.d.ts +2 -2
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.js +4 -4
- package/dist/FilterToken/FilterToken.styles.js +2 -2
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.d.ts +72 -72
- package/dist/Form/Form.js +67 -35
- package/dist/Form/Form.js.map +1 -1
- package/dist/Form/Form.styles.d.ts +8 -4
- package/dist/Form/Form.styles.js +49 -35
- package/dist/Form/Form.styles.js.map +1 -1
- package/dist/Form/Form.types.d.ts +28 -1
- package/dist/Form/Form.types.js.map +1 -1
- package/dist/Form/FormFieldTooltip.d.ts +4 -0
- package/dist/Form/FormFieldTooltip.js +18 -0
- package/dist/Form/FormFieldTooltip.js.map +1 -0
- package/dist/Form/stories/util.d.ts +5 -3
- package/dist/Form/stories/util.js +61 -17
- package/dist/Form/stories/util.js.map +1 -1
- package/dist/Grid/Grid.d.ts +1 -1
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/Input/Input.styles.js +1 -1
- package/dist/Link/Link.styles.js +1 -1
- package/dist/ListPage/ListPage.styles.js +8 -8
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/Menu/Menu.d.ts +4 -4
- package/dist/MenuImperative/MenuImperative.d.ts +3 -3
- package/dist/MenuImperative/MenuImperative.styles.js +10 -10
- package/dist/Modal/ChildRegistry.context.d.ts +1 -1
- package/dist/Modal/Modal.d.ts +1 -1
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/Modal/storyHelpers.d.ts +2 -2
- package/dist/MultiSelect/MultiSelect.styles.js +6 -6
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/NextTile/NextTile.d.ts +1 -1
- package/dist/Notation/Notation.js +1 -1
- package/dist/NumberInput/NumberInput.styles.js +7 -7
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/OverlayTrigger/OverlayTrigger.d.ts +1 -1
- package/dist/OverlayTrigger/OverlayTrigger.js +9 -3
- package/dist/OverlayTrigger/OverlayTrigger.js.map +1 -1
- package/dist/OverlayTrigger/OverlayTrigger.types.d.ts +2 -1
- package/dist/OverlayTrigger/OverlayTrigger.types.js.map +1 -1
- package/dist/OverlayTrigger/a11yPresets.d.ts +48 -48
- package/dist/PageLayout/PageLayout.d.ts +1 -1
- package/dist/PageLayout/PageLayout.styles.js +13 -13
- package/dist/Pagination/Pagination.styles.js +5 -5
- package/dist/Panel/Panel.styles.js +11 -11
- package/dist/Pill/Pill.styles.js +2 -2
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.d.ts +1 -1
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/ProgressBar/ProgressBar.styles.js +2 -2
- package/dist/RadioButton/RadioButton.styles.js +3 -3
- package/dist/Required/Required.styles.js +6 -4
- package/dist/Required/Required.styles.js.map +1 -1
- package/dist/Search/Search.styles.js +5 -5
- package/dist/Section/Section.d.ts +2 -2
- package/dist/Section/Section.styles.js +6 -6
- package/dist/SegmentedController/SegmentedController.d.ts +2 -2
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.js +3 -1
- package/dist/Select/Select.js.map +1 -1
- package/dist/Select/Select.styles.js +7 -7
- package/dist/Select/Select.types.d.ts +3 -2
- package/dist/Select/Select.types.js.map +1 -1
- package/dist/Semantic/Semantic.styles.d.ts +1 -1
- package/dist/Semantic/Semantic.styles.js +8 -8
- package/dist/Sidebar/Sidebar.styles.js +7 -7
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SuperSelect/SuperSelect.components.d.ts +29 -29
- package/dist/SuperSelect/SuperSelect.d.ts +29 -29
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.js +37 -37
- package/dist/SuperSelect/useSuperSelect.d.ts +87 -87
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.styles.js +28 -28
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.d.ts +1 -1
- package/dist/Tabs/Tabs.styles.js +8 -8
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/TextEditor/TextEditor.d.ts +3 -3
- package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.d.ts +3 -3
- package/dist/Thumbnail/Thumbnail.hooks.d.ts +226 -210
- package/dist/Thumbnail/Thumbnail.styles.js +17 -17
- package/dist/Thumbnail/ThumbnailCaption.d.ts +2 -2
- package/dist/Thumbnail/ThumbnailDocumentIcon.d.ts +2 -2
- package/dist/Thumbnail/ThumbnailPreview.d.ts +2 -2
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.d.ts +2 -2
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- package/dist/TieredSelect/TieredSelect.styles.d.ts +1 -1
- package/dist/TieredSelect/TieredSelect.styles.js +9 -9
- package/dist/Tile/Tile.styles.js +8 -8
- package/dist/Title/Title.styles.js +7 -7
- package/dist/Toast/Toast.styles.js +3 -3
- package/dist/ToggleButton/ToggleButton.styles.js +1 -1
- package/dist/Token/Token.styles.js +3 -3
- package/dist/ToolHeader/ActionIcon.d.ts +2 -2
- package/dist/ToolHeader/ToolHeader.d.ts +2 -2
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/Tooltip/Tooltip.styles.js +2 -2
- package/dist/Tree/Tree.hooks.js +58 -36
- package/dist/Tree/Tree.hooks.js.map +1 -1
- package/dist/Tree/Tree.js +1 -1
- package/dist/Tree/Tree.js.map +1 -1
- package/dist/Tree/Tree.styles.js +9 -9
- package/dist/Tree/Tree.types.d.ts +7 -3
- package/dist/Tree/Tree.types.js.map +1 -1
- package/dist/Typeahead/Typeahead.styles.js +3 -3
- package/dist/Typography/Typography.colors.story.d.ts +2 -2
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.d.ts +2 -2
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_hooks/Analytics.d.ts +1 -1
- package/dist/_hooks/Anchor.d.ts +1 -1
- package/dist/_hooks/BoundingRect.d.ts +1 -1
- package/dist/_hooks/Buffer.d.ts +1 -1
- package/dist/_hooks/ClickOutside.d.ts +3 -2
- package/dist/_hooks/ClickOutside.js +8 -3
- package/dist/_hooks/ClickOutside.js.map +1 -1
- package/dist/_hooks/DateTime/DateTime.d.ts +1 -1
- package/dist/_hooks/DelayedToggle.d.ts +1 -1
- package/dist/_hooks/Event.d.ts +1 -1
- package/dist/_hooks/EventListener.js +14 -4
- package/dist/_hooks/EventListener.js.map +1 -1
- package/dist/_hooks/I18n.d.ts +387 -2
- package/dist/_hooks/InjectedScript.d.ts +1 -1
- package/dist/_hooks/ListNavigation.d.ts +1 -1
- package/dist/_hooks/TextEntry.d.ts +1 -1
- package/dist/_hooks/Timer.d.ts +1 -1
- package/dist/_hooks/Trigger.d.ts +1 -1
- package/dist/_hooks/Visibility.d.ts +1 -1
- package/dist/_hooks/ZIndex.d.ts +1 -1
- package/dist/_hooks/__tests__/EventListener.test.js +46 -0
- package/dist/_hooks/useSet.js +3 -3
- package/dist/_hooks/useSet.js.map +1 -1
- package/dist/_locales/de-DE.json +3 -1
- package/dist/_locales/en-AU.json +3 -1
- package/dist/_locales/en-CA.json +3 -1
- package/dist/_locales/en-GB.json +3 -1
- package/dist/_locales/en.json +3 -1
- package/dist/_locales/es-ES.json +3 -1
- package/dist/_locales/es.json +3 -1
- package/dist/_locales/fr-CA.json +3 -1
- package/dist/_locales/fr-FR.json +3 -1
- package/dist/_locales/is-IS.json +3 -1
- package/dist/_locales/ja-JP.json +360 -1
- package/dist/_locales/pt-BR.json +3 -1
- package/dist/_locales/th-TH.json +3 -1
- package/dist/_locales/zh-SG.json +3 -1
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +23 -23
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +13 -13
- package/dist/_typedoc/Box/Box.types.json +68 -68
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
- package/dist/_typedoc/Button/Button.types.json +11 -11
- package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
- package/dist/_typedoc/Card/Card.types.json +6 -6
- package/dist/_typedoc/Checkbox/Checkbox.types.json +27 -7
- package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
- package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
- package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
- package/dist/_typedoc/DetailPage/DetailPage.types.json +4 -4
- package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +29 -29
- package/dist/_typedoc/Dropzone/Dropzone.types.json +41 -41
- package/dist/_typedoc/EmptyState/EmptyState.types.json +14 -14
- package/dist/_typedoc/FileList/FileList.types.json +9 -9
- package/dist/_typedoc/FileSelect/FileSelect.types.json +26 -26
- package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
- package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
- package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +11 -11
- package/dist/_typedoc/Flex/Flex.types.json +27 -27
- package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
- package/dist/_typedoc/Form/Form.types.json +980 -700
- package/dist/_typedoc/Grid/Grid.types.json +8 -8
- package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +4 -4
- package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
- package/dist/_typedoc/Menu/Menu.types.json +62 -62
- package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
- package/dist/_typedoc/Modal/Modal.types.json +41 -41
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +38 -38
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +40 -30
- package/dist/_typedoc/PageLayout/PageLayout.types.json +22 -22
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +27 -27
- package/dist/_typedoc/Pill/Pill.types.json +2 -2
- package/dist/_typedoc/PillSelect/PillSelect.types.json +56 -46
- package/dist/_typedoc/Popover/Popover.types.json +14 -14
- package/dist/_typedoc/ProgressBar/ProgressBar.types.json +6 -6
- package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
- package/dist/_typedoc/Required/Required.types.json +5 -5
- package/dist/_typedoc/Search/Search.types.json +18 -18
- package/dist/_typedoc/Section/Section.types.json +14 -14
- package/dist/_typedoc/SegmentedController/SegmentedController.types.json +20 -20
- package/dist/_typedoc/Select/Select.types.json +75 -55
- package/dist/_typedoc/Slider/Slider.types.json +6 -6
- package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
- package/dist/_typedoc/Switch/Switch.types.json +3 -3
- package/dist/_typedoc/Table/Table.types.json +106 -96
- package/dist/_typedoc/Tabs/Tabs.types.json +17 -17
- package/dist/_typedoc/Tearsheet/Tearsheet.types.json +16 -16
- package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
- package/dist/_typedoc/TextEditor/TextEditor.types.json +9 -9
- package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
- package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
- package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +42 -42
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
- package/dist/_typedoc/Tile/Tile.types.json +30 -30
- package/dist/_typedoc/Toast/Toast.types.json +4 -4
- package/dist/_typedoc/ToggleButton/ToggleButton.types.json +3 -3
- package/dist/_typedoc/Token/Token.types.json +4 -4
- package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
- package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
- package/dist/_typedoc/Tree/Tree.types.json +94 -94
- package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
- package/dist/_typedoc/Typography/Typography.types.json +8 -8
- package/dist/_typedoc/_utils/types.json +3 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.hooks.js","names":["_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","Array","from","test","isArray","len","arr2","React","useListNavigation","useSet","isRootNode","useTree","_ref","rootNodes","expanded","selected","selectionLimit","onSelect","multiple","autoExpandParent","getChildren","getParentId","onCollapse","onExpand","getNodes","useCallback","nodes","node","concat","reduce","useMemo","map","el","flat","getNodeById","nodeId","find","item","id","_useSet","isLoading","has","startLoading","add","stopLoading","remove","handleExpand","_ref2","_callee","_callee$","_context","_x","handleCollapse","getExpandedIds","nodeIds","currentNode","parentId","rootNode","expandedIds","filter","includes","_useSet2","initialValue","Set","onAdd","onRemove","isExpanded","toggleExpanded","toggle","setExpanded","setCollection","handleChange","selectedNodes","_useSet3","onChange","selectedIds","collection","isSelected","addSelected","removeSelected","setSelected","toggleSingleSelected","toggleSelected","size","toggleSelection","handleSelection","listNavigation","circular","initialIndex","getSelectableItems","visibleNodes","visibleItems","items","getChildrenNodes","level","children","_objectSpread","acc","curr","nodesTree","highlight","index","findIndex","visibleNode","set","useEffect","setSize","isHighlighted","highlightedNode","handleExpansion","isFileLimitReached"],"sources":["../../src/Tree/Tree.hooks.ts"],"sourcesContent":["import React from 'react'\nimport { useListNavigation } from '../_hooks/ListNavigation'\nimport { useSet } from '../_hooks/useSet'\nimport { isRootNode } from './Tree'\nimport type { LevelWise, Node, UseTreeProps } from './Tree.types'\n\nexport function useTree<T extends Node = Node>({\n rootNodes,\n expanded,\n selected,\n selectionLimit,\n onSelect,\n multiple,\n autoExpandParent,\n getChildren,\n getParentId,\n onCollapse,\n onExpand,\n}: UseTreeProps<T>) {\n type VisibleNode = T & LevelWise\n type TreeNode = VisibleNode & {\n items?: (TreeNode | VisibleNode)[]\n }\n\n const getNodes = React.useCallback(\n (nodes: T[], node: T): T[] => {\n return [...nodes, node, ...getChildren(node).reduce(getNodes, [])]\n },\n [getChildren]\n )\n\n const nodes = React.useMemo(() => {\n return rootNodes.map((el: T) => getNodes([], el)).flat()\n }, [rootNodes, getNodes])\n\n const getNodeById = React.useCallback(\n (nodeId: T['id']): T =>\n nodes.find((item: T) => {\n return item.id === nodeId\n }) as T,\n [nodes]\n )\n\n const {\n has: isLoading,\n add: startLoading,\n remove: stopLoading,\n } = useSet<T['id']>()\n\n const handleExpand = React.useCallback(\n async (nodeId: T['id']) => {\n try {\n startLoading(nodeId)\n await onExpand(getNodeById(nodeId))\n } finally {\n stopLoading(nodeId)\n }\n },\n [getNodeById, onExpand, startLoading, stopLoading]\n )\n\n const handleCollapse = React.useCallback(\n (nodeId: T['id']) => onCollapse(getNodeById(nodeId)),\n [getNodeById, onCollapse]\n )\n\n const getExpandedIds: (nodeIds: T['id'][], currentNode: T) => T['id'][] =\n React.useCallback(\n (nodeIds, currentNode) => {\n const parentId = getParentId(currentNode)\n if (\n rootNodes.find((rootNode) => parentId === rootNode.id) ||\n isRootNode(parentId)\n ) {\n return [...nodeIds, currentNode.id, parentId]\n } else {\n return getExpandedIds(\n [...nodeIds, currentNode.id],\n getNodeById(parentId)\n )\n }\n },\n [getNodeById, getParentId, rootNodes]\n )\n\n const expandedIds = React.useMemo(() => {\n if (autoExpandParent) {\n return nodes\n .filter((node) => expanded.concat(selected).includes(node.id))\n .reduce(getExpandedIds, [])\n }\n return expanded\n }, [autoExpandParent, expanded, getExpandedIds, nodes, selected])\n\n const {\n has: isExpanded,\n toggle: toggleExpanded,\n setCollection: setExpanded,\n } = useSet<T['id']>({\n initialValue: new Set(expandedIds),\n onAdd: handleExpand,\n onRemove: handleCollapse,\n })\n\n const handleChange = React.useCallback(\n (selectedNodes: Set<T['id']>) =>\n onSelect(Array.from(selectedNodes).map(getNodeById)),\n [getNodeById, onSelect]\n )\n\n const {\n collection: selectedIds,\n has: isSelected,\n add: addSelected,\n remove: removeSelected,\n setCollection: setSelected,\n } = useSet<T['id']>({\n initialValue: new Set(selected),\n onChange: handleChange,\n })\n\n const toggleSingleSelected = React.useCallback(\n (nodeId: T['id']) => {\n setSelected(new Set([nodeId]))\n },\n [setSelected]\n )\n\n const toggleSelected = React.useCallback(\n (nodeId: T['id']) => {\n if (!isSelected(nodeId)) {\n if (selectedIds.size < selectionLimit) {\n addSelected(nodeId)\n }\n } else {\n removeSelected(nodeId)\n }\n },\n [addSelected, isSelected, removeSelected, selectedIds.size, selectionLimit]\n )\n\n const toggleSelection = React.useMemo(\n () => (multiple ? toggleSelected : toggleSingleSelected),\n [multiple, toggleSelected, toggleSingleSelected]\n )\n\n const handleSelection = React.useCallback(\n (node: T) => toggleSelection(node.id),\n [toggleSelection]\n )\n\n const listNavigation = useListNavigation({\n circular: false,\n initialIndex: 0,\n size: 0,\n })\n\n const getSelectableItems = React.useCallback(\n (visibleNodes: TreeNode[], node: TreeNode): TreeNode[] => {\n const visibleItems =\n isExpanded(node.id) && !isLoading(node.id) && node.items\n ? node.items.reduce(getSelectableItems, [])\n : []\n return [...visibleNodes, node, ...visibleItems]\n },\n [isExpanded, isLoading]\n )\n\n const getChildrenNodes = React.useCallback(\n (nodes: TreeNode[], node: T, level: number): TreeNode[] => {\n const children = getChildren(node)\n\n if (children.length > 0) {\n return [\n ...nodes,\n {\n ...node,\n level,\n items: children.reduce(\n (acc, curr) => getChildrenNodes(acc, curr, level + 1),\n [] as TreeNode[]\n ),\n },\n ]\n } else {\n return [...nodes, { ...node, level }]\n }\n },\n [getChildren]\n )\n\n const nodesTree = React.useMemo(\n () =>\n Array.isArray(rootNodes)\n ? rootNodes.map((el: T) => getChildrenNodes([], el, 0)).flat()\n : [],\n [rootNodes, getChildrenNodes]\n )\n\n const visibleNodes = React.useMemo(\n () => nodesTree.reduce(getSelectableItems, []),\n [getSelectableItems, nodesTree]\n )\n\n const highlight = React.useCallback(\n (node: T) => {\n const index = visibleNodes.findIndex(\n (visibleNode: T) => visibleNode.id === node.id\n )\n if (index !== -1) {\n listNavigation.set(index)\n }\n },\n [listNavigation, visibleNodes]\n )\n\n React.useEffect(() => {\n listNavigation.setSize(visibleNodes.length)\n }, [listNavigation, visibleNodes.length])\n\n const isHighlighted = React.useCallback(\n (node: T) =>\n visibleNodes[listNavigation.index] &&\n visibleNodes[listNavigation.index].id === node.id,\n [listNavigation.index, visibleNodes]\n )\n\n const highlightedNode = React.useMemo(() => {\n return visibleNodes[listNavigation.index]\n }, [listNavigation.index, visibleNodes])\n\n return {\n nodes: visibleNodes,\n isExpanded: React.useCallback(\n (node: T) => isExpanded(node.id),\n [isExpanded]\n ),\n isSelected: React.useCallback(\n (node: T) => isSelected(node.id),\n [isSelected]\n ),\n isLoading: React.useCallback((node: T) => isLoading(node.id), [isLoading]),\n highlightedNode,\n isHighlighted,\n highlight,\n handleSelection,\n handleExpansion: React.useCallback(\n (node: T) => toggleExpanded(node.id),\n [toggleExpanded]\n ),\n setSelected,\n setExpanded,\n isFileLimitReached: selectedIds.size >= selectionLimit,\n listNavigation,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tree.hooks.js","names":["_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","Array","from","test","isArray","len","arr2","React","useListNavigation","useSet","isRootNode","useTree","_ref","rootNodes","expanded","selected","selectionLimit","onSelect","multiple","autoExpandParent","getChildren","getParentId","onCollapse","onExpand","getNodes","useCallback","nodes","node","concat","reduce","useMemo","map","el","flat","getNodeById","nodeId","find","item","id","_useSet","isLoading","has","startLoading","add","stopLoading","remove","handleChange","selectedNodes","_useSet2","initialValue","Set","onChange","selectedIds","collection","isSelected","addSelected","removeSelected","setSelected","setCollection","toggleSingleSelected","toggleSelected","size","toggleSelection","handleSelection","useEffect","filter","includes","handleExpand","_ref2","_callee","_callee$","_context","_x","handleCollapse","getExpandedIds","nodeIds","currentNode","parentId","rootNode","expandedIds","_useSet3","onAdd","onRemove","addExpanded","isExpanded","toggleExpanded","toggle","setExpanded","listNavigation","circular","initialIndex","getSelectableItems","visibleNodes","visibleItems","items","getChildrenNodes","level","children","_objectSpread","acc","curr","nodesTree","highlight","index","findIndex","visibleNode","set","setSize","isHighlighted","highlightedNode","handleExpansion","isFileLimitReached"],"sources":["../../src/Tree/Tree.hooks.ts"],"sourcesContent":["import React from 'react'\nimport { useListNavigation } from '../_hooks/ListNavigation'\nimport { useSet } from '../_hooks/useSet'\nimport { isRootNode } from './Tree'\nimport type { LevelWise, Node, UseTreeProps } from './Tree.types'\n\nexport function useTree<T extends Node = Node>({\n rootNodes,\n expanded,\n selected,\n selectionLimit,\n onSelect,\n multiple,\n autoExpandParent,\n getChildren,\n getParentId,\n onCollapse,\n onExpand,\n}: UseTreeProps<T>) {\n type VisibleNode = T & LevelWise\n type TreeNode = VisibleNode & {\n items?: (TreeNode | VisibleNode)[]\n }\n\n const getNodes = React.useCallback(\n (nodes: T[], node: T): T[] => {\n return [...nodes, node, ...getChildren(node).reduce(getNodes, [])]\n },\n [getChildren]\n )\n\n const nodes = React.useMemo(() => {\n return rootNodes.map((el: T) => getNodes([], el)).flat()\n }, [rootNodes, getNodes])\n\n const getNodeById = React.useCallback(\n (nodeId: T['id']): T =>\n nodes.find((item: T) => {\n return item.id === nodeId\n }) as T,\n [nodes]\n )\n\n const {\n has: isLoading,\n add: startLoading,\n remove: stopLoading,\n } = useSet<T['id']>()\n\n const handleChange = React.useCallback(\n (selectedNodes: Set<T['id']>) =>\n onSelect(Array.from(selectedNodes).map(getNodeById)),\n [getNodeById, onSelect]\n )\n\n const {\n collection: selectedIds,\n has: isSelected,\n add: addSelected,\n remove: removeSelected,\n setCollection: setSelected,\n } = useSet<T['id']>({\n initialValue: new Set(selected),\n onChange: handleChange,\n })\n\n const toggleSingleSelected = React.useCallback(\n (nodeId: T['id']) => {\n setSelected(new Set([nodeId]))\n },\n [setSelected]\n )\n\n const toggleSelected = React.useCallback(\n (nodeId: T['id']) => {\n if (!isSelected(nodeId)) {\n if (selectedIds.size < selectionLimit) {\n addSelected(nodeId)\n }\n } else {\n removeSelected(nodeId)\n }\n },\n [addSelected, isSelected, removeSelected, selectedIds.size, selectionLimit]\n )\n\n const toggleSelection = React.useMemo(\n () => (multiple ? toggleSelected : toggleSingleSelected),\n [multiple, toggleSelected, toggleSingleSelected]\n )\n\n const handleSelection = React.useCallback(\n (node: T) => toggleSelection(node.id),\n [toggleSelection]\n )\n\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(() => {\n Array.from(selectedIds)\n .filter((id) => !selected.includes(id))\n .forEach(removeSelected)\n selected.filter((id) => !isSelected(id)).forEach(addSelected)\n }, [selected])\n /* eslint-enable react-hooks/exhaustive-deps */\n\n const handleExpand = React.useCallback(\n async (nodeId: T['id']) => {\n try {\n startLoading(nodeId)\n await onExpand(getNodeById(nodeId))\n } finally {\n stopLoading(nodeId)\n }\n },\n [getNodeById, onExpand, startLoading, stopLoading]\n )\n\n const handleCollapse = React.useCallback(\n (nodeId: T['id']) => onCollapse(getNodeById(nodeId)),\n [getNodeById, onCollapse]\n )\n\n const getExpandedIds: (nodeIds: T['id'][], currentNode: T) => T['id'][] =\n React.useCallback(\n (nodeIds, currentNode) => {\n const parentId = getParentId(currentNode)\n if (\n rootNodes.find((rootNode) => parentId === rootNode.id) ||\n isRootNode(parentId)\n ) {\n return [...nodeIds, currentNode.id, parentId]\n } else {\n return getExpandedIds(\n [...nodeIds, currentNode.id],\n getNodeById(parentId)\n )\n }\n },\n [getNodeById, getParentId, rootNodes]\n )\n\n const expandedIds = React.useMemo(() => {\n if (autoExpandParent) {\n return nodes\n .filter((node) =>\n expanded.concat(Array.from(selectedIds)).includes(node.id)\n )\n .reduce(getExpandedIds, [])\n }\n return expanded\n }, [autoExpandParent, expanded, getExpandedIds, nodes, selectedIds])\n\n const {\n add: addExpanded,\n has: isExpanded,\n toggle: toggleExpanded,\n setCollection: setExpanded,\n } = useSet<T['id']>({\n initialValue: new Set(expandedIds),\n onAdd: handleExpand,\n onRemove: handleCollapse,\n })\n\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(() => {\n expandedIds.filter((id) => !isExpanded(id)).forEach(addExpanded)\n }, [expandedIds])\n /* eslint-enable react-hooks/exhaustive-deps */\n\n const listNavigation = useListNavigation({\n circular: false,\n initialIndex: 0,\n size: 0,\n })\n\n const getSelectableItems = React.useCallback(\n (visibleNodes: TreeNode[], node: TreeNode): TreeNode[] => {\n const visibleItems =\n isExpanded(node.id) && !isLoading(node.id) && node.items\n ? node.items.reduce(getSelectableItems, [])\n : []\n return [...visibleNodes, node, ...visibleItems]\n },\n [isExpanded, isLoading]\n )\n\n const getChildrenNodes = React.useCallback(\n (nodes: TreeNode[], node: T, level: number): TreeNode[] => {\n const children = getChildren(node)\n\n if (children.length > 0) {\n return [\n ...nodes,\n {\n ...node,\n level,\n items: children.reduce(\n (acc, curr) => getChildrenNodes(acc, curr, level + 1),\n [] as TreeNode[]\n ),\n },\n ]\n } else {\n return [...nodes, { ...node, level }]\n }\n },\n [getChildren]\n )\n\n const nodesTree = React.useMemo(\n () =>\n Array.isArray(rootNodes)\n ? rootNodes.map((el: T) => getChildrenNodes([], el, 0)).flat()\n : [],\n [rootNodes, getChildrenNodes]\n )\n\n const visibleNodes = React.useMemo(\n () => nodesTree.reduce(getSelectableItems, []),\n [getSelectableItems, nodesTree]\n )\n\n const highlight = React.useCallback(\n (node: T) => {\n const index = visibleNodes.findIndex(\n (visibleNode: T) => visibleNode.id === node.id\n )\n if (index !== -1) {\n listNavigation.set(index)\n }\n },\n [listNavigation, visibleNodes]\n )\n\n React.useEffect(() => {\n listNavigation.setSize(visibleNodes.length)\n }, [listNavigation, visibleNodes.length])\n\n const isHighlighted = React.useCallback(\n (node: T) =>\n visibleNodes[listNavigation.index] &&\n visibleNodes[listNavigation.index].id === node.id,\n [listNavigation.index, visibleNodes]\n )\n\n const highlightedNode = React.useMemo(() => {\n return visibleNodes[listNavigation.index]\n }, [listNavigation.index, visibleNodes])\n\n return {\n nodes: visibleNodes,\n isExpanded: React.useCallback(\n (node: T) => isExpanded(node.id),\n [isExpanded]\n ),\n isSelected: React.useCallback(\n (node: T) => isSelected(node.id),\n [isSelected]\n ),\n isLoading: React.useCallback((node: T) => isLoading(node.id), [isLoading]),\n highlightedNode,\n isHighlighted,\n highlight,\n handleSelection,\n handleExpansion: React.useCallback(\n (node: T) => toggleExpanded(node.id),\n [toggleExpanded]\n ),\n setSelected,\n setExpanded,\n isFileLimitReached: selectedIds.size >= selectionLimit,\n listNavigation,\n }\n}\n"],"mappings":"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"}
|
package/dist/Tree/Tree.js
CHANGED
|
@@ -248,7 +248,7 @@ export var Tree = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
248
248
|
return isTreeFocused && isNodeHighlighted(node);
|
|
249
249
|
}, [isNodeHighlighted, isTreeFocused]);
|
|
250
250
|
var handleAccessibility = function handleAccessibility(e) {
|
|
251
|
-
onKeyDown
|
|
251
|
+
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
|
|
252
252
|
var key = e.key;
|
|
253
253
|
switch (key) {
|
|
254
254
|
case 'Enter':
|
package/dist/Tree/Tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.js","names":["File","Folder","React","areEqual","FixedSizeList","Spinner","Tooltip","useI18nContext","useIntersectionObserver","useResizeObserver","useTimer","useVisibility","parseFilename","mergeRefs","useTree","StyledChevron","StyledChevronContainer","StyledFilenameCaption","StyledIconContainer","StyledTree","StyledTreeRowContainer","StyledTreeRowContent","StyledTreeRowWrapper","spacing","rootSpacing","defaultRowHeight","rowRightPadding","scrollbarWidth","getPadding","level","intersectionThresholds","Array","from","length","map","_","index","tooltipDelay","UNSAFE_treeRootNodeId","defaultIsExpandable","node","defaultGetType","defaultIsSelectable","type","defaultGetParentId","parentId","defaultGetLabel","name","noop","isRootNode","rootValues","undefined","includes","Tree","forwardRef","_ref","ref","options","_ref$expanded","expanded","_ref$selected","selected","_ref$selectionLimit","selectionLimit","Infinity","getRoot_","getRoot","getChildren_","getChildren","getIconBase","getIcon","_ref$getLabel","getLabel","_ref$getParentId","getParentId","getParentId_","_ref$getType","getType","_ref$isExpandable","isExpandable","_ref$isSelectable","isSelectable","_ref$multiple","multiple","_ref$onSelect","onSelect","_ref$onCollapse","onCollapse","_ref$onExpand","onExpand","Promise","resolve","rowRendererBase","rowRenderer","_ref$maxVisibleNodes","maxVisibleNodes","visibleHeight","_ref$autoExpandParent","autoExpandParent","innerElementType","outerElementType","onKeyDown","children","props","_objectWithoutProperties","_excluded","rowHeight","wrapperRef","useRef","listRef","listInnerRef","listOuterRefRef","_React$useState","useState","_React$useState2","_slicedToArray","contentMaxWidth","setContentMaxWidth","useMemo","defaultGetRoot","useCallback","nodes","filter","rootNodes","roots","isArray","useEffect","console","warn","_React$useState3","_React$useState4","isTreeFocused","setIsTreeFocused","_React$useState5","width","height","_React$useState6","containerSize","setContainerSize","handleContainerResize","entries","_ref2","target","clientHeight","clientWidth","setResizeObserverTarget","defaultGetChildren","childNode","id","_useTree","isExpanded","isSelected","isLoading","highlightedNode","isNodeHighlighted","isHighlighted","highlight","handleSelection","handleExpansion","_setExpanded","setExpanded","_setSelected","setSelected","isFileLimitReached","listNavigation","Set","useImperativeHandle","rootEl","current","toggleSelected","toggleExpanded","defaultGetIcon","isFolder","createElement","handleAccessibility","e","key","preventDefault","increment","decrement","_listRef$current","scrollToItem","defaultRowRenderer","TreeRow","_listInnerRef$current","rowContentSizes","childNodes","forEach","child","rowContent","querySelector","_dataset$padding","leftPadding","dataset","padding","push","scrollWidth","parseInt","maxSizeRowContent","Math","max","apply","itemData","treeContainer","error","_extends","tabIndex","onFocus","onBlur","className","min","innerRef","outerRef","itemCount","itemSize","TreeNode","memo","_ref3","_ref3$data","data","_excluded2","style","_React$useState7","_React$useState8","isMouseOver","setMouseOver","timer","_useVisibility","shouldShowTooltip","isVisible","showTooltip","show","hideTooltip","hide","setTimer","onMouseEnter","onMouseLeave","cancel","_objectSpread","_ref4","_excluded3","expanderRef","nodeType","rowLabel","onClick","event","_expanderRef$current","contains","onMouseDown","focus","TreeRowContainer","TreeRowChevron","TreeRowIcon","icon","TreeRowTooltip","fileName","TreeRowName","value","IconContainer","_ref5","_excluded4","$isSelected","_ref6","$isExpanded","_ref7","marginLeft","marginRight","size","_ref8","getSelectionLimitMessage","count","getUnsupportedFileTypeMessage","_parseFilename","extension","isFilename","concat","fileType","toUpperCase","_ref9","isFocused","I18n","rowRef","isUserInteracting","isTooltipVisible","isFile","_React$useState9","_React$useState10","isCropped","setCropped","registerRowEl","entry","rootBounds","left","boundingClientRect","root","rootMargin","threshold","selectionLimitMessage","unsupportedFileTypeMessage","message","trigger","overlay","t","placement","_ref10","_excluded5","paddingLeft"],"sources":["../../src/Tree/Tree.tsx"],"sourcesContent":["import { File, Folder } from '@procore/core-icons/dist'\nimport type { FunctionComponent, PropsWithChildren } from 'react'\nimport React from 'react'\nimport { areEqual, FixedSizeList } from 'react-window'\nimport { Spinner } from '../Spinner/Spinner'\nimport { Tooltip } from '../Tooltip'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useIntersectionObserver } from '../_hooks/IntersectionObserver'\nimport { useResizeObserver } from '../_hooks/ResizeObserver'\nimport { useTimer } from '../_hooks/Timer'\nimport { useVisibility } from '../_hooks/Visibility'\nimport { parseFilename } from '../_utils/filename'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport { useTree } from './Tree.hooks'\nimport {\n StyledChevron,\n StyledChevronContainer,\n StyledFilenameCaption,\n StyledIconContainer,\n StyledTree,\n StyledTreeRowContainer,\n StyledTreeRowContent,\n StyledTreeRowWrapper,\n} from './Tree.styles'\nimport type {\n CustomDataType,\n DefaultNode,\n IconContainerProps,\n Node,\n TreeNodeId,\n TreeNodeProps,\n TreeProps,\n TreeRef,\n TreeRowContainerProps,\n TreeRowProps,\n TreeRowTooltipProps,\n} from './Tree.types'\n\nconst spacing = 32\nconst rootSpacing = 24\nconst defaultRowHeight = 36\n\n// Selected nodes have a bold text, and browsers occasionally miscalculate scrollWidth by one pixel down.\n// That situations might cause an issue when we get a second horizontal scrollbar.\n// This padding serves as compensation to prevent the described issue.\nconst rowRightPadding = 12\n// For most of browsers it usually varies between 12px and 20px.\n// To avoid tricky cross-browser calculations of scrollbar width. The maximum width is used.\nconst scrollbarWidth = 20\n\nfunction getPadding(level: number) {\n return rootSpacing + level * spacing\n}\n\nconst intersectionThresholds = Array.from({ length: 101 }).map(\n (_, index) => index / 100\n)\n\nconst tooltipDelay = 300\n\n// TODO refactor this to not be upper snake case\nexport const UNSAFE_treeRootNodeId = 'ROOT_ID'\n\nconst defaultIsExpandable: NonNullable<TreeProps['isExpandable']> = (\n node: DefaultNode\n) => defaultGetType(node) === 'branch'\nconst defaultIsSelectable: NonNullable<TreeProps['isSelectable']> = (\n node: DefaultNode\n) => node.type === 'leaf'\nconst defaultGetType: NonNullable<TreeProps['getType']> = (node: DefaultNode) =>\n node.type\nconst defaultGetParentId: NonNullable<TreeProps['getParentId']> = (\n node: DefaultNode\n) => node.parentId\nconst defaultGetLabel: NonNullable<TreeProps['getLabel']> = (\n node: DefaultNode\n) => node.name\nfunction noop() {}\n\nexport function isRootNode(parentId: TreeNodeId): boolean {\n const rootValues = [UNSAFE_treeRootNodeId, null, undefined] as TreeNodeId[]\n return rootValues.includes(parentId)\n}\n\n/**\n\n The tree allows users to navigate between folder / file directories,\n and optionally select those files.\n\n @since 10.19.0\n\n @see [Storybook](https://procore.github.io/core/core-react/latest/?path=/story/demos-tree--demo)\n\n @see [Design Guidelines](https://design.procore.com/tree)\n\n */\nexport const Tree = React.forwardRef(\n <T extends Node = Node, P extends CustomDataType<T> = Array<T>>(\n {\n options,\n expanded = [],\n selected = [],\n selectionLimit = Infinity,\n getRoot: getRoot_,\n getChildren: getChildren_,\n getIcon: getIconBase,\n getLabel = defaultGetLabel,\n getParentId: getParentId_ = defaultGetParentId,\n getType = defaultGetType,\n isExpandable = defaultIsExpandable,\n isSelectable = defaultIsSelectable,\n multiple = true,\n onSelect = noop,\n onCollapse = noop,\n onExpand = () => Promise.resolve(),\n rowRenderer: rowRendererBase,\n maxVisibleNodes = Infinity,\n visibleHeight,\n autoExpandParent = true,\n innerElementType,\n outerElementType,\n onKeyDown,\n children,\n ...props\n }: TreeProps<T, P>,\n ref: React.Ref<TreeRef<T>>\n ) => {\n const rowHeight = defaultRowHeight\n const wrapperRef = React.useRef<HTMLDivElement | null>(null)\n const listRef = React.useRef<FixedSizeList>(null)\n const listInnerRef = React.useRef<HTMLDivElement>(null)\n const listOuterRefRef = React.useRef<HTMLDivElement>(null)\n const [contentMaxWidth, setContentMaxWidth] = React.useState(0)\n\n const getParentId = React.useMemo(() => getParentId_, [])\n\n const defaultGetRoot = React.useCallback(\n (nodes: P): T | T[] =>\n nodes.filter((node: T) => {\n return isRootNode(getParentId(node))\n }),\n [getParentId]\n )\n\n const getRoot = React.useMemo(\n () => getRoot_ || defaultGetRoot,\n [defaultGetRoot]\n )\n\n const rootNodes = React.useMemo(() => {\n const roots = getRoot(options)\n return Array.isArray(roots) ? roots : [roots]\n }, [getRoot, options])\n\n React.useEffect(() => {\n if (!rootNodes.length) {\n console.warn(\n 'Tree must have at least one root node. Look up `Tree#getParentId` for details.'\n )\n }\n }, [rootNodes])\n\n const [isTreeFocused, setIsTreeFocused] = React.useState(false)\n const [containerSize, setContainerSize] = React.useState({\n width: 0,\n height: 0,\n })\n\n const handleContainerResize = React.useCallback(\n (entries: ResizeObserverEntry[]) => {\n if (entries[0]) {\n const { clientHeight: height, clientWidth: width } = entries[0]\n .target as HTMLElement\n setContainerSize({ width, height })\n }\n },\n [setContainerSize]\n )\n\n const setResizeObserverTarget = useResizeObserver(handleContainerResize)\n\n const defaultGetChildren = React.useCallback(\n (node: T) =>\n Array.isArray(options)\n ? options.filter((childNode: T) => getParentId(childNode) === node.id)\n : ([] as T[]),\n [getParentId, options]\n )\n\n const getChildren = getChildren_ || defaultGetChildren\n\n const {\n nodes,\n isExpanded,\n isSelected,\n isLoading,\n highlightedNode,\n isHighlighted: isNodeHighlighted,\n highlight,\n handleSelection,\n handleExpansion,\n setExpanded: _setExpanded,\n setSelected: _setSelected,\n isFileLimitReached,\n listNavigation,\n } = useTree<T>({\n rootNodes,\n expanded,\n selected,\n selectionLimit,\n multiple,\n autoExpandParent,\n onSelect,\n onCollapse,\n onExpand,\n getChildren,\n getParentId,\n })\n\n const setSelected = React.useCallback(\n (selected: T | T[]) => {\n const nodes = Array.isArray(selected) ? selected : [selected]\n\n _setSelected(new Set(nodes.map((node) => node.id)))\n },\n [_setSelected]\n )\n\n const setExpanded = React.useCallback(\n (expanded: T | T[]) => {\n const nodes = Array.isArray(expanded) ? expanded : [expanded]\n\n _setExpanded(new Set(nodes.map((node) => node.id)))\n },\n [_setExpanded]\n )\n\n React.useImperativeHandle(ref, () => ({\n rootEl: wrapperRef.current,\n setSelected,\n setExpanded,\n toggleSelected: (node: T) => handleSelection(node),\n toggleExpanded: (node: T) => handleExpansion(node),\n }))\n\n const defaultGetIcon = React.useCallback(\n (node: T): React.ReactNode => {\n const isFolder = getType(node) === 'branch'\n return isFolder ? <Folder /> : <File />\n },\n [getType]\n )\n\n const getIcon = getIconBase || defaultGetIcon\n\n const isHighlighted = React.useCallback(\n (node: T) => isTreeFocused && isNodeHighlighted(node),\n [isNodeHighlighted, isTreeFocused]\n )\n\n const handleAccessibility = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown && onKeyDown(e)\n const { key } = e\n\n switch (key) {\n case 'Enter':\n e.preventDefault()\n isSelectable(highlightedNode) && handleSelection(highlightedNode)\n break\n case 'Space Bar':\n case ' ':\n e.preventDefault()\n isExpandable(highlightedNode) && handleExpansion(highlightedNode)\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n listNavigation.increment()\n break\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n listNavigation.decrement()\n break\n }\n }\n\n React.useEffect(() => {\n if (isTreeFocused) {\n listRef.current?.scrollToItem(listNavigation.index)\n }\n }, [isTreeFocused, listNavigation.index])\n\n const defaultRowRenderer = React.useCallback(\n (props: TreeRowProps) => <TreeRow {...props} />,\n []\n )\n\n React.useEffect(() => {\n const rowContentSizes: number[] = []\n\n const childNodes = Array.from(listInnerRef.current?.childNodes || [])\n childNodes.forEach((child) => {\n const rowContent = (child as HTMLElement).querySelector(\n '[data-row-content]'\n )\n\n if (rowContent) {\n const leftPadding = (child as HTMLElement).dataset.padding ?? '0'\n rowContentSizes.push(\n rowContent.scrollWidth + parseInt(leftPadding, 10) + rowRightPadding\n )\n }\n })\n\n const maxSizeRowContent = Math.max(...rowContentSizes) + scrollbarWidth\n setContentMaxWidth(maxSizeRowContent)\n })\n\n const rowRenderer = rowRendererBase || defaultRowRenderer\n\n const itemData = React.useMemo(\n () => ({\n nodes,\n getIcon,\n getLabel,\n getType,\n isExpandable,\n isSelectable,\n isExpanded,\n isSelected,\n isLoading,\n highlight,\n isHighlighted,\n handleSelection,\n handleExpansion,\n rowRenderer,\n isFileLimitReached,\n selectionLimit,\n isTreeFocused,\n treeContainer: wrapperRef.current as HTMLDivElement,\n }),\n [\n getIcon,\n getLabel,\n getType,\n handleExpansion,\n handleSelection,\n highlight,\n isExpandable,\n isExpanded,\n isFileLimitReached,\n isHighlighted,\n isLoading,\n isSelectable,\n isSelected,\n isTreeFocused,\n nodes,\n rowRenderer,\n selectionLimit,\n ]\n )\n\n if (!rootNodes) {\n console.error('Tree must have a valid root node')\n return null\n }\n\n return (\n <StyledTree\n {...props}\n ref={mergeRefs(wrapperRef, setResizeObserverTarget)}\n tabIndex={0}\n onFocus={() => setIsTreeFocused(true)}\n onBlur={() => setIsTreeFocused(false)}\n onKeyDown={handleAccessibility}\n >\n <FixedSizeList\n className=\"size-list\"\n ref={listRef}\n height={\n visibleHeight ||\n Math.min(nodes.length * rowHeight, rowHeight * maxVisibleNodes)\n }\n innerRef={listInnerRef}\n outerRef={listOuterRefRef}\n itemCount={nodes.length}\n itemSize={rowHeight}\n innerElementType={innerElementType}\n outerElementType={outerElementType}\n itemData={itemData}\n width={Math.max(contentMaxWidth, containerSize.width)}\n >\n {TreeNode}\n </FixedSizeList>\n </StyledTree>\n )\n }\n)\n\nconst TreeNode: React.FC<TreeNodeProps> = React.memo(\n ({\n data: { nodes, rowRenderer, highlight, isTreeFocused, ...props },\n index,\n style,\n }) => {\n const node = nodes[index]\n\n const isHighlighted = props.isHighlighted(node)\n const [isMouseOver, setMouseOver] = React.useState(false)\n\n const timer = useTimer({})\n const {\n isVisible: shouldShowTooltip,\n show: showTooltip,\n hide: hideTooltip,\n } = useVisibility({})\n\n React.useEffect(() => {\n if (isHighlighted && !shouldShowTooltip) {\n timer.setTimer(showTooltip, tooltipDelay)\n }\n\n return () => {\n if (isTreeFocused && !isHighlighted && shouldShowTooltip) {\n hideTooltip()\n }\n }\n })\n\n const onMouseEnter = () => {\n setMouseOver(true)\n if (!shouldShowTooltip) {\n timer.setTimer(showTooltip, tooltipDelay)\n }\n highlight(node)\n }\n\n const onMouseLeave = () => {\n setMouseOver(false)\n timer.cancel()\n hideTooltip()\n }\n\n return (\n <StyledTreeRowWrapper\n tabIndex={-1}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n style={style}\n data-padding={getPadding(node.level)}\n >\n {rowRenderer({\n node,\n shouldShowTooltip,\n isMouseOver,\n ...props,\n })}\n </StyledTreeRowWrapper>\n )\n },\n areEqual\n)\n\nconst TreeRow: React.FC<TreeRowProps> = ({\n node,\n getIcon,\n getLabel,\n handleExpansion,\n handleSelection,\n selectionLimit,\n isFileLimitReached,\n shouldShowTooltip,\n isMouseOver,\n treeContainer,\n ...props\n}) => {\n const expanderRef = React.useRef<HTMLDivElement>(null)\n const isSelected = props.isSelected(node)\n const isSelectable = props.isSelectable(node)\n const isExpandable = props.isExpandable(node)\n const isExpanded = props.isExpanded(node)\n const isLoading = props.isLoading(node)\n const isHighlighted = props.isHighlighted(node)\n const nodeType = props.getType(node)\n const rowLabel = getLabel(node)\n\n const onClick = React.useCallback(\n (event: React.MouseEvent) => {\n if (isSelectable && isExpandable) {\n // @ts-ignore\n expanderRef?.current?.contains(event.target)\n ? handleExpansion(node)\n : handleSelection(node)\n } else if (isSelectable) {\n handleSelection(node)\n } else if (isExpandable) {\n handleExpansion(node)\n }\n },\n [handleExpansion, handleSelection, isExpandable, isSelectable, node]\n )\n\n const onMouseDown = React.useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault()\n treeContainer.focus()\n },\n [treeContainer]\n )\n\n return (\n <TreeRowContainer\n level={node.level}\n onClick={onClick}\n onMouseDown={onMouseDown}\n isSelected={isSelected}\n isSelectable={isSelectable}\n isExpandable={isExpandable}\n isHighlighted={isHighlighted}\n isFileLimitReached={isFileLimitReached}\n data-qa=\"core-tree-row-container\"\n >\n {\n // WARNING!\n // Be aware that this data attribute is used for calculations, changing this data attribute will break its operability.\n }\n <StyledTreeRowContent data-row-content>\n <TreeRowChevron\n ref={expanderRef}\n isExpandable={isExpandable}\n isExpanded={isExpanded}\n />\n <TreeRowIcon\n isLoading={isLoading}\n isSelected={isSelected}\n icon={getIcon(node)}\n />\n <TreeRowTooltip\n isSelected={isSelected}\n isSelectable={isSelectable}\n isHighlighted={isHighlighted}\n selectionLimit={selectionLimit}\n isFileLimitReached={isFileLimitReached}\n shouldShowTooltip={shouldShowTooltip}\n isMouseOver={isMouseOver}\n fileName={rowLabel}\n nodeType={nodeType}\n treeContainer={treeContainer}\n >\n <TreeRowName value={rowLabel} />\n </TreeRowTooltip>\n </StyledTreeRowContent>\n </TreeRowContainer>\n )\n}\n\nconst IconContainer: React.FC<IconContainerProps> = ({\n children,\n isSelected,\n ...props\n}) => (\n <StyledIconContainer $isSelected={isSelected} {...props}>\n {children}\n </StyledIconContainer>\n)\n\nconst TreeRowChevron = React.forwardRef<\n HTMLDivElement,\n {\n isExpanded: boolean\n isExpandable: boolean\n }\n>(({ isExpanded, isExpandable }, ref) => {\n return (\n <StyledChevronContainer ref={ref}>\n {isExpandable ? <StyledChevron $isExpanded={isExpanded} /> : null}\n </StyledChevronContainer>\n )\n})\n\nconst TreeRowIcon: React.FC<{\n isSelected: boolean\n isLoading: boolean\n icon: React.ReactNode\n}> = ({ isSelected, isLoading, icon }) => (\n <IconContainer isSelected={isSelected} marginLeft=\"sm\" marginRight=\"sm\">\n {isLoading ? <Spinner size=\"sm\" /> : icon}\n </IconContainer>\n)\n\nconst TreeRowName: React.FC<{ value: string }> = ({ value }) => (\n <StyledFilenameCaption>{value}</StyledFilenameCaption>\n)\n\nconst getSelectionLimitMessage = (selectionLimit: number) => ({\n key: 'selectionLimit',\n options: {\n count: selectionLimit,\n },\n})\n\nconst getUnsupportedFileTypeMessage = (fileName: string) => {\n const { extension, isFilename } = parseFilename(fileName)\n const key = isFilename ? 'specific' : 'unspecific'\n\n return {\n key: `unsupportedFileType.${key}`,\n options: {\n fileType: `.${extension.toUpperCase()}`,\n },\n }\n}\n\nconst TreeRowTooltip: FunctionComponent<\n PropsWithChildren<TreeRowTooltipProps>\n> = ({\n children,\n isHighlighted: isFocused,\n isFileLimitReached,\n isSelectable,\n isSelected,\n nodeType,\n selectionLimit,\n shouldShowTooltip,\n isMouseOver,\n fileName,\n treeContainer,\n}) => {\n const I18n = useI18nContext()\n const rowRef = React.useRef<HTMLDivElement>(null)\n const isUserInteracting = isFocused || isMouseOver\n const isTooltipVisible = isUserInteracting && shouldShowTooltip && !isSelected\n const isFile = nodeType === 'leaf'\n const [isCropped, setCropped] = React.useState(false)\n\n const registerRowEl = useIntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (\n entry.rootBounds &&\n entry.rootBounds.left - entry.boundingClientRect.left >= 0\n ) {\n setCropped(true)\n return\n }\n setCropped(false)\n })\n },\n {\n root: treeContainer,\n rootMargin: '0px',\n threshold: intersectionThresholds,\n }\n )\n\n const selectionLimitMessage = getSelectionLimitMessage(selectionLimit)\n const unsupportedFileTypeMessage = getUnsupportedFileTypeMessage(fileName)\n\n const message = isSelectable\n ? isFileLimitReached && selectionLimitMessage\n : isFile && unsupportedFileTypeMessage\n\n const trigger = isTooltipVisible && !isCropped && message ? 'always' : 'none'\n\n return (\n <Tooltip\n trigger={trigger}\n overlay={\n message ? I18n.t(`core.tree.${message.key}`, message.options) : null\n }\n placement=\"top-left\"\n >\n <div ref={mergeRefs(rowRef, registerRowEl)}>{children}</div>\n </Tooltip>\n )\n}\n\nconst TreeRowContainer: React.FC<TreeRowContainerProps> = ({\n children,\n isHighlighted,\n isSelected,\n isSelectable,\n isExpandable,\n isFileLimitReached,\n level,\n ...props\n}) => {\n return (\n <StyledTreeRowContainer\n isSelectable={\n (isSelectable &&\n ((isFileLimitReached && isSelected) || !isFileLimitReached)) ||\n isExpandable\n }\n isHighlighted={isHighlighted}\n isSelected={isSelected}\n style={{ paddingLeft: getPadding(level) }}\n {...props}\n >\n {children}\n </StyledTreeRowContainer>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tree.js","names":["File","Folder","React","areEqual","FixedSizeList","Spinner","Tooltip","useI18nContext","useIntersectionObserver","useResizeObserver","useTimer","useVisibility","parseFilename","mergeRefs","useTree","StyledChevron","StyledChevronContainer","StyledFilenameCaption","StyledIconContainer","StyledTree","StyledTreeRowContainer","StyledTreeRowContent","StyledTreeRowWrapper","spacing","rootSpacing","defaultRowHeight","rowRightPadding","scrollbarWidth","getPadding","level","intersectionThresholds","Array","from","length","map","_","index","tooltipDelay","UNSAFE_treeRootNodeId","defaultIsExpandable","node","defaultGetType","defaultIsSelectable","type","defaultGetParentId","parentId","defaultGetLabel","name","noop","isRootNode","rootValues","undefined","includes","Tree","forwardRef","_ref","ref","options","_ref$expanded","expanded","_ref$selected","selected","_ref$selectionLimit","selectionLimit","Infinity","getRoot_","getRoot","getChildren_","getChildren","getIconBase","getIcon","_ref$getLabel","getLabel","_ref$getParentId","getParentId","getParentId_","_ref$getType","getType","_ref$isExpandable","isExpandable","_ref$isSelectable","isSelectable","_ref$multiple","multiple","_ref$onSelect","onSelect","_ref$onCollapse","onCollapse","_ref$onExpand","onExpand","Promise","resolve","rowRendererBase","rowRenderer","_ref$maxVisibleNodes","maxVisibleNodes","visibleHeight","_ref$autoExpandParent","autoExpandParent","innerElementType","outerElementType","onKeyDown","children","props","_objectWithoutProperties","_excluded","rowHeight","wrapperRef","useRef","listRef","listInnerRef","listOuterRefRef","_React$useState","useState","_React$useState2","_slicedToArray","contentMaxWidth","setContentMaxWidth","useMemo","defaultGetRoot","useCallback","nodes","filter","rootNodes","roots","isArray","useEffect","console","warn","_React$useState3","_React$useState4","isTreeFocused","setIsTreeFocused","_React$useState5","width","height","_React$useState6","containerSize","setContainerSize","handleContainerResize","entries","_ref2","target","clientHeight","clientWidth","setResizeObserverTarget","defaultGetChildren","childNode","id","_useTree","isExpanded","isSelected","isLoading","highlightedNode","isNodeHighlighted","isHighlighted","highlight","handleSelection","handleExpansion","_setExpanded","setExpanded","_setSelected","setSelected","isFileLimitReached","listNavigation","Set","useImperativeHandle","rootEl","current","toggleSelected","toggleExpanded","defaultGetIcon","isFolder","createElement","handleAccessibility","e","key","preventDefault","increment","decrement","_listRef$current","scrollToItem","defaultRowRenderer","TreeRow","_listInnerRef$current","rowContentSizes","childNodes","forEach","child","rowContent","querySelector","_dataset$padding","leftPadding","dataset","padding","push","scrollWidth","parseInt","maxSizeRowContent","Math","max","apply","itemData","treeContainer","error","_extends","tabIndex","onFocus","onBlur","className","min","innerRef","outerRef","itemCount","itemSize","TreeNode","memo","_ref3","_ref3$data","data","_excluded2","style","_React$useState7","_React$useState8","isMouseOver","setMouseOver","timer","_useVisibility","shouldShowTooltip","isVisible","showTooltip","show","hideTooltip","hide","setTimer","onMouseEnter","onMouseLeave","cancel","_objectSpread","_ref4","_excluded3","expanderRef","nodeType","rowLabel","onClick","event","_expanderRef$current","contains","onMouseDown","focus","TreeRowContainer","TreeRowChevron","TreeRowIcon","icon","TreeRowTooltip","fileName","TreeRowName","value","IconContainer","_ref5","_excluded4","$isSelected","_ref6","$isExpanded","_ref7","marginLeft","marginRight","size","_ref8","getSelectionLimitMessage","count","getUnsupportedFileTypeMessage","_parseFilename","extension","isFilename","concat","fileType","toUpperCase","_ref9","isFocused","I18n","rowRef","isUserInteracting","isTooltipVisible","isFile","_React$useState9","_React$useState10","isCropped","setCropped","registerRowEl","entry","rootBounds","left","boundingClientRect","root","rootMargin","threshold","selectionLimitMessage","unsupportedFileTypeMessage","message","trigger","overlay","t","placement","_ref10","_excluded5","paddingLeft"],"sources":["../../src/Tree/Tree.tsx"],"sourcesContent":["import { File, Folder } from '@procore/core-icons/dist'\nimport type { FunctionComponent, PropsWithChildren } from 'react'\nimport React from 'react'\nimport { areEqual, FixedSizeList } from 'react-window'\nimport { Spinner } from '../Spinner/Spinner'\nimport { Tooltip } from '../Tooltip'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useIntersectionObserver } from '../_hooks/IntersectionObserver'\nimport { useResizeObserver } from '../_hooks/ResizeObserver'\nimport { useTimer } from '../_hooks/Timer'\nimport { useVisibility } from '../_hooks/Visibility'\nimport { parseFilename } from '../_utils/filename'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport { useTree } from './Tree.hooks'\nimport {\n StyledChevron,\n StyledChevronContainer,\n StyledFilenameCaption,\n StyledIconContainer,\n StyledTree,\n StyledTreeRowContainer,\n StyledTreeRowContent,\n StyledTreeRowWrapper,\n} from './Tree.styles'\nimport type {\n CustomDataType,\n DefaultNode,\n IconContainerProps,\n Node,\n TreeNodeId,\n TreeNodeProps,\n TreeProps,\n TreeRef,\n TreeRowContainerProps,\n TreeRowProps,\n TreeRowTooltipProps,\n} from './Tree.types'\n\nconst spacing = 32\nconst rootSpacing = 24\nconst defaultRowHeight = 36\n\n// Selected nodes have a bold text, and browsers occasionally miscalculate scrollWidth by one pixel down.\n// That situations might cause an issue when we get a second horizontal scrollbar.\n// This padding serves as compensation to prevent the described issue.\nconst rowRightPadding = 12\n// For most of browsers it usually varies between 12px and 20px.\n// To avoid tricky cross-browser calculations of scrollbar width. The maximum width is used.\nconst scrollbarWidth = 20\n\nfunction getPadding(level: number) {\n return rootSpacing + level * spacing\n}\n\nconst intersectionThresholds = Array.from({ length: 101 }).map(\n (_, index) => index / 100\n)\n\nconst tooltipDelay = 300\n\n// TODO refactor this to not be upper snake case\nexport const UNSAFE_treeRootNodeId = 'ROOT_ID'\n\nconst defaultIsExpandable: NonNullable<TreeProps['isExpandable']> = (\n node: DefaultNode\n) => defaultGetType(node) === 'branch'\nconst defaultIsSelectable: NonNullable<TreeProps['isSelectable']> = (\n node: DefaultNode\n) => node.type === 'leaf'\nconst defaultGetType: NonNullable<TreeProps['getType']> = (node: DefaultNode) =>\n node.type\nconst defaultGetParentId: NonNullable<TreeProps['getParentId']> = (\n node: DefaultNode\n) => node.parentId\nconst defaultGetLabel: NonNullable<TreeProps['getLabel']> = (\n node: DefaultNode\n) => node.name\nfunction noop() {}\n\nexport function isRootNode(parentId: TreeNodeId): boolean {\n const rootValues = [UNSAFE_treeRootNodeId, null, undefined] as TreeNodeId[]\n return rootValues.includes(parentId)\n}\n\n/**\n\n The tree allows users to navigate between folder / file directories,\n and optionally select those files.\n\n @since 10.19.0\n\n @see [Storybook](https://procore.github.io/core/core-react/latest/?path=/story/demos-tree--demo)\n\n @see [Design Guidelines](https://design.procore.com/tree)\n\n */\nexport const Tree = React.forwardRef(\n <T extends Node = Node, P extends CustomDataType<T> = Array<T>>(\n {\n options,\n expanded = [],\n selected = [],\n selectionLimit = Infinity,\n getRoot: getRoot_,\n getChildren: getChildren_,\n getIcon: getIconBase,\n getLabel = defaultGetLabel,\n getParentId: getParentId_ = defaultGetParentId,\n getType = defaultGetType,\n isExpandable = defaultIsExpandable,\n isSelectable = defaultIsSelectable,\n multiple = true,\n onSelect = noop,\n onCollapse = noop,\n onExpand = () => Promise.resolve(),\n rowRenderer: rowRendererBase,\n maxVisibleNodes = Infinity,\n visibleHeight,\n autoExpandParent = true,\n innerElementType,\n outerElementType,\n onKeyDown,\n children,\n ...props\n }: TreeProps<T, P>,\n ref: React.Ref<TreeRef<T>>\n ) => {\n const rowHeight = defaultRowHeight\n const wrapperRef = React.useRef<HTMLDivElement | null>(null)\n const listRef = React.useRef<FixedSizeList>(null)\n const listInnerRef = React.useRef<HTMLDivElement>(null)\n const listOuterRefRef = React.useRef<HTMLDivElement>(null)\n const [contentMaxWidth, setContentMaxWidth] = React.useState(0)\n\n const getParentId = React.useMemo(() => getParentId_, [])\n\n const defaultGetRoot = React.useCallback(\n (nodes: P): T | T[] =>\n nodes.filter((node: T) => {\n return isRootNode(getParentId(node))\n }),\n [getParentId]\n )\n\n const getRoot = React.useMemo(\n () => getRoot_ || defaultGetRoot,\n [defaultGetRoot]\n )\n\n const rootNodes = React.useMemo(() => {\n const roots = getRoot(options)\n return Array.isArray(roots) ? roots : [roots]\n }, [getRoot, options])\n\n React.useEffect(() => {\n if (!rootNodes.length) {\n console.warn(\n 'Tree must have at least one root node. Look up `Tree#getParentId` for details.'\n )\n }\n }, [rootNodes])\n\n const [isTreeFocused, setIsTreeFocused] = React.useState(false)\n const [containerSize, setContainerSize] = React.useState({\n width: 0,\n height: 0,\n })\n\n const handleContainerResize = React.useCallback(\n (entries: ResizeObserverEntry[]) => {\n if (entries[0]) {\n const { clientHeight: height, clientWidth: width } = entries[0]\n .target as HTMLElement\n setContainerSize({ width, height })\n }\n },\n [setContainerSize]\n )\n\n const setResizeObserverTarget = useResizeObserver(handleContainerResize)\n\n const defaultGetChildren = React.useCallback(\n (node: T) =>\n Array.isArray(options)\n ? options.filter((childNode: T) => getParentId(childNode) === node.id)\n : ([] as T[]),\n [getParentId, options]\n )\n\n const getChildren = getChildren_ || defaultGetChildren\n\n const {\n nodes,\n isExpanded,\n isSelected,\n isLoading,\n highlightedNode,\n isHighlighted: isNodeHighlighted,\n highlight,\n handleSelection,\n handleExpansion,\n setExpanded: _setExpanded,\n setSelected: _setSelected,\n isFileLimitReached,\n listNavigation,\n } = useTree<T>({\n rootNodes,\n expanded,\n selected,\n selectionLimit,\n multiple,\n autoExpandParent,\n onSelect,\n onCollapse,\n onExpand,\n getChildren,\n getParentId,\n })\n\n const setSelected = React.useCallback(\n (selected: T | T[]) => {\n const nodes = Array.isArray(selected) ? selected : [selected]\n\n _setSelected(new Set(nodes.map((node) => node.id)))\n },\n [_setSelected]\n )\n\n const setExpanded = React.useCallback(\n (expanded: T | T[]) => {\n const nodes = Array.isArray(expanded) ? expanded : [expanded]\n\n _setExpanded(new Set(nodes.map((node) => node.id)))\n },\n [_setExpanded]\n )\n\n React.useImperativeHandle(ref, () => ({\n rootEl: wrapperRef.current,\n setSelected,\n setExpanded,\n toggleSelected: (node: T) => handleSelection(node),\n toggleExpanded: (node: T) => handleExpansion(node),\n }))\n\n const defaultGetIcon = React.useCallback(\n (node: T): React.ReactNode => {\n const isFolder = getType(node) === 'branch'\n return isFolder ? <Folder /> : <File />\n },\n [getType]\n )\n\n const getIcon = getIconBase || defaultGetIcon\n\n const isHighlighted = React.useCallback(\n (node: T) => isTreeFocused && isNodeHighlighted(node),\n [isNodeHighlighted, isTreeFocused]\n )\n\n const handleAccessibility = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e)\n const { key } = e\n\n switch (key) {\n case 'Enter':\n e.preventDefault()\n isSelectable(highlightedNode) && handleSelection(highlightedNode)\n break\n case 'Space Bar':\n case ' ':\n e.preventDefault()\n isExpandable(highlightedNode) && handleExpansion(highlightedNode)\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n listNavigation.increment()\n break\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n listNavigation.decrement()\n break\n }\n }\n\n React.useEffect(() => {\n if (isTreeFocused) {\n listRef.current?.scrollToItem(listNavigation.index)\n }\n }, [isTreeFocused, listNavigation.index])\n\n const defaultRowRenderer = React.useCallback(\n (props: TreeRowProps) => <TreeRow {...props} />,\n []\n )\n\n React.useEffect(() => {\n const rowContentSizes: number[] = []\n\n const childNodes = Array.from(listInnerRef.current?.childNodes || [])\n childNodes.forEach((child) => {\n const rowContent = (child as HTMLElement).querySelector(\n '[data-row-content]'\n )\n\n if (rowContent) {\n const leftPadding = (child as HTMLElement).dataset.padding ?? '0'\n rowContentSizes.push(\n rowContent.scrollWidth + parseInt(leftPadding, 10) + rowRightPadding\n )\n }\n })\n\n const maxSizeRowContent = Math.max(...rowContentSizes) + scrollbarWidth\n setContentMaxWidth(maxSizeRowContent)\n })\n\n const rowRenderer = rowRendererBase || defaultRowRenderer\n\n const itemData = React.useMemo(\n () => ({\n nodes,\n getIcon,\n getLabel,\n getType,\n isExpandable,\n isSelectable,\n isExpanded,\n isSelected,\n isLoading,\n highlight,\n isHighlighted,\n handleSelection,\n handleExpansion,\n rowRenderer,\n isFileLimitReached,\n selectionLimit,\n isTreeFocused,\n treeContainer: wrapperRef.current as HTMLDivElement,\n }),\n [\n getIcon,\n getLabel,\n getType,\n handleExpansion,\n handleSelection,\n highlight,\n isExpandable,\n isExpanded,\n isFileLimitReached,\n isHighlighted,\n isLoading,\n isSelectable,\n isSelected,\n isTreeFocused,\n nodes,\n rowRenderer,\n selectionLimit,\n ]\n )\n\n if (!rootNodes) {\n console.error('Tree must have a valid root node')\n return null\n }\n\n return (\n <StyledTree\n {...props}\n ref={mergeRefs(wrapperRef, setResizeObserverTarget)}\n tabIndex={0}\n onFocus={() => setIsTreeFocused(true)}\n onBlur={() => setIsTreeFocused(false)}\n onKeyDown={handleAccessibility}\n >\n <FixedSizeList\n className=\"size-list\"\n ref={listRef}\n height={\n visibleHeight ||\n Math.min(nodes.length * rowHeight, rowHeight * maxVisibleNodes)\n }\n innerRef={listInnerRef}\n outerRef={listOuterRefRef}\n itemCount={nodes.length}\n itemSize={rowHeight}\n innerElementType={innerElementType}\n outerElementType={outerElementType}\n itemData={itemData}\n width={Math.max(contentMaxWidth, containerSize.width)}\n >\n {TreeNode}\n </FixedSizeList>\n </StyledTree>\n )\n }\n)\n\nconst TreeNode: React.FC<TreeNodeProps> = React.memo(\n ({\n data: { nodes, rowRenderer, highlight, isTreeFocused, ...props },\n index,\n style,\n }) => {\n const node = nodes[index]\n\n const isHighlighted = props.isHighlighted(node)\n const [isMouseOver, setMouseOver] = React.useState(false)\n\n const timer = useTimer({})\n const {\n isVisible: shouldShowTooltip,\n show: showTooltip,\n hide: hideTooltip,\n } = useVisibility({})\n\n React.useEffect(() => {\n if (isHighlighted && !shouldShowTooltip) {\n timer.setTimer(showTooltip, tooltipDelay)\n }\n\n return () => {\n if (isTreeFocused && !isHighlighted && shouldShowTooltip) {\n hideTooltip()\n }\n }\n })\n\n const onMouseEnter = () => {\n setMouseOver(true)\n if (!shouldShowTooltip) {\n timer.setTimer(showTooltip, tooltipDelay)\n }\n highlight(node)\n }\n\n const onMouseLeave = () => {\n setMouseOver(false)\n timer.cancel()\n hideTooltip()\n }\n\n return (\n <StyledTreeRowWrapper\n tabIndex={-1}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n style={style}\n data-padding={getPadding(node.level)}\n >\n {rowRenderer({\n node,\n shouldShowTooltip,\n isMouseOver,\n ...props,\n })}\n </StyledTreeRowWrapper>\n )\n },\n areEqual\n)\n\nconst TreeRow: React.FC<TreeRowProps> = ({\n node,\n getIcon,\n getLabel,\n handleExpansion,\n handleSelection,\n selectionLimit,\n isFileLimitReached,\n shouldShowTooltip,\n isMouseOver,\n treeContainer,\n ...props\n}) => {\n const expanderRef = React.useRef<HTMLDivElement>(null)\n const isSelected = props.isSelected(node)\n const isSelectable = props.isSelectable(node)\n const isExpandable = props.isExpandable(node)\n const isExpanded = props.isExpanded(node)\n const isLoading = props.isLoading(node)\n const isHighlighted = props.isHighlighted(node)\n const nodeType = props.getType(node)\n const rowLabel = getLabel(node)\n\n const onClick = React.useCallback(\n (event: React.MouseEvent) => {\n if (isSelectable && isExpandable) {\n // @ts-ignore\n expanderRef?.current?.contains(event.target)\n ? handleExpansion(node)\n : handleSelection(node)\n } else if (isSelectable) {\n handleSelection(node)\n } else if (isExpandable) {\n handleExpansion(node)\n }\n },\n [handleExpansion, handleSelection, isExpandable, isSelectable, node]\n )\n\n const onMouseDown = React.useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault()\n treeContainer.focus()\n },\n [treeContainer]\n )\n\n return (\n <TreeRowContainer\n level={node.level}\n onClick={onClick}\n onMouseDown={onMouseDown}\n isSelected={isSelected}\n isSelectable={isSelectable}\n isExpandable={isExpandable}\n isHighlighted={isHighlighted}\n isFileLimitReached={isFileLimitReached}\n data-qa=\"core-tree-row-container\"\n >\n {\n // WARNING!\n // Be aware that this data attribute is used for calculations, changing this data attribute will break its operability.\n }\n <StyledTreeRowContent data-row-content>\n <TreeRowChevron\n ref={expanderRef}\n isExpandable={isExpandable}\n isExpanded={isExpanded}\n />\n <TreeRowIcon\n isLoading={isLoading}\n isSelected={isSelected}\n icon={getIcon(node)}\n />\n <TreeRowTooltip\n isSelected={isSelected}\n isSelectable={isSelectable}\n isHighlighted={isHighlighted}\n selectionLimit={selectionLimit}\n isFileLimitReached={isFileLimitReached}\n shouldShowTooltip={shouldShowTooltip}\n isMouseOver={isMouseOver}\n fileName={rowLabel}\n nodeType={nodeType}\n treeContainer={treeContainer}\n >\n <TreeRowName value={rowLabel} />\n </TreeRowTooltip>\n </StyledTreeRowContent>\n </TreeRowContainer>\n )\n}\n\nconst IconContainer: React.FC<IconContainerProps> = ({\n children,\n isSelected,\n ...props\n}) => (\n <StyledIconContainer $isSelected={isSelected} {...props}>\n {children}\n </StyledIconContainer>\n)\n\nconst TreeRowChevron = React.forwardRef<\n HTMLDivElement,\n {\n isExpanded: boolean\n isExpandable: boolean\n }\n>(({ isExpanded, isExpandable }, ref) => {\n return (\n <StyledChevronContainer ref={ref}>\n {isExpandable ? <StyledChevron $isExpanded={isExpanded} /> : null}\n </StyledChevronContainer>\n )\n})\n\nconst TreeRowIcon: React.FC<{\n isSelected: boolean\n isLoading: boolean\n icon: React.ReactNode\n}> = ({ isSelected, isLoading, icon }) => (\n <IconContainer isSelected={isSelected} marginLeft=\"sm\" marginRight=\"sm\">\n {isLoading ? <Spinner size=\"sm\" /> : icon}\n </IconContainer>\n)\n\nconst TreeRowName: React.FC<{ value: string }> = ({ value }) => (\n <StyledFilenameCaption>{value}</StyledFilenameCaption>\n)\n\nconst getSelectionLimitMessage = (selectionLimit: number) => ({\n key: 'selectionLimit',\n options: {\n count: selectionLimit,\n },\n})\n\nconst getUnsupportedFileTypeMessage = (fileName: string) => {\n const { extension, isFilename } = parseFilename(fileName)\n const key = isFilename ? 'specific' : 'unspecific'\n\n return {\n key: `unsupportedFileType.${key}`,\n options: {\n fileType: `.${extension.toUpperCase()}`,\n },\n }\n}\n\nconst TreeRowTooltip: FunctionComponent<\n PropsWithChildren<TreeRowTooltipProps>\n> = ({\n children,\n isHighlighted: isFocused,\n isFileLimitReached,\n isSelectable,\n isSelected,\n nodeType,\n selectionLimit,\n shouldShowTooltip,\n isMouseOver,\n fileName,\n treeContainer,\n}) => {\n const I18n = useI18nContext()\n const rowRef = React.useRef<HTMLDivElement>(null)\n const isUserInteracting = isFocused || isMouseOver\n const isTooltipVisible = isUserInteracting && shouldShowTooltip && !isSelected\n const isFile = nodeType === 'leaf'\n const [isCropped, setCropped] = React.useState(false)\n\n const registerRowEl = useIntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (\n entry.rootBounds &&\n entry.rootBounds.left - entry.boundingClientRect.left >= 0\n ) {\n setCropped(true)\n return\n }\n setCropped(false)\n })\n },\n {\n root: treeContainer,\n rootMargin: '0px',\n threshold: intersectionThresholds,\n }\n )\n\n const selectionLimitMessage = getSelectionLimitMessage(selectionLimit)\n const unsupportedFileTypeMessage = getUnsupportedFileTypeMessage(fileName)\n\n const message = isSelectable\n ? isFileLimitReached && selectionLimitMessage\n : isFile && unsupportedFileTypeMessage\n\n const trigger = isTooltipVisible && !isCropped && message ? 'always' : 'none'\n\n return (\n <Tooltip\n trigger={trigger}\n overlay={\n message ? I18n.t(`core.tree.${message.key}`, message.options) : null\n }\n placement=\"top-left\"\n >\n <div ref={mergeRefs(rowRef, registerRowEl)}>{children}</div>\n </Tooltip>\n )\n}\n\nconst TreeRowContainer: React.FC<TreeRowContainerProps> = ({\n children,\n isHighlighted,\n isSelected,\n isSelectable,\n isExpandable,\n isFileLimitReached,\n level,\n ...props\n}) => {\n return (\n <StyledTreeRowContainer\n isSelectable={\n (isSelectable &&\n ((isFileLimitReached && isSelected) || !isFileLimitReached)) ||\n isExpandable\n }\n isHighlighted={isHighlighted}\n isSelected={isSelected}\n style={{ paddingLeft: getPadding(level) }}\n {...props}\n >\n {children}\n </StyledTreeRowContainer>\n )\n}\n"],"mappings":"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"}
|
package/dist/Tree/Tree.styles.js
CHANGED
|
@@ -5,15 +5,15 @@ import { Typography } from '../Typography/Typography';
|
|
|
5
5
|
import { colors } from '../_styles/colors';
|
|
6
6
|
export var StyledFilenameCaption = /*#__PURE__*/styled(Typography).withConfig({
|
|
7
7
|
displayName: "StyledFilenameCaption",
|
|
8
|
-
componentId: "core-
|
|
8
|
+
componentId: "core-11_25_1__sc-2d45b5-0"
|
|
9
9
|
})(["display:flex;width:100%;"]);
|
|
10
10
|
export var StyledTree = /*#__PURE__*/styled.div.withConfig({
|
|
11
11
|
displayName: "StyledTree",
|
|
12
|
-
componentId: "core-
|
|
12
|
+
componentId: "core-11_25_1__sc-2d45b5-1"
|
|
13
13
|
})(["width:100%;height:100%;min-height:36px;outline:none;overflow:auto;"]);
|
|
14
14
|
export var StyledTreeRowContainer = /*#__PURE__*/styled(Typography).withConfig({
|
|
15
15
|
displayName: "StyledTreeRowContainer",
|
|
16
|
-
componentId: "core-
|
|
16
|
+
componentId: "core-11_25_1__sc-2d45b5-2"
|
|
17
17
|
})(["display:flex;align-items:center;height:36px;background:transparent;box-shadow:inset 4px 0px 0px transparent;cursor:default;outline:none;", " &:hover{background:", ";}", " ", ""], function (_ref) {
|
|
18
18
|
var isSelectable = _ref.isSelectable;
|
|
19
19
|
return isSelectable ? 'cursor: pointer;' : '';
|
|
@@ -27,30 +27,30 @@ export var StyledTreeRowContainer = /*#__PURE__*/styled(Typography).withConfig({
|
|
|
27
27
|
});
|
|
28
28
|
export var StyledTreeRowContent = /*#__PURE__*/styled.div.withConfig({
|
|
29
29
|
displayName: "StyledTreeRowContent",
|
|
30
|
-
componentId: "core-
|
|
30
|
+
componentId: "core-11_25_1__sc-2d45b5-3"
|
|
31
31
|
})(["display:flex;align-items:center;"]);
|
|
32
32
|
export var StyledTreeRowWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
33
33
|
displayName: "StyledTreeRowWrapper",
|
|
34
|
-
componentId: "core-
|
|
34
|
+
componentId: "core-11_25_1__sc-2d45b5-4"
|
|
35
35
|
})(["outline:none;"]);
|
|
36
36
|
var StyledIconBase = /*#__PURE__*/styled(Box).withConfig({
|
|
37
37
|
displayName: "StyledIconBase",
|
|
38
|
-
componentId: "core-
|
|
38
|
+
componentId: "core-11_25_1__sc-2d45b5-5"
|
|
39
39
|
})(["display:flex;justify-content:center;align-items:center;width:24px;height:24px;min-width:24px;min-height:24px;"]);
|
|
40
40
|
export var StyledChevronContainer = /*#__PURE__*/styled(StyledIconBase).withConfig({
|
|
41
41
|
displayName: "StyledChevronContainer",
|
|
42
|
-
componentId: "core-
|
|
42
|
+
componentId: "core-11_25_1__sc-2d45b5-6"
|
|
43
43
|
})([""]);
|
|
44
44
|
export var StyledIconContainer = /*#__PURE__*/styled(StyledIconBase).withConfig({
|
|
45
45
|
displayName: "StyledIconContainer",
|
|
46
|
-
componentId: "core-
|
|
46
|
+
componentId: "core-11_25_1__sc-2d45b5-7"
|
|
47
47
|
})(["color:", ";"], function (_ref4) {
|
|
48
48
|
var $isSelected = _ref4.$isSelected;
|
|
49
49
|
return $isSelected ? colors.blue45 : colors.gray40;
|
|
50
50
|
});
|
|
51
51
|
export var StyledChevron = /*#__PURE__*/styled(ChevronRight).withConfig({
|
|
52
52
|
displayName: "StyledChevron",
|
|
53
|
-
componentId: "core-
|
|
53
|
+
componentId: "core-11_25_1__sc-2d45b5-8"
|
|
54
54
|
})(["transform:rotate(", "deg);transition:transform 150ms ease-out;"], function (_ref5) {
|
|
55
55
|
var $isExpanded = _ref5.$isExpanded;
|
|
56
56
|
return $isExpanded ? 90 : 0;
|
|
@@ -218,23 +218,24 @@ export interface TreeRowProps<T extends Node = Node> extends Omit<TreeNodeAPI, '
|
|
|
218
218
|
*/
|
|
219
219
|
treeContainer: HTMLDivElement;
|
|
220
220
|
}
|
|
221
|
-
export interface TreeProps<T extends Node = Node, P extends CustomDataType<T> = Array<T>> extends Omit<DivAttributes, 'onSelect'>, Pick<FixedSizeListProps, 'innerElementType' | 'outerElementType'
|
|
221
|
+
export interface TreeProps<T extends Node = Node, P extends CustomDataType<T> = Array<T>> extends Omit<DivAttributes, 'onSelect'>, Partial<Pick<FixedSizeListProps, 'innerElementType' | 'outerElementType'>> {
|
|
222
222
|
/**
|
|
223
223
|
* @since 10.19.0
|
|
224
224
|
*/
|
|
225
225
|
options: P;
|
|
226
226
|
/**
|
|
227
|
-
* Array of keys of
|
|
227
|
+
* Array of keys of the expanded nodes
|
|
228
228
|
* @since 10.19.0
|
|
229
229
|
*/
|
|
230
230
|
expanded?: T['id'][];
|
|
231
231
|
/**
|
|
232
|
-
* Array of keys of
|
|
232
|
+
* Array of keys of the selected nodes
|
|
233
233
|
* @since 10.19.0
|
|
234
234
|
*/
|
|
235
235
|
selected?: T['id'][];
|
|
236
236
|
/**
|
|
237
237
|
* Number of nodes that can be selected
|
|
238
|
+
* @default Infinity
|
|
238
239
|
* @since 10.19.0
|
|
239
240
|
*/
|
|
240
241
|
selectionLimit?: number;
|
|
@@ -297,11 +298,13 @@ export interface TreeProps<T extends Node = Node, P extends CustomDataType<T> =
|
|
|
297
298
|
isSelectable?(node: T): boolean;
|
|
298
299
|
/**
|
|
299
300
|
* Allows selection of multiple nodes
|
|
301
|
+
* @default true
|
|
300
302
|
* @since 10.19.0
|
|
301
303
|
*/
|
|
302
304
|
multiple?: boolean;
|
|
303
305
|
/**
|
|
304
306
|
* Number of visible nodes. Helps fix performance bottlenecks in large dataset
|
|
307
|
+
* @default Infinity
|
|
305
308
|
* @since 10.19.0
|
|
306
309
|
*/
|
|
307
310
|
maxVisibleNodes?: number;
|
|
@@ -312,6 +315,7 @@ export interface TreeProps<T extends Node = Node, P extends CustomDataType<T> =
|
|
|
312
315
|
visibleHeight?: number;
|
|
313
316
|
/**
|
|
314
317
|
* Whether to expand parent node when a child node is expanded or selected
|
|
318
|
+
* @default true
|
|
315
319
|
* @since 10.19.0
|
|
316
320
|
*/
|
|
317
321
|
autoExpandParent?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.types.js","names":[],"sources":["../../src/Tree/Tree.types.ts"],"sourcesContent":["import type React from 'react'\nimport type { FixedSizeListProps, ListChildComponentProps } from 'react-window'\nimport type { BoxProps } from '../Box/Box.types'\nimport type { OverlayProps } from '../Overlay/Overlay'\nimport type { DivAttributes } from '../_utils/types'\nimport type { UNSAFE_treeRootNodeId } from './Tree'\n\ntype NodeType = 'branch' | 'leaf'\n\nexport type TreeNodeId =\n | number\n | string\n | null\n | undefined\n | typeof UNSAFE_treeRootNodeId\n\nexport interface Node {\n /**\n * @since 10.19.0\n */\n id: TreeNodeId\n}\nexport interface DefaultNode extends Node {\n /**\n * @since 10.19.0\n */\n name: string\n /**\n * @since 10.19.0\n */\n parentId: TreeNodeId\n /**\n * @since 10.19.0\n */\n type: NodeType\n}\n\nexport interface LevelWise {\n /**\n * @since 10.19.0\n */\n level: number\n}\n\nexport interface UseTreeProps<T extends Node = Node> {\n rootNodes: T[]\n /**\n * @since 10.19.0\n */\n expanded: T['id'][]\n /**\n * @since 10.19.0\n */\n selected: T['id'][]\n /**\n * @since 10.19.0\n */\n selectionLimit: number\n /**\n * @since 10.19.0\n */\n getChildren(node: T): T[]\n /**\n * @since 10.19.0\n */\n getParentId(node: T): TreeNodeId\n /**\n * @since 10.19.0\n */\n autoExpandParent: boolean\n /**\n * @since 10.19.0\n */\n multiple: boolean\n /**\n * @since 10.19.0\n */\n onSelect(nodes: T[]): void\n /**\n * @since 10.19.0\n */\n onCollapse(node: T): void\n /**\n * @since 10.19.0\n */\n onExpand(node: T): Promise<any>\n}\n\nexport interface TreeNodeAPI<T extends Node = Node> {\n /**\n * @since 10.19.0\n */\n nodes: (T & LevelWise)[]\n /**\n * @since 10.19.0\n */\n getIcon(props: T): React.ReactNode\n /**\n * @since 10.19.0\n */\n getLabel(props: T): string\n /**\n * @since 10.19.0\n */\n getType(node: T): NodeType\n /**\n * @since 10.19.0\n */\n isExpandable(node: T): boolean\n /**\n * @since 10.19.0\n */\n isSelectable(node: T): boolean\n /**\n * @since 10.19.0\n */\n isSelected(node: T): boolean\n /**\n * @since 10.19.0\n */\n isLoading(node: T): boolean\n /**\n * @since 10.19.0\n */\n isExpanded(node: T): boolean\n /**\n * @since 10.19.0\n */\n highlight(node: T): void\n /**\n * @since 10.19.0\n */\n isHighlighted(node: T): boolean\n /**\n * @since 10.19.0\n */\n handleSelection(node: T): void\n /**\n * @since 10.19.0\n */\n handleExpansion(node: T): void\n /**\n * @since 10.19.0\n */\n rowRenderer(props: TreeRowProps<T>): React.ReactNode\n /**\n * @since 10.19.0\n */\n selectionLimit: number\n /**\n * @since 10.19.0\n */\n isFileLimitReached: boolean\n /**\n * @since 10.19.0\n */\n isTreeFocused: boolean\n /**\n * @since 10.19.0\n */\n treeContainer: HTMLDivElement\n}\n\nexport interface CustomDataType<T> {\n /**\n * @since 10.19.0\n */\n [key: string]: any\n}\n\nexport interface TreeRef<T extends Node = Node> {\n /**\n * @since 10.19.0\n */\n setSelected: (selected: T | T[]) => void\n /**\n * @since 10.19.0\n */\n setExpanded: (expanded: T | T[]) => void\n /**\n * @since 10.19.0\n */\n toggleSelected: (node: T) => void\n /**\n * @since 10.19.0\n */\n toggleExpanded: (node: T) => void\n /**\n * @since 10.19.0\n */\n rootEl: HTMLElement | null\n}\n\nexport interface TreeNodeProps extends ListChildComponentProps {\n /**\n * @since 10.19.0\n */\n data: TreeNodeAPI\n}\n\nexport interface TreeRowOverlayProps {\n /**\n * @since 10.19.0\n */\n overlayRef: OverlayProps['overlayRef']\n /**\n * @since 10.19.0\n */\n targetRef: OverlayProps['targetRef']\n /**\n * @since 10.19.0\n */\n message: { key: string; options?: object }\n}\n\nexport interface TreeRowProps<T extends Node = Node>\n extends Omit<\n TreeNodeAPI,\n 'rowRenderer' | 'nodes' | 'highlight' | 'isTreeFocused'\n > {\n /**\n * @since 10.19.0\n */\n node: T & LevelWise\n /**\n * @since 10.19.0\n */\n shouldShowTooltip: boolean\n /**\n * @since 10.19.0\n */\n isMouseOver: boolean\n /**\n * @since 10.19.0\n */\n treeContainer: HTMLDivElement\n}\n\nexport interface TreeProps<\n T extends Node = Node,\n P extends CustomDataType<T> = Array<T>\n> extends Omit<DivAttributes, 'onSelect'>,\n Pick<FixedSizeListProps, 'innerElementType' | 'outerElementType'
|
|
1
|
+
{"version":3,"file":"Tree.types.js","names":[],"sources":["../../src/Tree/Tree.types.ts"],"sourcesContent":["import type React from 'react'\nimport type { FixedSizeListProps, ListChildComponentProps } from 'react-window'\nimport type { BoxProps } from '../Box/Box.types'\nimport type { OverlayProps } from '../Overlay/Overlay'\nimport type { DivAttributes } from '../_utils/types'\nimport type { UNSAFE_treeRootNodeId } from './Tree'\n\ntype NodeType = 'branch' | 'leaf'\n\nexport type TreeNodeId =\n | number\n | string\n | null\n | undefined\n | typeof UNSAFE_treeRootNodeId\n\nexport interface Node {\n /**\n * @since 10.19.0\n */\n id: TreeNodeId\n}\nexport interface DefaultNode extends Node {\n /**\n * @since 10.19.0\n */\n name: string\n /**\n * @since 10.19.0\n */\n parentId: TreeNodeId\n /**\n * @since 10.19.0\n */\n type: NodeType\n}\n\nexport interface LevelWise {\n /**\n * @since 10.19.0\n */\n level: number\n}\n\nexport interface UseTreeProps<T extends Node = Node> {\n rootNodes: T[]\n /**\n * @since 10.19.0\n */\n expanded: T['id'][]\n /**\n * @since 10.19.0\n */\n selected: T['id'][]\n /**\n * @since 10.19.0\n */\n selectionLimit: number\n /**\n * @since 10.19.0\n */\n getChildren(node: T): T[]\n /**\n * @since 10.19.0\n */\n getParentId(node: T): TreeNodeId\n /**\n * @since 10.19.0\n */\n autoExpandParent: boolean\n /**\n * @since 10.19.0\n */\n multiple: boolean\n /**\n * @since 10.19.0\n */\n onSelect(nodes: T[]): void\n /**\n * @since 10.19.0\n */\n onCollapse(node: T): void\n /**\n * @since 10.19.0\n */\n onExpand(node: T): Promise<any>\n}\n\nexport interface TreeNodeAPI<T extends Node = Node> {\n /**\n * @since 10.19.0\n */\n nodes: (T & LevelWise)[]\n /**\n * @since 10.19.0\n */\n getIcon(props: T): React.ReactNode\n /**\n * @since 10.19.0\n */\n getLabel(props: T): string\n /**\n * @since 10.19.0\n */\n getType(node: T): NodeType\n /**\n * @since 10.19.0\n */\n isExpandable(node: T): boolean\n /**\n * @since 10.19.0\n */\n isSelectable(node: T): boolean\n /**\n * @since 10.19.0\n */\n isSelected(node: T): boolean\n /**\n * @since 10.19.0\n */\n isLoading(node: T): boolean\n /**\n * @since 10.19.0\n */\n isExpanded(node: T): boolean\n /**\n * @since 10.19.0\n */\n highlight(node: T): void\n /**\n * @since 10.19.0\n */\n isHighlighted(node: T): boolean\n /**\n * @since 10.19.0\n */\n handleSelection(node: T): void\n /**\n * @since 10.19.0\n */\n handleExpansion(node: T): void\n /**\n * @since 10.19.0\n */\n rowRenderer(props: TreeRowProps<T>): React.ReactNode\n /**\n * @since 10.19.0\n */\n selectionLimit: number\n /**\n * @since 10.19.0\n */\n isFileLimitReached: boolean\n /**\n * @since 10.19.0\n */\n isTreeFocused: boolean\n /**\n * @since 10.19.0\n */\n treeContainer: HTMLDivElement\n}\n\nexport interface CustomDataType<T> {\n /**\n * @since 10.19.0\n */\n [key: string]: any\n}\n\nexport interface TreeRef<T extends Node = Node> {\n /**\n * @since 10.19.0\n */\n setSelected: (selected: T | T[]) => void\n /**\n * @since 10.19.0\n */\n setExpanded: (expanded: T | T[]) => void\n /**\n * @since 10.19.0\n */\n toggleSelected: (node: T) => void\n /**\n * @since 10.19.0\n */\n toggleExpanded: (node: T) => void\n /**\n * @since 10.19.0\n */\n rootEl: HTMLElement | null\n}\n\nexport interface TreeNodeProps extends ListChildComponentProps {\n /**\n * @since 10.19.0\n */\n data: TreeNodeAPI\n}\n\nexport interface TreeRowOverlayProps {\n /**\n * @since 10.19.0\n */\n overlayRef: OverlayProps['overlayRef']\n /**\n * @since 10.19.0\n */\n targetRef: OverlayProps['targetRef']\n /**\n * @since 10.19.0\n */\n message: { key: string; options?: object }\n}\n\nexport interface TreeRowProps<T extends Node = Node>\n extends Omit<\n TreeNodeAPI,\n 'rowRenderer' | 'nodes' | 'highlight' | 'isTreeFocused'\n > {\n /**\n * @since 10.19.0\n */\n node: T & LevelWise\n /**\n * @since 10.19.0\n */\n shouldShowTooltip: boolean\n /**\n * @since 10.19.0\n */\n isMouseOver: boolean\n /**\n * @since 10.19.0\n */\n treeContainer: HTMLDivElement\n}\n\nexport interface TreeProps<\n T extends Node = Node,\n P extends CustomDataType<T> = Array<T>\n> extends Omit<DivAttributes, 'onSelect'>,\n Partial<Pick<FixedSizeListProps, 'innerElementType' | 'outerElementType'>> {\n /**\n * @since 10.19.0\n */\n options: P\n /**\n * Array of keys of the expanded nodes\n * @since 10.19.0\n */\n expanded?: T['id'][]\n\n /**\n * Array of keys of the selected nodes\n * @since 10.19.0\n */\n selected?: T['id'][]\n\n /**\n * Number of nodes that can be selected\n * @default Infinity\n * @since 10.19.0\n */\n selectionLimit?: number\n\n /**\n * Function should return a single root node or an array of root nodes\n * <CodeBlock>{'(): Node | Node[]'}</CodeBlock>\n * @since 10.19.0\n * @deprecated To be removed in future release. `getParentId` should be used to determine root nodes instead.\n * @deprecatedSince 11.9.0\n */\n getRoot?(data: P): T | T[]\n\n /**\n * Should return an array of children nodes.\n * <CodeBlock>{'(node: Node): Node[]'}</CodeBlock>\n * @since 10.19.0\n */\n getChildren?(node: T): T[]\n\n /**\n * This function will be executed on each node. Should return{' '}\n * <Code>Icon</Code> component\n * <CodeBlock>{'(node: Node): React.ReactNode'}</CodeBlock>\n * @since 10.19.0\n */\n getIcon?(node: T): React.ReactNode\n\n /**\n * This function will be executed on each node. Should return{' '}\n * <Code>label</Code> for row\n * <CodeBlock>{'(node: Node): string'}</CodeBlock>\n * @since 10.19.0\n */\n getLabel?(node: T): string\n\n /**\n * This function can be used to override the default parent detection mechanism.\n * If not defined, <Code>Node['parentId']</Code> is used to get a given node's parent.\n * <CodeBlock>{'(node: Node): TreeNodeId'}</CodeBlock>\n * @since 10.19.0\n * @deprecated Returning `UNSAFE_treeRootNodeId` to determine a root node is deprecated.\n * Return `null` or `undefined` intead.\n * @deprecatedSince 11.9.0\n */\n getParentId?(node: T): TreeNodeId\n\n /**\n * This function will be executed on each node. Should return{' '}\n * <Code>'branch'</Code> or <Code>'leaf'</Code>\n * <CodeBlock>{'(node: Node): NodeType'}</CodeBlock>\n * @since 10.19.0\n */\n getType?(node: T): NodeType\n\n /**\n * Function of whether to enable tree node expansion/collapsing.\n * <CodeBlock>{'(node: Node): boolean'}</CodeBlock>\n * @since 10.19.0\n */\n isExpandable?(node: T): boolean\n\n /**\n * Function of whether to enable tree node selection.\n * <CodeBlock>{'(node: Node): boolean'}</CodeBlock>\n * @since 10.19.0\n */\n isSelectable?(node: T): boolean\n\n /**\n * Allows selection of multiple nodes\n * @default true\n * @since 10.19.0\n */\n multiple?: boolean\n\n /**\n * Number of visible nodes. Helps fix performance bottlenecks in large dataset\n * @default Infinity\n * @since 10.19.0\n */\n maxVisibleNodes?: number\n\n /**\n * Height of the list. Helps fix performance bottlenecks in large dataset.\n * @since 10.19.0\n */\n visibleHeight?: number\n\n /**\n * Whether to expand parent node when a child node is expanded or selected\n * @default true\n * @since 10.19.0\n */\n autoExpandParent?: boolean\n\n /**\n * Callback return currently selected array of nodes.\n * <CodeBlock>{'(nodes: Node[]): void'}</CodeBlock>\n * @since 10.19.0\n */\n onSelect?(nodes: T[]): void\n\n /**\n * Triggers when current node collapse\n * <CodeBlock>{'(node: Node): void'}</CodeBlock>\n * @since 10.19.0\n */\n onCollapse?(node: T): void\n\n /**\n * Triggers when current node expand\n * <CodeBlock>{'(node: Node): Promise<void>'}</CodeBlock>\n * @since 10.19.0\n */\n onExpand?(node: T): Promise<any>\n\n /**\n * Callback for rendering tree nodes\n * <CodeBlock>{'(props: TreeRowProps): React.ReactNode'}</CodeBlock>\n * @since 10.19.0\n */\n rowRenderer?(props: TreeRowProps<T>): React.ReactNode\n}\n\nexport interface IconContainerProps extends BoxProps {\n /**\n * @since 10.19.0\n */\n isSelected?: boolean\n}\n\nexport interface TreeRowTooltipProps {\n /**\n * @since 10.19.0\n */\n isHighlighted: boolean\n /**\n * @since 10.19.0\n */\n isSelected: boolean\n /**\n * @since 10.19.0\n */\n isSelectable: boolean\n /**\n * @since 10.19.0\n */\n selectionLimit: number\n /**\n * @since 10.19.0\n */\n isFileLimitReached: boolean\n /**\n * @since 10.19.0\n */\n shouldShowTooltip: boolean\n /**\n * @since 10.19.0\n */\n isMouseOver: boolean\n /**\n * @since 10.19.0\n */\n fileName: string\n /**\n * @since 10.19.0\n */\n nodeType: NodeType\n /**\n * @since 10.19.0\n */\n treeContainer: HTMLDivElement\n}\n\nexport interface TreeRowContainerProps extends Omit<DivAttributes, 'color'> {\n /**\n * @since 10.19.0\n */\n isHighlighted: boolean\n /**\n * @since 10.19.0\n */\n isSelected: boolean\n /**\n * @since 10.19.0\n */\n isSelectable: boolean\n /**\n * @since 10.19.0\n */\n isExpandable: boolean\n /**\n * @since 10.19.0\n */\n isFileLimitReached: boolean\n /**\n * @since 10.19.0\n */\n level: number\n}\n"],"mappings":""}
|
|
@@ -5,11 +5,11 @@ import { spacing } from '../_styles/spacing';
|
|
|
5
5
|
var inputHeight = 36;
|
|
6
6
|
export var StyledInput = /*#__PURE__*/styled.input.withConfig({
|
|
7
7
|
displayName: "StyledInput",
|
|
8
|
-
componentId: "core-
|
|
8
|
+
componentId: "core-11_25_1__sc-gpc39h-0"
|
|
9
9
|
})(["", " padding-right:", "px;"], getSearchInputStyles(), spacing.xxl);
|
|
10
10
|
export var StyledIcon = /*#__PURE__*/styled.div.withConfig({
|
|
11
11
|
displayName: "StyledIcon",
|
|
12
|
-
componentId: "core-
|
|
12
|
+
componentId: "core-11_25_1__sc-gpc39h-1"
|
|
13
13
|
})(["align-items:center;color:", ";display:flex;height:", "px;justify-content:center;pointer-events:", ";position:absolute;right:0;top:0;width:", "px;"], function (p) {
|
|
14
14
|
return p.disabled ? colors.gray70 : colors.gray45;
|
|
15
15
|
}, inputHeight, function (p) {
|
|
@@ -17,6 +17,6 @@ export var StyledIcon = /*#__PURE__*/styled.div.withConfig({
|
|
|
17
17
|
}, inputHeight);
|
|
18
18
|
export var StyledTypeahead = /*#__PURE__*/styled.div.withConfig({
|
|
19
19
|
displayName: "StyledTypeahead",
|
|
20
|
-
componentId: "core-
|
|
20
|
+
componentId: "core-11_25_1__sc-gpc39h-2"
|
|
21
21
|
})(["position:relative;width:100%;"]);
|
|
22
22
|
//# sourceMappingURL=Typeahead.styles.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const ColorTable: () => JSX.Element;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const ColorTable: () => React.JSX.Element;
|
|
@@ -35,7 +35,7 @@ export var semiboldRules = function semiboldRules() {
|
|
|
35
35
|
};
|
|
36
36
|
export var StyledTypography = /*#__PURE__*/styled.span.withConfig({
|
|
37
37
|
displayName: "StyledTypography",
|
|
38
|
-
componentId: "core-
|
|
38
|
+
componentId: "core-11_25_1__sc-1c4583t-0"
|
|
39
39
|
})(["", " color:", ";font-style:", ";font-weight:", ";", " em,i{font-style:italic;}"], function (_ref) {
|
|
40
40
|
var _ref$intent = _ref.intent,
|
|
41
41
|
intent = _ref$intent === void 0 ? 'body' : _ref$intent;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function GiantTable(): JSX.Element;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare function GiantTable(): React.JSX.Element;
|