{
  "version": 3,
  "sources": ["/cdn/shop/t/996/assets/gift-card-recipient.js?utm_bot_source=7516fd43adaa"],
  "sourcesContent": ["(function () {\n  'use strict';\n\n  var MAX_DAYS_AHEAD = 89;\n  var MAX_MESSAGE = 120;\n  var MAX_NAME = 50;\n\n  var PROP_FLAG = '__shopify_send_gift_card_to_recipient';\n  var PROP_OFFSET = '__shopify_offset';\n  var PROP_NAME = 'Recipient name';\n  var PROP_EMAIL = 'Recipient email';\n  var PROP_MESSAGE = 'Message';\n  var PROP_SEND_ON = 'Send on';\n\n  var NAME_PATTERN = null;\n  try {\n    NAME_PATTERN = new RegExp(\"^[\\\\p{L}\\\\p{M}\\\\s'\u2019.-]+$\", 'u');\n  } catch (error) {\n    NAME_PATTERN = null;\n  }\n\n  var EMAIL_PATTERN =\n    /^[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z]{2,24}$/;\n\n  var BAD_TLDS = ['con', 'cmo', 'ocm', 'comm', 'xom', 'vom', 'dom', 'ner', 'nte', 'ogr', 'rog'];\n\n  var COMMON_DOMAINS = [\n    'gmail.com', 'googlemail.com', 'yahoo.com', 'yahoo.co.uk', 'hotmail.com', 'hotmail.co.uk',\n    'outlook.com', 'live.com', 'msn.com', 'icloud.com', 'me.com', 'mac.com', 'aol.com',\n    'comcast.net', 'verizon.net', 'sbcglobal.net', 'btinternet.com', 'protonmail.com', 'proton.me'\n  ];\n\n  function editDistance(a, b) {\n    if (a === b) return 0;\n    if (Math.abs(a.length - b.length) > 2) return 99;\n    var prev = [];\n    for (var j = 0; j <= b.length; j++) prev[j] = j;\n    for (var i = 1; i <= a.length; i++) {\n      var cur = [i];\n      for (var k = 1; k <= b.length; k++) {\n        cur[k] = Math.min(\n          prev[k] + 1,\n          cur[k - 1] + 1,\n          prev[k - 1] + (a.charAt(i - 1) === b.charAt(k - 1) ? 0 : 1)\n        );\n      }\n      prev = cur;\n    }\n    return prev[b.length];\n  }\n\n  function domainOf(email) {\n    var at = String(email).lastIndexOf('@');\n    return at === -1 ? '' : email.slice(at + 1).toLowerCase();\n  }\n\n  function suggestEmail(email) {\n    var domain = domainOf(email);\n    if (!domain || COMMON_DOMAINS.indexOf(domain) !== -1) return null;\n    var best = null;\n    var bestScore = 3;\n    COMMON_DOMAINS.forEach(function (candidate) {\n      var score = editDistance(domain, candidate);\n      if (score < bestScore) {\n        bestScore = score;\n        best = candidate;\n      }\n    });\n    if (!best) return null;\n    return email.slice(0, email.lastIndexOf('@') + 1) + best;\n  }\n\n  function t(key, fallback) {\n    var strings = (window.giftCardRecipientStrings || {});\n    return typeof strings[key] === 'string' ? strings[key] : fallback;\n  }\n\n  function toISODate(date) {\n    var month = String(date.getMonth() + 1).padStart(2, '0');\n    var day = String(date.getDate()).padStart(2, '0');\n    return date.getFullYear() + '-' + month + '-' + day;\n  }\n\n  function today() {\n    var now = new Date();\n    return new Date(now.getFullYear(), now.getMonth(), now.getDate());\n  }\n\n  function parseISODate(value) {\n    var parts = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(value || '');\n    if (!parts) return null;\n    return new Date(Number(parts[1]), Number(parts[2]) - 1, Number(parts[3]));\n  }\n\n  function daysBetween(from, to) {\n    return Math.round((to - from) / 86400000);\n  }\n\n  function validate(values, options) {\n    var errors = { name: [], email: [], date: [] };\n    var name = (values.name || '').trim();\n    var email = (values.email || '').trim();\n    var date = (values.date || '').trim();\n\n    if (name) {\n      if (NAME_PATTERN && !NAME_PATTERN.test(name)) {\n        errors.name.push(t('name_letters_only', 'Name can only contain letters'));\n      }\n      if (name.length > MAX_NAME) {\n        errors.name.push(t('name_too_long', 'Name is too long (maximum 50 characters)'));\n      }\n    }\n\n    if (!email) {\n      errors.email.push(t('email_required', 'Please enter an email address'));\n    } else if (\n      !EMAIL_PATTERN.test(email) ||\n      BAD_TLDS.indexOf(domainOf(email).split('.').pop()) !== -1\n    ) {\n      errors.email.push(t('email_invalid', 'Please enter a valid email address'));\n    }\n\n    if (!date) {\n      return errors;\n    } else {\n      var picked = parseISODate(date);\n      var start = today();\n      if (!picked || picked < start) {\n        errors.date.push(t('date_required', 'Please select a delivery date'));\n      } else if (daysBetween(start, picked) > MAX_DAYS_AHEAD) {\n        errors.date.push(\n          t('date_too_far', 'Gift cards can only be scheduled up to 90 days in advance')\n        );\n      }\n    }\n\n    return errors;\n  }\n\n  function hasErrors(errors) {\n    return Object.keys(errors).some(function (key) {\n      return errors[key].length > 0;\n    });\n  }\n\n  function renderErrors(root, errors) {\n    Object.keys(errors).forEach(function (field) {\n      var list = root.querySelector('[data-gift-recipient-errors=\"' + field + '\"]');\n      var input = root.querySelector('[data-gift-recipient-field=\"' + field + '\"]');\n      if (!list) return;\n\n      list.textContent = '';\n      errors[field].forEach(function (message) {\n        var item = document.createElement('li');\n        item.textContent = message;\n        list.appendChild(item);\n      });\n\n      list.hidden = errors[field].length === 0;\n      if (input) input.classList.toggle('is-invalid', errors[field].length > 0);\n\n      var visual = root.querySelector('[data-gift-recipient-field-visual=\"' + field + '\"]');\n      if (visual) visual.classList.toggle('is-invalid', errors[field].length > 0);\n    });\n\n    renderSuggestion(root);\n  }\n\n  function renderSuggestion(root) {\n    var holder = root.querySelector('[data-gift-recipient-suggest]');\n    if (!holder) return;\n\n    var input = root.querySelector('[data-gift-recipient-field=\"email\"]');\n    var value = input ? input.value.trim() : '';\n    var suggestion = value && EMAIL_PATTERN.test(value) ? suggestEmail(value) : null;\n\n    if (!suggestion) {\n      holder.textContent = '';\n      holder.hidden = true;\n      return;\n    }\n\n    holder.textContent = t('did_you_mean', 'Did you mean') + ' ';\n    var button = document.createElement('button');\n    button.type = 'button';\n    button.className = 'gift-recipient__suggest-button';\n    button.textContent = suggestion;\n    button.setAttribute('data-gift-recipient-accept-suggestion', suggestion);\n    holder.appendChild(button);\n    holder.appendChild(document.createTextNode('?'));\n    holder.hidden = false;\n  }\n\n  function flattenFieldErrors(text) {\n    var parsed;\n    try {\n      parsed = JSON.parse(text);\n    } catch (error) {\n      return null;\n    }\n    if (!parsed || typeof parsed !== 'object') return null;\n\n    var messages = [];\n    Object.keys(parsed).forEach(function (key) {\n      if (key === 'send_on') {\n        var raw = Array.isArray(parsed[key]) ? parsed[key].join(' ') : String(parsed[key] || '');\n        messages.push(\n          /day|month|year|within/i.test(raw)\n            ? t('date_too_far', 'Gift cards can only be scheduled up to 90 days in advance')\n            : t('date_required', 'Please select a delivery date')\n        );\n        return;\n      }\n      var value = parsed[key];\n      if (Array.isArray(value)) messages = messages.concat(value);\n      else if (typeof value === 'string') messages.push(value);\n    });\n    return messages.length ? messages.join(' ') : null;\n  }\n\n  function watchThemeErrors() {\n    var root = document.querySelector('[data-gift-recipient]');\n    if (!root) return;\n    var scope = root.closest('form') || root.parentElement;\n    if (!scope || scope.dataset.giftRecipientErrorWatch) return;\n    scope.dataset.giftRecipientErrorWatch = 'true';\n\n    new MutationObserver(function () {\n      var box = scope.querySelector('.errors');\n      if (!box) return;\n      var text = box.textContent.trim();\n      if (text.charAt(0) !== '{') return;\n      var readable = flattenFieldErrors(text);\n      if (readable) box.textContent = readable;\n    }).observe(scope, { childList: true, subtree: true, characterData: true });\n  }\n\n  function initSuggestions() {\n    if (document.body.dataset.giftRecipientSuggestReady) return;\n    document.body.dataset.giftRecipientSuggestReady = 'true';\n\n    document.addEventListener('click', function (event) {\n      var button = event.target.closest\n        ? event.target.closest('[data-gift-recipient-accept-suggestion]')\n        : null;\n      if (!button) return;\n      event.preventDefault();\n\n      var root =\n        button.closest('[data-gift-recipient]') || button.closest('[data-gift-recipient-cart]');\n      var input = root && root.querySelector('[data-gift-recipient-field=\"email\"]');\n      if (!input) return;\n\n      input.value = button.getAttribute('data-gift-recipient-accept-suggestion');\n      input.dispatchEvent(new Event('input', { bubbles: true }));\n      input.dispatchEvent(new Event('change', { bubbles: true }));\n      renderSuggestion(root);\n      input.focus();\n    });\n  }\n\n  function readValues(root) {\n    function value(field) {\n      var input = root.querySelector('[data-gift-recipient-field=\"' + field + '\"]');\n      return input ? input.value : '';\n    }\n    return {\n      name: value('name'),\n      email: value('email'),\n      date: value('date'),\n      message: value('message')\n    };\n  }\n\n  function updateCounter(root) {\n    var textarea = root.querySelector('[data-gift-recipient-field=\"message\"]');\n    var counter = root.querySelector('[data-gift-recipient-count]');\n    if (!textarea || !counter) return;\n    counter.textContent = String(Math.max(0, MAX_MESSAGE - textarea.value.length));\n  }\n\n  function localeTag() {\n    return document.documentElement.lang || 'en';\n  }\n\n  function formatDisplay(iso) {\n    var parsed = parseISODate(iso);\n    if (!parsed) return '';\n    return new Intl.DateTimeFormat(localeTag(), {\n      year: 'numeric',\n      month: 'long',\n      day: 'numeric'\n    }).format(parsed);\n  }\n\n  function weekdayInitials() {\n    var format = new Intl.DateTimeFormat(localeTag(), { weekday: 'narrow' }).format;\n    var out = [];\n    for (var i = 0; i < 7; i++) {\n      out.push(format(new Date(2024, 0, 1 + i))); // 2024-01-01 was a Monday\n    }\n    return out;\n  }\n\n  function monthLabel(year, month) {\n    return new Intl.DateTimeFormat(localeTag(), { month: 'long', year: 'numeric' }).format(\n      new Date(year, month, 1)\n    );\n  }\n\n  function bounds() {\n    var min = today();\n    var max = new Date(min.getTime());\n    max.setDate(max.getDate() + MAX_DAYS_AHEAD);\n    return { min: min, max: max };\n  }\n\n  function monthIndex(date) {\n    return date.getFullYear() * 12 + date.getMonth();\n  }\n\n  function escapeHtml(value) {\n    return String(value).replace(/[&<>\"']/g, function (c) {\n      return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[c];\n    });\n  }\n\n  function syncDateDisplay(picker) {\n    var input = picker.querySelector('[data-gift-recipient-field=\"date\"]');\n    var display = picker.querySelector('[data-gift-recipient-date-display]');\n    if (!input || !display) return;\n\n    var formatted = formatDisplay(input.value);\n    var isDefault = !formatted;\n    display.textContent =\n      formatted || formatDisplay(toISODate(today())) || t('send_on_placeholder', 'Send Now');\n    display.classList.toggle('is-placeholder', isDefault);\n  }\n\n  var gcalSeq = 0;\n\n  function renderCalendar(picker) {\n    var calendar = picker.querySelector('[data-gift-recipient-calendar]');\n    var input = picker.querySelector('[data-gift-recipient-field=\"date\"]');\n    if (!calendar || !input) return;\n\n    var range = bounds();\n    var selected = parseISODate(input.value);\n    var view = parseISODate((picker.dataset.view || '') + '-01');\n    if (!view) view = selected && selected >= range.min ? selected : range.min;\n\n    var year = view.getFullYear();\n    var month = view.getMonth();\n    picker.dataset.view = year + '-' + String(month + 1).padStart(2, '0');\n\n    var atMin = monthIndex(view) <= monthIndex(range.min);\n    var atMax = monthIndex(view) >= monthIndex(range.max);\n\n    var offset = (new Date(year, month, 1).getDay() + 6) % 7;\n    var cursor = new Date(year, month, 1 - offset);\n    var selectedIso = selected ? toISODate(selected) : null;\n\n    var cells = '';\n    for (var i = 0; i < 42; i++) {\n      var iso = toISODate(cursor);\n      var outsideMonth = cursor.getMonth() !== month;\n      var beforeMin = cursor < range.min;\n      var disabled = outsideMonth || beforeMin || cursor > range.max;\n\n      var classes = ['gcal__day'];\n      if (beforeMin) classes.push('gcal__day--blocked');\n      else if (disabled) classes.push('gcal__day--outside');\n      if (iso === toISODate(range.min)) classes.push('gcal__day--today');\n      if (iso === selectedIso) classes.push('gcal__day--selected');\n\n      var roving = selectedIso ? iso === selectedIso : iso === toISODate(range.min);\n      cells +=\n        '<button type=\"button\" class=\"' + classes.join(' ') + '\" data-gcal-day=\"' + iso + '\"' +\n        ' aria-pressed=\"' + (iso === selectedIso) + '\"' +\n        ' aria-label=\"' + escapeHtml(formatDisplay(iso) || iso) + '\"' +\n        (disabled ? ' disabled tabindex=\"-1\"' : ' tabindex=\"' + (roving ? '0' : '-1') + '\"') +\n        '>' + cursor.getDate() + '</button>';\n      cursor.setDate(cursor.getDate() + 1);\n    }\n\n    var monthsId = 'gcalMonths-' + (picker.dataset.gcalId || (picker.dataset.gcalId = String(++gcalSeq)));\n    var months = '';\n    var walker = new Date(range.min.getFullYear(), range.min.getMonth(), 1);\n    while (monthIndex(walker) <= monthIndex(range.max)) {\n      var key = walker.getFullYear() + '-' + String(walker.getMonth() + 1).padStart(2, '0');\n      months +=\n        '<button type=\"button\" class=\"gcal__month-option\" data-gcal-month-option=\"' + key +\n        '\" aria-current=\"' + (key === picker.dataset.view) + '\">' +\n        escapeHtml(monthLabel(walker.getFullYear(), walker.getMonth())) + '</button>';\n      walker.setMonth(walker.getMonth() + 1);\n    }\n\n    var arrowUp = '<svg viewBox=\"0 0 18 18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" aria-hidden=\"true\"><path d=\"M9 15V3M9 3 4.5 7.5M9 3l4.5 4.5\"/></svg>';\n    var arrowDown = '<svg viewBox=\"0 0 18 18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" aria-hidden=\"true\"><path d=\"M9 3v12M9 15l-4.5-4.5M9 15l4.5-4.5\"/></svg>';\n\n    calendar.innerHTML =\n      '<div class=\"gcal__head\">' +\n        '<button type=\"button\" class=\"gcal__month\" data-gcal-month-toggle aria-expanded=\"false\" aria-controls=\"' + monthsId + '\">' +\n          escapeHtml(monthLabel(year, month)) +\n          '<svg class=\"gcal__month-caret\" viewBox=\"0 0 10 10\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M1.5 3.5h7L5 7.5z\"/></svg>' +\n        '</button>' +\n        '<span class=\"gcal__nav\">' +\n          '<button type=\"button\" class=\"gcal__nav-button\" data-gcal-prev aria-label=\"' +\n            escapeHtml(t('previous_month', 'Previous month')) + '\"' + (atMin ? ' disabled' : '') + '>' + arrowUp + '</button>' +\n          '<button type=\"button\" class=\"gcal__nav-button\" data-gcal-next aria-label=\"' +\n            escapeHtml(t('next_month', 'Next month')) + '\"' + (atMax ? ' disabled' : '') + '>' + arrowDown + '</button>' +\n        '</span>' +\n      '</div>' +\n      '<div class=\"gcal__months\" id=\"' + monthsId + '\" hidden>' + months + '</div>' +\n      '<div class=\"gcal__weekdays\">' +\n        weekdayInitials().map(function (letter) {\n          return '<span class=\"gcal__weekday\">' + escapeHtml(letter) + '</span>';\n        }).join('') +\n      '</div>' +\n      '<div class=\"gcal__grid\">' + cells + '</div>';\n  }\n\n  function closeCalendars(except) {\n    var pickers = document.querySelectorAll('[data-gift-recipient-datepicker]');\n    Array.prototype.forEach.call(pickers, function (picker) {\n      if (picker === except) return;\n      var calendar = picker.querySelector('[data-gift-recipient-calendar]');\n      var trigger = picker.querySelector('[data-gift-recipient-date-trigger]');\n      if (calendar) calendar.hidden = true;\n      if (trigger) trigger.setAttribute('aria-expanded', 'false');\n    });\n  }\n\n  function openCalendar(picker) {\n    closeCalendars(picker);\n    var calendar = picker.querySelector('[data-gift-recipient-calendar]');\n    var trigger = picker.querySelector('[data-gift-recipient-date-trigger]');\n    if (!calendar) return;\n\n    var root = picker.closest('[data-gift-recipient]') || picker.closest('[data-gift-recipient-cart]');\n    if (root) root.dataset.dateTouched = 'true';\n\n    delete picker.dataset.view;\n    renderCalendar(picker);\n    calendar.hidden = false;\n    calendar.setAttribute('aria-modal', 'true');\n    calendar.setAttribute('aria-label', t('calendar_label', 'Choose a delivery date'));\n    if (trigger) trigger.setAttribute('aria-expanded', 'true');\n\n    var landing = calendar.querySelector('[data-gcal-day][tabindex=\"0\"]') ||\n      calendar.querySelector('[data-gcal-day]:not([disabled])');\n    if (landing) landing.focus();\n\n    calendar.classList.remove('gcal--flip-right', 'gcal--above');\n    var box = calendar.getBoundingClientRect();\n    if (box.right > window.innerWidth - 8) calendar.classList.add('gcal--flip-right');\n    if (box.bottom > window.innerHeight - 8) calendar.classList.add('gcal--above');\n  }\n\n  function selectDate(picker, iso) {\n    var input = picker.querySelector('[data-gift-recipient-field=\"date\"]');\n    if (!input) return;\n    input.value = iso;\n    syncDateDisplay(picker);\n    input.dispatchEvent(new Event('input', { bubbles: true }));\n    input.dispatchEvent(new Event('change', { bubbles: true }));\n    closeCalendars(null);\n    var trigger = picker.querySelector('[data-gift-recipient-date-trigger]');\n    if (trigger) trigger.focus();\n  }\n\n  function shiftMonth(picker, delta) {\n    var view = parseISODate((picker.dataset.view || '') + '-01') || bounds().min;\n    view.setMonth(view.getMonth() + delta);\n    picker.dataset.view = view.getFullYear() + '-' + String(view.getMonth() + 1).padStart(2, '0');\n    renderCalendar(picker);\n  }\n\n  function initDatepickers() {\n    if (document.body.dataset.giftRecipientCalendarReady) return;\n    document.body.dataset.giftRecipientCalendarReady = 'true';\n\n    document.addEventListener('click', function (event) {\n      var picker = event.target.closest ? event.target.closest('[data-gift-recipient-datepicker]') : null;\n      if (!picker) {\n        closeCalendars(null);\n        return;\n      }\n\n      var trigger = event.target.closest('[data-gift-recipient-date-trigger]');\n      if (trigger) {\n        event.preventDefault();\n        var calendar = picker.querySelector('[data-gift-recipient-calendar]');\n        if (calendar && !calendar.hidden) closeCalendars(null);\n        else openCalendar(picker);\n        return;\n      }\n\n      var day = event.target.closest('[data-gcal-day]');\n      if (day && !day.disabled) {\n        event.preventDefault();\n        selectDate(picker, day.getAttribute('data-gcal-day'));\n        return;\n      }\n\n      var prev = event.target.closest('[data-gcal-prev]');\n      var next = event.target.closest('[data-gcal-next]');\n      if (prev || next) {\n        event.preventDefault();\n        if (!(prev || next).disabled) shiftMonth(picker, prev ? -1 : 1);\n        return;\n      }\n\n      var monthToggle = event.target.closest('[data-gcal-month-toggle]');\n      if (monthToggle) {\n        event.preventDefault();\n        var list = picker.querySelector('.gcal__months');\n        if (list) {\n          list.hidden = !list.hidden;\n          monthToggle.setAttribute('aria-expanded', String(!list.hidden));\n        }\n        return;\n      }\n\n      var option = event.target.closest('[data-gcal-month-option]');\n      if (option) {\n        event.preventDefault();\n        picker.dataset.view = option.getAttribute('data-gcal-month-option');\n        renderCalendar(picker);\n      }\n    });\n\n    var GRID_STEP = { ArrowLeft: -1, ArrowRight: 1, ArrowUp: -7, ArrowDown: 7 };\n\n    document.addEventListener('keydown', function (event) {\n      var calendar = event.target.closest && event.target.closest('[data-gift-recipient-calendar]');\n      if (!calendar || calendar.hidden) return;\n\n      if (event.key === 'Tab') {\n        var focusable = calendar.querySelectorAll('button:not([disabled])');\n        if (!focusable.length) return;\n        var first = focusable[0];\n        var last = focusable[focusable.length - 1];\n        if (event.shiftKey && event.target === first) {\n          event.preventDefault();\n          last.focus();\n        } else if (!event.shiftKey && event.target === last) {\n          event.preventDefault();\n          first.focus();\n        }\n        return;\n      }\n\n      var step = GRID_STEP[event.key];\n      if (!step && event.key !== 'Home' && event.key !== 'End') return;\n      var current = event.target.closest('[data-gcal-day]');\n      if (!current) return;\n      event.preventDefault();\n\n      var days = Array.prototype.filter.call(\n        calendar.querySelectorAll('[data-gcal-day]:not([disabled])'),\n        function (d) { return d.offsetParent !== null || true; }\n      );\n      var at = days.indexOf(current);\n      if (at === -1) return;\n\n      var next =\n        event.key === 'Home' ? days[0] :\n        event.key === 'End' ? days[days.length - 1] :\n        days[at + step];\n\n      if (!next) {\n        var picker = calendar.closest('[data-gift-recipient-datepicker]');\n        shiftMonth(picker, step > 0 ? 1 : -1);\n        var after = calendar.querySelectorAll('[data-gcal-day]:not([disabled])');\n        next = step > 0 ? after[0] : after[after.length - 1];\n      }\n      if (next) {\n        Array.prototype.forEach.call(calendar.querySelectorAll('[data-gcal-day]'), function (d) {\n          d.setAttribute('tabindex', '-1');\n        });\n        next.setAttribute('tabindex', '0');\n        next.focus();\n      }\n    });\n\n    document.addEventListener('keydown', function (event) {\n      if (event.key !== 'Escape') return;\n      var open = document.querySelector('[data-gift-recipient-calendar]:not([hidden])');\n      if (!open) return;\n      var picker = open.closest('[data-gift-recipient-datepicker]');\n      closeCalendars(null);\n      var trigger = picker && picker.querySelector('[data-gift-recipient-date-trigger]');\n      if (trigger) trigger.focus();\n    });\n  }\n\n  function setupDate(root) {\n    var pickers = root.querySelectorAll('[data-gift-recipient-datepicker]');\n    Array.prototype.forEach.call(pickers, syncDateDisplay);\n  }\n\n  function applySetup(root) {\n    if (!root) return;\n\n    var offset = root.querySelector('[data-gift-recipient-offset]');\n    if (offset) offset.value = String(new Date().getTimezoneOffset());\n\n    setupDate(root);\n    updateCounter(root);\n\n    var form = root.closest('form');\n    if (form) form.setAttribute('novalidate', 'novalidate');\n  }\n\n  function productRootFrom(node) {\n    return node && node.closest ? node.closest('[data-gift-recipient]') : null;\n  }\n\n  function revalidateProduct(root) {\n    renderErrors(\n      root,\n      validate(readValues(root), { dateTouched: root.dataset.dateTouched === 'true' })\n    );\n  }\n\n  function initProductForm() {\n    applySetup(document.querySelector('[data-gift-recipient]'));\n\n    if (document.body.dataset.giftRecipientProductReady) return;\n    document.body.dataset.giftRecipientProductReady = 'true';\n\n    document.addEventListener(\n      'focusin',\n      function (event) {\n        var root = productRootFrom(event.target);\n        if (!root) return;\n        applySetup(root);\n        if (event.target.matches('[data-gift-recipient-field=\"date\"]')) {\n          root.dataset.dateTouched = 'true';\n        }\n      },\n      true\n    );\n\n    document.addEventListener('input', function (event) {\n      var root = productRootFrom(event.target);\n      if (!root || root.closest('[data-gift-recipient-cart]')) return;\n      if (event.target.matches('[data-gift-recipient-field=\"message\"]')) updateCounter(root);\n      if (root.dataset.submitted === 'true') revalidateProduct(root);\n    });\n\n    document.addEventListener(\n      'blur',\n      function (event) {\n        if (!event.target.matches || !event.target.matches('[data-gift-recipient-field]')) return;\n        var root = productRootFrom(event.target);\n        if (!root || root.closest('[data-gift-recipient-cart]')) return;\n        revalidateProduct(root);\n      },\n      true\n    );\n\n    document.addEventListener(\n      'submit',\n      function (event) {\n        var form = event.target;\n        if (!form || !form.querySelector) return;\n        var root = form.querySelector('[data-gift-recipient]');\n        if (!root) return;\n\n        applySetup(root);\n        root.dataset.submitted = 'true';\n        var errors = validate(readValues(root), { dateTouched: true });\n        if (!hasErrors(errors)) return;\n\n        event.preventDefault();\n        event.stopPropagation();\n        renderErrors(root, errors);\n\n        var firstInvalid = root.querySelector('.is-invalid');\n        if (firstInvalid) firstInvalid.focus();\n      },\n      true\n    );\n  }\n\n  function cartRoot(element) {\n    return element.closest('[data-gift-recipient-cart]');\n  }\n\n  function setStatus(root, message) {\n    var status = root.querySelector('[data-gift-recipient-status]');\n    if (!status) return;\n    status.textContent = message || '';\n    status.hidden = !message;\n  }\n\n  function describeError(body) {\n    if (!body) return '';\n    var source = body.description || body.message;\n    if (typeof source === 'string') return source;\n    if (source && typeof source === 'object') {\n      var messages = [];\n      Object.keys(source).forEach(function (key) {\n        var value = source[key];\n        if (Array.isArray(value)) {\n          messages = messages.concat(value);\n        } else if (typeof value === 'string') {\n          messages.push(value);\n        }\n      });\n      if (messages.length) return messages.join(' ');\n    }\n    return '';\n  }\n\n  async function saveLine(root) {\n    var key = root.dataset.key;\n    if (!key) return;\n\n    var values = readValues(root);\n    var errors = validate(values, { dateTouched: true });\n    renderErrors(root, errors);\n    if (hasErrors(errors)) return;\n\n    var existing = {};\n    try {\n      existing = JSON.parse(root.dataset.properties || '{}') || {};\n    } catch (error) {\n      existing = {};\n    }\n\n    var properties = Object.assign({}, existing);\n    properties[PROP_FLAG] = 'true';\n    properties[PROP_OFFSET] = String(new Date().getTimezoneOffset());\n    properties[PROP_NAME] = values.name.trim();\n    properties[PROP_EMAIL] = values.email.trim();\n    properties[PROP_MESSAGE] = values.message.trim();\n    properties[PROP_SEND_ON] = values.date.trim();\n\n    root.classList.add('is-saving');\n    setStatus(root, '');\n\n    try {\n      var response = await fetch(window.Shopify.routes.root + 'cart/change.js', {\n        method: 'POST',\n        credentials: 'same-origin',\n        headers: {\n          'Content-Type': 'application/json',\n          'X-Requested-With': 'XMLHttpRequest'\n        },\n        body: JSON.stringify({ id: key, properties: properties })\n      });\n      var body = await response.json();\n\n      if (!response.ok) {\n        setStatus(\n          root,\n          describeError(body) || t('save_failed', 'Could not save the gift details. Please try again.')\n        );\n        root.classList.remove('is-saving');\n        return;\n      }\n\n      verifyProperties(body, key, properties);\n\n      root.classList.remove('is-editing');\n      if (window.wetheme && typeof window.wetheme.updateCartDrawer === 'function') {\n        window.wetheme.updateCartDrawer(body);\n      }\n    } catch (error) {\n      setStatus(root, t('save_failed', 'Could not save the gift details. Please try again.'));\n    }\n\n    root.classList.remove('is-saving');\n  }\n\n  function syncGiftGroup() {\n    var group = document.querySelector('[data-gift-recipient-group]');\n    if (!group) return;\n\n    var count = group.querySelectorAll('[data-gift-recipient-cart]').length;\n    group.classList.toggle('is-empty', count === 0);\n    group.classList.toggle('is-multi', count > 1);\n    if (!count) group.classList.remove('is-open');\n\n    var badge = group.querySelector('[data-gift-recipient-count-badge]');\n    if (badge) badge.textContent = count > 1 ? '(' + count + ')' : '';\n\n    window.gcGroupState = function () {\n      return { cards: count, multi: group.classList.contains('is-multi'), empty: group.classList.contains('is-empty') };\n    };\n  }\n\n  var groupSyncTimer = null;\n\n  function watchGiftGroup() {\n    if (typeof MutationObserver !== 'function') return;\n    if (document.body.dataset.giftRecipientGroupWatched) return;\n    document.body.dataset.giftRecipientGroupWatched = 'true';\n\n    new MutationObserver(function () {\n      clearTimeout(groupSyncTimer);\n      groupSyncTimer = setTimeout(syncGiftGroup, 50);\n    }).observe(document.body, { childList: true, subtree: true });\n  }\n\n  function verifyProperties(cart, key, sent) {\n    if (!cart || !cart.items) return;\n    var line = null;\n    for (var i = 0; i < cart.items.length; i++) {\n      if (cart.items[i].key === key) { line = cart.items[i]; break; }\n    }\n    if (!line) return;\n\n    var stored = line.properties || {};\n    var missing = Object.keys(sent).filter(function (name) {\n      return sent[name] !== '' && stored[name] !== sent[name];\n    });\n    if (missing.length) {\n      console.warn(\n        '[gift-card-recipient] the Cart API did not keep these properties: ' + missing.join(', ') +\n        '. Gift card delivery depends on Shopify matching these names exactly \u2014 check them against ' +\n        'https://shopify.dev/docs/storefronts/themes/product-merchandising/gift-cards'\n      );\n    }\n  }\n\n  function initCartDelegation() {\n    if (document.body.dataset.giftRecipientCartReady) return;\n    document.body.dataset.giftRecipientCartReady = 'true';\n\n    document.addEventListener('click', function (event) {\n      var toggle = event.target.closest('[data-gift-recipient-group-toggle]');\n      if (toggle) {\n        var group = toggle.closest('[data-gift-recipient-group]');\n        if (!group) return;\n        event.preventDefault();\n        group.classList.toggle('is-open');\n        var open = group.classList.contains('is-open');\n        toggle.setAttribute('aria-expanded', String(open));\n        if (open) {\n          Array.prototype.forEach.call(\n            group.querySelectorAll('[data-gift-recipient-cart]'),\n            function (root) {\n              setupDate(root);\n              updateCounter(root);\n            }\n          );\n        }\n        return;\n      }\n\n      var action = event.target.closest('[data-gift-recipient-action]');\n      if (!action) return;\n      var panel = cartRoot(action);\n      if (!panel) return;\n      event.preventDefault();\n\n      if (panel.classList.contains('is-editing')) {\n        saveLine(panel);\n      } else {\n        panel.classList.add('is-editing');\n        setupDate(panel);\n        var first = panel.querySelector('[data-gift-recipient-field=\"name\"]');\n        if (first) first.focus();\n      }\n    });\n\n    document.addEventListener('input', function (event) {\n      if (!event.target.matches('[data-gift-recipient-field]')) return;\n      var root = cartRoot(event.target);\n      if (!root) return;\n      updateCounter(root);\n      if (root.dataset.validated) {\n        renderErrors(root, validate(readValues(root), { dateTouched: true }));\n      }\n    });\n\n    document.addEventListener(\n      'blur',\n      function (event) {\n        if (!event.target.matches('[data-gift-recipient-field]')) return;\n        var root = cartRoot(event.target);\n        if (!root || !root.classList.contains('is-editing')) return;\n        root.dataset.validated = 'true';\n        renderErrors(root, validate(readValues(root), { dateTouched: true }));\n      },\n      true\n    );\n  }\n\n  function init() {\n    initDatepickers();\n    initSuggestions();\n    watchThemeErrors();\n    initProductForm();\n    initCartDelegation();\n    syncGiftGroup();\n    watchGiftGroup();\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n\n  document.addEventListener('cart:updated', init);\n})();\n"],
  "mappings": "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",
  "names": []
}
