{"version":3,"file":"scripts/components.block.tag.menublock.menublock.36ce719d.js","mappings":"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","sources":["webpack://foundation-spa-frontend/./src/Components/Block/Tag/MenuBlock/MenuBlock.tsx"],"sourcesContent":["\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst react_1 = __importStar(require(\"react\"));\r\nconst styled = __importStar(require(\"./styled\"));\r\nconst Category_1 = __importDefault(require(\"./Category/Category\"));\r\nconst Item_1 = __importDefault(require(\"./Item/Item\"));\r\nconst Contexts_1 = require(\"../../../../Contexts\");\r\nconst useOnOutsideClick_1 = require(\"../../../../Hooks/useOnOutsideClick\");\r\nconst Typography_1 = require(\"../../../UI/Typography\");\r\nconst Theme_1 = require(\"../../../../Theme/Theme\");\r\nconst MenuBlock = ({ categories, isInModal, closeMenu, isMenuOpen, activeBreadcrumb, forceOpen }) => {\r\n const [activeCategory, setActiveCategory] = (0, react_1.useState)(activeBreadcrumb.href || '');\r\n const [maxHeight, setMaxHeight] = (0, react_1.useState)();\r\n const containerRef = (0, react_1.useRef)(null);\r\n const firstRender = (0, react_1.useRef)(true);\r\n const handleScroll = () => {\r\n // Really wanted to do this in a prettier way, but there was quite a log of edge cases and the footer messing\r\n // up the height. So here we are\r\n var _a, _b;\r\n if (containerRef.current) {\r\n // #epi-page-container has 100vh height\r\n const pageHeight = (_b = (_a = containerRef.current.closest('#epi-page-container')) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) === null || _b === void 0 ? void 0 : _b.height;\r\n const menuRect = containerRef.current.getBoundingClientRect();\r\n const content = document.querySelectorAll('.content')[0];\r\n // Get first sibling (nav) and last sibling (footer)\r\n const nav = content.parentElement.firstElementChild;\r\n const footer = content.parentElement.lastElementChild;\r\n const top = nav ? nav.getBoundingClientRect().bottom : menuRect.top;\r\n let bottom = footer.getBoundingClientRect().top - Theme_1.theme.spacing.l1;\r\n bottom = bottom > pageHeight ? pageHeight : bottom;\r\n const maxH = bottom - (menuRect.top > top ? menuRect.top : top) + 'px';\r\n containerRef.current.parentElement.style.top = `${top}px`;\r\n setMaxHeight(maxH);\r\n }\r\n };\r\n (0, react_1.useEffect)(() => {\r\n window.addEventListener('scroll', handleScroll);\r\n window.addEventListener('resize', handleScroll);\r\n return () => {\r\n window.removeEventListener('resize', handleScroll);\r\n window.removeEventListener('scroll', handleScroll);\r\n };\r\n }, []);\r\n (0, react_1.useEffect)(() => {\r\n if (!firstRender.current) {\r\n setActiveCategory(activeBreadcrumb.href);\r\n }\r\n handleScroll();\r\n firstRender.current = false;\r\n }, [activeBreadcrumb]);\r\n isInModal &&\r\n (0, useOnOutsideClick_1.useOnOutsideClick)(containerRef, () => {\r\n if (typeof closeMenu === 'function') {\r\n closeMenu();\r\n }\r\n });\r\n return (react_1.default.createElement(react_1.default.Fragment, null, !!(categories === null || categories === void 0 ? void 0 : categories.length) && (react_1.default.createElement(styled.Container, { isInModal: isInModal, ref: containerRef, isMenuOpen: isMenuOpen, style: { maxHeight: maxHeight !== null && maxHeight !== void 0 ? maxHeight : '100%' } },\r\n isInModal && (react_1.default.createElement(styled.ModalHeader, null,\r\n react_1.default.createElement(styled.CrossIcon, { fill: Theme_1.theme.palette.BLUE_100, onClick: closeMenu }),\r\n react_1.default.createElement(styled.Title, { type: Typography_1.Types.NAV_HEADER }, activeBreadcrumb.text))),\r\n react_1.default.createElement(Contexts_1.TAGMenuContext.Provider, { value: { activeCategory: activeCategory, setActiveCategory: setActiveCategory } }, categories.map((el, index) => {\r\n if (el === null || el === void 0 ? void 0 : el.children.length) {\r\n return (react_1.default.createElement(Category_1.default, { forceOpen: forceOpen, title: el.title, items: el.children, key: index, firstLayer: true, uri: el.uri, isFolder: el === null || el === void 0 ? void 0 : el.isFolder, target: el === null || el === void 0 ? void 0 : el.target }));\r\n }\r\n else {\r\n return react_1.default.createElement(Item_1.default, { firstLevel: true, title: el.title, key: index, uri: el.uri, target: el === null || el === void 0 ? void 0 : el.target });\r\n }\r\n }))))));\r\n};\r\nexports.default = (0, react_1.memo)(MenuBlock);\r\n"],"names":["__createBinding","this","Object","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__setModuleDefault","v","value","__importStar","mod","result","prototype","hasOwnProperty","call","__importDefault","exports","react_1","styled","Category_1","Item_1","Contexts_1","useOnOutsideClick_1","Typography_1","Theme_1","memo","categories","isInModal","closeMenu","isMenuOpen","activeBreadcrumb","forceOpen","activeCategory","setActiveCategory","useState","href","maxHeight","setMaxHeight","containerRef","useRef","firstRender","handleScroll","_a","_b","current","pageHeight","closest","getBoundingClientRect","height","menuRect","content","document","querySelectorAll","nav","parentElement","firstElementChild","footer","lastElementChild","top","bottom","theme","spacing","l1","maxH","style","useEffect","window","addEventListener","removeEventListener","useOnOutsideClick","default","createElement","Fragment","length","Container","ref","ModalHeader","CrossIcon","fill","palette","BLUE_100","onClick","Title","type","Types","NAV_HEADER","text","TAGMenuContext","Provider","map","el","index","children","title","items","key","firstLayer","uri","isFolder","target","firstLevel"],"sourceRoot":""}