@chayns-components/navigation 5.0.65 → 5.1.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.
Files changed (186) hide show
  1. package/lib/cjs/components/navigation-layout/NavigationLayout.constants.js +14 -0
  2. package/lib/cjs/components/navigation-layout/NavigationLayout.constants.js.map +1 -0
  3. package/lib/cjs/components/navigation-layout/NavigationLayout.context.js +26 -0
  4. package/lib/cjs/components/navigation-layout/NavigationLayout.context.js.map +1 -0
  5. package/lib/cjs/components/navigation-layout/NavigationLayout.js +105 -0
  6. package/lib/cjs/components/navigation-layout/NavigationLayout.js.map +1 -0
  7. package/lib/cjs/components/navigation-layout/NavigationLayout.styles.js +74 -0
  8. package/lib/cjs/components/navigation-layout/NavigationLayout.styles.js.map +1 -0
  9. package/lib/cjs/components/navigation-layout/NavigationLayout.types.js +6 -0
  10. package/lib/cjs/components/navigation-layout/NavigationLayout.types.js.map +1 -0
  11. package/lib/cjs/components/navigation-layout/NavigationLayout.utils.js +261 -0
  12. package/lib/cjs/components/navigation-layout/NavigationLayout.utils.js.map +1 -0
  13. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.js +31 -0
  14. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.js.map +1 -0
  15. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.styles.js +30 -0
  16. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.styles.js.map +1 -0
  17. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.types.js +6 -0
  18. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.types.js.map +1 -0
  19. package/lib/cjs/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.js +71 -0
  20. package/lib/cjs/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.js.map +1 -0
  21. package/lib/cjs/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.styles.js +19 -0
  22. package/lib/cjs/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.styles.js.map +1 -0
  23. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.context.js +26 -0
  24. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.context.js.map +1 -0
  25. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.js +140 -0
  26. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.js.map +1 -0
  27. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.styles.js +89 -0
  28. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.styles.js.map +1 -0
  29. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.types.js +6 -0
  30. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.types.js.map +1 -0
  31. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.utils.js +83 -0
  32. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.utils.js.map +1 -0
  33. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.js +17 -0
  34. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.js.map +1 -0
  35. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.styles.js +19 -0
  36. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.styles.js.map +1 -0
  37. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.context.js +26 -0
  38. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.context.js.map +1 -0
  39. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.hooks.js +129 -0
  40. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.hooks.js.map +1 -0
  41. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.js +79 -0
  42. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.js.map +1 -0
  43. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.styles.js +69 -0
  44. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.styles.js.map +1 -0
  45. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.hooks.js +265 -0
  46. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.hooks.js.map +1 -0
  47. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.js +193 -0
  48. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.js.map +1 -0
  49. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.styles.js +132 -0
  50. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.styles.js.map +1 -0
  51. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.utils.js +78 -0
  52. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.utils.js.map +1 -0
  53. package/lib/cjs/components/split-layout/SplitLayout.js +90 -0
  54. package/lib/cjs/components/split-layout/SplitLayout.js.map +1 -0
  55. package/lib/cjs/components/split-layout/SplitLayout.styles.js +44 -0
  56. package/lib/cjs/components/split-layout/SplitLayout.styles.js.map +1 -0
  57. package/lib/cjs/components/split-layout/SplitLayout.types.js +12 -0
  58. package/lib/cjs/components/split-layout/SplitLayout.types.js.map +1 -0
  59. package/lib/cjs/components/split-layout/SplitLayout.utils.js +25 -0
  60. package/lib/cjs/components/split-layout/SplitLayout.utils.js.map +1 -0
  61. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.hooks.js +63 -0
  62. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.hooks.js.map +1 -0
  63. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.js +34 -0
  64. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.js.map +1 -0
  65. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.styles.js +58 -0
  66. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.styles.js.map +1 -0
  67. package/lib/cjs/components/user-image/UserImage.js +38 -0
  68. package/lib/cjs/components/user-image/UserImage.js.map +1 -0
  69. package/lib/cjs/components/user-image/UserImage.types.js +6 -0
  70. package/lib/cjs/components/user-image/UserImage.types.js.map +1 -0
  71. package/lib/cjs/components/user-image/userImage.styles.js +27 -0
  72. package/lib/cjs/components/user-image/userImage.styles.js.map +1 -0
  73. package/lib/cjs/index.js +49 -1
  74. package/lib/cjs/index.js.map +1 -1
  75. package/lib/esm/components/navigation-layout/NavigationLayout.constants.js +8 -0
  76. package/lib/esm/components/navigation-layout/NavigationLayout.constants.js.map +1 -0
  77. package/lib/esm/components/navigation-layout/NavigationLayout.context.js +17 -0
  78. package/lib/esm/components/navigation-layout/NavigationLayout.context.js.map +1 -0
  79. package/lib/esm/components/navigation-layout/NavigationLayout.js +97 -0
  80. package/lib/esm/components/navigation-layout/NavigationLayout.js.map +1 -0
  81. package/lib/esm/components/navigation-layout/NavigationLayout.styles.js +67 -0
  82. package/lib/esm/components/navigation-layout/NavigationLayout.styles.js.map +1 -0
  83. package/lib/esm/components/navigation-layout/NavigationLayout.types.js +2 -0
  84. package/lib/esm/components/navigation-layout/NavigationLayout.types.js.map +1 -0
  85. package/lib/esm/components/navigation-layout/NavigationLayout.utils.js +251 -0
  86. package/lib/esm/components/navigation-layout/NavigationLayout.utils.js.map +1 -0
  87. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.js +24 -0
  88. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.js.map +1 -0
  89. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.styles.js +23 -0
  90. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.styles.js.map +1 -0
  91. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.types.js +2 -0
  92. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.types.js.map +1 -0
  93. package/lib/esm/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.js +64 -0
  94. package/lib/esm/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.js.map +1 -0
  95. package/lib/esm/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.styles.js +12 -0
  96. package/lib/esm/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.styles.js.map +1 -0
  97. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.context.js +17 -0
  98. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.context.js.map +1 -0
  99. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.js +132 -0
  100. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.js.map +1 -0
  101. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.styles.js +82 -0
  102. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.styles.js.map +1 -0
  103. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.types.js +2 -0
  104. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.types.js.map +1 -0
  105. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.utils.js +73 -0
  106. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.utils.js.map +1 -0
  107. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.js +10 -0
  108. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.js.map +1 -0
  109. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.styles.js +12 -0
  110. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.styles.js.map +1 -0
  111. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.context.js +17 -0
  112. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.context.js.map +1 -0
  113. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.hooks.js +119 -0
  114. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.hooks.js.map +1 -0
  115. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.js +71 -0
  116. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.js.map +1 -0
  117. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.styles.js +62 -0
  118. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.styles.js.map +1 -0
  119. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.hooks.js +257 -0
  120. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.hooks.js.map +1 -0
  121. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.js +186 -0
  122. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.js.map +1 -0
  123. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.styles.js +126 -0
  124. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.styles.js.map +1 -0
  125. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.utils.js +67 -0
  126. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.utils.js.map +1 -0
  127. package/lib/esm/components/split-layout/SplitLayout.js +80 -0
  128. package/lib/esm/components/split-layout/SplitLayout.js.map +1 -0
  129. package/lib/esm/components/split-layout/SplitLayout.styles.js +37 -0
  130. package/lib/esm/components/split-layout/SplitLayout.styles.js.map +1 -0
  131. package/lib/esm/components/split-layout/SplitLayout.types.js +6 -0
  132. package/lib/esm/components/split-layout/SplitLayout.types.js.map +1 -0
  133. package/lib/esm/components/split-layout/SplitLayout.utils.js +17 -0
  134. package/lib/esm/components/split-layout/SplitLayout.utils.js.map +1 -0
  135. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.hooks.js +54 -0
  136. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.hooks.js.map +1 -0
  137. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.js +27 -0
  138. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.js.map +1 -0
  139. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.styles.js +52 -0
  140. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.styles.js.map +1 -0
  141. package/lib/esm/components/user-image/UserImage.js +31 -0
  142. package/lib/esm/components/user-image/UserImage.js.map +1 -0
  143. package/lib/esm/components/user-image/UserImage.types.js +2 -0
  144. package/lib/esm/components/user-image/UserImage.types.js.map +1 -0
  145. package/lib/esm/components/user-image/userImage.styles.js +20 -0
  146. package/lib/esm/components/user-image/userImage.styles.js.map +1 -0
  147. package/lib/esm/index.js +15 -1
  148. package/lib/esm/index.js.map +1 -1
  149. package/lib/types/components/navigation-layout/NavigationLayout.constants.d.ts +7 -0
  150. package/lib/types/components/navigation-layout/NavigationLayout.context.d.ts +15 -0
  151. package/lib/types/components/navigation-layout/NavigationLayout.d.ts +4 -0
  152. package/lib/types/components/navigation-layout/NavigationLayout.styles.d.ts +19 -0
  153. package/lib/types/components/navigation-layout/NavigationLayout.types.d.ts +125 -0
  154. package/lib/types/components/navigation-layout/NavigationLayout.utils.d.ts +22 -0
  155. package/lib/types/components/navigation-layout/navigation-header/NavigationHeader.d.ts +4 -0
  156. package/lib/types/components/navigation-layout/navigation-header/NavigationHeader.styles.d.ts +9 -0
  157. package/lib/types/components/navigation-layout/navigation-header/NavigationHeader.types.d.ts +10 -0
  158. package/lib/types/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.d.ts +8 -0
  159. package/lib/types/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.styles.d.ts +3 -0
  160. package/lib/types/components/navigation-layout/navigation-sidebar/NavigationSidebar.context.d.ts +19 -0
  161. package/lib/types/components/navigation-layout/navigation-sidebar/NavigationSidebar.d.ts +4 -0
  162. package/lib/types/components/navigation-layout/navigation-sidebar/NavigationSidebar.styles.d.ts +27 -0
  163. package/lib/types/components/navigation-layout/navigation-sidebar/NavigationSidebar.types.d.ts +54 -0
  164. package/lib/types/components/navigation-layout/navigation-sidebar/NavigationSidebar.utils.d.ts +22 -0
  165. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.d.ts +6 -0
  166. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.styles.d.ts +6 -0
  167. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.context.d.ts +22 -0
  168. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.d.ts +9 -0
  169. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.hooks.d.ts +26 -0
  170. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.styles.d.ts +9 -0
  171. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.d.ts +10 -0
  172. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.hooks.d.ts +51 -0
  173. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.styles.d.ts +24 -0
  174. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.utils.d.ts +23 -0
  175. package/lib/types/components/split-layout/SplitLayout.d.ts +4 -0
  176. package/lib/types/components/split-layout/SplitLayout.styles.d.ts +12 -0
  177. package/lib/types/components/split-layout/SplitLayout.types.d.ts +19 -0
  178. package/lib/types/components/split-layout/SplitLayout.utils.d.ts +8 -0
  179. package/lib/types/components/split-layout/resize-handle/ResizeHandle.d.ts +11 -0
  180. package/lib/types/components/split-layout/resize-handle/ResizeHandle.hooks.d.ts +9 -0
  181. package/lib/types/components/split-layout/resize-handle/ResizeHandle.styles.d.ts +15 -0
  182. package/lib/types/components/user-image/UserImage.d.ts +4 -0
  183. package/lib/types/components/user-image/UserImage.types.d.ts +8 -0
  184. package/lib/types/components/user-image/userImage.styles.d.ts +10 -0
  185. package/lib/types/index.d.ts +10 -2
  186. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarItem.hooks.js","names":["_react","require","_SidebarItem","_NavigationLayout","setDragMoveEffect","event","dataTransfer","dropEffect","resolveSidebarContainer","item","closest","document","getElementById","useSidebarItemPopup","isDisabled","shouldShowCollapsedLabel","coordinates","setCoordinates","useState","isHovered","setIsHovered","popupContainer","setPopupContainer","animationFrameIdRef","useRef","lastCoordinatesRef","itemRef","resetCoordinates","useCallback","current","resolvePopupContainer","nextContainer","previousContainer","updateCoordinates","itemElement","nextCoordinates","getSidebarItemPopupCoordinates","container","areCoordinatesEqual","coordinatesA","coordinatesB","scheduleCoordinatesUpdate","requestAnimationFrame","handleMouseEnter","handleMouseLeave","useEffect","undefined","resizeObserver","ResizeObserver","observe","scrollableElements","getScrollableAncestorElements","element","boundaryElement","forEach","addEventListener","passive","window","removeEventListener","disconnect","cancelAnimationFrame","shouldRenderPopup","exports","useSidebarItemReorder","childItems","draggedItemId","dropTarget","id","index","isReorderEnabled","onDragEnd","onDragStart","onDrop","onDropInside","onDropTargetChange","parentIds","childParentIds","useMemo","canDragItem","canDropInsideItem","currentItem","itemId","beforeTarget","placement","insideTarget","length","childListEndTarget","lastChild","isBeforeDropTargetActive","isNavigationLayoutReorderTargetEqual","targetA","targetB","isInsideDropTargetActive","isChildListEndTargetActive","handleDragStart","handleResolvedDragEnd","handleBeforeDragOver","preventDefault","handleBeforeDrop","stopPropagation","handleInsideDragOver","handleInsideDrop","handleChildListEndDragOver","handleChildListEndDrop","handleDragEnd","isDragging"],"sources":["../../../../../../../src/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.hooks.ts"],"sourcesContent":["import { RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n areCoordinatesEqual,\n Coordinates,\n getScrollableAncestorElements,\n getSidebarItemPopupCoordinates,\n} from './SidebarItem.utils';\nimport {\n NavigationLayoutItem,\n NavigationLayoutItemReorderSource,\n NavigationLayoutItemReorderTarget,\n} from '../../../NavigationLayout.types';\nimport { isNavigationLayoutReorderTargetEqual } from '../../../NavigationLayout.utils';\n\nexport interface UseSidebarItemPopupOptions {\n isDisabled: boolean;\n shouldShowCollapsedLabel?: boolean;\n}\n\nexport interface UseSidebarItemPopupResult {\n coordinates: Coordinates | null;\n handleMouseEnter: () => void;\n handleMouseLeave: () => void;\n isHovered: boolean;\n itemRef: RefObject<HTMLDivElement>;\n popupContainer: HTMLElement | null;\n shouldRenderPopup: boolean;\n}\n\nexport interface UseSidebarItemReorderOptions {\n childItems: NavigationLayoutItem['children'];\n draggedItemId?: NavigationLayoutItem['id'];\n dropTarget: NavigationLayoutItemReorderTarget | null;\n id: NavigationLayoutItem['id'];\n index: number;\n isDisabled?: NavigationLayoutItem['isDisabled'];\n isReorderEnabled: boolean;\n onDragEnd: VoidFunction;\n onDragStart: (\n event: React.DragEvent<HTMLDivElement>,\n item: NavigationLayoutItemReorderSource,\n ) => void;\n onDrop: (target: NavigationLayoutItemReorderTarget) => void;\n onDropInside?: VoidFunction;\n onDropTargetChange: (target: NavigationLayoutItemReorderTarget) => void;\n parentIds: NavigationLayoutItem['id'][];\n}\n\nexport interface UseSidebarItemReorderResult {\n canDragItem: boolean;\n canDropInsideItem: boolean;\n childParentIds: NavigationLayoutItem['id'][];\n childListEndTarget: NavigationLayoutItemReorderTarget | null;\n handleBeforeDragOver: (event: React.DragEvent<HTMLDivElement>) => void;\n handleBeforeDrop: (event: React.DragEvent<HTMLDivElement>) => void;\n handleChildListEndDragOver: (event: React.DragEvent<HTMLDivElement>) => void;\n handleChildListEndDrop: (event: React.DragEvent<HTMLDivElement>) => void;\n handleDragEnd: VoidFunction;\n handleDragStart: (event: React.DragEvent<HTMLDivElement>) => void;\n handleInsideDragOver: (event: React.DragEvent<HTMLDivElement>) => void;\n handleInsideDrop: (event: React.DragEvent<HTMLDivElement>) => void;\n isBeforeDropTargetActive: boolean;\n isChildListEndTargetActive: boolean;\n isDragging: boolean;\n isInsideDropTargetActive: boolean;\n}\n\nconst setDragMoveEffect = (event: React.DragEvent<HTMLDivElement>): void => {\n const { dataTransfer } = event;\n\n dataTransfer.dropEffect = 'move';\n};\n\nconst resolveSidebarContainer = (item: HTMLDivElement | null): HTMLElement | null => {\n if (!item) {\n return null;\n }\n\n return (\n item.closest<HTMLElement>('[data-navigation-sidebar-root=\"true\"]') ??\n document.getElementById('sidebar')\n );\n};\n\nexport const useSidebarItemPopup = ({\n isDisabled,\n shouldShowCollapsedLabel,\n}: UseSidebarItemPopupOptions): UseSidebarItemPopupResult => {\n const [coordinates, setCoordinates] = useState<Coordinates | null>(null);\n const [isHovered, setIsHovered] = useState(false);\n const [popupContainer, setPopupContainer] = useState<HTMLElement | null>(null);\n\n const animationFrameIdRef = useRef<number | null>(null);\n const lastCoordinatesRef = useRef<Coordinates | null>(null);\n const itemRef = useRef<HTMLDivElement>(null);\n\n const resetCoordinates = useCallback(() => {\n lastCoordinatesRef.current = null;\n setCoordinates(null);\n }, []);\n\n const resolvePopupContainer = useCallback(() => {\n const nextContainer = resolveSidebarContainer(itemRef.current);\n\n setPopupContainer((previousContainer) =>\n previousContainer === nextContainer ? previousContainer : nextContainer,\n );\n\n return nextContainer;\n }, []);\n\n const updateCoordinates = useCallback(() => {\n const nextContainer = popupContainer ?? resolvePopupContainer();\n const itemElement = itemRef.current;\n\n if (!nextContainer || !itemElement) {\n resetCoordinates();\n\n return;\n }\n\n const nextCoordinates = getSidebarItemPopupCoordinates({\n container: nextContainer,\n item: itemElement,\n });\n\n if (\n areCoordinatesEqual({\n coordinatesA: lastCoordinatesRef.current,\n coordinatesB: nextCoordinates,\n })\n ) {\n return;\n }\n\n lastCoordinatesRef.current = nextCoordinates;\n setCoordinates(nextCoordinates);\n }, [popupContainer, resetCoordinates, resolvePopupContainer]);\n\n const scheduleCoordinatesUpdate = useCallback(() => {\n if (animationFrameIdRef.current !== null) {\n return;\n }\n\n animationFrameIdRef.current = requestAnimationFrame(() => {\n animationFrameIdRef.current = null;\n updateCoordinates();\n });\n }, [updateCoordinates]);\n\n const handleMouseEnter = useCallback(() => {\n resolvePopupContainer();\n setIsHovered(true);\n scheduleCoordinatesUpdate();\n }, [resolvePopupContainer, scheduleCoordinatesUpdate]);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n resetCoordinates();\n }, [resetCoordinates]);\n\n useEffect(() => {\n resolvePopupContainer();\n }, [resolvePopupContainer]);\n\n useEffect(() => {\n if (!isHovered || isDisabled || !shouldShowCollapsedLabel) {\n resetCoordinates();\n\n return undefined;\n }\n\n const nextContainer = popupContainer ?? resolvePopupContainer();\n const itemElement = itemRef.current;\n\n if (!nextContainer || !itemElement) {\n return undefined;\n }\n\n scheduleCoordinatesUpdate();\n\n const resizeObserver =\n typeof ResizeObserver === 'undefined'\n ? null\n : new ResizeObserver(() => {\n scheduleCoordinatesUpdate();\n });\n\n resizeObserver?.observe(nextContainer);\n resizeObserver?.observe(itemElement);\n\n const scrollableElements = getScrollableAncestorElements({\n element: itemElement,\n boundaryElement: nextContainer,\n });\n\n scrollableElements.forEach((element) => {\n element.addEventListener('scroll', scheduleCoordinatesUpdate, { passive: true });\n });\n\n window.addEventListener('resize', scheduleCoordinatesUpdate);\n\n return () => {\n scrollableElements.forEach((element) => {\n element.removeEventListener('scroll', scheduleCoordinatesUpdate);\n });\n\n window.removeEventListener('resize', scheduleCoordinatesUpdate);\n resizeObserver?.disconnect();\n\n if (animationFrameIdRef.current !== null) {\n cancelAnimationFrame(animationFrameIdRef.current);\n animationFrameIdRef.current = null;\n }\n };\n }, [\n isDisabled,\n isHovered,\n popupContainer,\n resetCoordinates,\n resolvePopupContainer,\n scheduleCoordinatesUpdate,\n shouldShowCollapsedLabel,\n ]);\n\n return {\n coordinates,\n handleMouseEnter,\n handleMouseLeave,\n isHovered,\n itemRef,\n popupContainer,\n shouldRenderPopup: !isDisabled && !!shouldShowCollapsedLabel && isHovered && !!coordinates,\n };\n};\n\nexport const useSidebarItemReorder = ({\n childItems,\n draggedItemId,\n dropTarget,\n id,\n index,\n isDisabled,\n isReorderEnabled,\n onDragEnd,\n onDragStart,\n onDrop,\n onDropInside,\n onDropTargetChange,\n parentIds,\n}: UseSidebarItemReorderOptions): UseSidebarItemReorderResult => {\n const childParentIds = useMemo(() => [...parentIds, id], [id, parentIds]);\n const canDragItem = isReorderEnabled && !isDisabled;\n const canDropInsideItem = isReorderEnabled && !isDisabled;\n\n const currentItem = useMemo<NavigationLayoutItemReorderSource>(\n () => ({\n itemId: id,\n parentIds,\n index,\n }),\n [id, index, parentIds],\n );\n\n const beforeTarget = useMemo<NavigationLayoutItemReorderTarget>(\n () => ({\n itemId: id,\n parentIds,\n index,\n placement: 'before',\n }),\n [id, index, parentIds],\n );\n\n const insideTarget = useMemo<NavigationLayoutItemReorderTarget>(\n () => ({\n itemId: id,\n parentIds: childParentIds,\n index: childItems?.length ?? 0,\n placement: 'inside',\n }),\n [childItems, childParentIds, id],\n );\n\n const childListEndTarget = useMemo<NavigationLayoutItemReorderTarget | null>(() => {\n const lastChild = childItems?.[childItems.length - 1];\n\n if (!lastChild) {\n return null;\n }\n\n return {\n itemId: lastChild.id,\n parentIds: childParentIds,\n index: childItems.length,\n placement: 'after',\n };\n }, [childItems, childParentIds]);\n\n const isBeforeDropTargetActive = useMemo(\n () =>\n isNavigationLayoutReorderTargetEqual({\n targetA: dropTarget,\n targetB: beforeTarget,\n }),\n [beforeTarget, dropTarget],\n );\n\n const isInsideDropTargetActive = useMemo(\n () =>\n isNavigationLayoutReorderTargetEqual({\n targetA: dropTarget,\n targetB: insideTarget,\n }),\n [dropTarget, insideTarget],\n );\n\n const isChildListEndTargetActive = useMemo(\n () =>\n isNavigationLayoutReorderTargetEqual({\n targetA: dropTarget,\n targetB: childListEndTarget,\n }),\n [childListEndTarget, dropTarget],\n );\n\n const handleDragStart = useCallback(\n (event: React.DragEvent<HTMLDivElement>): void => {\n if (!canDragItem) {\n return;\n }\n\n onDragStart(event, currentItem);\n },\n [canDragItem, currentItem, onDragStart],\n );\n\n const handleResolvedDragEnd = useCallback((): void => {\n if (!canDragItem) {\n return;\n }\n\n onDragEnd();\n }, [canDragItem, onDragEnd]);\n\n const handleBeforeDragOver = useCallback(\n (event: React.DragEvent<HTMLDivElement>): void => {\n event.preventDefault();\n setDragMoveEffect(event);\n onDropTargetChange(beforeTarget);\n },\n [beforeTarget, onDropTargetChange],\n );\n\n const handleBeforeDrop = useCallback(\n (event: React.DragEvent<HTMLDivElement>): void => {\n event.preventDefault();\n event.stopPropagation();\n onDrop(beforeTarget);\n },\n [beforeTarget, onDrop],\n );\n\n const handleInsideDragOver = useCallback(\n (event: React.DragEvent<HTMLDivElement>): void => {\n if (!canDropInsideItem) {\n return;\n }\n\n event.preventDefault();\n setDragMoveEffect(event);\n onDropTargetChange(insideTarget);\n },\n [canDropInsideItem, insideTarget, onDropTargetChange],\n );\n\n const handleInsideDrop = useCallback(\n (event: React.DragEvent<HTMLDivElement>): void => {\n if (!canDropInsideItem) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n onDropInside?.();\n onDrop(insideTarget);\n },\n [canDropInsideItem, insideTarget, onDrop, onDropInside],\n );\n\n const handleChildListEndDragOver = useCallback(\n (event: React.DragEvent<HTMLDivElement>): void => {\n if (!childListEndTarget) {\n return;\n }\n\n event.preventDefault();\n setDragMoveEffect(event);\n onDropTargetChange(childListEndTarget);\n },\n [childListEndTarget, onDropTargetChange],\n );\n\n const handleChildListEndDrop = useCallback(\n (event: React.DragEvent<HTMLDivElement>): void => {\n if (!childListEndTarget) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n onDrop(childListEndTarget);\n },\n [childListEndTarget, onDrop],\n );\n\n return {\n canDragItem,\n canDropInsideItem,\n childParentIds,\n childListEndTarget,\n handleBeforeDragOver,\n handleBeforeDrop,\n handleChildListEndDragOver,\n handleChildListEndDrop,\n handleDragEnd: handleResolvedDragEnd,\n handleDragStart,\n handleInsideDragOver,\n handleInsideDrop,\n isBeforeDropTargetActive,\n isChildListEndTargetActive,\n isDragging: draggedItemId === id,\n isInsideDropTargetActive,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _core = require("@chayns-components/core");
9
+ var _SidebarItem = require("./SidebarItem.styles");
10
+ var _SidebarItem2 = require("./SidebarItem.utils");
11
+ var _reactDom = require("react-dom");
12
+ var _react2 = require("motion/react");
13
+ var _SidebarItem3 = require("./SidebarItem.hooks");
14
+ var _SidebarGroup = require("../SidebarGroup.styles");
15
+ var _NavigationSidebar = require("../../NavigationSidebar.context");
16
+ var _SidebarGroup2 = require("../SidebarGroup.context");
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
+ const SidebarItem = ({
19
+ item,
20
+ index,
21
+ parentIds,
22
+ shouldShowCollapsedLabel: shouldShowCollapsedLabelProp
23
+ }) => {
24
+ const {
25
+ children: childItems,
26
+ disabledReason,
27
+ icons,
28
+ id,
29
+ imageElement,
30
+ imageUrl,
31
+ isDisabled,
32
+ label
33
+ } = item;
34
+ const [shouldShowChildren, setShouldShowChildren] = (0, _react.useState)(false);
35
+ const {
36
+ color,
37
+ isCompact,
38
+ onItemClick,
39
+ selectedItemId,
40
+ shouldShowCollapsedLabel
41
+ } = (0, _NavigationSidebar.useNavigationSidebarContext)();
42
+ const {
43
+ draggedItemId,
44
+ dropTarget,
45
+ isReorderEnabled,
46
+ onDragEnd,
47
+ onDragStart,
48
+ onDrop,
49
+ onDropTargetChange
50
+ } = (0, _SidebarGroup2.useSidebarGroupReorderContext)();
51
+ const resolvedShouldShowCollapsedLabel = shouldShowCollapsedLabelProp ?? shouldShowCollapsedLabel;
52
+ const {
53
+ coordinates,
54
+ handleMouseEnter,
55
+ handleMouseLeave,
56
+ isHovered,
57
+ itemRef,
58
+ popupContainer,
59
+ shouldRenderPopup
60
+ } = (0, _SidebarItem3.useSidebarItemPopup)({
61
+ isDisabled: Boolean(isDisabled),
62
+ shouldShowCollapsedLabel: resolvedShouldShowCollapsedLabel
63
+ });
64
+ const {
65
+ canDragItem,
66
+ canDropInsideItem,
67
+ childParentIds,
68
+ childListEndTarget,
69
+ handleBeforeDragOver,
70
+ handleBeforeDrop,
71
+ handleChildListEndDragOver,
72
+ handleChildListEndDrop,
73
+ handleDragEnd,
74
+ handleDragStart,
75
+ handleInsideDragOver,
76
+ handleInsideDrop,
77
+ isBeforeDropTargetActive,
78
+ isChildListEndTargetActive,
79
+ isDragging,
80
+ isInsideDropTargetActive
81
+ } = (0, _SidebarItem3.useSidebarItemReorder)({
82
+ childItems,
83
+ draggedItemId,
84
+ dropTarget,
85
+ id,
86
+ index,
87
+ isDisabled,
88
+ isReorderEnabled,
89
+ onDragEnd,
90
+ onDragStart,
91
+ onDrop,
92
+ onDropInside: () => setShouldShowChildren(true),
93
+ onDropTargetChange,
94
+ parentIds
95
+ });
96
+ const isSelected = (0, _react.useMemo)(() => (0, _SidebarItem2.isItemOrChildSelected)(item, selectedItemId), [item, selectedItemId]);
97
+ (0, _react.useEffect)(() => {
98
+ if (isCompact) {
99
+ setShouldShowChildren(false);
100
+ }
101
+ }, [isCompact]);
102
+ const handleClick = (0, _react.useCallback)(() => {
103
+ if (isDisabled || typeof onItemClick !== 'function') {
104
+ return;
105
+ }
106
+ onItemClick(id, parentIds);
107
+ }, [id, isDisabled, onItemClick, parentIds]);
108
+ const handleOpenIconClick = (0, _react.useCallback)(event => {
109
+ event.stopPropagation();
110
+ setShouldShowChildren(previousValue => !previousValue);
111
+ }, []);
112
+ const renderChildItem = (0, _react.useCallback)((childItem, childIndex) => /*#__PURE__*/_react.default.createElement(SidebarItem, {
113
+ key: childItem.id,
114
+ item: childItem,
115
+ index: childIndex,
116
+ parentIds: childParentIds,
117
+ shouldShowCollapsedLabel: false
118
+ }), [childParentIds]);
119
+ const children = (0, _react.useMemo)(() => {
120
+ if (!(childItems !== null && childItems !== void 0 && childItems.length)) {
121
+ return null;
122
+ }
123
+ return childItems.map(renderChildItem);
124
+ }, [childItems, renderChildItem]);
125
+ return /*#__PURE__*/_react.default.createElement(_SidebarItem.StyledSidebarItem, null, isReorderEnabled && /*#__PURE__*/_react.default.createElement(_SidebarGroup.StyledSidebarDropZone, {
126
+ $depth: parentIds.length,
127
+ $isActive: isBeforeDropTargetActive,
128
+ $isDragging: !!draggedItemId,
129
+ $placement: "before",
130
+ onDragOver: handleBeforeDragOver,
131
+ onDrop: handleBeforeDrop
132
+ }), /*#__PURE__*/_react.default.createElement(_core.Tooltip, {
133
+ item: {
134
+ text: disabledReason ?? ''
135
+ },
136
+ isDisabled: !disabledReason,
137
+ shouldUseFullWidth: true
138
+ }, /*#__PURE__*/_react.default.createElement(_SidebarItem.StyledSidebarItemHead, {
139
+ ref: itemRef,
140
+ $shouldHighlight: !isDisabled && (isHovered || isSelected),
141
+ $isDisabled: isDisabled,
142
+ $hasDisabledReason: !!disabledReason,
143
+ $isDragging: isDragging,
144
+ $isReorderable: canDragItem,
145
+ draggable: canDragItem,
146
+ onDragEnd: handleDragEnd,
147
+ onDragStart: handleDragStart,
148
+ onMouseEnter: handleMouseEnter,
149
+ onMouseLeave: handleMouseLeave,
150
+ onClick: handleClick
151
+ }, /*#__PURE__*/_react.default.createElement(_SidebarItem.StyledSidebarItemHeadContent, null, /*#__PURE__*/_react.default.createElement(_SidebarItem.StyledSidebarItemIcon, null, imageUrl && /*#__PURE__*/_react.default.createElement(_SidebarItem.StyledSidebarItemIconImage, {
152
+ src: imageUrl
153
+ }), imageElement, icons && /*#__PURE__*/_react.default.createElement(_core.Icon, {
154
+ icons: icons,
155
+ size: 21,
156
+ color: color
157
+ })), /*#__PURE__*/_react.default.createElement(_SidebarItem.StyledSidebarItemLabel, null, label)), !!children && !isCompact && !isDisabled && /*#__PURE__*/_react.default.createElement(_SidebarItem.StyledMotionSidebarOpenIcon, {
158
+ initial: false,
159
+ animate: {
160
+ rotate: shouldShowChildren ? 180 : 0
161
+ },
162
+ transition: {
163
+ type: 'tween'
164
+ },
165
+ onClick: handleOpenIconClick
166
+ }, /*#__PURE__*/_react.default.createElement(_core.Icon, {
167
+ icons: ['fa fa-chevron-down'],
168
+ color: color
169
+ })))), canDropInsideItem && /*#__PURE__*/_react.default.createElement(_SidebarGroup.StyledSidebarDropZone, {
170
+ $depth: childParentIds.length,
171
+ $isActive: isInsideDropTargetActive,
172
+ $isDragging: !!draggedItemId,
173
+ $placement: "inside",
174
+ onDragOver: handleInsideDragOver,
175
+ onDrop: handleInsideDrop
176
+ }), !!children && /*#__PURE__*/_react.default.createElement(_core.ExpandableContent, {
177
+ isOpen: shouldShowChildren
178
+ }, /*#__PURE__*/_react.default.createElement(_SidebarItem.StyledSidebarItemChildren, null, children, isReorderEnabled && childListEndTarget && /*#__PURE__*/_react.default.createElement(_SidebarGroup.StyledSidebarDropZone, {
179
+ $depth: childParentIds.length,
180
+ $isActive: isChildListEndTargetActive,
181
+ $isDragging: !!draggedItemId,
182
+ $placement: "after",
183
+ onDragOver: handleChildListEndDragOver,
184
+ onDrop: handleChildListEndDrop
185
+ }))), popupContainer && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement(_react2.AnimatePresence, {
186
+ initial: false
187
+ }, shouldRenderPopup && coordinates && /*#__PURE__*/_react.default.createElement(_SidebarItem.StyledSidebarItemPopup, {
188
+ $coordinates: coordinates
189
+ }, label)), popupContainer));
190
+ };
191
+ SidebarItem.displayName = 'SidebarItem';
192
+ var _default = exports.default = /*#__PURE__*/(0, _react.memo)(SidebarItem);
193
+ //# sourceMappingURL=SidebarItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarItem.js","names":["_react","_interopRequireWildcard","require","_core","_SidebarItem","_SidebarItem2","_reactDom","_react2","_SidebarItem3","_SidebarGroup","_NavigationSidebar","_SidebarGroup2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SidebarItem","item","index","parentIds","shouldShowCollapsedLabel","shouldShowCollapsedLabelProp","children","childItems","disabledReason","icons","id","imageElement","imageUrl","isDisabled","label","shouldShowChildren","setShouldShowChildren","useState","color","isCompact","onItemClick","selectedItemId","useNavigationSidebarContext","draggedItemId","dropTarget","isReorderEnabled","onDragEnd","onDragStart","onDrop","onDropTargetChange","useSidebarGroupReorderContext","resolvedShouldShowCollapsedLabel","coordinates","handleMouseEnter","handleMouseLeave","isHovered","itemRef","popupContainer","shouldRenderPopup","useSidebarItemPopup","Boolean","canDragItem","canDropInsideItem","childParentIds","childListEndTarget","handleBeforeDragOver","handleBeforeDrop","handleChildListEndDragOver","handleChildListEndDrop","handleDragEnd","handleDragStart","handleInsideDragOver","handleInsideDrop","isBeforeDropTargetActive","isChildListEndTargetActive","isDragging","isInsideDropTargetActive","useSidebarItemReorder","onDropInside","isSelected","useMemo","isItemOrChildSelected","useEffect","handleClick","useCallback","handleOpenIconClick","event","stopPropagation","previousValue","renderChildItem","childItem","childIndex","createElement","key","length","map","StyledSidebarItem","StyledSidebarDropZone","$depth","$isActive","$isDragging","$placement","onDragOver","Tooltip","text","shouldUseFullWidth","StyledSidebarItemHead","ref","$shouldHighlight","$isDisabled","$hasDisabledReason","$isReorderable","draggable","onMouseEnter","onMouseLeave","onClick","StyledSidebarItemHeadContent","StyledSidebarItemIcon","StyledSidebarItemIconImage","src","Icon","size","StyledSidebarItemLabel","StyledMotionSidebarOpenIcon","initial","animate","rotate","transition","type","ExpandableContent","isOpen","StyledSidebarItemChildren","createPortal","AnimatePresence","StyledSidebarItemPopup","$coordinates","displayName","_default","exports","memo"],"sources":["../../../../../../../src/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.tsx"],"sourcesContent":["import React, { FC, memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport { ExpandableContent, Icon, Tooltip } from '@chayns-components/core';\nimport {\n StyledSidebarItem,\n StyledSidebarItemChildren,\n StyledSidebarItemHead,\n StyledSidebarItemHeadContent,\n StyledSidebarItemIcon,\n StyledSidebarItemIconImage,\n StyledSidebarItemLabel,\n StyledMotionSidebarOpenIcon,\n StyledSidebarItemPopup,\n} from './SidebarItem.styles';\nimport { NavigationLayoutItem } from '../../../NavigationLayout.types';\nimport { isItemOrChildSelected } from './SidebarItem.utils';\nimport { createPortal } from 'react-dom';\nimport { AnimatePresence } from 'motion/react';\nimport { useSidebarItemPopup, useSidebarItemReorder } from './SidebarItem.hooks';\nimport { StyledSidebarDropZone } from '../SidebarGroup.styles';\nimport { useNavigationSidebarContext } from '../../NavigationSidebar.context';\nimport { useSidebarGroupReorderContext } from '../SidebarGroup.context';\n\ninterface SidebarItemProps {\n item: NavigationLayoutItem;\n index: number;\n parentIds: NavigationLayoutItem['id'][];\n shouldShowCollapsedLabel?: boolean;\n}\n\nconst SidebarItem: FC<SidebarItemProps> = ({\n item,\n index,\n parentIds,\n shouldShowCollapsedLabel: shouldShowCollapsedLabelProp,\n}) => {\n const {\n children: childItems,\n disabledReason,\n icons,\n id,\n imageElement,\n imageUrl,\n isDisabled,\n label,\n } = item;\n const [shouldShowChildren, setShouldShowChildren] = useState(false);\n const { color, isCompact, onItemClick, selectedItemId, shouldShowCollapsedLabel } =\n useNavigationSidebarContext();\n const {\n draggedItemId,\n dropTarget,\n isReorderEnabled,\n onDragEnd,\n onDragStart,\n onDrop,\n onDropTargetChange,\n } = useSidebarGroupReorderContext();\n const resolvedShouldShowCollapsedLabel =\n shouldShowCollapsedLabelProp ?? shouldShowCollapsedLabel;\n const {\n coordinates,\n handleMouseEnter,\n handleMouseLeave,\n isHovered,\n itemRef,\n popupContainer,\n shouldRenderPopup,\n } = useSidebarItemPopup({\n isDisabled: Boolean(isDisabled),\n shouldShowCollapsedLabel: resolvedShouldShowCollapsedLabel,\n });\n const {\n canDragItem,\n canDropInsideItem,\n childParentIds,\n childListEndTarget,\n handleBeforeDragOver,\n handleBeforeDrop,\n handleChildListEndDragOver,\n handleChildListEndDrop,\n handleDragEnd,\n handleDragStart,\n handleInsideDragOver,\n handleInsideDrop,\n isBeforeDropTargetActive,\n isChildListEndTargetActive,\n isDragging,\n isInsideDropTargetActive,\n } = useSidebarItemReorder({\n childItems,\n draggedItemId,\n dropTarget,\n id,\n index,\n isDisabled,\n isReorderEnabled,\n onDragEnd,\n onDragStart,\n onDrop,\n onDropInside: () => setShouldShowChildren(true),\n onDropTargetChange,\n parentIds,\n });\n\n const isSelected = useMemo(\n () => isItemOrChildSelected(item, selectedItemId),\n [item, selectedItemId],\n );\n\n useEffect(() => {\n if (isCompact) {\n setShouldShowChildren(false);\n }\n }, [isCompact]);\n\n const handleClick = useCallback(() => {\n if (isDisabled || typeof onItemClick !== 'function') {\n return;\n }\n\n onItemClick(id, parentIds);\n }, [id, isDisabled, onItemClick, parentIds]);\n\n const handleOpenIconClick = useCallback((event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n setShouldShowChildren((previousValue) => !previousValue);\n }, []);\n\n const renderChildItem = useCallback(\n (childItem: NavigationLayoutItem, childIndex: number) => (\n <SidebarItem\n key={childItem.id}\n item={childItem}\n index={childIndex}\n parentIds={childParentIds}\n shouldShowCollapsedLabel={false}\n />\n ),\n [childParentIds],\n );\n\n const children = useMemo(() => {\n if (!childItems?.length) {\n return null;\n }\n\n return childItems.map(renderChildItem);\n }, [childItems, renderChildItem]);\n\n return (\n <StyledSidebarItem>\n {isReorderEnabled && (\n <StyledSidebarDropZone\n $depth={parentIds.length}\n $isActive={isBeforeDropTargetActive}\n $isDragging={!!draggedItemId}\n $placement=\"before\"\n onDragOver={handleBeforeDragOver}\n onDrop={handleBeforeDrop}\n />\n )}\n <Tooltip\n item={{ text: disabledReason ?? '' }}\n isDisabled={!disabledReason}\n shouldUseFullWidth\n >\n <StyledSidebarItemHead\n ref={itemRef}\n $shouldHighlight={!isDisabled && (isHovered || isSelected)}\n $isDisabled={isDisabled}\n $hasDisabledReason={!!disabledReason}\n $isDragging={isDragging}\n $isReorderable={canDragItem}\n draggable={canDragItem}\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onClick={handleClick}\n >\n <StyledSidebarItemHeadContent>\n <StyledSidebarItemIcon>\n {imageUrl && <StyledSidebarItemIconImage src={imageUrl} />}\n {imageElement}\n {icons && <Icon icons={icons} size={21} color={color} />}\n </StyledSidebarItemIcon>\n <StyledSidebarItemLabel>{label}</StyledSidebarItemLabel>\n </StyledSidebarItemHeadContent>\n {!!children && !isCompact && !isDisabled && (\n <StyledMotionSidebarOpenIcon\n initial={false}\n animate={{ rotate: shouldShowChildren ? 180 : 0 }}\n transition={{ type: 'tween' }}\n onClick={handleOpenIconClick}\n >\n <Icon icons={['fa fa-chevron-down']} color={color} />\n </StyledMotionSidebarOpenIcon>\n )}\n </StyledSidebarItemHead>\n </Tooltip>\n {canDropInsideItem && (\n <StyledSidebarDropZone\n $depth={childParentIds.length}\n $isActive={isInsideDropTargetActive}\n $isDragging={!!draggedItemId}\n $placement=\"inside\"\n onDragOver={handleInsideDragOver}\n onDrop={handleInsideDrop}\n />\n )}\n {!!children && (\n <ExpandableContent isOpen={shouldShowChildren}>\n <StyledSidebarItemChildren>\n {children}\n {isReorderEnabled && childListEndTarget && (\n <StyledSidebarDropZone\n $depth={childParentIds.length}\n $isActive={isChildListEndTargetActive}\n $isDragging={!!draggedItemId}\n $placement=\"after\"\n onDragOver={handleChildListEndDragOver}\n onDrop={handleChildListEndDrop}\n />\n )}\n </StyledSidebarItemChildren>\n </ExpandableContent>\n )}\n {popupContainer &&\n createPortal(\n <AnimatePresence initial={false}>\n {shouldRenderPopup && coordinates && (\n <StyledSidebarItemPopup $coordinates={coordinates}>\n {label}\n </StyledSidebarItemPopup>\n )}\n </AnimatePresence>,\n popupContainer,\n )}\n </StyledSidebarItem>\n );\n};\n\nSidebarItem.displayName = 'SidebarItem';\n\nexport default memo(SidebarItem);\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledSidebarItemPopup = exports.StyledSidebarItemLabel = exports.StyledSidebarItemIconImage = exports.StyledSidebarItemIcon = exports.StyledSidebarItemHeadContent = exports.StyledSidebarItemHead = exports.StyledSidebarItemChildren = exports.StyledSidebarItem = exports.StyledMotionSidebarOpenIcon = void 0;
7
+ var _styledComponents = require("styled-components");
8
+ var _react = require("motion/react");
9
+ const StyledSidebarItem = exports.StyledSidebarItem = _styledComponents.styled.div`
10
+ position: relative;
11
+ width: 100%;
12
+ display: flex;
13
+ flex-direction: column;
14
+ `;
15
+ const StyledSidebarItemHead = exports.StyledSidebarItemHead = _styledComponents.styled.div`
16
+ height: 42px;
17
+ width: 100%;
18
+
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: space-between;
22
+
23
+ opacity: ${({
24
+ $isDisabled
25
+ }) => $isDisabled ? 0.5 : 1};
26
+
27
+ ${({
28
+ $isDisabled,
29
+ $hasDisabledReason,
30
+ $isReorderable
31
+ }) => {
32
+ if ($isDisabled && $hasDisabledReason) {
33
+ return (0, _styledComponents.css)`
34
+ cursor: help;
35
+ `;
36
+ }
37
+ if ($isDisabled) {
38
+ return (0, _styledComponents.css)`
39
+ cursor: default;
40
+ `;
41
+ }
42
+ return (0, _styledComponents.css)`
43
+ cursor: ${$isReorderable ? 'grab' : 'pointer'};
44
+ `;
45
+ }}
46
+
47
+ ${({
48
+ $isDragging
49
+ }) => $isDragging && (0, _styledComponents.css)`
50
+ opacity: 0.55;
51
+ cursor: grabbing;
52
+ `}
53
+
54
+ ${({
55
+ $shouldHighlight
56
+ }) => $shouldHighlight && (0, _styledComponents.css)`
57
+ background-color: rgba(30, 30, 30, 0.3);
58
+ `}
59
+ `;
60
+ const StyledSidebarItemHeadContent = exports.StyledSidebarItemHeadContent = _styledComponents.styled.div`
61
+ display: flex;
62
+ align-items: center;
63
+ height: 100%;
64
+ min-width: 0;
65
+ `;
66
+ const StyledSidebarItemPopup = exports.StyledSidebarItemPopup = _styledComponents.styled.div`
67
+ position: absolute;
68
+ pointer-events: none;
69
+ opacity: 1;
70
+ background-color: ${({
71
+ theme
72
+ }) => theme['000']};
73
+ color: ${({
74
+ theme
75
+ }) => theme.text};
76
+ border-radius: 4px;
77
+
78
+ min-height: 30px;
79
+ padding: 0 10px;
80
+ transition: opacity 0.3s;
81
+ display: flex;
82
+ align-items: center;
83
+ z-index: 2;
84
+ white-space: nowrap;
85
+
86
+ box-shadow: 1px 3px 8px rgb(0, 0, 0, 0.3);
87
+ border: 1px solid rgba(0, 0, 0, 0.15);
88
+
89
+ top: ${({
90
+ $coordinates
91
+ }) => $coordinates.y}px;
92
+ left: ${({
93
+ $coordinates
94
+ }) => $coordinates.x}px;
95
+ transform: translateY(-50%);
96
+ `;
97
+ const StyledSidebarItemIcon = exports.StyledSidebarItemIcon = _styledComponents.styled.div`
98
+ display: flex;
99
+ align-items: center;
100
+ justify-content: center;
101
+ aspect-ratio: 1;
102
+ height: 100%;
103
+ `;
104
+ const StyledMotionSidebarOpenIcon = exports.StyledMotionSidebarOpenIcon = (0, _styledComponents.styled)(_react.motion.div)`
105
+ height: 30px;
106
+ width: 30px;
107
+ display: flex;
108
+ justify-content: center;
109
+ align-items: center;
110
+ flex-shrink: 0;
111
+ `;
112
+ const StyledSidebarItemIconImage = exports.StyledSidebarItemIconImage = _styledComponents.styled.img`
113
+ width: 28px;
114
+ `;
115
+ const StyledSidebarItemLabel = exports.StyledSidebarItemLabel = _styledComponents.styled.div`
116
+ text-overflow: ellipsis;
117
+ overflow: hidden;
118
+ white-space: nowrap;
119
+
120
+ flex: 1;
121
+ min-width: 0;
122
+ `;
123
+ const StyledSidebarItemChildren = exports.StyledSidebarItemChildren = _styledComponents.styled.div`
124
+ position: relative;
125
+ display: flex;
126
+ flex-direction: column;
127
+ gap: 2px;
128
+ padding-top: 2px;
129
+
130
+ padding-left: 8px;
131
+ `;
132
+ //# sourceMappingURL=SidebarItem.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarItem.styles.js","names":["_styledComponents","require","_react","StyledSidebarItem","exports","styled","div","StyledSidebarItemHead","$isDisabled","$hasDisabledReason","$isReorderable","css","$isDragging","$shouldHighlight","StyledSidebarItemHeadContent","StyledSidebarItemPopup","theme","text","$coordinates","y","x","StyledSidebarItemIcon","StyledMotionSidebarOpenIcon","motion","StyledSidebarItemIconImage","img","StyledSidebarItemLabel","StyledSidebarItemChildren"],"sources":["../../../../../../../src/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.styles.ts"],"sourcesContent":["import { css, styled } from 'styled-components';\nimport { motion } from 'motion/react';\nimport { WithTheme } from '@chayns-components/core';\nimport { Coordinates } from './SidebarItem.utils';\n\nexport const StyledSidebarItem = styled.div`\n position: relative;\n width: 100%;\n display: flex;\n flex-direction: column;\n`;\n\ntype StyledSidebarItemHeadProps = WithTheme<{\n $shouldHighlight: boolean;\n $hasDisabledReason: boolean;\n $isDisabled?: boolean;\n $isDragging?: boolean;\n $isReorderable?: boolean;\n}>;\n\nexport const StyledSidebarItemHead = styled.div<StyledSidebarItemHeadProps>`\n height: 42px;\n width: 100%;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n opacity: ${({ $isDisabled }) => ($isDisabled ? 0.5 : 1)};\n\n ${({ $isDisabled, $hasDisabledReason, $isReorderable }) => {\n if ($isDisabled && $hasDisabledReason) {\n return css`\n cursor: help;\n `;\n }\n\n if ($isDisabled) {\n return css`\n cursor: default;\n `;\n }\n\n return css`\n cursor: ${$isReorderable ? 'grab' : 'pointer'};\n `;\n }}\n\n ${({ $isDragging }) =>\n $isDragging &&\n css`\n opacity: 0.55;\n cursor: grabbing;\n `}\n\n ${({ $shouldHighlight }) =>\n $shouldHighlight &&\n css`\n background-color: rgba(30, 30, 30, 0.3);\n `}\n`;\n\nexport const StyledSidebarItemHeadContent = styled.div`\n display: flex;\n align-items: center;\n height: 100%;\n min-width: 0;\n`;\n\ntype StyledSidebarItemPopupProps = WithTheme<{\n $coordinates: Coordinates;\n}>;\n\nexport const StyledSidebarItemPopup = styled.div<StyledSidebarItemPopupProps>`\n position: absolute;\n pointer-events: none;\n opacity: 1;\n background-color: ${({ theme }) => theme['000']};\n color: ${({ theme }) => theme.text};\n border-radius: 4px;\n\n min-height: 30px;\n padding: 0 10px;\n transition: opacity 0.3s;\n display: flex;\n align-items: center;\n z-index: 2;\n white-space: nowrap;\n\n box-shadow: 1px 3px 8px rgb(0, 0, 0, 0.3);\n border: 1px solid rgba(0, 0, 0, 0.15);\n\n top: ${({ $coordinates }) => $coordinates.y}px;\n left: ${({ $coordinates }) => $coordinates.x}px;\n transform: translateY(-50%);\n`;\n\nexport const StyledSidebarItemIcon = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n aspect-ratio: 1;\n height: 100%;\n`;\n\nexport const StyledMotionSidebarOpenIcon = styled(motion.div)`\n height: 30px;\n width: 30px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n`;\n\nexport const StyledSidebarItemIconImage = styled.img`\n width: 28px;\n`;\n\nexport const StyledSidebarItemLabel = styled.div`\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n\n flex: 1;\n min-width: 0;\n`;\n\nexport const StyledSidebarItemChildren = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding-top: 2px;\n\n padding-left: 8px;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAIO,MAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAGE,wBAAM,CAACC,GAAG;AAC3C;AACA;AACA;AACA;AACA,CAAC;AAUM,MAAMC,qBAAqB,GAAAH,OAAA,CAAAG,qBAAA,GAAGF,wBAAM,CAACC,GAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,CAAC;EAAEE;AAAY,CAAC,KAAMA,WAAW,GAAG,GAAG,GAAG,CAAE;AAC3D;AACA,MAAM,CAAC;EAAEA,WAAW;EAAEC,kBAAkB;EAAEC;AAAe,CAAC,KAAK;EACvD,IAAIF,WAAW,IAAIC,kBAAkB,EAAE;IACnC,OAAO,IAAAE,qBAAG;AACtB;AACA,aAAa;EACL;EAEA,IAAIH,WAAW,EAAE;IACb,OAAO,IAAAG,qBAAG;AACtB;AACA,aAAa;EACL;EAEA,OAAO,IAAAA,qBAAG;AAClB,sBAAsBD,cAAc,GAAG,MAAM,GAAG,SAAS;AACzD,SAAS;AACL,CAAC;AACL;AACA,MAAM,CAAC;EAAEE;AAAY,CAAC,KACdA,WAAW,IACX,IAAAD,qBAAG;AACX;AACA;AACA,SAAS;AACT;AACA,MAAM,CAAC;EAAEE;AAAiB,CAAC,KACnBA,gBAAgB,IAChB,IAAAF,qBAAG;AACX;AACA,SAAS;AACT,CAAC;AAEM,MAAMG,4BAA4B,GAAAV,OAAA,CAAAU,4BAAA,GAAGT,wBAAM,CAACC,GAAG;AACtD;AACA;AACA;AACA;AACA,CAAC;AAMM,MAAMS,sBAAsB,GAAAX,OAAA,CAAAW,sBAAA,GAAGV,wBAAM,CAACC,GAAgC;AAC7E;AACA;AACA;AACA,wBAAwB,CAAC;EAAEU;AAAM,CAAC,KAAKA,KAAK,CAAC,KAAK,CAAC;AACnD,aAAa,CAAC;EAAEA;AAAM,CAAC,KAAKA,KAAK,CAACC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,CAAC;EAAEC;AAAa,CAAC,KAAKA,YAAY,CAACC,CAAC;AAC/C,YAAY,CAAC;EAAED;AAAa,CAAC,KAAKA,YAAY,CAACE,CAAC;AAChD;AACA,CAAC;AAEM,MAAMC,qBAAqB,GAAAjB,OAAA,CAAAiB,qBAAA,GAAGhB,wBAAM,CAACC,GAAG;AAC/C;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMgB,2BAA2B,GAAAlB,OAAA,CAAAkB,2BAAA,GAAG,IAAAjB,wBAAM,EAACkB,aAAM,CAACjB,GAAG,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMkB,0BAA0B,GAAApB,OAAA,CAAAoB,0BAAA,GAAGnB,wBAAM,CAACoB,GAAG;AACpD;AACA,CAAC;AAEM,MAAMC,sBAAsB,GAAAtB,OAAA,CAAAsB,sBAAA,GAAGrB,wBAAM,CAACC,GAAG;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMqB,yBAAyB,GAAAvB,OAAA,CAAAuB,yBAAA,GAAGtB,wBAAM,CAACC,GAAG;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isItemOrChildSelected = exports.getSidebarItemPopupCoordinates = exports.getScrollableAncestorElements = exports.areCoordinatesEqual = void 0;
7
+ const SCROLLABLE_OVERFLOW_VALUES = ['auto', 'scroll', 'overlay'];
8
+ const isScrollableElement = element => {
9
+ const {
10
+ overflowX,
11
+ overflowY
12
+ } = window.getComputedStyle(element);
13
+ return [overflowX, overflowY].some(value => SCROLLABLE_OVERFLOW_VALUES.includes(value));
14
+ };
15
+ const areCoordinatesEqual = ({
16
+ coordinatesA,
17
+ coordinatesB
18
+ }) => {
19
+ if (!coordinatesA || !coordinatesB) {
20
+ return coordinatesA === coordinatesB;
21
+ }
22
+ return coordinatesA.x === coordinatesB.x && coordinatesA.y === coordinatesB.y;
23
+ };
24
+ exports.areCoordinatesEqual = areCoordinatesEqual;
25
+ const getSidebarItemPopupCoordinates = ({
26
+ container,
27
+ item,
28
+ offset = 5
29
+ }) => {
30
+ const {
31
+ left: itemLeft,
32
+ top: itemTop,
33
+ width,
34
+ height
35
+ } = item.getBoundingClientRect();
36
+ const {
37
+ left: containerLeft,
38
+ top: containerTop
39
+ } = container.getBoundingClientRect();
40
+ return {
41
+ x: Math.round(itemLeft - containerLeft + width + offset),
42
+ y: Math.round(itemTop - containerTop + height / 2)
43
+ };
44
+ };
45
+ exports.getSidebarItemPopupCoordinates = getSidebarItemPopupCoordinates;
46
+ const getScrollableAncestorElements = ({
47
+ element,
48
+ boundaryElement
49
+ }) => {
50
+ const scrollableElements = [];
51
+ let currentElement = element.parentElement;
52
+ while (currentElement) {
53
+ if (isScrollableElement(currentElement)) {
54
+ scrollableElements.push(currentElement);
55
+ }
56
+ if (currentElement === boundaryElement) {
57
+ break;
58
+ }
59
+ currentElement = currentElement.parentElement;
60
+ }
61
+ return scrollableElements;
62
+ };
63
+ exports.getScrollableAncestorElements = getScrollableAncestorElements;
64
+ const isItemOrChildSelected = (item, selectedId) => {
65
+ var _item$children;
66
+ if (!selectedId) {
67
+ return false;
68
+ }
69
+ if (item.id === selectedId) {
70
+ return true;
71
+ }
72
+ if (!((_item$children = item.children) !== null && _item$children !== void 0 && _item$children.length)) {
73
+ return false;
74
+ }
75
+ return item.children.some(child => isItemOrChildSelected(child, selectedId));
76
+ };
77
+ exports.isItemOrChildSelected = isItemOrChildSelected;
78
+ //# sourceMappingURL=SidebarItem.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarItem.utils.js","names":["SCROLLABLE_OVERFLOW_VALUES","isScrollableElement","element","overflowX","overflowY","window","getComputedStyle","some","value","includes","areCoordinatesEqual","coordinatesA","coordinatesB","x","y","exports","getSidebarItemPopupCoordinates","container","item","offset","left","itemLeft","top","itemTop","width","height","getBoundingClientRect","containerLeft","containerTop","Math","round","getScrollableAncestorElements","boundaryElement","scrollableElements","currentElement","parentElement","push","isItemOrChildSelected","selectedId","_item$children","id","children","length","child"],"sources":["../../../../../../../src/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.utils.ts"],"sourcesContent":["import { NavigationLayoutItem } from '../../../NavigationLayout.types';\n\nexport interface Coordinates {\n x: number;\n y: number;\n}\n\ninterface AreCoordinatesEqualOptions {\n coordinatesA: Coordinates | null;\n coordinatesB: Coordinates | null;\n}\n\ninterface GetSidebarItemPopupCoordinatesOptions {\n container: HTMLElement;\n item: HTMLElement;\n offset?: number;\n}\n\ninterface GetScrollableAncestorElementsOptions {\n element: HTMLElement;\n boundaryElement?: HTMLElement | null;\n}\n\nconst SCROLLABLE_OVERFLOW_VALUES = ['auto', 'scroll', 'overlay'];\n\nconst isScrollableElement = (element: HTMLElement): boolean => {\n const { overflowX, overflowY } = window.getComputedStyle(element);\n\n return [overflowX, overflowY].some((value) => SCROLLABLE_OVERFLOW_VALUES.includes(value));\n};\n\nexport const areCoordinatesEqual = ({\n coordinatesA,\n coordinatesB,\n}: AreCoordinatesEqualOptions): boolean => {\n if (!coordinatesA || !coordinatesB) {\n return coordinatesA === coordinatesB;\n }\n\n return coordinatesA.x === coordinatesB.x && coordinatesA.y === coordinatesB.y;\n};\n\nexport const getSidebarItemPopupCoordinates = ({\n container,\n item,\n offset = 5,\n}: GetSidebarItemPopupCoordinatesOptions): Coordinates => {\n const { left: itemLeft, top: itemTop, width, height } = item.getBoundingClientRect();\n const { left: containerLeft, top: containerTop } = container.getBoundingClientRect();\n\n return {\n x: Math.round(itemLeft - containerLeft + width + offset),\n y: Math.round(itemTop - containerTop + height / 2),\n };\n};\n\nexport const getScrollableAncestorElements = ({\n element,\n boundaryElement,\n}: GetScrollableAncestorElementsOptions): HTMLElement[] => {\n const scrollableElements: HTMLElement[] = [];\n let currentElement = element.parentElement;\n\n while (currentElement) {\n if (isScrollableElement(currentElement)) {\n scrollableElements.push(currentElement);\n }\n\n if (currentElement === boundaryElement) {\n break;\n }\n\n currentElement = currentElement.parentElement;\n }\n\n return scrollableElements;\n};\n\nexport const isItemOrChildSelected = (item: NavigationLayoutItem, selectedId?: string): boolean => {\n if (!selectedId) {\n return false;\n }\n\n if (item.id === selectedId) {\n return true;\n }\n\n if (!item.children?.length) {\n return false;\n }\n\n return item.children.some((child) => isItemOrChildSelected(child, selectedId));\n};\n"],"mappings":";;;;;;AAuBA,MAAMA,0BAA0B,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;AAEhE,MAAMC,mBAAmB,GAAIC,OAAoB,IAAc;EAC3D,MAAM;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAAGC,MAAM,CAACC,gBAAgB,CAACJ,OAAO,CAAC;EAEjE,OAAO,CAACC,SAAS,EAAEC,SAAS,CAAC,CAACG,IAAI,CAAEC,KAAK,IAAKR,0BAA0B,CAACS,QAAQ,CAACD,KAAK,CAAC,CAAC;AAC7F,CAAC;AAEM,MAAME,mBAAmB,GAAGA,CAAC;EAChCC,YAAY;EACZC;AACwB,CAAC,KAAc;EACvC,IAAI,CAACD,YAAY,IAAI,CAACC,YAAY,EAAE;IAChC,OAAOD,YAAY,KAAKC,YAAY;EACxC;EAEA,OAAOD,YAAY,CAACE,CAAC,KAAKD,YAAY,CAACC,CAAC,IAAIF,YAAY,CAACG,CAAC,KAAKF,YAAY,CAACE,CAAC;AACjF,CAAC;AAACC,OAAA,CAAAL,mBAAA,GAAAA,mBAAA;AAEK,MAAMM,8BAA8B,GAAGA,CAAC;EAC3CC,SAAS;EACTC,IAAI;EACJC,MAAM,GAAG;AAC0B,CAAC,KAAkB;EACtD,MAAM;IAAEC,IAAI,EAAEC,QAAQ;IAAEC,GAAG,EAAEC,OAAO;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGP,IAAI,CAACQ,qBAAqB,CAAC,CAAC;EACpF,MAAM;IAAEN,IAAI,EAAEO,aAAa;IAAEL,GAAG,EAAEM;EAAa,CAAC,GAAGX,SAAS,CAACS,qBAAqB,CAAC,CAAC;EAEpF,OAAO;IACHb,CAAC,EAAEgB,IAAI,CAACC,KAAK,CAACT,QAAQ,GAAGM,aAAa,GAAGH,KAAK,GAAGL,MAAM,CAAC;IACxDL,CAAC,EAAEe,IAAI,CAACC,KAAK,CAACP,OAAO,GAAGK,YAAY,GAAGH,MAAM,GAAG,CAAC;EACrD,CAAC;AACL,CAAC;AAACV,OAAA,CAAAC,8BAAA,GAAAA,8BAAA;AAEK,MAAMe,6BAA6B,GAAGA,CAAC;EAC1C7B,OAAO;EACP8B;AACkC,CAAC,KAAoB;EACvD,MAAMC,kBAAiC,GAAG,EAAE;EAC5C,IAAIC,cAAc,GAAGhC,OAAO,CAACiC,aAAa;EAE1C,OAAOD,cAAc,EAAE;IACnB,IAAIjC,mBAAmB,CAACiC,cAAc,CAAC,EAAE;MACrCD,kBAAkB,CAACG,IAAI,CAACF,cAAc,CAAC;IAC3C;IAEA,IAAIA,cAAc,KAAKF,eAAe,EAAE;MACpC;IACJ;IAEAE,cAAc,GAAGA,cAAc,CAACC,aAAa;EACjD;EAEA,OAAOF,kBAAkB;AAC7B,CAAC;AAAClB,OAAA,CAAAgB,6BAAA,GAAAA,6BAAA;AAEK,MAAMM,qBAAqB,GAAGA,CAACnB,IAA0B,EAAEoB,UAAmB,KAAc;EAAA,IAAAC,cAAA;EAC/F,IAAI,CAACD,UAAU,EAAE;IACb,OAAO,KAAK;EAChB;EAEA,IAAIpB,IAAI,CAACsB,EAAE,KAAKF,UAAU,EAAE;IACxB,OAAO,IAAI;EACf;EAEA,IAAI,GAAAC,cAAA,GAACrB,IAAI,CAACuB,QAAQ,cAAAF,cAAA,eAAbA,cAAA,CAAeG,MAAM,GAAE;IACxB,OAAO,KAAK;EAChB;EAEA,OAAOxB,IAAI,CAACuB,QAAQ,CAAClC,IAAI,CAAEoC,KAAK,IAAKN,qBAAqB,CAACM,KAAK,EAAEL,UAAU,CAAC,CAAC;AAClF,CAAC;AAACvB,OAAA,CAAAsB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.SplitLayout = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _ResizeHandle = _interopRequireDefault(require("./resize-handle/ResizeHandle"));
9
+ var _SplitLayout = require("./SplitLayout.styles");
10
+ var _SplitLayout2 = require("./SplitLayout.types");
11
+ var _SplitLayout3 = require("./SplitLayout.utils");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ const SplitLayout = ({
15
+ direction = _SplitLayout2.SplitLayoutDirection.HORIZONTAL,
16
+ handleSize = 2,
17
+ views,
18
+ onChange,
19
+ fullScreenViewId
20
+ }) => {
21
+ const ref = (0, _react.useRef)(null);
22
+ const [sizes, setSizes] = (0, _react.useState)({});
23
+ const [containerSize, setContainerSize] = (0, _react.useState)(0);
24
+ (0, _react.useEffect)(() => {
25
+ if (!ref.current) {
26
+ return () => {};
27
+ }
28
+ const element = ref.current;
29
+ const updateSize = () => {
30
+ setContainerSize((0, _SplitLayout3.getContainerSizeByDirection)(element, direction));
31
+ };
32
+ updateSize();
33
+ const observer = new ResizeObserver(() => {
34
+ updateSize();
35
+ });
36
+ observer.observe(element);
37
+ return () => {
38
+ observer.disconnect();
39
+ };
40
+ }, [direction]);
41
+ const viewIdsToDisplay = (0, _react.useMemo)(() => (0, _SplitLayout3.getVisibleViewIds)({
42
+ views,
43
+ containerSize
44
+ }), [views, containerSize]);
45
+ const handleResize = (0, _react.useCallback)((key, delta) => {
46
+ setSizes(prev => {
47
+ var _views$key, _views$key2, _views$key3;
48
+ const nextSize = (prev[key] ?? ((_views$key = views[key]) === null || _views$key === void 0 ? void 0 : _views$key.defaultSize) ?? 0) + delta;
49
+ const minSize = ((_views$key2 = views[key]) === null || _views$key2 === void 0 ? void 0 : _views$key2.minSize) ?? 0;
50
+ const maxSize = ((_views$key3 = views[key]) === null || _views$key3 === void 0 ? void 0 : _views$key3.maxSize) ?? Number.MAX_SAFE_INTEGER;
51
+ const clampedSize = Math.min(Math.max(nextSize, minSize), maxSize);
52
+ if (typeof onChange === 'function') {
53
+ onChange(key, clampedSize);
54
+ }
55
+ return {
56
+ ...prev,
57
+ [key]: clampedSize
58
+ };
59
+ });
60
+ }, [onChange, views]);
61
+ const content = (0, _react.useMemo)(() => {
62
+ if (typeof fullScreenViewId === 'string' && views[fullScreenViewId]) {
63
+ return views[fullScreenViewId].component;
64
+ }
65
+ return viewIdsToDisplay.map((key, index) => {
66
+ const view = views[key];
67
+ if (!view) {
68
+ return null;
69
+ }
70
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
71
+ key: key
72
+ }, /*#__PURE__*/_react.default.createElement(_SplitLayout.StyledSplitLayoutPane, {
73
+ $direction: direction,
74
+ $size: sizes[key] ?? view.defaultSize ?? view.minSize ?? view.maxSize
75
+ }, view.component), index < viewIdsToDisplay.length - 1 && /*#__PURE__*/_react.default.createElement(_ResizeHandle.default, {
76
+ size: handleSize,
77
+ direction: direction,
78
+ onDrag: delta => handleResize(key, delta)
79
+ }));
80
+ });
81
+ }, [direction, fullScreenViewId, handleResize, handleSize, sizes, viewIdsToDisplay, views]);
82
+ return /*#__PURE__*/_react.default.createElement(_SplitLayout.StyledSplitLayout, {
83
+ ref: ref,
84
+ $direction: direction
85
+ }, content);
86
+ };
87
+ exports.SplitLayout = SplitLayout;
88
+ SplitLayout.displayName = 'SplitLayout';
89
+ var _default = exports.default = SplitLayout;
90
+ //# sourceMappingURL=SplitLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitLayout.js","names":["_react","_interopRequireWildcard","require","_ResizeHandle","_interopRequireDefault","_SplitLayout","_SplitLayout2","_SplitLayout3","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SplitLayout","direction","SplitLayoutDirection","HORIZONTAL","handleSize","views","onChange","fullScreenViewId","ref","useRef","sizes","setSizes","useState","containerSize","setContainerSize","useEffect","current","element","updateSize","getContainerSizeByDirection","observer","ResizeObserver","observe","disconnect","viewIdsToDisplay","useMemo","getVisibleViewIds","handleResize","useCallback","key","delta","prev","_views$key","_views$key2","_views$key3","nextSize","defaultSize","minSize","maxSize","Number","MAX_SAFE_INTEGER","clampedSize","Math","min","max","content","component","map","index","view","createElement","Fragment","StyledSplitLayoutPane","$direction","$size","length","size","onDrag","StyledSplitLayout","exports","displayName","_default"],"sources":["../../../../src/components/split-layout/SplitLayout.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState, type FC } from 'react';\nimport ResizeHandle from './resize-handle/ResizeHandle';\nimport { StyledSplitLayout, StyledSplitLayoutPane } from './SplitLayout.styles';\nimport { SplitLayoutDirection, type SplitLayoutProps } from './SplitLayout.types';\nimport { getContainerSizeByDirection, getVisibleViewIds } from './SplitLayout.utils';\n\nexport const SplitLayout: FC<SplitLayoutProps> = ({\n direction = SplitLayoutDirection.HORIZONTAL,\n handleSize = 2,\n views,\n onChange,\n fullScreenViewId,\n}) => {\n const ref = useRef<HTMLDivElement | null>(null);\n const [sizes, setSizes] = useState<Record<string, number>>({});\n const [containerSize, setContainerSize] = useState(0);\n\n useEffect(() => {\n if (!ref.current) {\n return () => {};\n }\n\n const element = ref.current;\n\n const updateSize = (): void => {\n setContainerSize(getContainerSizeByDirection(element, direction));\n };\n\n updateSize();\n\n const observer = new ResizeObserver(() => {\n updateSize();\n });\n\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [direction]);\n\n const viewIdsToDisplay = useMemo(\n () =>\n getVisibleViewIds({\n views,\n containerSize,\n }),\n [views, containerSize],\n );\n\n const handleResize = useCallback(\n (key: string, delta: number) => {\n setSizes((prev) => {\n const nextSize = (prev[key] ?? views[key]?.defaultSize ?? 0) + delta;\n\n const minSize = views[key]?.minSize ?? 0;\n const maxSize = views[key]?.maxSize ?? Number.MAX_SAFE_INTEGER;\n\n const clampedSize = Math.min(Math.max(nextSize, minSize), maxSize);\n\n if (typeof onChange === 'function') {\n onChange(key, clampedSize);\n }\n\n return {\n ...prev,\n [key]: clampedSize,\n };\n });\n },\n [onChange, views],\n );\n\n const content = useMemo(() => {\n if (typeof fullScreenViewId === 'string' && views[fullScreenViewId]) {\n return views[fullScreenViewId].component;\n }\n\n return viewIdsToDisplay.map((key, index) => {\n const view = views[key];\n\n if (!view) {\n return null;\n }\n\n return (\n <React.Fragment key={key}>\n <StyledSplitLayoutPane\n $direction={direction}\n $size={sizes[key] ?? view.defaultSize ?? view.minSize ?? view.maxSize}\n >\n {view.component}\n </StyledSplitLayoutPane>\n\n {index < viewIdsToDisplay.length - 1 && (\n <ResizeHandle\n size={handleSize}\n direction={direction}\n onDrag={(delta) => handleResize(key, delta)}\n />\n )}\n </React.Fragment>\n );\n });\n }, [direction, fullScreenViewId, handleResize, handleSize, sizes, viewIdsToDisplay, views]);\n\n return (\n <StyledSplitLayout ref={ref} $direction={direction}>\n {content}\n </StyledSplitLayout>\n );\n};\n\nSplitLayout.displayName = 'SplitLayout';\n\nexport default SplitLayout;\n"],"mappings":"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","ignoreList":[]}