{
  "version": 3,
  "sources": ["/cdn/shop/t/23/assets/cw-enquiry-context-buttons-20261103.js?cw=20261022-v1"],
  "sourcesContent": ["(function (root) {\n  'use strict';\n  const requestTopics = new Set([\n    'services', 'gift', 'project', 'gift-selection', 'projects-spaces', 'private-viewing',\n    'craft', 'about', 'professional-projects', 'bloom-bond', 'symbolic-creatures',\n    'landscape-presence', 'the-gilded-court', 'the-origin', 'story-co-creation',\n    'cigar-ashtrays', 'blue-and-white', 'porcelain-wall-art'\n  ]);\n  const own = (o, k) => Object.prototype.hasOwnProperty.call(o, k);\n  const token = value => root.CwShortlist?.resolve(value)?.key || value;\n  function selection(search, catalogue) {\n    const params = new URLSearchParams(search);\n    if (params.getAll('sku').length > 1 || params.getAll('shortlist').length > 1) return [];\n    const raw = [params.get('sku') || '', params.get('shortlist') || ''].filter(Boolean).join(',');\n    if (raw.length > 512) return [];\n    return [...new Set(raw.split(',').map(x => token(x.trim().toUpperCase())).filter(x => /^(?:CD-\\d{3}|P-\\d+)$/.test(x) && own(catalogue, x)))].slice(0, 12);\n  }\n  function selectionNotice(search, catalogue) {\n    const p = new URLSearchParams(search);\n    const raw = [p.get('sku') || '', p.get('shortlist') || ''].filter(Boolean).join(',');\n    if (!raw) return false;\n    const tokens = [...new Set(raw.split(',').map(x => token(x.trim().toUpperCase())))];\n    return p.getAll('sku').length > 1 || p.getAll('shortlist').length > 1 || raw.length > 512 || tokens.length > 12 || tokens.some(x => !/^(?:CD-\\d{3}|P-\\d+)$/.test(x) || !own(catalogue, x));\n  }\n  const api = { selection, selectionNotice, requestTopics: [...requestTopics] };\n  if (typeof module !== 'undefined' && module.exports) module.exports = api;\n  if (!root.document) return;\n  const doc = root.document;\n  let catalogue = {};\n  try { catalogue = JSON.parse(doc.querySelector('[data-cw-enquiry-catalogue]')?.textContent || '{}'); } catch (_) {}\n  if (root.CwShortlist) for (const [key,item] of root.CwShortlist.entries) catalogue[key] = item;\n  const forms = [...doc.querySelectorAll('form.cw-contact-form, form.cw-product-form')];\n  function field(form, label, value) {\n    const name = `contact[${label}]`;\n    let input = [...form.elements].find(el => el.name === name);\n    if (!input) { input = doc.createElement('input'); input.type = 'hidden'; input.name = name; form.append(input); }\n    input.value = value;\n  }\n  forms.forEach(form => {\n    if (form.dataset.cwContextReady) return;\n    form.dataset.cwContextReady = 'true';\n    const rawReference = [...form.elements].find(el => el.name === 'contact[Reference]')?.value;\n    const productUrl = [...form.elements].find(el => el.name === 'contact[Page]')?.value;\n    const reference = root.CwShortlist?.fromItem({sku:rawReference,url:productUrl})?.key || rawReference;\n    const fixed = reference && own(catalogue, reference);\n    let selected = fixed ? [reference] : selection(root.location.search, catalogue);\n    if (!fixed && selectionNotice(root.location.search, catalogue)) {\n      const notice = doc.createElement('p'); notice.setAttribute('role', 'status');\n      notice.textContent = 'Some work references could not be loaded. Please include them in your message.';\n      form.prepend(notice);\n    }\n    const box = doc.createElement('div'); box.className = 'cw-enquiry-selection'; box.setAttribute('aria-label', 'Selected works');\n    const title = doc.createElement('p'); title.textContent = 'Your selected works';\n    const list = doc.createElement('ul');\n    const status = doc.createElement('p'); status.setAttribute('role', 'status'); status.className = 'cw-visually-hidden';\n    box.append(title, list, status); form.prepend(box);\n    function render() {\n      box.hidden = !selected.length; list.replaceChildren();\n      for (const sku of selected) {\n        const li = doc.createElement('li'); const label = doc.createElement('span');\n        label.textContent = `${catalogue[sku].sku ? catalogue[sku].sku + ' \u2014 ' : ''}${catalogue[sku].title}`; li.append(label);\n        if (!fixed) {\n          const remove = doc.createElement('button'); remove.type = 'button'; remove.textContent = 'Remove';\n          remove.setAttribute('aria-label', `Remove ${catalogue[sku].title}`);\n          remove.addEventListener('click', () => {\n            selected = selected.filter(s => s !== sku); render();\n            const url = new URL(root.location.href); url.searchParams.delete('sku'); url.searchParams.delete('shortlist');\n            if (selected.length) url.searchParams.set('shortlist', selected.join(','));\n            root.history.replaceState(null, '', url);\n            status.textContent = `${catalogue[sku].title} removed.`;\n            (list.querySelector('button') || form.querySelector('input:not([type=\"hidden\"])'))?.focus();\n          }); li.append(remove);\n        }\n        list.append(li);\n      }\n      field(form, 'Selected works', selected.map(s => `${s} | ${catalogue[s].title} | ${catalogue[s].url || '/collections/works'}`).join('\\n'));\n    }\n    render();\n    field(form, 'Enquiry page', root.location.pathname);\n    field(form, 'Request ID', root.crypto?.randomUUID?.() || `cw-${Date.now()}-${Math.random().toString(36).slice(2,10)}`);\n    const topic = new URLSearchParams(root.location.search).get('topic');\n    if (requestTopics.has(topic)) field(form, 'Request topic', topic);\n    // Native Shopify validation, submission and success handling remain in control.\n    form.addEventListener('submit', () => { render(); syncAttribution(); });\n  });\n  function syncAttribution() {\n    for (const form of forms) root.CwAttribution?.bindForm(form);\n    root.CwAttribution?.sync();\n  }\n  syncAttribution();\n})(typeof window !== 'undefined' ? window : globalThis);\n"],
  "mappings": "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",
  "names": ["catalogue"]
}
