{
  "version": 3,
  "sources": ["/cdn/shop/t/24/assets/drawer-manager.js?cv=20260824a"],
  "sourcesContent": ["/**\n * DrawerManager - Manages all drawers in the theme\n * Handles:\n * - Cart drawer\n * - Delivery location drawer\n * - Quick view product drawers\n * - Facet / filter drawer\n *\n * Ensures proper tracking of drawer states and hides the chat widget\n * when any drawer is open.\n */\nclass DrawerManager {\n  constructor() {\n    this.observers = [];\n    this.drawerStates = {\n      cart: false,\n      delivery: false,\n      quickView: false,\n      menu: false,\n      facets: false,\n    };\n\n    this.init();\n  }\n\n  init() {\n    document.addEventListener(\"DOMContentLoaded\", () => {\n      this.setupObservers();\n      this.setupEventListeners();\n    });\n  }\n\n  setupObservers() {\n    const attributeObserver = new MutationObserver((mutations) => {\n      mutations.forEach((mutation) => {\n        if (\n          mutation.type === \"attributes\" &&\n          (mutation.attributeName === \"open\" ||\n            mutation.attributeName === \"active\")\n        ) {\n          this.updateDrawerOpenState();\n        }\n      });\n    });\n\n    this.observers.push(attributeObserver);\n\n    const cartDrawer = document.getElementById(\"CartDrawer\");\n    if (cartDrawer) {\n      attributeObserver.observe(cartDrawer, { attributes: true });\n    }\n\n    const deliveryDrawer = document.getElementById(\"DeliveryLocationDrawer\");\n    if (deliveryDrawer) {\n      attributeObserver.observe(deliveryDrawer, { attributes: true });\n    }\n\n    const menuDrawer = document.getElementById(\"MenuDrawer\");\n    if (menuDrawer) {\n      attributeObserver.observe(menuDrawer, { attributes: true });\n    }\n\n    const facetDrawer = document.getElementById(\"FacetDrawer\");\n    if (facetDrawer) {\n      attributeObserver.observe(facetDrawer, { attributes: true });\n    }\n\n    document.querySelectorAll(\".quick-view\").forEach((quickView) => {\n      attributeObserver.observe(quickView, { attributes: true });\n    });\n\n    const bodyObserver = new MutationObserver((mutations) => {\n      mutations.forEach((mutation) => {\n        if (mutation.addedNodes.length) {\n          mutation.addedNodes.forEach((node) => {\n            if (node.nodeType === 1) {\n              const quickViews =\n                node.classList && node.classList.contains(\"quick-view\")\n                  ? [node]\n                  : node.querySelectorAll(\".quick-view\");\n\n              quickViews.forEach((quickView) => {\n                attributeObserver.observe(quickView, { attributes: true });\n              });\n\n              if (\n                node.id === \"DeliveryLocationDrawer\" ||\n                node.querySelector(\"#DeliveryLocationDrawer\")\n              ) {\n                const deliveryDrawer =\n                  node.id === \"DeliveryLocationDrawer\"\n                    ? node\n                    : node.querySelector(\"#DeliveryLocationDrawer\");\n\n                if (deliveryDrawer) {\n                  attributeObserver.observe(deliveryDrawer, {\n                    attributes: true,\n                  });\n                }\n              }\n\n              if (\n                node.id === \"MenuDrawer\" ||\n                node.querySelector(\"#MenuDrawer\")\n              ) {\n                const menuDrawer =\n                  node.id === \"MenuDrawer\"\n                    ? node\n                    : node.querySelector(\"#MenuDrawer\");\n\n                if (menuDrawer) {\n                  attributeObserver.observe(menuDrawer, {\n                    attributes: true,\n                  });\n                }\n              }\n\n              if (\n                node.id === \"FacetDrawer\" ||\n                node.querySelector(\"#FacetDrawer\")\n              ) {\n                const observedFacetDrawer =\n                  node.id === \"FacetDrawer\"\n                    ? node\n                    : node.querySelector(\"#FacetDrawer\");\n\n                if (observedFacetDrawer) {\n                  attributeObserver.observe(observedFacetDrawer, {\n                    attributes: true,\n                  });\n                }\n              }\n            }\n          });\n        }\n      });\n    });\n\n    this.observers.push(bodyObserver);\n    bodyObserver.observe(document.body, { childList: true, subtree: true });\n  }\n\n  setupEventListeners() {\n    document.addEventListener(\"cart:opened\", () => {\n      this.drawerStates.cart = true;\n      this.updateBodyClass();\n    });\n\n    document.addEventListener(\"cart:closed\", () => {\n      this.drawerStates.cart = false;\n      this.updateDrawerOpenState();\n    });\n\n    document.addEventListener(\"delivery:opened\", () => {\n      this.drawerStates.delivery = true;\n      this.updateBodyClass();\n    });\n\n    document.addEventListener(\"delivery:closed\", () => {\n      this.drawerStates.delivery = false;\n      this.updateDrawerOpenState();\n    });\n\n    document.addEventListener(\"quick-view:opened\", () => {\n      this.drawerStates.quickView = true;\n      this.updateBodyClass();\n    });\n\n    document.addEventListener(\"quick-view:closed\", () => {\n      this.drawerStates.quickView = false;\n      this.updateDrawerOpenState();\n    });\n\n    document.addEventListener(\"menu-drawer:open\", () => {\n      this.drawerStates.menu = true;\n      this.updateBodyClass();\n    });\n\n    document.addEventListener(\"menu-drawer:close\", () => {\n      this.drawerStates.menu = false;\n      this.updateDrawerOpenState();\n    });\n  }\n\n  updateDrawerOpenState() {\n    const cartDrawer = document.getElementById(\"CartDrawer\");\n    const deliveryDrawer = document.getElementById(\"DeliveryLocationDrawer\");\n    const menuDrawer = document.getElementById(\"MenuDrawer\");\n    const facetDrawer = document.getElementById(\"FacetDrawer\");\n    const quickViewElements = document.querySelectorAll(\".quick-view[open]\");\n\n    this.drawerStates.cart = !!(\n      cartDrawer &&\n      (cartDrawer.hasAttribute(\"open\") || cartDrawer.hasAttribute(\"active\"))\n    );\n    this.drawerStates.delivery = !!(\n      deliveryDrawer &&\n      (deliveryDrawer.hasAttribute(\"open\") ||\n        deliveryDrawer.hasAttribute(\"active\"))\n    );\n    this.drawerStates.menu = !!(\n      menuDrawer &&\n      (menuDrawer.hasAttribute(\"open\") || menuDrawer.hasAttribute(\"active\"))\n    );\n    this.drawerStates.facets = !!(\n      facetDrawer &&\n      (facetDrawer.hasAttribute(\"open\") || facetDrawer.hasAttribute(\"active\"))\n    );\n    this.drawerStates.quickView = quickViewElements.length > 0;\n\n    this.updateBodyClass();\n  }\n\n  updateBodyClass() {\n    const isAnyDrawerOpen =\n      this.drawerStates.cart ||\n      this.drawerStates.delivery ||\n      this.drawerStates.quickView ||\n      this.drawerStates.menu ||\n      this.drawerStates.facets;\n\n    if (isAnyDrawerOpen) {\n      document.body.classList.add(\"drawer-open\");\n    } else {\n      document.body.classList.remove(\"drawer-open\");\n    }\n  }\n}\n\nwindow.drawerManager = new DrawerManager();\n"],
  "mappings": "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",
  "names": ["deliveryDrawer", "menuDrawer"]
}
