{
  "version": 3,
  "sources": ["/cdn/shop/t/14/assets/product-gift-wrap-custom.js?bolter=20261027"],
  "sourcesContent": ["(function () {\n  if (window.__productGiftWrapCustomInstalled) return;\n  window.__productGiftWrapCustomInstalled = true;\n\n  function enhanceWeihnachtspaketGiftWrap() {\n    if (window.location.pathname.replace(/\\/$/, '') !== '/products/weihnachtspaket') return;\n\n    const productInfo = document.querySelector('[id^=\"ProductInfo-\"]');\n    const priceBox = productInfo && productInfo.querySelector('[id^=\"Price-\"]');\n    const giftItem = document.querySelector('.rbr-sitem-2731594');\n    if (!productInfo || !priceBox || !giftItem) return;\n\n    if (!productInfo.querySelector('[data-weihnachtspaket-gratis]')) {\n      const badge = document.createElement('div');\n      badge.setAttribute('data-weihnachtspaket-gratis', '');\n      badge.textContent = '\uD83C\uDF81 Geschenkverpackung GRATIS inklusive \u2013 die angezeigten 2,50 \u20AC werden nicht berechnet.';\n      Object.assign(badge.style, {\n        background: '#f7f1ed',\n        border: '2px solid #9f3b25',\n        borderRadius: '10px',\n        color: '#2b2b2b',\n        fontSize: '16px',\n        fontWeight: '700',\n        lineHeight: '1.35',\n        margin: '14px 0',\n        padding: '12px 14px',\n        textAlign: 'center'\n      });\n      priceBox.insertAdjacentElement('afterend', badge);\n    }\n\n    const price = Array.from(giftItem.querySelectorAll('*')).find((element) => {\n      return element.children.length === 0 && /\u20AC\\s*2[,.]50|2[,.]50\\s*\u20AC/.test(element.textContent || '');\n    });\n\n    if (price && !price.hasAttribute('data-weihnachtspaket-original-price')) {\n      price.setAttribute('data-weihnachtspaket-original-price', price.textContent.trim());\n      price.textContent = 'GRATIS (statt 2,50 \u20AC)';\n      price.style.color = '#9f3b25';\n      price.style.fontWeight = '800';\n    }\n  }\n\n  function initWeihnachtspaketGiftWrap() {\n    enhanceWeihnachtspaketGiftWrap();\n    const observer = new MutationObserver(enhanceWeihnachtspaketGiftWrap);\n    observer.observe(document.body, { childList: true, subtree: true });\n    window.setTimeout(() => observer.disconnect(), 15000);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initWeihnachtspaketGiftWrap, { once: true });\n  } else {\n    initWeihnachtspaketGiftWrap();\n  }\n\n  function getProductGiftWrapCheckbox() {\n    return document.querySelector('[data-gift-wrap-checkbox]');\n  }\n\n  function getProductGiftWrapNote() {\n    return document.querySelector('[data-gift-wrap-note]');\n  }\n\n  function getProductGiftWrapNoteWrapper() {\n    return document.querySelector('[data-gift-wrap-note-wrapper]');\n  }\n\n  function toggleProductGiftWrapNote() {\n    const checkbox = getProductGiftWrapCheckbox();\n    const noteWrapper = getProductGiftWrapNoteWrapper();\n\n    if (!checkbox || !noteWrapper) return;\n\n    noteWrapper.style.display = checkbox.checked ? 'block' : 'none';\n  }\n\n  function getGiftWrapData() {\n    const checkbox = getProductGiftWrapCheckbox();\n    const note = getProductGiftWrapNote();\n\n    return {\n      checked: checkbox?.checked === true,\n      variantId: checkbox?.getAttribute('data-gift-wrap-variant-id') || '',\n      productName: checkbox?.getAttribute('data-gift-wrap-product-name') || '',\n      giftNote: note?.value.trim() || ''\n    };\n  }\n\n  function createGiftWrapPairId() {\n    return `gw_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`;\n  }\n\n  function isAovCartAddRequest(url) {\n    const urlString = typeof url === 'string' ? url : url?.url;\n\n    if (!urlString) return false;\n\n    return urlString.includes('/cart/add') && urlString.includes('app=aov-ai-bundle');\n  }\n\n  function isGiftWrapAlreadyInItems(items, giftWrapVariantId) {\n    return items.some((item) => {\n      return String(item.id) === String(giftWrapVariantId);\n    });\n  }\n\n  function addPairPropertiesToMainItems(items, pairId) {\n    return items.map((item) => {\n      return {\n        ...item,\n        properties: {\n          ...(item.properties || {}),\n          'Geschenkverpackung': 'Ja',\n          '_has_gift_wrap': 'true',\n          '_gift_wrap_pair_id': pairId\n        }\n      };\n    });\n  }\n\n  function createGiftWrapItem(giftWrapData, pairId) {\n    const properties = {\n      'Geschenkverpackung f\u00FCr': giftWrapData.productName || '',\n      '_gift_wrap_pair_id': pairId,\n      '_gift_wrap_for': giftWrapData.productName || ''\n    };\n\n    if (giftWrapData.giftNote) {\n      properties['Geschenknachricht'] = giftWrapData.giftNote;\n    }\n\n    return {\n      id: Number(giftWrapData.variantId),\n      quantity: 1,\n      properties\n    };\n  }\n\n  const originalFetch = window.fetch;\n\n  window.fetch = function () {\n    const args = Array.from(arguments);\n    const url = args[0];\n    const options = args[1];\n\n    if (isAovCartAddRequest(url) && options?.body) {\n      const giftWrapData = getGiftWrapData();\n\n      if (giftWrapData.checked && giftWrapData.variantId) {\n        try {\n          const body = JSON.parse(options.body);\n\n          if (Array.isArray(body.items) && !isGiftWrapAlreadyInItems(body.items, giftWrapData.variantId)) {\n            const pairId = createGiftWrapPairId();\n\n            body.items = addPairPropertiesToMainItems(body.items, pairId);\n            body.items.push(createGiftWrapItem(giftWrapData, pairId));\n\n            args[1] = {\n              ...options,\n              body: JSON.stringify(body)\n            };\n\n            console.log('[GiftWrap] Added Geschenkverpackung to AOV cart/add request:', body);\n          }\n        } catch (error) {\n          console.error('[GiftWrap] Failed to modify AOV cart/add request:', error);\n        }\n      }\n    }\n\n    return originalFetch.apply(this, args);\n  };\n\n  document.addEventListener('change', function (event) {\n    if (event.target.matches('[data-gift-wrap-checkbox]')) {\n      toggleProductGiftWrapNote();\n    }\n  });\n\n  document.addEventListener('input', function (event) {\n    if (event.target.matches('[data-gift-wrap-note]')) {\n      // Value is read directly before AOV /cart/add request.\n    }\n  });\n\n  document.addEventListener('DOMContentLoaded', function () {\n    toggleProductGiftWrapNote();\n  });\n})();"],
  "mappings": "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",
  "names": []
}
