{
  "version": 3,
  "sources": ["/cdn/shop/t/24/assets/afterpay-custom.js?cv=20260824a"],
  "sourcesContent": ["// Afterpay Custom Styling and Content Handler\n(function () {\n  \"use strict\";\n\n  // CSS styles to inject\n  const afterpayStyles = `\n    /* Afterpay app block styling */\n    square-placement .afterpay-paragraph,\n    .shopify-app-block .afterpay-paragraph {\n      border: 1px solid #e5e6e9 !important;\n      border-radius: 24px !important;\n      padding: 12px 16px !important;\n      \n      margin: 8px 0 !important;\n      font-size: 14px !important;\n      line-height: 1.4 !important;\n      color: #333 !important;\n    }\n\n    /* HR styling between Afterpay and custom content */\n    .afterpay-separator {\n      margin: 16px 0;\n      border: none;\n      border-top: 1px solid #e0e0e0;\n      opacity: 0.5;\n    }\n\n    /* Custom HR style options */\n    .afterpay-separator.style-1 {\n      border-top: 2px solid #007bff;\n      opacity: 0.8;\n      margin: 20px 0;\n    }\n\n    .afterpay-separator.style-2 {\n      border-top: 1px dashed #dee2e6;\n      opacity: 0.7;\n      margin: 12px 0;\n    }\n\n    .afterpay-separator.style-3 {\n      border-top: 3px solid #28a745;\n      opacity: 0.6;\n      margin: 24px 0;\n      border-radius: 2px;\n    }\n\n    .afterpay-separator.style-4 {\n      border: none;\n      height: 1px;\n      background: linear-gradient(90deg, transparent, #e0e0e0, transparent);\n      margin: 18px 0;\n    }\n\n    /* Additional div styling below Afterpay */\n    .afterpay-additional-content {\n      margin-top: 12px;\n      padding: 16px;\n      text-align: left;\n      font-size: 12px;\n      color: #666;\n      border: 1px solid #e0e0e0;\n      border-radius: 12px;\n      background-color: #fafafa;\n      width: 100%;\n      box-sizing: border-box;\n    }\n\n    /* Custom styling options for afterpay-additional-content */\n    .afterpay-additional-content.custom-style-1 {\n      background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);\n      border: 2px solid #dee2e6;\n      border-radius: 16px;\n      padding: 20px;\n      box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n    }\n\n    .afterpay-additional-content.custom-style-2 {\n      background-color: #ffffff;\n      border: 1px solid #007bff;\n      border-radius: 8px;\n      padding: 12px;\n      color: #007bff;\n      font-weight: 500;\n    }\n\n    .afterpay-additional-content.custom-style-3 {\n      background-color: #f8f9fa;\n      border: none;\n      border-radius: 20px;\n      padding: 24px;\n      text-align: center;\n      box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);\n    }\n\n    /* Payment icons styling */\n    .payment-icons {\n      display: flex;\n      justify-content: start;\n      align-items: center;\n      gap: 8px;\n      margin-top: 8px;\n      flex-wrap: wrap;\n    }\n\n    .payment-icon {\n      height: 24px;\n      width: auto;\n      opacity: 0.7;\n      transition: opacity 0.2s ease;\n    }\n\n    .payment-icon:hover {\n      opacity: 1;\n    }\n\n    /* Style for Shopify payment icons */\n    .afterpay-additional-content .payment-icons .icon {\n      height: 20px !important;\n      width: 32px !important;\n      opacity: 0.7 !important;\n      transition: opacity 0.2s ease !important;\n      display: inline-block !important;\n    }\n\n    .afterpay-additional-content .payment-icons .icon:hover {\n      opacity: 1 !important;\n    }\n\n    .afterpay-additional-content .payment-icons svg {\n      height: 20px !important;\n      width: 32px !important;\n      display: block !important;\n    }\n\n    .afterpay-additional-content .payment-icons .payment-icon {\n      height: 20px !important;\n      width: 32px !important;\n      opacity: 0.7 !important;\n      transition: opacity 0.2s ease !important;\n      display: inline-block !important;\n    }\n\n    .afterpay-additional-content .payment-icons .payment-icon:hover {\n      opacity: 1 !important;\n    }\n  `;\n\n  // Function to inject CSS styles\n  function injectStyles() {\n    if (document.getElementById(\"afterpay-custom-styles\")) {\n      return;\n    }\n\n    const styleElement = document.createElement(\"style\");\n    styleElement.id = \"afterpay-custom-styles\";\n    styleElement.textContent = afterpayStyles;\n    document.head.appendChild(styleElement);\n  }\n\n  // Function to apply direct styles to afterpay-additional-content\n  function applyAdditionalContentStyles(container) {\n    // Apply styles to afterpay-additional-content\n    // container.style\n  }\n\n  // Function to apply direct styles to HR separator\n  function applyHRStyles(hrElement) {\n    hrElement.style.margin = \"16px 0\";\n    hrElement.style.border = \"none\";\n    hrElement.style.height = \"1px\";\n    hrElement.style.backgroundColor = \"#e5e6e9\";\n    // Extend beyond parent padding (16px on each side) and align with parent border\n    hrElement.style.marginLeft = \"-17px\"; // -16px padding - 1px border\n    hrElement.style.marginRight = \"-17px\"; // -16px padding - 1px border\n    hrElement.style.width = \"calc(100% + 34px)\"; // +32px padding + 2px border\n  }\n\n  // Function to apply direct styles to payment icons\n  function applyPaymentIconStyles(container) {\n    // Apply styles to payment-icons container\n    const paymentIconsContainer = container.querySelector(\".payment-icons\");\n\n    if (paymentIconsContainer) {\n      paymentIconsContainer.style.display = \"flex\";\n      paymentIconsContainer.style.justifyContent = \"start\";\n      paymentIconsContainer.style.alignItems = \"center\";\n      paymentIconsContainer.style.gap = \"8px\";\n      paymentIconsContainer.style.marginTop = \"8px\";\n      paymentIconsContainer.style.flexWrap = \"wrap\";\n    }\n\n    // Apply styles to individual payment icons\n    const paymentIcons = container.querySelectorAll(\n      \".payment-icons .icon, .payment-icons .payment-icon\"\n    );\n    paymentIcons.forEach((icon) => {\n      icon.style.height = \"20px\";\n      icon.style.width = \"32px\";\n      icon.style.display = \"inline-block\";\n\n      // Apply styles to SVG inside\n      const svg = icon.querySelector(\"svg\");\n      if (svg) {\n        svg.style.height = \"20px\";\n        svg.style.width = \"32px\";\n        svg.style.display = \"block\";\n      }\n    });\n  }\n\n  // Function to modify Afterpay text content\n  function modifyAfterpayText() {\n    // Try regular DOM first\n    let mainTextElement = document.querySelector(\".afterpay-main-text\");\n\n    // If not found, check Shadow DOM\n    if (!mainTextElement) {\n      const squarePlacement = document.querySelector(\"square-placement\");\n      if (squarePlacement && squarePlacement.shadowRoot) {\n        mainTextElement = squarePlacement.shadowRoot.querySelector(\n          \".afterpay-main-text\"\n        );\n      }\n    }\n\n    if (mainTextElement) {\n      // Extract the amount from existing text (e.g., \"$312.50\")\n      const strongTag = mainTextElement.querySelector(\"strong\");\n      if (strongTag) {\n        const amount = strongTag.textContent;\n        // Replace with new text format\n        mainTextElement.innerHTML = `4 payments of <strong>${amount}</strong> `;\n      }\n    }\n\n    // Also handle regular DOM if it exists separately\n    const regularMainText = document.querySelector(\n      \"p.afterpay-paragraph .afterpay-main-text\"\n    );\n    if (regularMainText) {\n      const strongTag = regularMainText.querySelector(\"strong\");\n      if (strongTag) {\n        const amount = strongTag.textContent;\n        regularMainText.innerHTML = `4 payments of <strong>${amount}</strong> `;\n      }\n    }\n  }\n\n  // Function to load payment icons from Shopify\n  function loadPaymentIcons(container) {\n    // Get payment icons from footer (same as shop.enabled_payment_types)\n    const footerPaymentIcons = document.querySelector(\n      \".footer__payment .list-payment\"\n    );\n\n    if (footerPaymentIcons) {\n      const paymentItems = footerPaymentIcons.querySelectorAll(\n        \".list-payment__item\"\n      );\n      const paymentIconsContainer = container.querySelector(\".payment-icons\");\n\n      paymentItems.forEach((item, index) => {\n        // Skip the first payment icon (index 0)\n        if (index === 0) return;\n\n        const iconElement = item.querySelector(\".icon\");\n        if (iconElement) {\n          // Clone the icon and add to our container\n          const clonedIcon = iconElement.cloneNode(true);\n          clonedIcon.classList.add(\"payment-icon\");\n          paymentIconsContainer.appendChild(clonedIcon);\n        }\n      });\n\n      // Apply direct styles after cloning\n      setTimeout(() => applyPaymentIconStyles(container), 100);\n    } else {\n      // Fallback: try to get payment icons from any existing payment list\n      const anyPaymentList = document.querySelector(\".list-payment\");\n      if (anyPaymentList) {\n        const paymentItems = anyPaymentList.querySelectorAll(\n          \".list-payment__item\"\n        );\n        const paymentIconsContainer = container.querySelector(\".payment-icons\");\n\n        paymentItems.forEach((item, index) => {\n          // Skip the first payment icon (index 0)\n          if (index === 0) return;\n\n          const iconElement = item.querySelector(\".icon\");\n          if (iconElement) {\n            const clonedIcon = iconElement.cloneNode(true);\n            clonedIcon.classList.add(\"payment-icon\");\n            paymentIconsContainer.appendChild(clonedIcon);\n          }\n        });\n\n        // Apply direct styles after cloning\n        setTimeout(() => applyPaymentIconStyles(container), 100);\n      }\n    }\n  }\n\n  // Function to add additional content below Afterpay\n  function addAfterpayContent() {\n    // First try to find p.afterpay-paragraph in regular DOM\n    let afterpayParagraph = document.querySelector(\"p.afterpay-paragraph\");\n\n    // If not found, check Shadow DOM\n    if (!afterpayParagraph) {\n      const squarePlacement = document.querySelector(\"square-placement\");\n      if (squarePlacement && squarePlacement.shadowRoot) {\n        afterpayParagraph = squarePlacement.shadowRoot.querySelector(\n          \"p.afterpay-paragraph\"\n        );\n      }\n    }\n\n    if (afterpayParagraph) {\n      // Check if afterpay-additional-content already exists in the parent\n      const existingAdditionalContent =\n        afterpayParagraph.parentNode.querySelector(\n          \".afterpay-additional-content\"\n        );\n\n      if (!existingAdditionalContent) {\n        const additionalDiv = document.createElement(\"div\");\n        additionalDiv.className = \"afterpay-additional-content\";\n\n        // Add your custom content here\n        additionalDiv.innerHTML = `\n          <div class=\"payment-icons\">\n            <!-- Payment icons will be dynamically loaded from Shopify -->\n          </div>\n        `;\n\n        // Check if HR already exists, if not create one\n        let hrElement = afterpayParagraph.parentNode.querySelector(\n          \".afterpay-separator\"\n        );\n        if (!hrElement) {\n          hrElement = document.createElement(\"hr\");\n          hrElement.className = \"afterpay-separator\";\n\n          // Apply custom styles to HR\n          applyHRStyles(hrElement);\n\n          // Insert HR first\n          afterpayParagraph.parentNode.insertBefore(\n            hrElement,\n            afterpayParagraph.nextSibling\n          );\n        }\n\n        // Apply styles to the container\n        applyAdditionalContentStyles(additionalDiv);\n\n        // Load payment icons from Shopify (same as footer)\n        loadPaymentIcons(additionalDiv);\n\n        // Insert custom div after HR\n        afterpayParagraph.parentNode.insertBefore(\n          additionalDiv,\n          hrElement.nextSibling\n        );\n      }\n    }\n  }\n\n  // Function to apply styles directly to square-placement\n  function applyDirectStyles() {\n    const squarePlacement = document.querySelector(\"square-placement\");\n    if (squarePlacement) {\n      squarePlacement.style.border = \"1px solid #e5e6e9\";\n      squarePlacement.style.borderRadius = \"24px\";\n      squarePlacement.style.padding = \"16px\";\n      squarePlacement.style.margin = \"8px 0\";\n      squarePlacement.style.fontSize = \"14px\";\n      squarePlacement.style.lineHeight = \"1.4\";\n      squarePlacement.style.color = \"#333\";\n      squarePlacement.style.borderBottom = \"1px solid #e5e6e9\";\n\n      const pTags = squarePlacement.querySelectorAll(\"p\");\n      pTags.forEach((p) => {\n        p.style.margin = \"0\";\n        p.style.padding = \"0\";\n      });\n\n      return true;\n    }\n    return false;\n  }\n\n  // Function to wait for Afterpay to load from square-marketplace.js\n  function waitForAfterpayLoad() {\n    let attempts = 0;\n    const maxAttempts = 40; // 20 seconds total\n\n    const checkInterval = setInterval(() => {\n      attempts++;\n\n      const squarePlacement = document.querySelector(\"square-placement\");\n      if (squarePlacement && squarePlacement.shadowRoot) {\n        const shadowPTags = squarePlacement.shadowRoot.querySelectorAll(\"p\");\n\n        if (shadowPTags.length > 0) {\n          clearInterval(checkInterval);\n          modifyAfterpayText();\n          applyDirectStyles();\n          addAfterpayContent();\n        } else if (attempts >= maxAttempts) {\n          clearInterval(checkInterval);\n        }\n      } else if (attempts >= maxAttempts) {\n        clearInterval(checkInterval);\n      }\n    }, 500);\n  }\n\n  // Function to handle Afterpay initialization\n  function handleAfterpayInit() {\n    injectStyles();\n    modifyAfterpayText();\n    addAfterpayContent();\n    applyDirectStyles();\n    waitForAfterpayLoad();\n  }\n\n  // Initialize when DOM is ready\n  function init() {\n    handleAfterpayInit();\n    setTimeout(handleAfterpayInit, 1000);\n    setTimeout(handleAfterpayInit, 3000);\n    setTimeout(handleAfterpayInit, 5000);\n  }\n\n  // Start when DOM is ready\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", init);\n  } else {\n    init();\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
