@bigbinary/neeto-molecules 3.16.39 → 3.16.41

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sources":["../src/components/Sidebar/Components/Header.jsx","../src/components/Sidebar/Components/Links/index.jsx","../src/components/Sidebar/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { capitalize } from \"neetocist\";\nimport { Neeto } from \"neetoicons/typeface-logos\";\nimport * as ProductTypefaceLogos from \"neetoicons/typeface-logos\";\nimport { Link } from \"react-router-dom\";\n\nconst Header = ({ customLogo, clearSettingsNav, homePath }) => {\n const productName = globalProps.appName.substr(5);\n const logoName = `Neeto${capitalize(productName.toLowerCase())}`;\n const ProductTypefaceLogo = ProductTypefaceLogos[logoName] ?? Neeto;\n const LogoComponent = customLogo ?? ProductTypefaceLogo;\n\n return (\n <div\n className=\"neeto-molecules-sidebar__header neeto-molecules-sidebar__no-shrinkable\"\n data-cy=\"sidebar-info\"\n >\n <Link\n className=\"neeto-molecules-sidebar__logo neeto-ui-w-full\"\n to={homePath}\n onClick={clearSettingsNav}\n >\n <LogoComponent\n className={classnames({\n \"neeto-molecules-sidebar__logo\": !customLogo,\n })}\n />\n </Link>\n </div>\n );\n};\n\nexport default memo(Header);\n","import { Fragment, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { hyphenate, isNotEmpty, isPresent } from \"neetocist\";\nimport { Down } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\nimport { is, not } from \"ramda\";\nimport { useLocation } from \"react-router-dom\";\n\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\nimport Items from \"./Items\";\n\nimport { filterByPermissions } from \"../../utils\";\n\nconst renderCount = count => (count > 999 ? \"999+\" : count);\n\nconst Links = ({\n navLinks,\n isCountsLoading: isCountsLoadingDeprecated,\n setSelectedNavLinkRoute,\n}) => {\n const location = useLocation();\n const [isActiveLinkExpanded, setIsActiveLinkExpanded] = useState(true);\n\n const handleNavLinkClick = ({ event, isActive, navLink }) => {\n const isExpandable =\n isPresent(navLink.items) || isPresent(navLink.component);\n if (!isExpandable) return;\n\n if (navLink.isConfigureNavLink && isNotEmpty(navLink.items)) {\n setSelectedNavLinkRoute(navLink.to);\n }\n\n if (isActive()) {\n setIsActiveLinkExpanded(not);\n navLink.resetPath !== true && event.preventDefault();\n\n return;\n }\n\n setIsActiveLinkExpanded(true);\n };\n\n return (\n <div className=\"neeto-molecules-sidebar__links neeto-molecules-sidebar__no-shrinkable\">\n {navLinks.filter(filterByPermissions).map((navLink, index) => {\n const {\n label,\n to,\n icon,\n items,\n isConfigureNavLink,\n isCountsLoading = false,\n count = null,\n component: Component,\n ...otherProps\n } = navLink;\n const IconSVG = icon;\n const url = new URL(to, window.location.href);\n const isActive = () =>\n is(Function, otherProps.isActive)\n ? otherProps.isActive()\n : location.pathname.startsWith(url.pathname);\n\n const isExpandable = items || Component;\n const isMenuExpanded =\n isActive() && isActiveLinkExpanded && !isCountsLoadingDeprecated;\n\n return (\n <Fragment key={navLink.key || index}>\n <CheckPointNavLinks\n activeClassName=\"active\"\n className=\"neeto-ui-flex neeto-ui-items-center neeto-ui-no-underline neeto-ui-select-none neeto-molecules-sidebar__link\"\n data-testid={`navlink-${hyphenate(label)}`}\n onClick={event =>\n handleNavLinkClick({ event, isActive, navLink })\n }\n {...{ isActive, to, ...otherProps }}\n >\n {icon && (\n <span\n className=\"neeto-molecules-sidebar__link-icon\"\n data-testid={label}\n >\n <IconSVG />\n {isPresent(count) && !isCountsLoading && (\n <span className=\"neeto-molecules-sidebar__link-unread-count\">\n {renderCount(count)}\n </span>\n )}\n </span>\n )}\n <Typography\n className=\"neeto-molecules-sidebar__link-label neeto-ui-flex-grow flex items-center gap-1\"\n component=\"span\"\n style=\"body2\"\n >\n {label}\n </Typography>\n {isExpandable && !isConfigureNavLink && (\n <span\n className={classnames(\n \"neeto-molecules-sidebar__link-icon neeto-molecules-sidebar__link-icon--caret\",\n {\n \"neeto-molecules-sidebar__link-icon--rotate\":\n isMenuExpanded,\n }\n )}\n >\n <Down size={16} />\n </span>\n )}\n </CheckPointNavLinks>\n {isExpandable && !isConfigureNavLink && isMenuExpanded && (\n <>\n {items && (\n <Items {...{ isCountsLoading, items, ...otherProps }} />\n )}\n {Component && <Component {...{ navLink }} />}\n </>\n )}\n </Fragment>\n );\n })}\n </div>\n );\n};\n\nexport default Links;\n","import { useEffect, useMemo, useState, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent, isNotEmpty, findBy } from \"neetocist\";\nimport useFetchNeetoApps from \"neetocommons/react-utils/useFetchNeetoApps\";\nimport useLocalStorage from \"neetocommons/react-utils/useLocalStorage\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { findLast, is, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useHistory } from \"react-router-dom\";\n\nimport Chevron from \"./Components/Chevron\";\nimport Header from \"./Components/Header\";\nimport Links from \"./Components/Links\";\nimport SelectedLink from \"./Components/Links/SelectedLink\";\nimport {\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n DEFAULT_HOME_PATH,\n SIDEBAR_WIDTH_KEY,\n MIN_SIDEBAR_WIDTH,\n MAX_SIDEBAR_WIDTH,\n DEFAULT_SIDEBAR_WIDTH,\n} from \"./constants\";\nimport \"./sidebar.scss\";\nimport {\n getActiveConfigurePageLink,\n getSidebarStateLocalStorageKey,\n enableDraggingStyles,\n disableDraggingStyles,\n} from \"./utils\";\n\nconst Sidebar = ({\n navLinks,\n customLogo,\n isCountsLoading = false,\n showWorkspaceName = false,\n isExpandable = true,\n}) => {\n const [isSidebarPaneOpen, setIsSidebarPaneOpen] = useState(false);\n const [selectedNavLinkRoute, setSelectedNavLinkRoute] = useLocalStorage(\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n null\n );\n\n const [isSidebarCollapsed, setIsSidebarCollapsed] = useLocalStorage(\n getSidebarStateLocalStorageKey(),\n false\n );\n\n const [sidebarWidth, setSidebarWidth] = useLocalStorage(\n SIDEBAR_WIDTH_KEY,\n `${DEFAULT_SIDEBAR_WIDTH}px`\n );\n\n const sidebarRef = useRef(null);\n const isMouseDownRef = useRef(false);\n const startXRef = useRef(null);\n const startWidthRef = useRef(null);\n\n const location = useLocation();\n const history = useHistory();\n const { t } = useTranslation();\n\n const { data } = useFetchNeetoApps();\n\n const isLargerScreen = () => window.innerWidth > 768;\n const isSidebarClosed = isLargerScreen()\n ? isSidebarCollapsed\n : not(isSidebarPaneOpen);\n\n useEffect(() => {\n if (!isPresent(navLinks)) return;\n const currentLink = findLast(({ to, isActive }) => {\n const url = new URL(to, window.location.href);\n\n return is(Function, isActive)\n ? isActive()\n : location.pathname.includes(url.pathname);\n })(navLinks);\n\n if (isPresent(currentLink)) {\n setSelectedNavLinkRoute(\n currentLink.isConfigureNavLink ? currentLink.to : null\n );\n }\n }, []);\n\n useEffect(() => {\n const handleResize = () => {\n if (isLargerScreen()) return;\n setIsSidebarPaneOpen(false);\n setIsSidebarCollapsed(true);\n };\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n if (!isExpandable) return undefined;\n\n const handle = document.querySelector(\n \".neeto-molecules-sidebar__resize-handle\"\n );\n\n if (!handle) return undefined;\n\n const onMouseDown = e => {\n isMouseDownRef.current = true;\n startXRef.current = e.clientX;\n startWidthRef.current =\n sidebarRef.current?.getBoundingClientRect().width ||\n DEFAULT_SIDEBAR_WIDTH;\n\n enableDraggingStyles();\n };\n\n const onMouseMove = e => {\n if (!isMouseDownRef.current) return;\n\n const dx = e.clientX - startXRef.current;\n let newWidth = startWidthRef.current + dx;\n\n newWidth = Math.max(\n MIN_SIDEBAR_WIDTH,\n Math.min(newWidth, MAX_SIDEBAR_WIDTH)\n );\n\n setSidebarWidth(`${newWidth}px`);\n };\n\n const onMouseUp = () => {\n if (!isMouseDownRef.current) return;\n\n isMouseDownRef.current = false;\n disableDraggingStyles();\n };\n\n handle.addEventListener(\"mousedown\", onMouseDown);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n\n return () => {\n handle.removeEventListener(\"mousedown\", onMouseDown);\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n };\n }, [isExpandable]);\n\n useEffect(() => {\n document.documentElement.style.setProperty(\n \"--neeto-molecules-sidebar-width\",\n `${parseInt(sidebarWidth) / 16}rem`\n );\n }, [sidebarWidth]);\n\n const handleGoBack = event => {\n event.preventDefault();\n setSelectedNavLinkRoute(null);\n const configureNavLink = getActiveConfigurePageLink({ navLinks, location });\n if (configureNavLink?.to) {\n history.push(buildUrl(configureNavLink.to));\n }\n };\n\n const homePath = useMemo(() => {\n if (!data?.neetoApps) return DEFAULT_HOME_PATH;\n\n const productName = globalProps.appName.substr(5);\n const thisApp = findBy({ name: productName }, data.neetoApps);\n\n return thisApp?.url ? new URL(thisApp.url).pathname : DEFAULT_HOME_PATH;\n }, [data]);\n\n const activeLink = useMemo(\n () =>\n navLinks.find(link => {\n if (is(Function, link.isActive)) return link.isActive();\n const url = new URL(link.to, window.location.href);\n\n return location.pathname.startsWith(url.pathname);\n }),\n [location.pathname, navLinks]\n );\n\n const isSelectedNavLinkVisible =\n selectedNavLinkRoute &&\n activeLink?.to === selectedNavLinkRoute &&\n isNotEmpty(navLinks);\n\n return (\n <>\n <div\n data-testid=\"sidebar-container\"\n ref={sidebarRef}\n style={{ width: isSidebarCollapsed ? \"0\" : sidebarWidth }}\n className={classnames(\"neeto-molecules-sidebar__wrapper\", {\n \"neeto-molecules-sidebar__wrapper--collapsed\": isLargerScreen()\n ? isSidebarCollapsed\n : not(isSidebarPaneOpen),\n })}\n >\n <div\n className=\"neeto-molecules-sidebar__backdrop\"\n onClick={() => {\n setIsSidebarPaneOpen(false);\n setSelectedNavLinkRoute(null);\n }}\n />\n <div\n data-cy=\"sidebar-wrapper\"\n data-testid=\"sidebar\"\n className={classnames(\n \"neeto-molecules-sidebar neeto-ui-flex neeto-ui-flex-col neeto-ui-flex-shrink-0 neeto-ui-overflow-y-auto neeto-ui-overflow-x-hidden\",\n {\n \"neeto-molecules-sidebar--focus-mode\":\n isPresent(selectedNavLinkRoute),\n }\n )}\n >\n <Header\n {...{ customLogo, homePath }}\n clearSettingsNav={() => setSelectedNavLinkRoute(null)}\n />\n {showWorkspaceName && (\n <div className=\"neeto-ui-bg-gray-100 neeto-molecules-sidebar__workspace-info\">\n <Typography\n className=\"neeto-ui-mb-1\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.sidebar.myWorkspace\")}\n </Typography>\n <Typography className=\"neeto-ui-truncate\" style=\"body2\">\n {globalProps.organization.name}\n </Typography>\n </div>\n )}\n {isSelectedNavLinkVisible ? (\n <SelectedLink\n {...{ handleGoBack, homePath }}\n navLink={activeLink}\n />\n ) : (\n <Links\n {...{ isCountsLoading, navLinks, setSelectedNavLinkRoute }}\n />\n )}\n </div>\n <Button\n className=\"neeto-molecules-sidebar__toggler\"\n data-cy=\"neeto-molecules-sidebar-toggler\"\n data-testid=\"sidebar-toggleButton\"\n icon={() => <Chevron />}\n style={isLargerScreen() ? \"text\" : \"secondary\"}\n tooltipProps={{\n content: isSidebarClosed\n ? t(\"neetoMolecules.sidebar.showMenu\")\n : t(\"neetoMolecules.sidebar.hideMenu\"),\n position: \"bottom\",\n touch: [\"hold\", 500],\n }}\n onClick={() => {\n setIsSidebarCollapsed(!isSidebarCollapsed);\n setIsSidebarPaneOpen(not);\n }}\n />\n </div>\n {isExpandable && (\n <div className=\"neeto-molecules-sidebar__resize-handle\" />\n )}\n </>\n );\n};\n\nSidebar.propTypes = {\n /**\n * To specify the navlinks to be shown in sidebar.\n */\n navLinks: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n label: PropTypes.string,\n to: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n checkpointKey: PropTypes.string,\n isCountsLoading: PropTypes.bool,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n href: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n type: PropTypes.string,\n filters: PropTypes.array,\n checkpointKey: PropTypes.string,\n })\n ),\n })\n ),\n /**\n * To override the logo displayed on the sidebar.\n */\n customLogo: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n /**\n * Boolean to notate whether the counts are being fetched.\n */\n isCountsLoading: PropTypes.bool,\n /**\n * Boolean to determine whether the workspace name should be shown.\n */\n showWorkspaceName: PropTypes.bool,\n /**\n * Boolean to determine whether the sidebar should be expandable.\n */\n isExpandable: PropTypes.bool,\n};\n\nexport default Sidebar;\n"],"names":["Header","_ref","_ProductTypefaceLogos","customLogo","clearSettingsNav","homePath","productName","globalProps","appName","substr","logoName","concat","capitalize","toLowerCase","ProductTypefaceLogo","ProductTypefaceLogos","Neeto","LogoComponent","_jsx","className","children","Link","to","onClick","classnames","memo","renderCount","count","Links","navLinks","isCountsLoadingDeprecated","isCountsLoading","setSelectedNavLinkRoute","location","useLocation","_useState","useState","_useState2","_slicedToArray","isActiveLinkExpanded","setIsActiveLinkExpanded","handleNavLinkClick","_ref2","event","isActive","navLink","isExpandable","isPresent","items","component","isConfigureNavLink","isNotEmpty","not","resetPath","preventDefault","filter","filterByPermissions","map","index","label","icon","_navLink$isCountsLoad","_navLink$count","Component","otherProps","_objectWithoutProperties","_excluded","IconSVG","url","URL","window","href","is","Function","pathname","startsWith","isMenuExpanded","_jsxs","Fragment","CheckPointNavLinks","_objectSpread","activeClassName","hyphenate","Typography","style","Down","size","_Fragment","Items","key","Sidebar","_ref$isCountsLoading","_ref$showWorkspaceNam","showWorkspaceName","_ref$isExpandable","isSidebarPaneOpen","setIsSidebarPaneOpen","_useLocalStorage","useLocalStorage","SELECTED_NAV_LINK_ROUTE_STORAGE_KEY","_useLocalStorage2","selectedNavLinkRoute","_useLocalStorage3","getSidebarStateLocalStorageKey","_useLocalStorage4","isSidebarCollapsed","setIsSidebarCollapsed","_useLocalStorage5","SIDEBAR_WIDTH_KEY","DEFAULT_SIDEBAR_WIDTH","_useLocalStorage6","sidebarWidth","setSidebarWidth","sidebarRef","useRef","isMouseDownRef","startXRef","startWidthRef","history","useHistory","_useTranslation","useTranslation","t","_useFetchNeetoApps","useFetchNeetoApps","data","isLargerScreen","innerWidth","isSidebarClosed","useEffect","currentLink","findLast","includes","handleResize","addEventListener","removeEventListener","undefined","handle","document","querySelector","onMouseDown","e","_sidebarRef$current","current","clientX","getBoundingClientRect","width","enableDraggingStyles","onMouseMove","dx","newWidth","Math","max","MIN_SIDEBAR_WIDTH","min","MAX_SIDEBAR_WIDTH","onMouseUp","disableDraggingStyles","documentElement","setProperty","parseInt","handleGoBack","configureNavLink","getActiveConfigurePageLink","push","buildUrl","useMemo","neetoApps","DEFAULT_HOME_PATH","thisApp","findBy","name","activeLink","find","link","isSelectedNavLinkVisible","ref","weight","organization","SelectedLink","Button","Chevron","tooltipProps","content","position","touch"],"mappings":"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"}
1
+ {"version":3,"file":"Sidebar.js","sources":["../src/components/Sidebar/Components/Header.jsx","../src/components/Sidebar/Components/Links/index.jsx","../src/components/Sidebar/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { capitalize } from \"neetocist\";\nimport { Neeto } from \"neetoicons/typeface-logos\";\nimport * as ProductTypefaceLogos from \"neetoicons/typeface-logos\";\nimport { Link } from \"react-router-dom\";\n\nconst Header = ({ customLogo, clearSettingsNav, homePath }) => {\n const productName = globalProps.appName.substr(5);\n const logoName = `Neeto${capitalize(productName.toLowerCase())}`;\n const ProductTypefaceLogo = ProductTypefaceLogos[logoName] ?? Neeto;\n const LogoComponent = customLogo ?? ProductTypefaceLogo;\n\n return (\n <div\n className=\"neeto-molecules-sidebar__header neeto-molecules-sidebar__no-shrinkable\"\n data-cy=\"sidebar-info\"\n >\n <Link\n className=\"neeto-molecules-sidebar__logo neeto-ui-w-full\"\n to={homePath}\n onClick={clearSettingsNav}\n >\n <LogoComponent\n className={classnames({\n \"neeto-molecules-sidebar__logo\": !customLogo,\n })}\n />\n </Link>\n </div>\n );\n};\n\nexport default memo(Header);\n","import { Fragment, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { hyphenate, isNotEmpty, isPresent } from \"neetocist\";\nimport { Right } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\nimport { is, not } from \"ramda\";\nimport { useLocation } from \"react-router-dom\";\n\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\nimport Items from \"./Items\";\n\nimport { filterByPermissions } from \"../../utils\";\n\nconst renderCount = count => (count > 999 ? \"999+\" : count);\n\nconst Links = ({\n navLinks,\n isCountsLoading: isCountsLoadingDeprecated,\n setSelectedNavLinkRoute,\n}) => {\n const location = useLocation();\n const [isActiveLinkExpanded, setIsActiveLinkExpanded] = useState(true);\n\n const handleNavLinkClick = ({ event, isActive, navLink }) => {\n const isExpandable =\n isPresent(navLink.items) || isPresent(navLink.component);\n if (!isExpandable) return;\n\n if (navLink.isConfigureNavLink && isNotEmpty(navLink.items)) {\n setSelectedNavLinkRoute(navLink.to);\n }\n\n if (isActive()) {\n setIsActiveLinkExpanded(not);\n navLink.resetPath !== true && event.preventDefault();\n\n return;\n }\n\n setIsActiveLinkExpanded(true);\n };\n\n return (\n <div className=\"neeto-molecules-sidebar__links neeto-molecules-sidebar__no-shrinkable\">\n {navLinks.filter(filterByPermissions).map((navLink, index) => {\n const {\n label,\n to,\n icon,\n items,\n isConfigureNavLink,\n isCountsLoading = false,\n count = null,\n component: Component,\n ...otherProps\n } = navLink;\n const IconSVG = icon;\n const url = new URL(to, window.location.href);\n const isActive = () =>\n is(Function, otherProps.isActive)\n ? otherProps.isActive()\n : location.pathname.startsWith(url.pathname);\n\n const isExpandable = items || Component;\n const isMenuExpanded =\n isActive() && isActiveLinkExpanded && !isCountsLoadingDeprecated;\n\n return (\n <Fragment key={navLink.key || index}>\n <CheckPointNavLinks\n activeClassName=\"active\"\n className=\"neeto-ui-flex neeto-ui-items-center neeto-ui-no-underline neeto-ui-select-none neeto-molecules-sidebar__link\"\n data-testid={`navlink-${hyphenate(label)}`}\n onClick={event =>\n handleNavLinkClick({ event, isActive, navLink })\n }\n {...{ isActive, to, ...otherProps }}\n >\n {icon && (\n <span\n className=\"neeto-molecules-sidebar__link-icon\"\n data-testid={label}\n >\n <IconSVG />\n {isPresent(count) && !isCountsLoading && (\n <span className=\"neeto-molecules-sidebar__link-unread-count\">\n {renderCount(count)}\n </span>\n )}\n </span>\n )}\n <Typography\n className=\"neeto-molecules-sidebar__link-label neeto-ui-flex-grow flex items-center gap-1\"\n component=\"span\"\n style=\"body2\"\n >\n {label}\n </Typography>\n {isExpandable && !isConfigureNavLink && (\n <span\n className={classnames(\n \"neeto-molecules-sidebar__link-icon neeto-molecules-sidebar__link-icon--caret\",\n {\n \"neeto-molecules-sidebar__link-icon--rotate\":\n isMenuExpanded,\n }\n )}\n >\n <Right size={16} />\n </span>\n )}\n </CheckPointNavLinks>\n {isExpandable && !isConfigureNavLink && isMenuExpanded && (\n <>\n {items && (\n <Items {...{ isCountsLoading, items, ...otherProps }} />\n )}\n {Component && <Component {...{ navLink }} />}\n </>\n )}\n </Fragment>\n );\n })}\n </div>\n );\n};\n\nexport default Links;\n","import { useEffect, useMemo, useState, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent, isNotEmpty, findBy } from \"neetocist\";\nimport useFetchNeetoApps from \"neetocommons/react-utils/useFetchNeetoApps\";\nimport useLocalStorage from \"neetocommons/react-utils/useLocalStorage\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { findLast, is, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useHistory } from \"react-router-dom\";\n\nimport Chevron from \"./Components/Chevron\";\nimport Header from \"./Components/Header\";\nimport Links from \"./Components/Links\";\nimport SelectedLink from \"./Components/Links/SelectedLink\";\nimport {\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n DEFAULT_HOME_PATH,\n SIDEBAR_WIDTH_KEY,\n MIN_SIDEBAR_WIDTH,\n MAX_SIDEBAR_WIDTH,\n DEFAULT_SIDEBAR_WIDTH,\n} from \"./constants\";\nimport \"./sidebar.scss\";\nimport {\n getActiveConfigurePageLink,\n getSidebarStateLocalStorageKey,\n enableDraggingStyles,\n disableDraggingStyles,\n} from \"./utils\";\n\nconst Sidebar = ({\n navLinks,\n customLogo,\n isCountsLoading = false,\n showWorkspaceName = false,\n isExpandable = true,\n}) => {\n const [isSidebarPaneOpen, setIsSidebarPaneOpen] = useState(false);\n const [selectedNavLinkRoute, setSelectedNavLinkRoute] = useLocalStorage(\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n null\n );\n\n const [isSidebarCollapsed, setIsSidebarCollapsed] = useLocalStorage(\n getSidebarStateLocalStorageKey(),\n false\n );\n\n const [sidebarWidth, setSidebarWidth] = useLocalStorage(\n SIDEBAR_WIDTH_KEY,\n `${DEFAULT_SIDEBAR_WIDTH}px`\n );\n\n const sidebarRef = useRef(null);\n const isMouseDownRef = useRef(false);\n const startXRef = useRef(null);\n const startWidthRef = useRef(null);\n\n const location = useLocation();\n const history = useHistory();\n const { t } = useTranslation();\n\n const { data } = useFetchNeetoApps();\n\n const isLargerScreen = () => window.innerWidth > 768;\n const isSidebarClosed = isLargerScreen()\n ? isSidebarCollapsed\n : not(isSidebarPaneOpen);\n\n useEffect(() => {\n if (!isPresent(navLinks)) return;\n const currentLink = findLast(({ to, isActive }) => {\n const url = new URL(to, window.location.href);\n\n return is(Function, isActive)\n ? isActive()\n : location.pathname.includes(url.pathname);\n })(navLinks);\n\n if (isPresent(currentLink)) {\n setSelectedNavLinkRoute(\n currentLink.isConfigureNavLink ? currentLink.to : null\n );\n }\n }, []);\n\n useEffect(() => {\n const handleResize = () => {\n if (isLargerScreen()) return;\n setIsSidebarPaneOpen(false);\n setIsSidebarCollapsed(true);\n };\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n if (!isExpandable) return undefined;\n\n const handle = document.querySelector(\n \".neeto-molecules-sidebar__resize-handle\"\n );\n\n if (!handle) return undefined;\n\n const onMouseDown = e => {\n isMouseDownRef.current = true;\n startXRef.current = e.clientX;\n startWidthRef.current =\n sidebarRef.current?.getBoundingClientRect().width ||\n DEFAULT_SIDEBAR_WIDTH;\n\n enableDraggingStyles();\n };\n\n const onMouseMove = e => {\n if (!isMouseDownRef.current) return;\n\n const dx = e.clientX - startXRef.current;\n let newWidth = startWidthRef.current + dx;\n\n newWidth = Math.max(\n MIN_SIDEBAR_WIDTH,\n Math.min(newWidth, MAX_SIDEBAR_WIDTH)\n );\n\n setSidebarWidth(`${newWidth}px`);\n };\n\n const onMouseUp = () => {\n if (!isMouseDownRef.current) return;\n\n isMouseDownRef.current = false;\n disableDraggingStyles();\n };\n\n handle.addEventListener(\"mousedown\", onMouseDown);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n\n return () => {\n handle.removeEventListener(\"mousedown\", onMouseDown);\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n };\n }, [isExpandable]);\n\n useEffect(() => {\n document.documentElement.style.setProperty(\n \"--neeto-molecules-sidebar-width\",\n `${parseInt(sidebarWidth) / 16}rem`\n );\n }, [sidebarWidth]);\n\n const handleGoBack = event => {\n event.preventDefault();\n setSelectedNavLinkRoute(null);\n const configureNavLink = getActiveConfigurePageLink({ navLinks, location });\n if (configureNavLink?.to) {\n history.push(buildUrl(configureNavLink.to));\n }\n };\n\n const homePath = useMemo(() => {\n if (!data?.neetoApps) return DEFAULT_HOME_PATH;\n\n const productName = globalProps.appName.substr(5);\n const thisApp = findBy({ name: productName }, data.neetoApps);\n\n return thisApp?.url ? new URL(thisApp.url).pathname : DEFAULT_HOME_PATH;\n }, [data]);\n\n const activeLink = useMemo(\n () =>\n navLinks.find(link => {\n if (is(Function, link.isActive)) return link.isActive();\n const url = new URL(link.to, window.location.href);\n\n return location.pathname.startsWith(url.pathname);\n }),\n [location.pathname, navLinks]\n );\n\n const isSelectedNavLinkVisible =\n selectedNavLinkRoute &&\n activeLink?.to === selectedNavLinkRoute &&\n isNotEmpty(navLinks);\n\n return (\n <>\n <div\n data-testid=\"sidebar-container\"\n ref={sidebarRef}\n style={{ width: isSidebarCollapsed ? \"0\" : sidebarWidth }}\n className={classnames(\"neeto-molecules-sidebar__wrapper\", {\n \"neeto-molecules-sidebar__wrapper--collapsed\": isLargerScreen()\n ? isSidebarCollapsed\n : not(isSidebarPaneOpen),\n })}\n >\n <div\n className=\"neeto-molecules-sidebar__backdrop\"\n onClick={() => {\n setIsSidebarPaneOpen(false);\n setSelectedNavLinkRoute(null);\n }}\n />\n <div\n data-cy=\"sidebar-wrapper\"\n data-testid=\"sidebar\"\n className={classnames(\n \"neeto-molecules-sidebar neeto-ui-flex neeto-ui-flex-col neeto-ui-flex-shrink-0 neeto-ui-overflow-y-auto neeto-ui-overflow-x-hidden\",\n {\n \"neeto-molecules-sidebar--focus-mode\":\n isPresent(selectedNavLinkRoute),\n }\n )}\n >\n <Header\n {...{ customLogo, homePath }}\n clearSettingsNav={() => setSelectedNavLinkRoute(null)}\n />\n {showWorkspaceName && (\n <div className=\"neeto-ui-bg-gray-100 neeto-molecules-sidebar__workspace-info\">\n <Typography\n className=\"neeto-ui-mb-1\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.sidebar.myWorkspace\")}\n </Typography>\n <Typography className=\"neeto-ui-truncate\" style=\"body2\">\n {globalProps.organization.name}\n </Typography>\n </div>\n )}\n {isSelectedNavLinkVisible ? (\n <SelectedLink\n {...{ handleGoBack, homePath }}\n navLink={activeLink}\n />\n ) : (\n <Links\n {...{ isCountsLoading, navLinks, setSelectedNavLinkRoute }}\n />\n )}\n </div>\n <Button\n className=\"neeto-molecules-sidebar__toggler\"\n data-cy=\"neeto-molecules-sidebar-toggler\"\n data-testid=\"sidebar-toggleButton\"\n icon={() => <Chevron />}\n style={isLargerScreen() ? \"text\" : \"secondary\"}\n tooltipProps={{\n content: isSidebarClosed\n ? t(\"neetoMolecules.sidebar.showMenu\")\n : t(\"neetoMolecules.sidebar.hideMenu\"),\n position: \"bottom\",\n touch: [\"hold\", 500],\n }}\n onClick={() => {\n setIsSidebarCollapsed(!isSidebarCollapsed);\n setIsSidebarPaneOpen(not);\n }}\n />\n </div>\n {isExpandable && (\n <div className=\"neeto-molecules-sidebar__resize-handle\" />\n )}\n </>\n );\n};\n\nSidebar.propTypes = {\n /**\n * To specify the navlinks to be shown in sidebar.\n */\n navLinks: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n label: PropTypes.string,\n to: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n checkpointKey: PropTypes.string,\n isCountsLoading: PropTypes.bool,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n href: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n type: PropTypes.string,\n filters: PropTypes.array,\n checkpointKey: PropTypes.string,\n })\n ),\n })\n ),\n /**\n * To override the logo displayed on the sidebar.\n */\n customLogo: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n /**\n * Boolean to notate whether the counts are being fetched.\n */\n isCountsLoading: PropTypes.bool,\n /**\n * Boolean to determine whether the workspace name should be shown.\n */\n showWorkspaceName: PropTypes.bool,\n /**\n * Boolean to determine whether the sidebar should be expandable.\n */\n isExpandable: PropTypes.bool,\n};\n\nexport default Sidebar;\n"],"names":["Header","_ref","_ProductTypefaceLogos","customLogo","clearSettingsNav","homePath","productName","globalProps","appName","substr","logoName","concat","capitalize","toLowerCase","ProductTypefaceLogo","ProductTypefaceLogos","Neeto","LogoComponent","_jsx","className","children","Link","to","onClick","classnames","memo","renderCount","count","Links","navLinks","isCountsLoadingDeprecated","isCountsLoading","setSelectedNavLinkRoute","location","useLocation","_useState","useState","_useState2","_slicedToArray","isActiveLinkExpanded","setIsActiveLinkExpanded","handleNavLinkClick","_ref2","event","isActive","navLink","isExpandable","isPresent","items","component","isConfigureNavLink","isNotEmpty","not","resetPath","preventDefault","filter","filterByPermissions","map","index","label","icon","_navLink$isCountsLoad","_navLink$count","Component","otherProps","_objectWithoutProperties","_excluded","IconSVG","url","URL","window","href","is","Function","pathname","startsWith","isMenuExpanded","_jsxs","Fragment","CheckPointNavLinks","_objectSpread","activeClassName","hyphenate","Typography","style","Right","size","_Fragment","Items","key","Sidebar","_ref$isCountsLoading","_ref$showWorkspaceNam","showWorkspaceName","_ref$isExpandable","isSidebarPaneOpen","setIsSidebarPaneOpen","_useLocalStorage","useLocalStorage","SELECTED_NAV_LINK_ROUTE_STORAGE_KEY","_useLocalStorage2","selectedNavLinkRoute","_useLocalStorage3","getSidebarStateLocalStorageKey","_useLocalStorage4","isSidebarCollapsed","setIsSidebarCollapsed","_useLocalStorage5","SIDEBAR_WIDTH_KEY","DEFAULT_SIDEBAR_WIDTH","_useLocalStorage6","sidebarWidth","setSidebarWidth","sidebarRef","useRef","isMouseDownRef","startXRef","startWidthRef","history","useHistory","_useTranslation","useTranslation","t","_useFetchNeetoApps","useFetchNeetoApps","data","isLargerScreen","innerWidth","isSidebarClosed","useEffect","currentLink","findLast","includes","handleResize","addEventListener","removeEventListener","undefined","handle","document","querySelector","onMouseDown","e","_sidebarRef$current","current","clientX","getBoundingClientRect","width","enableDraggingStyles","onMouseMove","dx","newWidth","Math","max","MIN_SIDEBAR_WIDTH","min","MAX_SIDEBAR_WIDTH","onMouseUp","disableDraggingStyles","documentElement","setProperty","parseInt","handleGoBack","configureNavLink","getActiveConfigurePageLink","push","buildUrl","useMemo","neetoApps","DEFAULT_HOME_PATH","thisApp","findBy","name","activeLink","find","link","isSelectedNavLinkVisible","ref","weight","organization","SelectedLink","Button","Chevron","tooltipProps","content","position","touch"],"mappings":"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"}
@@ -17,9 +17,6 @@ injectCss.n(css,{});
17
17
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
18
18
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
19
19
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20
- // Customised collision detection algorithm based on `closestCenter` implementation for dnd-kit
21
- // Extracts collisions by respecting `accepts` property
22
-
23
20
  var distanceBetween = function distanceBetween(p1, p2) {
24
21
  return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
25
22
  };
@@ -34,14 +31,25 @@ var centerOfRectangle = function centerOfRectangle(rect) {
34
31
  var matchType = function matchType(draggable, droppable) {
35
32
  return droppable.data.current.accepts.includes(draggable.data.current.type);
36
33
  };
37
-
38
- // `active` attribute from the `dnd-kit` is unreliable since the data can be lost on unmount during a drag.
34
+ var matchDirection = function matchDirection(direction, droppable, reference) {
35
+ var matchX = function matchX() {
36
+ return reference.x > droppable.left && reference.x < droppable.left + droppable.width;
37
+ };
38
+ var matchY = function matchY() {
39
+ return reference.y > droppable.top && reference.y < droppable.top + droppable.height;
40
+ };
41
+ if (direction === "vertical") return matchX();else if (direction === "horizontal") return matchY();
42
+ return true;
43
+ };
39
44
  var closestCenter = function closestCenter(_ref) {
40
45
  var active = _ref.active;
41
46
  return function (_ref2) {
47
+ var _active$data$current;
42
48
  var collisionRect = _ref2.collisionRect,
43
49
  droppableRects = _ref2.droppableRects,
44
- droppableContainers = _ref2.droppableContainers;
50
+ droppableContainers = _ref2.droppableContainers,
51
+ pointerCoordinates = _ref2.pointerCoordinates;
52
+ var direction = (_active$data$current = active.data.current) === null || _active$data$current === void 0 ? void 0 : _active$data$current.direction;
45
53
  var centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);
46
54
  var minDistance = Number.POSITIVE_INFINITY;
47
55
  var collision = {
@@ -55,7 +63,7 @@ var closestCenter = function closestCenter(_ref) {
55
63
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
56
64
  var droppableContainer = _step.value;
57
65
  var rect = droppableRects.get(droppableContainer.id);
58
- if (!rect || droppableContainer.id === active.id) continue;else if (!matchType(active, droppableContainer)) continue;
66
+ if (!rect || droppableContainer.id === active.id) continue;else if (!matchType(active, droppableContainer)) continue;else if (!matchDirection(direction, rect, pointerCoordinates)) continue;
59
67
  var distance = distanceBetween(centerOfRectangle(rect), centerRect);
60
68
  if (distance < minDistance) {
61
69
  minDistance = distance;
@@ -115,7 +123,8 @@ var DragDropContainer$1 = function DragDropContainer(_ref) {
115
123
  var _useDraggable = core.useDraggable({
116
124
  data: _objectSpread$3(_objectSpread$3({}, data), {}, {
117
125
  index: index,
118
- type: DRAGGABLE_TYPES.ITEM
126
+ type: DRAGGABLE_TYPES.ITEM,
127
+ direction: "vertical"
119
128
  }),
120
129
  id: "draggable-item--".concat(id)
121
130
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"BoardView.js","sources":["../../src/components/BoardView/closestCenter.js","../../src/components/BoardView/constants.js","../../src/components/BoardView/Overlay.jsx","../../src/components/BoardView/Indicator.jsx","../../src/components/BoardView/Item/Container.jsx","../../src/components/BoardView/Item/Placeholder.jsx","../../src/components/BoardView/Section/index.jsx","../../src/components/BoardView/Section/Container.jsx","../../src/components/BoardView/Section/Placeholder.jsx","../../src/components/BoardView/index.jsx"],"sourcesContent":["// Customised collision detection algorithm based on `closestCenter` implementation for dnd-kit\n// Extracts collisions by respecting `accepts` property\n\nconst distanceBetween = (p1, p2) =>\n Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n\nconst centerOfRectangle = (rect, left = rect.left, top = rect.top) => ({\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5,\n});\n\nconst matchType = (draggable, droppable) =>\n droppable.data.current.accepts.includes(draggable.data.current.type);\n\n// `active` attribute from the `dnd-kit` is unreliable since the data can be lost on unmount during a drag.\nexport const closestCenter =\n ({ active }) =>\n ({ collisionRect, droppableRects, droppableContainers }) => {\n const centerRect = centerOfRectangle(\n collisionRect,\n collisionRect.left,\n collisionRect.top\n );\n\n let minDistance = Number.POSITIVE_INFINITY;\n let collision = { id: undefined };\n\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const droppableContainer of droppableContainers) {\n const rect = droppableRects.get(droppableContainer.id);\n\n if (!rect || droppableContainer.id === active.id) continue;\n else if (!matchType(active, droppableContainer)) continue;\n\n const distance = distanceBetween(centerOfRectangle(rect), centerRect);\n if (distance < minDistance) {\n minDistance = distance;\n collision = {\n id: droppableContainer.id,\n data: { droppableContainer, value: distance },\n };\n }\n }\n\n return [collision];\n };\n","export const DRAGGABLE_TYPES = { SECTION: \"section\", ITEM: \"item\" };\n","import { DragOverlay } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"./constants\";\n\nconst DndOverlay = ({ props, state }) => {\n const { renderSectionOverlay, renderItemOverlay } = props;\n const data = state.active?.data.current || {};\n\n return (\n <DragOverlay>\n {data.type === DRAGGABLE_TYPES.ITEM && renderItemOverlay?.(data)}\n {data.type === DRAGGABLE_TYPES.SECTION && renderSectionOverlay?.(data)}\n </DragOverlay>\n );\n};\n\nexport default DndOverlay;\n","import classNames from \"classnames\";\n\nconst DndIndicator = ({ layout = \"vertical\" }) => (\n <div\n className={classNames(\n \"neeto-ui-rounded-xl neeto-ui-bg-accent-600 absolute\",\n {\n \"-bottom-3 left-0 right-0 h-1\": layout === \"horizontal\",\n \"-right-2 bottom-0 top-0 w-1\": layout === \"vertical\",\n }\n )}\n />\n);\n\nexport default DndIndicator;\n","import { useRef } from \"react\";\n\nimport { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport { useInView } from \"react-intersection-observer\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst DragDropContainer = ({ id, index, data, render }) => {\n const {\n attributes,\n listeners,\n isDragging,\n setNodeRef: setDraggableNodeRef,\n } = useDraggable({\n data: { ...data, index, type: DRAGGABLE_TYPES.ITEM },\n id: `draggable-item--${id}`,\n });\n\n const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.ITEM], index: index + 1 },\n id: `droppable-item--${id}`,\n });\n\n const isIndicatorVisible = !isDragging && isOver;\n\n return (\n <div\n className={classNames(\"relative h-full w-full\", {\n \"opacity-65\": isDragging,\n })}\n ref={node => {\n setDraggableNodeRef(node);\n setDroppableNodeRef(node);\n }}\n {...attributes}\n {...listeners}\n >\n {render()}\n {isIndicatorVisible && <DndIndicator layout=\"horizontal\" />}\n </div>\n );\n};\n\nconst ItemContainer = props => {\n const mutables = useRef({ containerHeight: 128 }).current;\n\n const [setViewRef, inView] = useInView({\n onChange: (inView, entry) => {\n if (inView) return; // We need the last height value when elements moves out.\n mutables.containerHeight = entry.target.clientHeight;\n },\n });\n\n return (\n <div\n className=\"neeto-molecules-boardview-section__card relative shrink-0\"\n id={props.id}\n style={{ height: inView ? undefined : mutables.containerHeight }}\n ref={node => {\n setViewRef(node);\n }}\n >\n {inView && <DragDropContainer {...props} />}\n </div>\n );\n};\n\nexport default ItemContainer;\n","import { useId } from \"react\";\n\nimport { useDroppable } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst ItemPlaceholder = ({ data, index = 0 }) => {\n const id = useId();\n\n const { isOver, setNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.ITEM], index },\n id: `droppable-item--${id}`,\n });\n\n return (\n <div className=\"relative\" ref={setNodeRef}>\n {isOver && <DndIndicator layout=\"horizontal\" />}\n </div>\n );\n};\n\nexport default ItemPlaceholder;\n","import { forwardRef } from \"react\";\n\nimport PropTypes from \"prop-types\";\n\nimport ItemContainer from \"../Item/Container\";\nimport ItemPlaceholder from \"../Item/Placeholder\";\n\nconst Section = forwardRef(({ section, items, renderItem }, ref) => (\n <div\n {...{ ref }}\n className=\"neeto-molecules-boardview-section__body relative min-h-0 flex-1 basis-0 overflow-y-auto\"\n >\n <ItemPlaceholder data={{ section }} />\n {items.map((item, index) => (\n <ItemContainer\n {...{ index }}\n data={{ section, item }}\n id={`${section.id}--${item.id}`}\n key={`${section.id}--${item.id}`}\n render={() => renderItem({ index, item, section })}\n />\n ))}\n </div>\n));\n\nSection.displayName = \"Section\";\nSection.propTypes = {\n /** A reference to the section container element. */\n // eslint-disable-next-line react/no-unused-prop-types\n ref: PropTypes.any,\n\n /** The current section data */\n section: PropTypes.shape({ id: PropTypes.string.isRequired }).isRequired,\n\n /** An array of items belonging to the current section. */\n items: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.string.isRequired }))\n .isRequired,\n\n /** A function that renders the content of each item in the list. */\n renderItem: PropTypes.func.isRequired,\n};\n\nexport default Section;\n","import { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport { useInView } from \"react-intersection-observer\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst DragDropContainer = ({ id, index, data, render }) => {\n const {\n attributes,\n listeners,\n isDragging,\n setNodeRef: setDraggableNodeRef,\n } = useDraggable({\n data: { ...data, type: DRAGGABLE_TYPES.SECTION, index },\n id: `draggable-section--${id}`,\n });\n\n const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.SECTION], index: index + 1 },\n id: `droppable-section--${id}`,\n });\n\n const isIndicatorVisible = !isDragging && isOver;\n\n return (\n <div\n {...listeners}\n {...attributes}\n className={classNames(\"relative h-full w-full flex-col\", {\n \"opacity-65\": isDragging,\n })}\n ref={node => {\n setDraggableNodeRef(node);\n setDroppableNodeRef(node);\n }}\n >\n {render()}\n {isIndicatorVisible && <DndIndicator layout=\"vertical\" />}\n </div>\n );\n};\n\nconst SectionContainer = props => {\n const [setViewRef, inView] = useInView();\n\n return (\n <div\n className=\"neeto-molecules-boardview-section relative mr-3 h-full last-of-type:mr-0\"\n ref={node => {\n setViewRef(node);\n }}\n >\n {inView && <DragDropContainer {...props} />}\n </div>\n );\n};\n\nexport default SectionContainer;\n","import { useId } from \"react\";\n\nimport { useDroppable } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst SectionPlaceholder = ({ data, index = 0 }) => {\n const id = useId();\n\n const { isOver, setNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.SECTION], index },\n id: `droppable-section--${id}`,\n });\n\n return (\n <div className=\"relative\" ref={setNodeRef}>\n {isOver && <DndIndicator layout=\"vertical\" />}\n </div>\n );\n};\n\nexport default SectionPlaceholder;\n","import { forwardRef, useState } from \"react\";\n\nimport {\n DndContext,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport \"./boardview.scss\";\nimport { closestCenter } from \"./closestCenter\";\nimport { DRAGGABLE_TYPES } from \"./constants\";\nimport DndOverlay from \"./Overlay\";\nimport Section from \"./Section\";\nimport SectionContainer from \"./Section/Container\";\nimport SectionPlaceholder from \"./Section/Placeholder\";\n\nconst sensorConfig = { activationConstraint: { distance: 8 } };\nconst measuringConfig = { droppable: { frequency: 500 } };\n\nconst BoardView = forwardRef((props, ref) => {\n const { sections, onMoveSection, onMoveItem, renderSection, className } =\n props;\n\n const [dragState, setDragState] = useState({});\n const sensors = useSensors(useSensor(PointerSensor, sensorConfig));\n\n const onDragEnd = drag => {\n const active = dragState.active.data.current;\n const over = drag.over?.data.current;\n if (!active || !over) return;\n\n if (active.type === DRAGGABLE_TYPES.ITEM) {\n onMoveItem?.(active, over);\n } else if (active.type === DRAGGABLE_TYPES.SECTION) {\n onMoveSection?.(active, over);\n }\n };\n\n return (\n <DndContext\n {...{ onDragEnd, sensors }}\n collisionDetection={closestCenter(dragState)}\n measuring={measuringConfig}\n onDragStart={setDragState}\n >\n <div\n {...{ ref }}\n className={classNames(\n \"neeto-molecules-boardview-outer-wrapper flex w-full flex-1 overflow-x-auto\",\n className\n )}\n >\n <SectionPlaceholder />\n {sections.map((section, index) => (\n <SectionContainer\n {...{ index }}\n data={{ section }}\n id={section.id}\n key={section.id}\n render={() => renderSection({ index, section })}\n />\n ))}\n </div>\n <DndOverlay {...{ props }} state={dragState} />\n </DndContext>\n );\n});\n\nBoardView.displayName = \"BoardView\";\nBoardView.Section = Section;\nBoardView.propTypes = {\n /** A reference to the container element. */\n // eslint-disable-next-line react/no-unused-prop-types\n ref: PropTypes.any,\n\n /**\n An array of sections, each defined by an object with an `id` string.\n */\n sections: PropTypes.arrayOf(\n PropTypes.shape({ id: PropTypes.string.isRequired })\n ).isRequired,\n\n /** function to render each section content in the board view */\n renderSection: PropTypes.func.isRequired,\n\n /** A function to render a drag overlay for individual sections (drag preview) */\n // eslint-disable-next-line react/no-unused-prop-types\n renderSectionOverlay: PropTypes.func.isRequired,\n\n /** A function to render a drag overlay for individual items (drag preview) */\n // eslint-disable-next-line react/no-unused-prop-types\n renderItemOverlay: PropTypes.func.isRequired,\n\n /** Callback function triggered when a section is reordered */\n onMoveSection: PropTypes.func,\n\n /** Callback function triggered when an item is moved */\n onMoveItem: PropTypes.func,\n /**\n * Additional classes passed on to the board view.\n */\n className: PropTypes.string,\n};\n\nexport default BoardView;\n"],"names":["distanceBetween","p1","p2","Math","sqrt","pow","x","y","centerOfRectangle","rect","left","arguments","length","undefined","top","width","height","matchType","draggable","droppable","data","current","accepts","includes","type","closestCenter","_ref","active","_ref2","collisionRect","droppableRects","droppableContainers","centerRect","minDistance","Number","POSITIVE_INFINITY","collision","id","_iterator","_createForOfIteratorHelper","_step","s","n","done","droppableContainer","value","get","distance","err","e","f","DRAGGABLE_TYPES","SECTION","ITEM","DndOverlay","_state$active","props","state","renderSectionOverlay","renderItemOverlay","_jsxs","DragOverlay","children","DndIndicator","_ref$layout","layout","_jsx","className","classNames","DragDropContainer","index","render","_useDraggable","useDraggable","_objectSpread","concat","attributes","listeners","isDragging","setDraggableNodeRef","setNodeRef","_useDroppable","useDroppable","isOver","setDroppableNodeRef","isIndicatorVisible","ref","node","ItemContainer","mutables","useRef","containerHeight","_useInView","useInView","onChange","inView","entry","target","clientHeight","_useInView2","_slicedToArray","setViewRef","style","ItemPlaceholder","_ref$index","useId","Section","forwardRef","section","items","renderItem","map","item","_createElement","key","displayName","propTypes","PropTypes","any","shape","string","isRequired","arrayOf","func","SectionContainer","SectionPlaceholder","sensorConfig","activationConstraint","measuringConfig","frequency","BoardView","sections","onMoveSection","onMoveItem","renderSection","_useState","useState","_useState2","dragState","setDragState","sensors","useSensors","useSensor","PointerSensor","onDragEnd","drag","_drag$over","over","DndContext","collisionDetection","measuring","onDragStart"],"mappings":"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"}
1
+ {"version":3,"file":"BoardView.js","sources":["../../src/components/BoardView/closestCenter.js","../../src/components/BoardView/constants.js","../../src/components/BoardView/Overlay.jsx","../../src/components/BoardView/Indicator.jsx","../../src/components/BoardView/Item/Container.jsx","../../src/components/BoardView/Item/Placeholder.jsx","../../src/components/BoardView/Section/index.jsx","../../src/components/BoardView/Section/Container.jsx","../../src/components/BoardView/Section/Placeholder.jsx","../../src/components/BoardView/index.jsx"],"sourcesContent":["const distanceBetween = (p1, p2) =>\n Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n\nconst centerOfRectangle = (rect, left = rect.left, top = rect.top) => ({\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5,\n});\n\nconst matchType = (draggable, droppable) =>\n droppable.data.current.accepts.includes(draggable.data.current.type);\n\nconst matchDirection = (direction, droppable, reference) => {\n const matchX = () =>\n reference.x > droppable.left &&\n reference.x < droppable.left + droppable.width;\n\n const matchY = () =>\n reference.y > droppable.top &&\n reference.y < droppable.top + droppable.height;\n\n if (direction === \"vertical\") return matchX();\n else if (direction === \"horizontal\") return matchY();\n\n return true;\n};\nexport const closestCenter =\n ({ active }) =>\n ({\n collisionRect,\n droppableRects,\n droppableContainers,\n pointerCoordinates,\n }) => {\n const direction = active.data.current?.direction;\n const centerRect = centerOfRectangle(\n collisionRect,\n collisionRect.left,\n collisionRect.top\n );\n\n let minDistance = Number.POSITIVE_INFINITY;\n let collision = { id: undefined };\n\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const droppableContainer of droppableContainers) {\n const rect = droppableRects.get(droppableContainer.id);\n\n if (!rect || droppableContainer.id === active.id) continue;\n else if (!matchType(active, droppableContainer)) continue;\n else if (!matchDirection(direction, rect, pointerCoordinates)) continue;\n\n const distance = distanceBetween(centerOfRectangle(rect), centerRect);\n if (distance < minDistance) {\n minDistance = distance;\n collision = {\n id: droppableContainer.id,\n data: { droppableContainer, value: distance },\n };\n }\n }\n\n return [collision];\n };\n","export const DRAGGABLE_TYPES = { SECTION: \"section\", ITEM: \"item\" };\n","import { DragOverlay } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"./constants\";\n\nconst DndOverlay = ({ props, state }) => {\n const { renderSectionOverlay, renderItemOverlay } = props;\n const data = state.active?.data.current || {};\n\n return (\n <DragOverlay>\n {data.type === DRAGGABLE_TYPES.ITEM && renderItemOverlay?.(data)}\n {data.type === DRAGGABLE_TYPES.SECTION && renderSectionOverlay?.(data)}\n </DragOverlay>\n );\n};\n\nexport default DndOverlay;\n","import classNames from \"classnames\";\n\nconst DndIndicator = ({ layout = \"vertical\" }) => (\n <div\n className={classNames(\n \"neeto-ui-rounded-xl neeto-ui-bg-accent-600 absolute\",\n {\n \"-bottom-3 left-0 right-0 h-1\": layout === \"horizontal\",\n \"-right-2 bottom-0 top-0 w-1\": layout === \"vertical\",\n }\n )}\n />\n);\n\nexport default DndIndicator;\n","import { useRef } from \"react\";\n\nimport { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport { useInView } from \"react-intersection-observer\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst DragDropContainer = ({ id, index, data, render }) => {\n const {\n attributes,\n listeners,\n isDragging,\n setNodeRef: setDraggableNodeRef,\n } = useDraggable({\n data: { ...data, index, type: DRAGGABLE_TYPES.ITEM, direction: \"vertical\" },\n id: `draggable-item--${id}`,\n });\n\n const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.ITEM], index: index + 1 },\n id: `droppable-item--${id}`,\n });\n\n const isIndicatorVisible = !isDragging && isOver;\n\n return (\n <div\n className={classNames(\"relative h-full w-full\", {\n \"opacity-65\": isDragging,\n })}\n ref={node => {\n setDraggableNodeRef(node);\n setDroppableNodeRef(node);\n }}\n {...attributes}\n {...listeners}\n >\n {render()}\n {isIndicatorVisible && <DndIndicator layout=\"horizontal\" />}\n </div>\n );\n};\n\nconst ItemContainer = props => {\n const mutables = useRef({ containerHeight: 128 }).current;\n\n const [setViewRef, inView] = useInView({\n onChange: (inView, entry) => {\n if (inView) return; // We need the last height value when elements moves out.\n mutables.containerHeight = entry.target.clientHeight;\n },\n });\n\n return (\n <div\n className=\"neeto-molecules-boardview-section__card relative shrink-0\"\n id={props.id}\n style={{ height: inView ? undefined : mutables.containerHeight }}\n ref={node => {\n setViewRef(node);\n }}\n >\n {inView && <DragDropContainer {...props} />}\n </div>\n );\n};\n\nexport default ItemContainer;\n","import { useId } from \"react\";\n\nimport { useDroppable } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst ItemPlaceholder = ({ data, index = 0 }) => {\n const id = useId();\n\n const { isOver, setNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.ITEM], index },\n id: `droppable-item--${id}`,\n });\n\n return (\n <div className=\"relative\" ref={setNodeRef}>\n {isOver && <DndIndicator layout=\"horizontal\" />}\n </div>\n );\n};\n\nexport default ItemPlaceholder;\n","import { forwardRef } from \"react\";\n\nimport PropTypes from \"prop-types\";\n\nimport ItemContainer from \"../Item/Container\";\nimport ItemPlaceholder from \"../Item/Placeholder\";\n\nconst Section = forwardRef(({ section, items, renderItem }, ref) => (\n <div\n {...{ ref }}\n className=\"neeto-molecules-boardview-section__body relative min-h-0 flex-1 basis-0 overflow-y-auto\"\n >\n <ItemPlaceholder data={{ section }} />\n {items.map((item, index) => (\n <ItemContainer\n {...{ index }}\n data={{ section, item }}\n id={`${section.id}--${item.id}`}\n key={`${section.id}--${item.id}`}\n render={() => renderItem({ index, item, section })}\n />\n ))}\n </div>\n));\n\nSection.displayName = \"Section\";\nSection.propTypes = {\n /** A reference to the section container element. */\n // eslint-disable-next-line react/no-unused-prop-types\n ref: PropTypes.any,\n\n /** The current section data */\n section: PropTypes.shape({ id: PropTypes.string.isRequired }).isRequired,\n\n /** An array of items belonging to the current section. */\n items: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.string.isRequired }))\n .isRequired,\n\n /** A function that renders the content of each item in the list. */\n renderItem: PropTypes.func.isRequired,\n};\n\nexport default Section;\n","import { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport { useInView } from \"react-intersection-observer\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst DragDropContainer = ({ id, index, data, render }) => {\n const {\n attributes,\n listeners,\n isDragging,\n setNodeRef: setDraggableNodeRef,\n } = useDraggable({\n data: { ...data, type: DRAGGABLE_TYPES.SECTION, index },\n id: `draggable-section--${id}`,\n });\n\n const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.SECTION], index: index + 1 },\n id: `droppable-section--${id}`,\n });\n\n const isIndicatorVisible = !isDragging && isOver;\n\n return (\n <div\n {...listeners}\n {...attributes}\n className={classNames(\"relative h-full w-full flex-col\", {\n \"opacity-65\": isDragging,\n })}\n ref={node => {\n setDraggableNodeRef(node);\n setDroppableNodeRef(node);\n }}\n >\n {render()}\n {isIndicatorVisible && <DndIndicator layout=\"vertical\" />}\n </div>\n );\n};\n\nconst SectionContainer = props => {\n const [setViewRef, inView] = useInView();\n\n return (\n <div\n className=\"neeto-molecules-boardview-section relative mr-3 h-full last-of-type:mr-0\"\n ref={node => {\n setViewRef(node);\n }}\n >\n {inView && <DragDropContainer {...props} />}\n </div>\n );\n};\n\nexport default SectionContainer;\n","import { useId } from \"react\";\n\nimport { useDroppable } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst SectionPlaceholder = ({ data, index = 0 }) => {\n const id = useId();\n\n const { isOver, setNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.SECTION], index },\n id: `droppable-section--${id}`,\n });\n\n return (\n <div className=\"relative\" ref={setNodeRef}>\n {isOver && <DndIndicator layout=\"vertical\" />}\n </div>\n );\n};\n\nexport default SectionPlaceholder;\n","import { forwardRef, useState } from \"react\";\n\nimport {\n DndContext,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport \"./boardview.scss\";\nimport { closestCenter } from \"./closestCenter\";\nimport { DRAGGABLE_TYPES } from \"./constants\";\nimport DndOverlay from \"./Overlay\";\nimport Section from \"./Section\";\nimport SectionContainer from \"./Section/Container\";\nimport SectionPlaceholder from \"./Section/Placeholder\";\n\nconst sensorConfig = { activationConstraint: { distance: 8 } };\nconst measuringConfig = { droppable: { frequency: 500 } };\n\nconst BoardView = forwardRef((props, ref) => {\n const { sections, onMoveSection, onMoveItem, renderSection, className } =\n props;\n\n const [dragState, setDragState] = useState({});\n const sensors = useSensors(useSensor(PointerSensor, sensorConfig));\n\n const onDragEnd = drag => {\n const active = dragState.active.data.current;\n const over = drag.over?.data.current;\n if (!active || !over) return;\n\n if (active.type === DRAGGABLE_TYPES.ITEM) {\n onMoveItem?.(active, over);\n } else if (active.type === DRAGGABLE_TYPES.SECTION) {\n onMoveSection?.(active, over);\n }\n };\n\n return (\n <DndContext\n {...{ onDragEnd, sensors }}\n collisionDetection={closestCenter(dragState)}\n measuring={measuringConfig}\n onDragStart={setDragState}\n >\n <div\n {...{ ref }}\n className={classNames(\n \"neeto-molecules-boardview-outer-wrapper flex w-full flex-1 overflow-x-auto\",\n className\n )}\n >\n <SectionPlaceholder />\n {sections.map((section, index) => (\n <SectionContainer\n {...{ index }}\n data={{ section }}\n id={section.id}\n key={section.id}\n render={() => renderSection({ index, section })}\n />\n ))}\n </div>\n <DndOverlay {...{ props }} state={dragState} />\n </DndContext>\n );\n});\n\nBoardView.displayName = \"BoardView\";\nBoardView.Section = Section;\nBoardView.propTypes = {\n /** A reference to the container element. */\n // eslint-disable-next-line react/no-unused-prop-types\n ref: PropTypes.any,\n\n /**\n An array of sections, each defined by an object with an `id` string.\n */\n sections: PropTypes.arrayOf(\n PropTypes.shape({ id: PropTypes.string.isRequired })\n ).isRequired,\n\n /** function to render each section content in the board view */\n renderSection: PropTypes.func.isRequired,\n\n /** A function to render a drag overlay for individual sections (drag preview) */\n // eslint-disable-next-line react/no-unused-prop-types\n renderSectionOverlay: PropTypes.func.isRequired,\n\n /** A function to render a drag overlay for individual items (drag preview) */\n // eslint-disable-next-line react/no-unused-prop-types\n renderItemOverlay: PropTypes.func.isRequired,\n\n /** Callback function triggered when a section is reordered */\n onMoveSection: PropTypes.func,\n\n /** Callback function triggered when an item is moved */\n onMoveItem: PropTypes.func,\n /**\n * Additional classes passed on to the board view.\n */\n className: PropTypes.string,\n};\n\nexport default BoardView;\n"],"names":["distanceBetween","p1","p2","Math","sqrt","pow","x","y","centerOfRectangle","rect","left","arguments","length","undefined","top","width","height","matchType","draggable","droppable","data","current","accepts","includes","type","matchDirection","direction","reference","matchX","matchY","closestCenter","_ref","active","_ref2","_active$data$current","collisionRect","droppableRects","droppableContainers","pointerCoordinates","centerRect","minDistance","Number","POSITIVE_INFINITY","collision","id","_iterator","_createForOfIteratorHelper","_step","s","n","done","droppableContainer","value","get","distance","err","e","f","DRAGGABLE_TYPES","SECTION","ITEM","DndOverlay","_state$active","props","state","renderSectionOverlay","renderItemOverlay","_jsxs","DragOverlay","children","DndIndicator","_ref$layout","layout","_jsx","className","classNames","DragDropContainer","index","render","_useDraggable","useDraggable","_objectSpread","concat","attributes","listeners","isDragging","setDraggableNodeRef","setNodeRef","_useDroppable","useDroppable","isOver","setDroppableNodeRef","isIndicatorVisible","ref","node","ItemContainer","mutables","useRef","containerHeight","_useInView","useInView","onChange","inView","entry","target","clientHeight","_useInView2","_slicedToArray","setViewRef","style","ItemPlaceholder","_ref$index","useId","Section","forwardRef","section","items","renderItem","map","item","_createElement","key","displayName","propTypes","PropTypes","any","shape","string","isRequired","arrayOf","func","SectionContainer","SectionPlaceholder","sensorConfig","activationConstraint","measuringConfig","frequency","BoardView","sections","onMoveSection","onMoveItem","renderSection","_useState","useState","_useState2","dragState","setDragState","sensors","useSensors","useSensor","PointerSensor","onDragEnd","drag","_drag$over","over","DndContext","collisionDetection","measuring","onDragStart"],"mappings":"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"}
@@ -132,15 +132,13 @@ var ElementContainer = function ElementContainer(_ref) {
132
132
  onSelect = _ref.onSelect,
133
133
  isDraggingOver = _ref.isDraggingOver,
134
134
  isAddingNewElement = _ref.isAddingNewElement,
135
- setVisiblePanel = _ref.setVisiblePanel,
136
- isPrimaryPanel = _ref.isPrimaryPanel;
135
+ setVisiblePanel = _ref.setVisiblePanel;
137
136
  var isCreatableElement = isCreatable(element.value);
138
137
  if (isDragDisabled) {
139
138
  return /*#__PURE__*/jsxRuntime.jsx(Element, _objectSpread$3(_objectSpread$3({}, _objectSpread$3(_objectSpread$3({}, element), {}, {
140
139
  disabledElementTooltip: disabledElementTooltip,
141
140
  isAddingNewElement: isAddingNewElement,
142
141
  isDragDisabled: isDragDisabled,
143
- isPrimaryPanel: isPrimaryPanel,
144
142
  setVisiblePanel: setVisiblePanel
145
143
  })), {}, {
146
144
  isCreatable: isCreatableElement,
@@ -167,7 +165,6 @@ var ElementContainer = function ElementContainer(_ref) {
167
165
  isAddingNewElement: isAddingNewElement,
168
166
  isDragDisabled: isDragDisabled,
169
167
  isDraggingOver: isDraggingOver,
170
- isPrimaryPanel: isPrimaryPanel,
171
168
  setVisiblePanel: setVisiblePanel
172
169
  })), {}, {
173
170
  isCreatable: isCreatableElement,
@@ -179,7 +176,6 @@ var ElementContainer = function ElementContainer(_ref) {
179
176
  disabledElementTooltip: null
180
177
  }, _objectSpread$3(_objectSpread$3({}, element), {}, {
181
178
  isAddingNewElement: isAddingNewElement,
182
- isPrimaryPanel: isPrimaryPanel,
183
179
  setVisiblePanel: setVisiblePanel
184
180
  })), {}, {
185
181
  isCreatable: false,
@@ -198,8 +194,7 @@ var Section = function Section(_ref) {
198
194
  isDragDisabled = _ref.isDragElementsDisabled,
199
195
  isDraggingOver = _ref.isDraggingOver,
200
196
  isAddingNewElement = _ref.isAddingNewElement,
201
- setVisiblePanel = _ref.setVisiblePanel,
202
- isPrimaryPanel = _ref.isPrimaryPanel;
197
+ setVisiblePanel = _ref.setVisiblePanel;
203
198
  if (ramda.isEmpty(elements)) {
204
199
  return null;
205
200
  }
@@ -215,7 +210,6 @@ var Section = function Section(_ref) {
215
210
  isCreatable: isCreatable,
216
211
  isDragDisabled: isDragDisabled,
217
212
  isDraggingOver: isDraggingOver,
218
- isPrimaryPanel: isPrimaryPanel,
219
213
  onSelect: onSelect,
220
214
  setVisiblePanel: setVisiblePanel,
221
215
  index: element.elementIndex,
@@ -232,8 +226,7 @@ var SectionsContainer = function SectionsContainer(_ref) {
232
226
  filteredSections = _ref.filteredSections,
233
227
  isAddingNewElement = _ref.isAddingNewElement,
234
228
  onSelect = _ref.onSelect,
235
- setVisiblePanel = _ref.setVisiblePanel,
236
- isPrimaryPanel = _ref.isPrimaryPanel;
229
+ setVisiblePanel = _ref.setVisiblePanel;
237
230
  if (ramda.isEmpty(filteredSections)) {
238
231
  return /*#__PURE__*/jsxRuntime.jsx(NoResults$1, {});
239
232
  }
@@ -243,7 +236,6 @@ var SectionsContainer = function SectionsContainer(_ref) {
243
236
  return /*#__PURE__*/React.createElement(Section, _objectSpread$2(_objectSpread$2({}, _objectSpread$2({
244
237
  isAddingNewElement: isAddingNewElement,
245
238
  isDragElementsDisabled: isDragElementsDisabled,
246
- isPrimaryPanel: isPrimaryPanel,
247
239
  onSelect: onSelect,
248
240
  setVisiblePanel: setVisiblePanel
249
241
  }, section)), {}, {
@@ -262,7 +254,6 @@ var SectionsContainer = function SectionsContainer(_ref) {
262
254
  return /*#__PURE__*/React.createElement(Section, _objectSpread$2(_objectSpread$2({}, _objectSpread$2({
263
255
  isAddingNewElement: isAddingNewElement,
264
256
  isDragElementsDisabled: isDragElementsDisabled,
265
- isPrimaryPanel: isPrimaryPanel,
266
257
  onSelect: onSelect,
267
258
  setVisiblePanel: setVisiblePanel
268
259
  }, section)), {}, {
@@ -277,9 +268,7 @@ var SectionsContainer = function SectionsContainer(_ref) {
277
268
 
278
269
  var TitleBar$1 = reactUtils.withT(function (_ref) {
279
270
  var t = _ref.t,
280
- setVisiblePanel = _ref.setVisiblePanel,
281
- isSelectedElementsEmpty = _ref.isSelectedElementsEmpty,
282
- isPrimaryPanel = _ref.isPrimaryPanel;
271
+ setVisiblePanel = _ref.setVisiblePanel;
283
272
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
284
273
  className: "flex items-center justify-between p-6 pb-1",
285
274
  "data-testid": "elements-panel-title",
@@ -289,12 +278,11 @@ var TitleBar$1 = reactUtils.withT(function (_ref) {
289
278
  style: "h3",
290
279
  weight: "semibold",
291
280
  children: t("neetoMolecules.builderSidebar.addNewElement")
292
- }), !isSelectedElementsEmpty && /*#__PURE__*/jsxRuntime.jsx(Button, {
281
+ }), /*#__PURE__*/jsxRuntime.jsx(Button, {
293
282
  "data-cy": "cancel-button",
294
283
  icon: Close,
295
284
  size: "medium",
296
285
  style: "text",
297
- label: isPrimaryPanel ? t("neetoMolecules.builderSidebar.myElements") : null,
298
286
  onClick: function onClick() {
299
287
  return setVisiblePanel(PANEL_TYPES.SUMMARY);
300
288
  }
@@ -309,9 +297,7 @@ var ElementList = function ElementList(_ref) {
309
297
  _ref$elementSections = _ref.elementSections,
310
298
  elementSections = _ref$elementSections === void 0 ? [] : _ref$elementSections,
311
299
  onSelect = _ref.onSelect,
312
- isSelectedElementsEmpty = _ref.isSelectedElementsEmpty,
313
300
  isDragElementsDisabled = _ref.isDragElementsDisabled,
314
- isPrimaryPanel = _ref.isPrimaryPanel,
315
301
  isAddingNewElement = _ref.isAddingNewElement;
316
302
  var _useTranslation = reactI18next.useTranslation(),
317
303
  t = _useTranslation.t;
@@ -335,8 +321,6 @@ var ElementList = function ElementList(_ref) {
335
321
  }, [searchString, elementSections]);
336
322
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
337
323
  children: [/*#__PURE__*/jsxRuntime.jsx(TitleBar$1, {
338
- isPrimaryPanel: isPrimaryPanel,
339
- isSelectedElementsEmpty: isSelectedElementsEmpty,
340
324
  setVisiblePanel: setVisiblePanel
341
325
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
342
326
  className: "mb-1 px-6",
@@ -361,7 +345,6 @@ var ElementList = function ElementList(_ref) {
361
345
  filteredSections: filteredSections,
362
346
  isAddingNewElement: isAddingNewElement,
363
347
  isDragElementsDisabled: isDragElementsDisabled,
364
- isPrimaryPanel: isPrimaryPanel,
365
348
  onSelect: onSelect,
366
349
  setVisiblePanel: setVisiblePanel
367
350
  })
@@ -457,8 +440,7 @@ var TitleBar = reactUtils.withT(function (_ref) {
457
440
  showElementsFillButton = _ref.showElementsFillButton,
458
441
  isAddingAllElements = _ref.isAddingAllElements,
459
442
  addAllElements = _ref.addAllElements,
460
- isAddingNewElement = _ref.isAddingNewElement,
461
- isPrimaryPanel = _ref.isPrimaryPanel;
443
+ isAddingNewElement = _ref.isAddingNewElement;
462
444
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
463
445
  className: "flex items-center justify-between p-6 pb-1",
464
446
  "data-testid": "selected-elements-title",
@@ -476,10 +458,10 @@ var TitleBar = reactUtils.withT(function (_ref) {
476
458
  disabled: isLoading,
477
459
  icon: Plus,
478
460
  iconPosition: "left",
461
+ label: t("neetoMolecules.builderSidebar.addNewElement"),
479
462
  loading: isAddingNewElement,
480
463
  size: "small",
481
464
  style: "link",
482
- label: isPrimaryPanel ? t("neetoMolecules.builderSidebar.addNewElement") : t("neetoMolecules.builderSidebar.back"),
483
465
  onClick: function onClick() {
484
466
  return setVisiblePanel(PANEL_TYPES.ELEMENTS);
485
467
  }
@@ -509,7 +491,6 @@ var SelectedElementsList = function SelectedElementsList(_ref) {
509
491
  selectedElementId = _ref.selectedElementId,
510
492
  selectedElements = _ref.selectedElements,
511
493
  setVisiblePanel = _ref.setVisiblePanel,
512
- isPrimaryPanel = _ref.isPrimaryPanel,
513
494
  fixedLastElement = _ref.fixedLastElement,
514
495
  fixedFirstElement = _ref.fixedFirstElement,
515
496
  selectedElementActions = _ref.selectedElementActions,
@@ -538,7 +519,6 @@ var SelectedElementsList = function SelectedElementsList(_ref) {
538
519
  addAllElements: addAllElements,
539
520
  isAddingAllElements: isAddingAllElements,
540
521
  isAddingNewElement: isAddingNewElement,
541
- isPrimaryPanel: isPrimaryPanel,
542
522
  setVisiblePanel: setVisiblePanel,
543
523
  showElementsFillButton: showElementsFillButton
544
524
  }), /*#__PURE__*/jsxRuntime.jsxs(Body, {
@@ -626,10 +606,8 @@ var ElementsPanel = function ElementsPanel(_ref) {
626
606
  _ref$showElementsFill = _ref.showElementsFillButton,
627
607
  showElementsFillButton = _ref$showElementsFill === void 0 ? false : _ref$showElementsFill,
628
608
  _ref$isAddingNewEleme = _ref.isAddingNewElement,
629
- isAddingNewElement = _ref$isAddingNewEleme === void 0 ? false : _ref$isAddingNewEleme,
630
- _ref$primaryPanel = _ref.primaryPanel,
631
- primaryPanel = _ref$primaryPanel === void 0 ? PANEL_TYPES.SUMMARY : _ref$primaryPanel;
632
- var _useState = React.useState(primaryPanel),
609
+ isAddingNewElement = _ref$isAddingNewEleme === void 0 ? false : _ref$isAddingNewEleme;
610
+ var _useState = React.useState(PANEL_TYPES.SUMMARY),
633
611
  _useState2 = _slicedToArray(_useState, 2),
634
612
  visiblePanel = _useState2[0],
635
613
  setVisiblePanel = _useState2[1];
@@ -676,14 +654,12 @@ var ElementsPanel = function ElementsPanel(_ref) {
676
654
  selectedElementId: selectedElementId,
677
655
  selectedElements: selectedElements,
678
656
  setVisiblePanel: setVisiblePanel,
679
- showElementsFillButton: showElementsFillButton,
680
- isPrimaryPanel: primaryPanel === PANEL_TYPES.SUMMARY
657
+ showElementsFillButton: showElementsFillButton
681
658
  }) : /*#__PURE__*/jsxRuntime.jsx(ElementList, {
682
659
  elementSections: elementSections,
683
660
  isAddingNewElement: isAddingNewElement,
684
661
  isDragElementsDisabled: isDragElementsDisabled,
685
662
  setVisiblePanel: setVisiblePanel,
686
- isPrimaryPanel: primaryPanel === PANEL_TYPES.ELEMENTS,
687
663
  onSelect: handleAddElement
688
664
  })
689
665
  })