{"version":3,"names":["mountNavigation","header","document","querySelector","desktopNav","mobileNav","mounted","insertAdjacentElement","setupSearchToggle","searchButton","searchTerm","dataset","topNavBound","addEventListener","classList","toggle","event","contains","target","remove","categoryMenuId","categoryTreePromise","categoryTreePrefetchStarted","activeCategoryTrigger","categoryTrail","animalCategorySlugs","Set","supplementalAnimalCategories","id","name","slug","parent_category_id","url","categoryOrderByParentName","root","Pythons","Boas","Colubrids","Geckos","Lizards","Amphibians","Invertebrates","Aquatics","categoryUrl","category","encodeURIComponent","sortCategories","categories","parentName","order","sort","first","second","firstIndex","indexOf","secondIndex","firstRank","length","secondRank","buildCategoryTree","categoryList","categoriesById","Map","collect","inheritedParentId","forEach","parentId","existing","get","set","subcategory_list","Array","from","values","childrenByParent","key","children","push","makeBranch","ancestors","has","nextAncestors","add","map","child","filter","loadCategoryTree","fetch","credentials","headers","Accept","then","response","ok","Error","json","data","category_list","prefetchCategoryTree","catch","undefined","getCategoryMenu","menu","getElementById","createElement","className","setAttribute","hidden","body","appendChild","positionCategoryMenu","triggerRect","getBoundingClientRect","menuWidth","offsetWidth","viewportPadding","left","Math","min","max","window","innerWidth","style","top","bottom","closeCategoryMenu","querySelectorAll","trigger","makeMenuLink","label","href","link","textContent","menuIconPaths","chevron","close","makeMenuIcon","icon","createElementNS","path","renderCategoryPanel","replaceChildren","currentCategory","backButton","type","backLabel","append","pop","parent","closeButton","closeLabel","focus","visibleCategories","button","channelItems","renderChannelPanel","openChannelMenu","item","openCategoryMenu","error","setupCategoryMenu","bound","categoryMenuBound","channelMenuBound","composedPath","includes","closest","items","preventDefault","currentIndex","activeElement","nextIndex","initialize","navMounted","searchBound","attemptInitialize","observer","MutationObserver","disconnect","observe","childList","subtree","setTimeout","readyState"],"sources":["theme-409-inline-common-header.js"],"sourcesContent":["\n  (() => {\n    const mountNavigation = () => {\n      const header =\n        document.querySelector(\".d-header\") || document.querySelector(\"header\");\n      const desktopNav = document.querySelector(\".custom-nav-desktop\");\n      const mobileNav = document.querySelector(\".custom-nav-mobile\");\n\n      if (!header) {\n        return false;\n      }\n\n      let mounted = false;\n\n      if (desktopNav) {\n        header.insertAdjacentElement(\"afterend\", desktopNav);\n        mounted = true;\n      }\n\n      if (mobileNav) {\n        (desktopNav || header).insertAdjacentElement(\"afterend\", mobileNav);\n        mounted = true;\n      }\n\n      return mounted;\n    };\n\n    const setupSearchToggle = () => {\n      const searchButton = document.querySelector(\"#search-button\");\n      const searchTerm = document.querySelector(\"#search-term\");\n\n      if (\n        !searchButton ||\n        !searchTerm ||\n        searchButton.dataset.topNavBound === \"true\"\n      ) {\n        return false;\n      }\n\n      searchButton.dataset.topNavBound = \"true\";\n\n      searchButton.addEventListener(\"click\", () => {\n        searchTerm.classList.toggle(\"is-active\");\n      });\n\n      document.addEventListener(\"click\", (event) => {\n        if (\n          !searchButton.contains(event.target) &&\n          !searchTerm.contains(event.target)\n        ) {\n          searchTerm.classList.remove(\"is-active\");\n        }\n      });\n\n      return true;\n    };\n\n    const categoryMenuId = \"forum-category-tree-menu\";\n    let categoryTreePromise;\n    let categoryTreePrefetchStarted = false;\n    let activeCategoryTrigger;\n    let categoryTrail = [];\n    const animalCategorySlugs = new Set([\n      \"all-reptiles\",\n      \"pythons\",\n      \"boas\",\n      \"colubrids\",\n      \"geckos\",\n      \"lizards\",\n      \"other-reptiles\",\n      \"invertebrates\",\n      \"amphibians\",\n      \"aquatics\",\n      \"live-plants\",\n    ]);\n    const supplementalAnimalCategories = [\n      { id: 5, name: \"Ball Pythons\", slug: \"ball-pythons\", parent_category_id: 14, url: \"/c/pythons/ball-pythons/5\" },\n      { id: 101, name: \"Carpet Pythons\", slug: \"carpet-pythons\", parent_category_id: 14, url: \"/c/pythons/carpet-pythons/101\" },\n      { id: 151, name: \"Rat Snakes\", slug: \"rat-snakes\", parent_category_id: 19, url: \"/c/colubrids/rat-snakes/151\" },\n      { id: 137, name: \"Leopard Geckos\", slug: \"leopard-geckos\", parent_category_id: 25, url: \"/c/geckos/leopard-geckos/137\" },\n      { id: 141, name: \"Chahoua Geckos\", slug: \"chahoua-geckos\", parent_category_id: 25, url: \"/c/geckos/chahoua-geckos/141\" },\n    ];\n\n    const categoryOrderByParentName = {\n      root: [\n        \"All Reptiles\",\n        \"Pythons\",\n        \"Boas\",\n        \"Colubrids\",\n        \"Geckos\",\n        \"Lizards\",\n        \"Other Reptiles\",\n        \"Amphibians\",\n        \"Invertebrates\",\n        \"Aquatics\",\n        \"Live Plants\",\n      ],\n      Pythons: [\n        \"Ball Pythons\",\n        \"Reticulated Pythons\",\n        \"Burmese Pythons\",\n        \"Short-Tailed Pythons\",\n        \"Green Tree Pythons\",\n        \"Carpet Pythons\",\n        \"Other Pythons\",\n      ],\n      Boas: [\"Boa Constrictors\", \"Rainbow Boas\", \"Sand Boas\", \"Other Boas\"],\n      Colubrids: [\n        \"Hognose Snakes\",\n        \"Kingsnakes\",\n        \"Milk Snakes\",\n        \"Corn Snakes\",\n        \"Rat Snakes\",\n        \"Other Colubrids\",\n      ],\n      Geckos: [\n        \"Crested Geckos\",\n        \"Leopard Geckos\",\n        \"Gargoyle Geckos\",\n        \"Leachianus Geckos\",\n        \"Fat-Tailed Geckos\",\n        \"Chahoua Geckos\",\n        \"Other Geckos\",\n      ],\n      Lizards: [\n        \"Bearded Dragons\",\n        \"Skinks\",\n        \"Monitors\",\n        \"Iguanas\",\n        \"Other Lizards\",\n      ],\n      Amphibians: [\n        \"Tree frogs\",\n        \"Dart Frogs\",\n        \"Axolotls\",\n        \"Other Amphibians\",\n      ],\n      Invertebrates: [\n        \"Scorpions\",\n        \"Spiders\",\n        \"Arthropods\",\n        \"Mantis & Stick insects\",\n        \"Other Invertebrates\",\n      ],\n      Aquatics: [\"Tropical\", \"Coldwater\", \"Brackish\", \"Marine\", \"Reef\"],\n      \"Live Plants\": [\"Terrarium Plants\", \"Aquarium Plants\", \"Other Plants\"],\n    };\n\n    const categoryUrl = (category) =>\n      category.url || \"/c/\" + encodeURIComponent(category.slug) + \"/\" + category.id;\n\n    const sortCategories = (categories, parentName) => {\n      const order = categoryOrderByParentName[parentName] || [];\n      return [...categories].sort((first, second) => {\n        const firstIndex = order.indexOf(first.name);\n        const secondIndex = order.indexOf(second.name);\n        const firstRank = firstIndex === -1 ? order.length : firstIndex;\n        const secondRank = secondIndex === -1 ? order.length : secondIndex;\n        return firstRank - secondRank;\n      });\n    };\n\n    const buildCategoryTree = (categoryList) => {\n      const categoriesById = new Map();\n\n      const collect = (categories, inheritedParentId = null) => {\n        (categories || []).forEach((category) => {\n          const parentId = category.parent_category_id ?? inheritedParentId;\n          const existing = categoriesById.get(category.id) || {};\n          categoriesById.set(category.id, { ...existing, ...category, parentId });\n          collect(category.subcategory_list, category.id);\n        });\n      };\n\n      collect(categoryList);\n      const categories = Array.from(categoriesById.values());\n      const childrenByParent = new Map();\n\n      categories.forEach((category) => {\n        const key = category.parentId || \"root\";\n        const children = childrenByParent.get(key) || [];\n        children.push(category);\n        childrenByParent.set(key, children);\n      });\n\n      const makeBranch = (category, ancestors = new Set()) => {\n        if (ancestors.has(category.id)) {\n          return { ...category, children: [] };\n        }\n\n        const nextAncestors = new Set(ancestors);\n        nextAncestors.add(category.id);\n        return {\n          ...category,\n          children: sortCategories(\n            childrenByParent.get(category.id) || [],\n            category.name\n          ).map((child) => makeBranch(child, nextAncestors)),\n        };\n      };\n\n      return sortCategories(\n        (childrenByParent.get(\"root\") || []).filter((category) =>\n          animalCategorySlugs.has(category.slug)\n        ),\n        \"root\"\n      ).map((category) => makeBranch(category));\n    };\n\n    const loadCategoryTree = () => {\n      if (!categoryTreePromise) {\n        categoryTreePromise = fetch(\"/categories.json\", {\n          credentials: \"same-origin\",\n          headers: { Accept: \"application/json\" },\n        })\n          .then((response) => {\n            if (!response.ok) {\n              throw new Error(\"Unable to load forum categories\");\n            }\n            return response.json();\n          })\n          .then((data) =>\n            buildCategoryTree([\n              ...(data.category_list?.categories || []),\n              ...supplementalAnimalCategories,\n            ])\n          );\n      }\n\n      return categoryTreePromise;\n    };\n\n    const prefetchCategoryTree = () => {\n      if (categoryTreePrefetchStarted) {\n        return;\n      }\n\n      categoryTreePrefetchStarted = true;\n      loadCategoryTree().catch(() => {\n        categoryTreePromise = undefined;\n      });\n    };\n\n    const getCategoryMenu = () => {\n      let menu = document.getElementById(categoryMenuId);\n      if (!menu) {\n        menu = document.createElement(\"div\");\n        menu.id = categoryMenuId;\n        menu.className = \"forum-category-tree-menu\";\n        menu.setAttribute(\"role\", \"menu\");\n        menu.setAttribute(\"aria-label\", \"Categories\");\n        menu.hidden = true;\n        document.body.appendChild(menu);\n      }\n      return menu;\n    };\n\n    const positionCategoryMenu = () => {\n      if (!activeCategoryTrigger) {\n        return;\n      }\n\n      const menu = getCategoryMenu();\n      const triggerRect = activeCategoryTrigger.getBoundingClientRect();\n      const menuWidth = menu.offsetWidth;\n      const viewportPadding = 8;\n      const left = Math.min(\n        Math.max(viewportPadding, triggerRect.left),\n        window.innerWidth - menuWidth - viewportPadding\n      );\n      menu.style.left = Math.max(viewportPadding, left) + \"px\";\n      menu.style.top = triggerRect.bottom + \"px\";\n    };\n\n    const closeCategoryMenu = () => {\n      const menu = getCategoryMenu();\n      menu.hidden = true;\n      document.querySelectorAll(\".forum-categories-trigger, .forum-channels-trigger\").forEach((trigger) =>\n        trigger.setAttribute(\"aria-expanded\", \"false\")\n      );\n      activeCategoryTrigger = null;\n      categoryTrail = [];\n    };\n\n    const makeMenuLink = (label, href, className = \"\") => {\n      const link = document.createElement(\"a\");\n      link.className = className;\n      link.href = href;\n      link.setAttribute(\"role\", \"menuitem\");\n      link.textContent = label;\n      return link;\n    };\n\n    const menuIconPaths = {\n      chevron: \"M311.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L243.2 256 73.9 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\",\n      close: \"M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z\",\n    };\n\n    const makeMenuIcon = (name, className = \"\") => {\n      const icon = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n      icon.classList.add(\"forum-category-menu-icon\");\n      if (className) {\n        icon.classList.add(className);\n      }\n      icon.setAttribute(\"viewBox\", name === \"close\" ? \"0 0 384 512\" : \"0 0 320 512\");\n      icon.setAttribute(\"aria-hidden\", \"true\");\n      const path = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n      path.setAttribute(\"fill\", \"currentColor\");\n      path.setAttribute(\"d\", menuIconPaths[name]);\n      icon.appendChild(path);\n      return icon;\n    };\n\n    const renderCategoryPanel = (categories) => {\n      const menu = getCategoryMenu();\n      menu.replaceChildren();\n\n      if (categoryTrail.length) {\n        const currentCategory = categoryTrail[categoryTrail.length - 1];\n        const backButton = document.createElement(\"button\");\n        backButton.type = \"button\";\n        backButton.className = \"forum-category-menu-heading\";\n        backButton.setAttribute(\"role\", \"menuitem\");\n        backButton.setAttribute(\"aria-label\", \"Back from \" + currentCategory.name);\n        const backLabel = document.createElement(\"span\");\n        backLabel.textContent = currentCategory.name;\n        backButton.append(backLabel, makeMenuIcon(\"chevron\", \"is-back\"));\n        backButton.addEventListener(\"click\", () => {\n          categoryTrail.pop();\n          const parent = categoryTrail[categoryTrail.length - 1];\n          renderCategoryPanel(parent ? parent.children : categories);\n        });\n        menu.appendChild(backButton);\n        menu.appendChild(\n          makeMenuLink(\n            \"All \" + currentCategory.name,\n            categoryUrl(currentCategory),\n            \"forum-category-menu-item\"\n          )\n        );\n      } else {\n        const closeButton = document.createElement(\"button\");\n        closeButton.type = \"button\";\n        closeButton.className = \"forum-category-menu-heading\";\n        closeButton.setAttribute(\"role\", \"menuitem\");\n        closeButton.setAttribute(\"aria-label\", \"Close menu\");\n        const closeLabel = document.createElement(\"span\");\n        closeLabel.textContent = \"Categories\";\n        closeButton.append(closeLabel, makeMenuIcon(\"close\"));\n        closeButton.addEventListener(\"click\", () => {\n          const trigger = activeCategoryTrigger;\n          closeCategoryMenu();\n          trigger?.focus();\n        });\n        menu.appendChild(closeButton);\n        menu.appendChild(\n          makeMenuLink(\n            \"All Categories\",\n            \"https://community.morphmarket.com/categories\",\n            \"forum-category-menu-item\"\n          )\n        );\n      }\n\n      const visibleCategories = categoryTrail.length\n        ? categoryTrail[categoryTrail.length - 1].children\n        : categories;\n\n      visibleCategories.forEach((category) => {\n        if (category.children.length) {\n          const button = document.createElement(\"button\");\n          button.type = \"button\";\n          button.className = \"forum-category-menu-item\";\n          button.setAttribute(\"role\", \"menuitem\");\n          button.setAttribute(\"aria-label\", \"Open \" + category.name + \" submenu\");\n          const label = document.createElement(\"span\");\n          label.textContent = category.name;\n          button.append(label, makeMenuIcon(\"chevron\"));\n          button.addEventListener(\"click\", () => {\n            categoryTrail.push(category);\n            renderCategoryPanel(categories);\n          });\n          menu.appendChild(button);\n        } else {\n          menu.appendChild(\n            makeMenuLink(\n              category.name,\n              categoryUrl(category),\n              \"forum-category-menu-item\"\n            )\n          );\n        }\n      });\n\n      positionCategoryMenu();\n      menu.querySelector(\"[role=menuitem]\")?.focus();\n    };\n\n\n    const channelItems = [\n      [\"Pythons\", \"/chat/c/pythons/31\"],\n      [\"Boas\", \"/chat/c/boas/26\"],\n      [\"Colubrids\", \"/chat/c/colubrids/27\"],\n      [\"Geckos\", \"/chat/c/geckos/28\"],\n      [\"Lizards\", \"/chat/c/lizards/29\"],\n      [\"Amphibians\", \"/chat/c/amphibians/30\"],\n      [\"Invertebrates\", \"/chat/c/invertebrates/35\"],\n      [\"Aquatics\", \"/chat/c/aquatics/56\"],\n      [\"Live Plants\", \"/chat/c/live-plants/131\"],\n      [\"Enclosures\", \"/chat/c/chat-enclosures/108\"],\n    ];\n\n    const renderChannelPanel = () => {\n      const menu = getCategoryMenu();\n      menu.replaceChildren();\n\n      const closeButton = document.createElement(\"button\");\n      closeButton.type = \"button\";\n      closeButton.className = \"forum-category-menu-heading\";\n      closeButton.setAttribute(\"role\", \"menuitem\");\n      closeButton.setAttribute(\"aria-label\", \"Close menu\");\n      const closeLabel = document.createElement(\"span\");\n      closeLabel.textContent = \"Channels\";\n      closeButton.append(closeLabel, makeMenuIcon(\"close\"));\n      closeButton.addEventListener(\"click\", () => {\n        const trigger = activeCategoryTrigger;\n        closeCategoryMenu();\n        trigger?.focus();\n      });\n      menu.appendChild(closeButton);\n      menu.appendChild(\n        makeMenuLink(\n          \"All Channels\",\n          \"https://community.morphmarket.com/chat/browse/open\",\n          \"forum-category-menu-item\"\n        )\n      );\n      channelItems.forEach(([name, url]) =>\n        menu.appendChild(makeMenuLink(name, url, \"forum-category-menu-item\"))\n      );\n\n      positionCategoryMenu();\n      menu.querySelector(\"[role=menuitem]\")?.focus();\n    };\n\n    const openChannelMenu = (trigger) => {\n      const menu = getCategoryMenu();\n      activeCategoryTrigger = trigger;\n      categoryTrail = [];\n      menu.setAttribute(\"aria-label\", \"Channels\");\n      document.querySelectorAll(\".forum-categories-trigger\").forEach((item) =>\n        item.setAttribute(\"aria-expanded\", \"false\")\n      );\n      document.querySelectorAll(\".forum-channels-trigger\").forEach((item) =>\n        item.setAttribute(\"aria-expanded\", item === trigger ? \"true\" : \"false\")\n      );\n      menu.hidden = false;\n      renderChannelPanel();\n    };\n\n    const openCategoryMenu = async (trigger) => {\n      const menu = getCategoryMenu();\n      activeCategoryTrigger = trigger;\n      categoryTrail = [];\n      menu.setAttribute(\"aria-label\", \"Categories\");\n      document.querySelectorAll(\".forum-channels-trigger\").forEach((item) =>\n        item.setAttribute(\"aria-expanded\", \"false\")\n      );\n      document.querySelectorAll(\".forum-categories-trigger\").forEach((item) =>\n        item.setAttribute(\"aria-expanded\", item === trigger ? \"true\" : \"false\")\n      );\n      menu.hidden = false;\n      menu.textContent = \"Loading categories…\";\n      positionCategoryMenu();\n\n      try {\n        renderCategoryPanel(await loadCategoryTree());\n      } catch (error) {\n        renderCategoryPanel([]);\n      }\n    };\n\n    const setupCategoryMenu = () => {\n      let bound = false;\n      document.querySelectorAll(\".forum-categories-trigger\").forEach((trigger) => {\n        if (trigger.dataset.categoryMenuBound === \"true\") {\n          return;\n        }\n\n        trigger.dataset.categoryMenuBound = \"true\";\n        trigger.setAttribute(\"aria-controls\", categoryMenuId);\n        trigger.addEventListener(\"click\", () => {\n          if (activeCategoryTrigger === trigger && !getCategoryMenu().hidden) {\n            closeCategoryMenu();\n          } else {\n            openCategoryMenu(trigger);\n          }\n        });\n        bound = true;\n      });\n\n\n      document.querySelectorAll(\".forum-channels-trigger\").forEach((trigger) => {\n        if (trigger.dataset.channelMenuBound === \"true\") {\n          return;\n        }\n\n        trigger.dataset.channelMenuBound = \"true\";\n        trigger.setAttribute(\"aria-controls\", categoryMenuId);\n        trigger.addEventListener(\"click\", () => {\n          if (activeCategoryTrigger === trigger && !getCategoryMenu().hidden) {\n            closeCategoryMenu();\n          } else {\n            openChannelMenu(trigger);\n          }\n        });\n        bound = true;\n      });\n\n      if (document.body.dataset.categoryMenuBound !== \"true\") {\n        document.body.dataset.categoryMenuBound = \"true\";\n        document.addEventListener(\"click\", (event) => {\n          const menu = getCategoryMenu();\n          if (\n            !menu.hidden &&\n            !event.composedPath().includes(menu) &&\n            !event.target.closest(\".forum-categories-trigger, .forum-channels-trigger\")\n          ) {\n            closeCategoryMenu();\n          }\n        });\n        document.addEventListener(\"keydown\", (event) => {\n          const menu = getCategoryMenu();\n          if (event.key === \"Escape\" && !menu.hidden) {\n            const trigger = activeCategoryTrigger;\n            closeCategoryMenu();\n            trigger?.focus();\n            return;\n          }\n\n          if (menu.hidden || ![\"ArrowDown\", \"ArrowUp\", \"Home\", \"End\"].includes(event.key)) {\n            return;\n          }\n\n          const items = Array.from(menu.querySelectorAll(\"[role=menuitem]\"));\n          if (!items.length) {\n            return;\n          }\n\n          event.preventDefault();\n          const currentIndex = items.indexOf(document.activeElement);\n          let nextIndex = event.key === \"ArrowUp\" ? currentIndex - 1 : currentIndex + 1;\n          if (event.key === \"Home\") {\n            nextIndex = 0;\n          } else if (event.key === \"End\") {\n            nextIndex = items.length - 1;\n          }\n          items[(nextIndex + items.length) % items.length].focus();\n        });\n        window.addEventListener(\"resize\", positionCategoryMenu);\n      }\n\n      return bound;\n    };\n\n    const initialize = () => {\n      const navMounted = mountNavigation();\n      const searchBound = setupSearchToggle();\n      setupCategoryMenu();\n      prefetchCategoryTree();\n      return navMounted || searchBound;\n    };\n\n    const attemptInitialize = () => {\n      if (initialize()) {\n        return;\n      }\n\n      const observer = new MutationObserver(() => {\n        if (initialize()) {\n          observer.disconnect();\n        }\n      });\n\n      observer.observe(document.body, { childList: true, subtree: true });\n      window.setTimeout(() => observer.disconnect(), 5000);\n    };\n\n    if (document.readyState === \"loading\") {\n      document.addEventListener(\"DOMContentLoaded\", attemptInitialize);\n    } else {\n      attemptInitialize();\n    }\n  })();\n"],"mappings":"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","ignoreList":[]}