{
  "version": 3,
  "sources": ["/cdn/shop/t/23/assets/wowstampa-bundle-configurator-v16.js?ws_version=10"],
  "sourcesContent": ["(function () {\n  'use strict';\n  var ROOT = '[data-ws-bundle-configurator]';\n  var CACHE = 'ws-bundle-component-v8:';\n\n  function norm(value) { return String(value || '').trim().toLocaleLowerCase('it-IT').normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''); }\n  function keyNorm(value) { return norm(value).replace(/[^a-z0-9]+/g, ' ').trim(); }\n  function toInt(value) {\n    var parsed = parseInt(value, 10);\n    return isNaN(parsed) || parsed < 0 ? 0 : parsed;\n  }\n  function parsePackLimits(raw) {\n    var limits = {};\n    String(raw || '').replace(/^\\s*\\[|\\]\\s*$/g, '').split(/\\|\\||,/).forEach(function (entry) {\n      var clean = entry.replace(/^\\s*[\"']|[\"']\\s*$/g, '').trim();\n      var separator = Math.max(clean.lastIndexOf(':'), clean.lastIndexOf('='));\n      if (separator < 0) return;\n      var key = clean.slice(0, separator).trim(), limit = toInt(clean.slice(separator + 1));\n      if (key && limit > 0) limits[key] = limit;\n    });\n    return limits;\n  }\n  function packKeyForTitle(title, limits) {\n    var normalizedTitle = keyNorm(title);\n    var keys = Object.keys(limits);\n    var aliases = [\n      { match: 't shirt', key: 't shirt' },\n      { match: 'felpa', key: 'felp' },\n      { match: 'gilet', key: 'gilet' }, { match: 'giacc', key: 'giacc' }, { match: 'pantalon', key: 'pantalon' }\n    ];\n    var alias = aliases.find(function (item) { return normalizedTitle.indexOf(item.match) >= 0; });\n    if (alias) {\n      var matched = keys.find(function (key) { return keyNorm(key).indexOf(alias.key) >= 0; });\n      if (matched) return matched;\n    }\n    return keys.find(function (key) {\n      var subject = keyNorm(key).replace(/^taglie?\\s+/, '');\n      return subject && normalizedTitle.indexOf(subject) >= 0;\n    }) || '';\n  }\n  function json(root, selector, fallback) {\n    try { return JSON.parse(root.querySelector(selector).textContent); } catch (error) { return fallback; }\n  }\n  function assignedJSON(source, name) {\n    var at = source.indexOf('var ' + name);\n    var equal = at < 0 ? -1 : source.indexOf('=', at);\n    if (equal < 0) return null;\n    var start = equal + 1;\n    while (/\\s/.test(source.charAt(start))) start += 1;\n    var open = source.charAt(start);\n    var close = open === '[' ? ']' : open === '{' ? '}' : '';\n    if (!close) return null;\n    var depth = 0, quoted = false, escaped = false;\n    for (var i = start; i < source.length; i += 1) {\n      var character = source.charAt(i);\n      if (quoted) {\n        if (escaped) escaped = false;\n        else if (character === '\\\\') escaped = true;\n        else if (character === '\"') quoted = false;\n      } else if (character === '\"') quoted = true;\n      else if (character === open) depth += 1;\n      else if (character === close && --depth === 0) {\n        try { return JSON.parse(source.slice(start, i + 1)); } catch (error) { return null; }\n      }\n    }\n    return null;\n  }\n  function readVopo(html) {\n    var documentCopy = new DOMParser().parseFromString(html, 'text/html');\n    var scripts = Array.prototype.slice.call(documentCopy.scripts);\n    for (var i = 0; i < scripts.length; i += 1) {\n      var source = scripts[i].textContent || '';\n      if (source.indexOf('var bcpo_data') >= 0) {\n        var data = assignedJSON(source, 'bcpo_data');\n        if (data && Array.isArray(data.virtual_options)) return data.virtual_options;\n      }\n      if (source.indexOf('var bcpo_options') >= 0) {\n        var legacy = assignedJSON(source, 'bcpo_options');\n        if (Array.isArray(legacy)) return legacy;\n      }\n    }\n    return [];\n  }\n  function optionTitle(option) { return norm(option && (option.title || option.name || option.label)); }\n  function values(option) { return Array.isArray(option && option.values) ? option.values : []; }\n  function valueLabel(value) {\n    return typeof value === 'string' ? value : value && (value.label || value.name || value.title || value.key || value.value) || '';\n  }\n  function valueImage(value) {\n    if (typeof value !== 'object' || !value) return '';\n    var candidate = value.image || value.image_url || value.src || value.key_image || value.value || '';\n    return /^https?:\\/\\/|^\\/\\//.test(candidate) ? candidate : '';\n  }\n  function valuePriceCents(value) {\n    if (typeof value !== 'object' || !value || value.price == null || value.price === '') return 0;\n    var amount = parseFloat(String(value.price).replace(/\\s+/g, '').replace(',', '.'));\n    return isNaN(amount) ? 0 : Math.round(amount * 100);\n  }\n  function findOption(options, term) {\n    return options.find(function (option) {\n      if (optionTitle(option).indexOf(term) >= 0) return true;\n      if (term !== 'taglia' || option.type !== 'instructions') return false;\n      var firstValue = values(option)[0];\n      var instructions = option.instructions || firstValue && firstValue.key || '';\n      return norm(instructions).indexOf('taglia') >= 0 || instructions.indexOf('ws-sizes') >= 0;\n    });\n  }\n  function sizesFrom(option) {\n    var list = values(option);\n    var html = option && option.instructions || '';\n    if (!html && list[0] && typeof list[0] === 'object') html = list[0].instructions || list[0].key || '';\n    if (!html || html.indexOf('<') < 0) {\n      return list.map(function (value) { var label = valueLabel(value); return { code: label, name: label }; }).filter(function (item) { return item.name; });\n    }\n    var copy = new DOMParser().parseFromString(html, 'text/html');\n    return Array.prototype.slice.call(copy.querySelectorAll('.ws-sizes__item,[data-size],.size-row')).map(function (row) {\n      var badge = row.querySelector('.ws-sizes__badge,[data-size-code],.size-code');\n      var name = row.querySelector('.ws-sizes__name,[data-size-name],.size-name');\n      var code = badge ? badge.textContent.trim() : row.getAttribute('data-size') || '';\n      return { code: code || row.textContent.trim(), name: name ? name.textContent.trim() : row.textContent.trim() };\n    }).filter(function (item, index, all) {\n      return item.name && all.findIndex(function (other) { return norm(other.code) === norm(item.code); }) === index;\n    });\n  }\n  function isOneSizeOption(option) {\n    var sizes = sizesFrom(option);\n    if (sizes.length !== 1) return false;\n    var code = norm(sizes[0].code), name = norm(sizes[0].name);\n    return /^(unica|taglia unica|one size|tu)$/.test(code) || /^(unica|taglia unica|one size)$/.test(name);\n  }\n  function loadComponent(title, handle) {\n    try {\n      var cached = sessionStorage.getItem(CACHE + norm(title));\n      if (cached) return Promise.resolve(JSON.parse(cached));\n    } catch (error) {}\n    function readProduct(url) {\n      return fetch(url, { credentials: 'same-origin' }).then(function (response) {\n        if (!response.ok) throw new Error('Prodotto base non disponibile');\n        return response.text();\n      }).then(function (html) {\n        var result = { options: readVopo(html) };\n        return result;\n      });\n    }\n    function searchProduct() {\n      var parameters = new URLSearchParams();\n      parameters.set('q', title);\n      parameters.set('resources[type]', 'product');\n      parameters.set('resources[limit]', '10');\n      parameters.set('resources[options][unavailable_products]', 'show');\n      return fetch('/search/suggest.json?' + parameters, { credentials: 'same-origin' }).then(function (response) {\n        if (!response.ok) throw new Error('Ricerca prodotto non disponibile');\n        return response.json();\n      }).then(function (payload) {\n        var products = payload && payload.resources && payload.resources.results && payload.resources.results.products || [];\n        var product = products.find(function (candidate) { return norm(candidate.title) === norm(title); }) || products[0];\n        if (!product || !product.url) throw new Error('Prodotto base non trovato');\n        return readProduct(product.url.split('?')[0]);\n      });\n    }\n    var directHandle = handle || keyNorm(title).replace(/\\s+/g, '-');\n    return readProduct('/products/' + directHandle).catch(searchProduct).then(function (result) {\n      try { sessionStorage.setItem(CACHE + norm(title), JSON.stringify(result)); } catch (error) {}\n      return result;\n    });\n  }\n  function loadBundleComponents(variantId) {\n    var query = 'query BundleComponents($id: ID!) { node(id: $id) { ... on ProductVariant { components(first: 20) { nodes { quantity productVariant { id selectedOptions { name value } product { title handle options { name values } } } } } } } }';\n    return fetch('/api/2026-07/graphql.json', {\n      method: 'POST',\n      credentials: 'same-origin',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify({ query: query, variables: { id: 'gid://shopify/ProductVariant/' + variantId } })\n    }).then(function (response) {\n      if (!response.ok) throw new Error('Collegamento al prodotto base non disponibile');\n      return response.json();\n    }).then(function (payload) {\n      var nodes = payload && payload.data && payload.data.node && payload.data.node.components && payload.data.node.components.nodes || [];\n      if (!nodes.length) throw new Error('Prodotti del bundle non trovati');\n      return nodes.map(function (component) {\n        var variant = component.productVariant || {}, product = variant.product || {};\n        if (!product.title || !product.handle) throw new Error('Dati del prodotto base incompleti');\n        var selectedOptions = variant.selectedOptions || [];\n        return {\n          title: product.title,\n          handle: product.handle,\n          quantity: component.quantity || 1,\n          nativeOptions: selectedOptions.map(function (selection) {\n            return { name: selection.name, values: [selection.value] };\n          }),\n          selectedOptions: selectedOptions\n        };\n      });\n    });\n  }\n  function fieldLabel(text, paths, value) {\n    var node = document.createElement('div');\n    node.className = 'ws-bundle-field__label';\n    node.innerHTML = '<span class=\"ws-bundle-field__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\">' + paths + '</svg></span><span data-ws-bundle-field-title></span><span class=\"ws-bundle-field__value\" data-ws-bundle-field-value></span>';\n    node.querySelector('[data-ws-bundle-field-title]').textContent = text;\n    node.querySelector('[data-ws-bundle-field-value]').textContent = value || '';\n    return node;\n  }\n  function renderPosition(parent, option, state, changed) {\n    var optionValues = values(option);\n    if (!optionValues.length) return false;\n    var field = document.createElement('div'), wrap = document.createElement('div'), select = document.createElement('select');\n    field.className = 'ws-bundle-field'; wrap.className = 'ws-bundle-select-wrap'; select.setAttribute('data-ws-bundle-position', '');\n    var label = fieldLabel('Posizione stampa:', '<circle cx=\"12\" cy=\"12\" r=\"7\"></circle><path d=\"M12 2v3M12 19v3M2 12h3M19 12h3\"></path>');\n    optionValues.forEach(function (value) {\n      var text = valueLabel(value);\n      if (!text) return;\n      var optionNode = document.createElement('option'); optionNode.value = text; optionNode.textContent = text; select.appendChild(optionNode);\n    });\n    if (!select.options.length) return false;\n    state.position = select.value; label.querySelector('[data-ws-bundle-field-value]').textContent = state.position;\n    select.addEventListener('change', function () {\n      state.position = select.value; label.querySelector('[data-ws-bundle-field-value]').textContent = state.position; changed();\n    });\n    wrap.appendChild(select); field.appendChild(label); field.appendChild(wrap); parent.appendChild(field); return true;\n  }\n  function renderShape(parent, option, state, changed) {\n    if (!values(option).length) return false;\n    var field = document.createElement('div'), choices = document.createElement('div');\n    field.className = 'ws-bundle-field'; choices.className = 'ws-bundle-colours ws-bundle-shapes'; choices.setAttribute('role', 'group');\n    var shapeLabel = fieldLabel('Forma Toppa:', '<path d=\"M5 4h14v16H5z\"></path><circle cx=\"12\" cy=\"12\" r=\"5\"></circle>');\n    field.appendChild(shapeLabel);\n    values(option).forEach(function (value, index) {\n      var label = valueLabel(value), image = valueImage(value), button = document.createElement('button');\n      if (!label) return;\n      button.type = 'button'; button.className = 'ws-bundle-colour'; button.title = label; button.setAttribute('aria-label', label);\n      button.setAttribute('aria-pressed', state.shape ? String(norm(state.shape) === norm(label)) : String(index === 0));\n      button.innerHTML = image ? '<img loading=\"lazy\" alt=\"\">' : '<span></span>';\n      if (image) { button.firstElementChild.src = image; button.firstElementChild.alt = label; } else button.firstElementChild.textContent = label;\n      button.addEventListener('click', function () {\n        Array.prototype.forEach.call(choices.children, function (item) { item.setAttribute('aria-pressed', 'false'); });\n        button.setAttribute('aria-pressed', 'true'); state.shape = label; shapeLabel.querySelector('[data-ws-bundle-field-value]').textContent = label; changed();\n      });\n      choices.appendChild(button);\n      if (!state.shape && index === 0) state.shape = label;\n    });\n    shapeLabel.querySelector('[data-ws-bundle-field-value]').textContent = state.shape;\n    field.appendChild(choices); parent.appendChild(field); return true;\n  }\n  function renderColours(parent, option, state, changed, customLabel) {\n    if (!values(option).length) return false;\n    var field = document.createElement('div'), choices = document.createElement('div'), toggle = document.createElement('button');\n    field.className = 'ws-bundle-field'; choices.className = 'ws-bundle-colours'; choices.setAttribute('role', 'group');\n    var colourLabel = fieldLabel(customLabel || 'Colore:', '<path d=\"M12 3a9 9 0 1 0 0 18c1.4 0 2-1.6 1.1-2.5-.8-.8-.2-2.2 1-2.2H17a4 4 0 0 0 4-4C21 7.2 17 3 12 3z\"></path><circle cx=\"8\" cy=\"11\" r=\"1\"></circle><circle cx=\"11\" cy=\"7.5\" r=\"1\"></circle><circle cx=\"15.5\" cy=\"9\" r=\"1\"></circle>');\n    var selectedColour = state.colour && values(option).some(function (value) { return norm(valueLabel(value)) === norm(state.colour); }) ? state.colour : valueLabel(values(option)[0]);\n    field.appendChild(colourLabel);\n    values(option).forEach(function (value, index) {\n      var label = valueLabel(value), image = valueImage(value), button = document.createElement('button');\n      if (!label) return;\n      button.type = 'button'; button.className = 'ws-bundle-colour'; button.title = label; button.setAttribute('aria-label', label); button.setAttribute('aria-pressed', norm(label) === norm(selectedColour) ? 'true' : 'false');\n      button.innerHTML = image ? '<img loading=\"lazy\" alt=\"\">' : '<span></span>';\n      if (image) { button.firstElementChild.src = image; button.firstElementChild.alt = label; } else button.firstElementChild.textContent = label.slice(0, 3).toUpperCase();\n      button.addEventListener('click', function () {\n        Array.prototype.forEach.call(choices.children, function (item) { item.setAttribute('aria-pressed', 'false'); });\n        button.setAttribute('aria-pressed', 'true'); state.colour = label; colourLabel.querySelector('[data-ws-bundle-field-value]').textContent = label; changed();\n      });\n      choices.appendChild(button);\n    });\n    state.colour = selectedColour;\n    colourLabel.querySelector('[data-ws-bundle-field-value]').textContent = selectedColour;\n    toggle.type = 'button'; toggle.className = 'ws-bundle-colours-toggle'; toggle.hidden = true; toggle.setAttribute('aria-expanded', 'false');\n    toggle.textContent = 'Mostra tutti i colori';\n    toggle.addEventListener('click', function () {\n      var expanded = toggle.getAttribute('aria-expanded') !== 'true';\n      toggle.setAttribute('aria-expanded', expanded ? 'true' : 'false');\n      choices.classList.toggle('is-expanded', expanded);\n      toggle.textContent = expanded ? 'Mostra meno' : 'Mostra tutti i colori';\n    });\n    field.appendChild(choices); field.appendChild(toggle); parent.appendChild(field);\n    function syncToggleVisibility() {\n      var perRow = Math.max(1, Math.floor((choices.clientWidth + 8) / 60));\n      toggle.hidden = choices.children.length <= perRow * 2;\n    }\n    window.requestAnimationFrame(syncToggleVisibility);\n    window.setTimeout(syncToggleVisibility, 120);\n    if (window.ResizeObserver) new ResizeObserver(syncToggleVisibility).observe(choices);\n    return true;\n  }\n  function renderSizes(parent, option, state, changed) {\n    var sizes = sizesFrom(option); if (!sizes.length) return false;\n    var field = document.createElement('div'), list = document.createElement('div'), footer = document.createElement('div'), error = document.createElement('div');\n    field.className = 'ws-bundle-field'; list.className = 'ws-bundle-size-list'; list.setAttribute('role', 'group');\n    var sizeLabel = fieldLabel('Taglia:', '<path d=\"M3 17 17 3l4 4L7 21 3 17z\"></path><path d=\"m14 6 4 4M11 9l2 2M8 12l2 2M5 15l2 2\"></path>');\n    field.appendChild(sizeLabel);\n    sizes.forEach(function (size) {\n      var row = document.createElement('label'), input = document.createElement('input'), code = size.code || size.name;\n      row.className = 'ws-bundle-size';\n      row.innerHTML = '<span class=\"ws-bundle-size__badge\"></span><span class=\"ws-bundle-size__name\"></span>';\n      row.children[0].textContent = code; row.children[1].textContent = size.name;\n      input.className = 'ws-bundle-size__qty'; input.type = 'number'; input.min = '0'; input.value = '0'; input.inputMode = 'numeric'; input.setAttribute('aria-label', 'Quantit\u00E0 taglia ' + code);\n      if (state.sizeLimit > 0) input.max = String(state.sizeLimit);\n      input.addEventListener('input', function () {\n        var quantity = toInt(input.value);\n        if (String(quantity) !== input.value && input.value !== '') input.value = String(quantity);\n        state.sizes[code] = quantity;\n        state.sizeTotal = Object.keys(state.sizes).reduce(function (total, key) { return total + state.sizes[key]; }, 0);\n        state.sizeOver = state.sizeLimit > 0 && state.sizeTotal > state.sizeLimit;\n        state.size = Object.keys(state.sizes).filter(function (key) { return state.sizes[key] > 0; }).map(function (key) { return key + ':' + state.sizes[key]; }).join(', ');\n        sizeLabel.querySelector('[data-ws-bundle-field-value]').textContent = state.size;\n        footer.querySelector('strong').textContent = state.sizeLimit > 0 ? state.sizeTotal + '/' + state.sizeLimit : String(state.sizeTotal);\n        error.hidden = !state.sizeOver;\n        error.textContent = state.sizeOver ? 'Hai superato il limite di ' + state.sizeLimit + ' prodotti. Riduci le quantit\u00E0 per continuare.' : '';\n        changed();\n      });\n      row.appendChild(input); list.appendChild(row);\n    });\n    footer.className = 'ws-bundle-size-total'; footer.innerHTML = '<span>Totale assegnato</span><strong>' + (state.sizeLimit > 0 ? '0/' + state.sizeLimit : '0') + '</strong>';\n    error.className = 'ws-bundle-size-error'; error.hidden = true; error.setAttribute('role', 'alert');\n    field.appendChild(list); field.appendChild(footer); field.appendChild(error); parent.appendChild(field); return true;\n  }\n  function renderOneSize(parent, option, state) {\n    var sizes = sizesFrom(option); if (!sizes.length) return false;\n    var size = sizes[0], field = document.createElement('div'), row = document.createElement('div');\n    field.className = 'ws-bundle-field'; row.className = 'ws-bundle-size';\n    var sizeLabel = fieldLabel('Taglia:', '<path d=\"M3 17 17 3l4 4L7 21 3 17z\"></path><path d=\"m14 6 4 4M11 9l2 2M8 12l2 2M5 15l2 2\"></path>');\n    row.innerHTML = '<span class=\"ws-bundle-size__badge\"></span><span class=\"ws-bundle-size__name\"></span>';\n    row.children[0].textContent = size.code || 'TU'; row.children[1].textContent = size.name;\n    state.sizeTotal = state.sizeLimit > 0 ? state.sizeLimit : 1;\n    state.size = size.code || size.name;\n    sizeLabel.querySelector('[data-ws-bundle-field-value]').textContent = state.size;\n    field.appendChild(sizeLabel); field.appendChild(row); parent.appendChild(field); return true;\n  }\n  function renderNativeOptions(parent, state, changed) {\n    var rendered = false;\n    (state.nativeOptions || []).forEach(function (option) {\n      if (state.excludedNativeSelections[option.name]) return;\n      var optionValues = Array.isArray(option.values) ? option.values : [];\n      if (!option.name || !optionValues.length || option.name === 'Title' && optionValues[0] === 'Default Title') return;\n      var field = document.createElement('div'), wrap = document.createElement('div'), select = document.createElement('select');\n      field.className = 'ws-bundle-field'; wrap.className = 'ws-bundle-select-wrap';\n      var selected = state.nativeSelections[option.name] || optionValues[0];\n      var nativeIcon = norm(option.name).indexOf('quantit') >= 0 ? '<path d=\"M4 7l8-4 8 4-8 4-8-4zM4 7v10l8 4 8-4V7M12 11v10\"></path>' : norm(option.name).indexOf('dimension') >= 0 ? '<path d=\"M3 17 17 3l4 4L7 21 3 17z\"></path><path d=\"m14 6 4 4M11 9l2 2M8 12l2 2\"></path>' : '<path d=\"M4 7h16M4 12h16M4 17h16\"></path>';\n      var label = fieldLabel(option.name + ':', nativeIcon);\n      optionValues.forEach(function (value) {\n        var node = document.createElement('option'); node.value = value; node.textContent = value; node.selected = value === selected; select.appendChild(node);\n      });\n      state.nativeSelections[option.name] = select.value;\n      label.querySelector('[data-ws-bundle-field-value]').textContent = select.value;\n      select.addEventListener('change', function () {\n        state.nativeSelections[option.name] = select.value;\n        label.querySelector('[data-ws-bundle-field-value]').textContent = select.value;\n        changed();\n      });\n      wrap.appendChild(select); field.appendChild(label); field.appendChild(wrap); parent.appendChild(field); rendered = true;\n    });\n    return rendered;\n  }\n  function renderExtraOptions(parent, options, state, changed, hasShape) {\n    var rendered = false;\n    var conditionalFields = [];\n    var materialInfo = {\n      'Banner PVC 510g': { description: 'Resistente, ideale per esterni', badge: 'Standard' },\n      'Telo Nautico 120g': { description: 'leggero, adatto all\u2019esposizione al vento', badge: 'Standard' }\n    };\n    var finishingInfo = {\n      'Solo Rifilo': { description: 'Taglio netto senza rinforzi', badge: '' },\n      'Rinforzo ed Occhielli': { description: 'Bordi rinforzati con occhielli ogni 50 cm', badge: 'Incluso' },\n      'Asola Superiore': { description: 'Asola rinforzata sul lato superiore', badge: '' },\n      'Asole Verticali': { description: 'Asole rinforzate su lati superiore e inferiore', badge: '' },\n      'Asole laterali': { description: 'Asole rinforzate sui lati destro e sinistro', badge: '' },\n      'Asola Superiore e Inferiore': { description: 'Asole rinforzate su lati superiore e inferiore', badge: '' },\n      'Asole Laterali': { description: 'Asole rinforzate sui lati destro e sinistro', badge: '' }\n    };\n    options.forEach(function (option) {\n      var title = option && (option.title || option.name || option.label) || '';\n      var normalized = optionTitle(option), optionValues = values(option);\n      var special = hasShape ? /forma toppa|posizione|colore|taglia/.test(normalized) : /posizione|colore|taglia/.test(normalized);\n      if (!title || !optionValues.length || option.type === 'instructions' || special) return;\n      var isFormat = normalized === 'formato', isMaterial = normalized.indexOf('materiale') >= 0, isFinishing = normalized.indexOf('lavorazioni') >= 0 && normalized.indexOf('rifiniture') >= 0;\n      var icon = isFormat ? '<path d=\"M5 4h14v16H5zM8 8h8M8 12h8M8 16h5\"></path>' : isMaterial ? '<path d=\"M4 8l8-4 8 4-8 4-8-4zM4 12l8 4 8-4M4 16l8 4 8-4\"></path>' : isFinishing ? '<circle cx=\"12\" cy=\"12\" r=\"3\"></circle><path d=\"M12 2v3M12 19v3M2 12h3M19 12h3M5 5l2 2M17 17l2 2M19 5l-2 2M7 17l-2 2\"></path>' : '<path d=\"M5 7h14M5 12h14M5 17h14\"></path>';\n      var field = document.createElement('div'), label = fieldLabel(title + ':', icon);\n      var selected = state.extraSelections[title] || option.preselect_value || valueLabel(optionValues[0]);\n      field.className = 'ws-bundle-field'; field.appendChild(label);\n      function choose(value) {\n        state.extraSelections[title] = value;\n        var selectedValue = optionValues.find(function (candidate) { return valueLabel(candidate) === value; });\n        state.extraPrices[title] = valuePriceCents(selectedValue) * state.componentQuantity;\n        label.querySelector('[data-ws-bundle-field-value]').textContent = value;\n        refreshConditionalFields();\n        changed();\n      }\n      if (isFormat) {\n        var choices = document.createElement('div'); choices.className = 'ws-bundle-format'; choices.setAttribute('role', 'group');\n        optionValues.forEach(function (value) {\n          var valueText = valueLabel(value), button = document.createElement('button'), vertical = /vertical/i.test(valueText);\n          if (!valueText) return;\n          button.type = 'button'; button.className = 'ws-bundle-format__choice'; button.setAttribute('aria-pressed', String(valueText === selected));\n          button.innerHTML = '<span class=\"ws-bundle-format__ui\"><span class=\"ws-bundle-format__visual ws-bundle-format__visual--' + (vertical ? 'vertical' : 'horizontal') + '\"></span><span class=\"ws-bundle-format__name\"></span></span>';\n          button.querySelector('.ws-bundle-format__name').textContent = valueText;\n          button.addEventListener('click', function () {\n            Array.prototype.forEach.call(choices.children, function (item) { item.setAttribute('aria-pressed', 'false'); });\n            button.setAttribute('aria-pressed', 'true'); choose(valueText);\n          });\n          choices.appendChild(button);\n        });\n        field.appendChild(choices);\n      } else if (isMaterial) {\n        var materials = document.createElement('div'); materials.className = 'ws-bundle-material';\n        optionValues.forEach(function (value) {\n          var valueText = valueLabel(value), info = materialInfo[valueText] || {}, button = document.createElement('button');\n          if (!valueText) return;\n          button.type = 'button'; button.className = 'ws-bundle-material__choice'; button.setAttribute('aria-pressed', String(valueText === selected));\n          button.innerHTML = '<span class=\"ws-bundle-material__info\"><span class=\"ws-bundle-material__name\"></span><span class=\"ws-bundle-material__desc\"></span></span><span class=\"ws-bundle-material__badge\"></span>';\n          button.querySelector('.ws-bundle-material__name').textContent = valueText;\n          button.querySelector('.ws-bundle-material__desc').textContent = info.description || '';\n          button.querySelector('.ws-bundle-material__badge').textContent = info.badge || '';\n          button.addEventListener('click', function () { choose(valueText); }); materials.appendChild(button);\n        });\n        field.appendChild(materials);\n      } else if (isFinishing) {\n        var finishings = document.createElement('div'); finishings.className = 'ws-bundle-finishing'; finishings.setAttribute('role', 'radiogroup');\n        optionValues.forEach(function (value) {\n          var valueText = valueLabel(value), info = finishingInfo[valueText] || {}, button = document.createElement('button');\n          if (!valueText) return;\n          button.type = 'button'; button.className = 'ws-bundle-finishing__choice'; button.setAttribute('aria-pressed', String(valueText === selected));\n          button.innerHTML = '<span class=\"ws-bundle-finishing__radio\"><span class=\"ws-bundle-finishing__dot\"></span></span><span class=\"ws-bundle-finishing__content\"><span class=\"ws-bundle-finishing__header\"><span class=\"ws-bundle-finishing__name\"></span><span class=\"ws-bundle-finishing__badge\"></span></span><span class=\"ws-bundle-finishing__desc\"></span></span>';\n          button.querySelector('.ws-bundle-finishing__name').textContent = valueText;\n          button.querySelector('.ws-bundle-finishing__badge').textContent = info.badge || '';\n          button.querySelector('.ws-bundle-finishing__desc').textContent = info.description || '';\n          button.addEventListener('click', function () {\n            Array.prototype.forEach.call(finishings.children, function (item) { item.setAttribute('aria-pressed', 'false'); });\n            button.setAttribute('aria-pressed', 'true'); choose(valueText);\n          });\n          finishings.appendChild(button);\n        });\n        field.appendChild(finishings);\n      } else {\n        var list = document.createElement('div'); list.className = 'ws-bundle-choice-list'; list.setAttribute('role', 'group');\n        optionValues.forEach(function (value) {\n          var valueText = valueLabel(value), button = document.createElement('button');\n          if (!valueText) return;\n          button.type = 'button'; button.className = 'ws-bundle-choice'; button.textContent = valueText; button.setAttribute('aria-pressed', String(valueText === selected));\n          button.addEventListener('click', function () {\n            Array.prototype.forEach.call(list.children, function (item) { item.setAttribute('aria-pressed', 'false'); });\n            button.setAttribute('aria-pressed', 'true'); choose(valueText);\n          });\n          list.appendChild(button);\n        });\n        field.appendChild(list);\n      }\n      state.extraSelections[title] = selected;\n      var initialValue = optionValues.find(function (candidate) { return valueLabel(candidate) === selected; });\n      state.extraPrices[title] = valuePriceCents(initialValue) * state.componentQuantity;\n      label.querySelector('[data-ws-bundle-field-value]').textContent = selected;\n      parent.appendChild(field);\n      conditionalFields.push({ field: field, option: option, title: title });\n      rendered = true;\n    });\n    function conditionalSelection(option) {\n      var reference = String(option && option.conditional_option || '');\n      if (!reference) return '';\n      if (/^\\d+$/.test(reference)) {\n        var nativeOption = state.nativeOptions[Number(reference)];\n        return nativeOption ? state.nativeSelections[nativeOption.name] : '';\n      }\n      var parentOption = options.find(function (candidate) { return candidate && String(candidate.unique || '') === reference; });\n      var parentTitle = parentOption && (parentOption.title || parentOption.name || parentOption.label);\n      return parentTitle ? state.extraSelections[parentTitle] : '';\n    }\n    function refreshConditionalFields() {\n      conditionalFields.forEach(function (item) {\n        var expected = item.option && item.option.conditional_value;\n        var active = !expected || norm(conditionalSelection(item.option)) === norm(expected);\n        item.field.hidden = !active;\n        state.extraActive[item.title] = active;\n      });\n    }\n    state.refreshExtraConditions = refreshConditionalFields;\n    refreshConditionalFields();\n    return rendered;\n  }\n  function renderHatOptions(parent, options, state, changed) {\n    var shape = findOption(options, 'forma toppa');\n    if (!shape) return false;\n    var position = findOption(options, 'posizione') || { title: 'Posizione stampa', values: ['Fronte'] };\n    var rectangularColour = options.find(function (option) { return optionTitle(option).indexOf('colore berretti toppa rettangolare') >= 0; });\n    var circularColour = options.find(function (option) { return optionTitle(option).indexOf('colore berretti toppa circolare') >= 0; });\n    var size = findOption(options, 'taglia'), dependants = document.createElement('div');\n    state.hasShape = true; state.positionRequired = !!position;\n    if (position) renderPosition(parent, position, state, changed);\n    renderShape(parent, shape, state, function () { renderDependants(); changed(); });\n    parent.appendChild(dependants);\n    function renderDependants() {\n      dependants.innerHTML = '';\n      state.colour = ''; state.size = ''; state.sizeTotal = 0; state.hasColour = false; state.hasSize = false;\n      var rectangular = norm(state.shape).indexOf('rettangolare') >= 0;\n      var colour = rectangular ? rectangularColour : circularColour;\n      state.colourProperty = colour ? (colour.title || colour.name || colour.label || '') : '';\n      state.hasColour = !!colour;\n      if (colour) renderColours(dependants, colour, state, changed, state.colourProperty + ':');\n      if (size) {\n        state.hasSize = true;\n        if (isOneSizeOption(size)) renderOneSize(dependants, size, state);\n        else renderSizes(dependants, size, state, changed);\n      }\n    }\n    renderDependants();\n    return true;\n  }\n  function initialise(root) {\n    if (root.dataset.wsBundleReady === '1') return; root.dataset.wsBundleReady = '1';\n    var flatMode = root.getAttribute('data-ws-bundle-flat') === 'true';\n    window.__wsBundleProperties = {};\n    root.setAttribute('data-ws-bundle-values', '{}');\n    var slot = document.getElementById('ws-bcpo-slot');\n    if (slot) {\n      slot.setAttribute('data-ws-bundle-replaced', 'true');\n      slot.insertAdjacentElement('afterend', root);\n    }\n    root.hidden = false;\n    var variants = json(root, '[data-ws-bundle-variants]', []), propertyRoot = root.querySelector('[data-ws-bundle-properties]');\n    var globalOptions = Array.prototype.slice.call(root.querySelectorAll('[data-ws-bundle-global-option]'));\n    var fallbackLimits = document.querySelector('#ws-pack-limits[data-pack-limits]');\n    var packLimits = parsePackLimits(root.getAttribute('data-pack-limits') || (fallbackLimits ? fallbackLimits.getAttribute('data-pack-limits') : ''));\n    var bundleProperties = {}, discoveringComponent = false;\n    function selectedGlobalQuantity() {\n      var option = globalOptions.find(function (candidate) { return norm(candidate.getAttribute('data-option-name')) === 'quantita'; });\n      var active = option && option.querySelector('[data-ws-bundle-global-value][aria-pressed=\"true\"]');\n      var quantity = parseInt(active && active.value || '', 10);\n      return quantity > 0 ? quantity : 0;\n    }\n    function stateForNode(node, component) {\n      var select = node.querySelector('[data-ws-bundle-position]');\n      var title = node.getAttribute('data-component-title'), packKey = packKeyForTitle(title, packLimits), supplemental = node.getAttribute('data-ws-bundle-supplemental') === 'true';\n      var nativeSelections = {};\n      var configuredLimit = packKey ? packLimits[packKey] : 0;\n      var globalQuantity = selectedGlobalQuantity();\n      (component && component.selectedOptions || []).forEach(function (option) { nativeSelections[option.name] = option.value; });\n      return { node: node, title: title, handle: component && component.handle || '', index: Number(node.getAttribute('data-option-index')), supplemental: supplemental, componentQuantity: component && Number(component.quantity) || 1, positionRequired: !!select, position: select ? select.value : '', shape: '', colour: '', colourProperty: '', size: '', sizes: {}, sizeTotal: 0, sizeLimit: globalQuantity || configuredLimit, baseSizeLimit: configuredLimit, sizeOver: false, packKey: packKey, hasShape: false, hasColour: false, hasSize: false, nativeOptions: component && component.nativeOptions || [], nativeSelections: nativeSelections, excludedNativeSelections: {}, extraSelections: {}, extraPrices: {}, extraActive: {}, refreshExtraConditions: null, loaded: false, loading: false };\n    }\n    var states = Array.prototype.slice.call(root.querySelectorAll('[data-ws-bundle-product]')).map(function (node) { return stateForNode(node); });\n    function property(name, value) {\n      window.__wsBundleProperties = window.__wsBundleProperties || {};\n      if (value) { window.__wsBundleProperties[name] = value; bundleProperties[name] = value; }\n      else { delete window.__wsBundleProperties[name]; delete bundleProperties[name]; }\n      root.setAttribute('data-ws-bundle-values', JSON.stringify(bundleProperties));\n      var input = Array.prototype.find.call(propertyRoot.children, function (item) { return item.getAttribute('data-property-name') === name; });\n      if (!input) { input = document.createElement('input'); input.type = 'hidden'; input.name = 'properties[' + name.replace(/[\\[\\]]/g, '') + ']'; input.setAttribute('data-property-name', name); input.setAttribute('form', root.getAttribute('data-form-id')); propertyRoot.appendChild(input); }\n      input.value = value || ''; input.setAttribute('value', value || ''); input.disabled = !value;\n    }\n    function money(cents) {\n      return new Intl.NumberFormat('it-IT', { style: 'currency', currency: 'EUR' }).format((cents || 0) / 100);\n    }\n    function syncBundleUnitPrice(price) {\n      document.querySelectorAll('form[action*=\"/cart/add\"]').forEach(function (form) {\n        var input = form.querySelector('input[name=\"properties[_ws_bundle_unit_price_cents]\"]');\n        if (!input) {\n          input = document.createElement('input');\n          input.type = 'hidden';\n          input.name = 'properties[_ws_bundle_unit_price_cents]';\n          input.setAttribute('data-ws-bundle-unit-price', '1');\n          form.appendChild(input);\n        }\n        input.value = String(price);\n        input.setAttribute('value', String(price));\n        input.disabled = false;\n      });\n    }\n    function syncSummary(variant) {\n      var addon = states.reduce(function (total, state) {\n        return total + Object.keys(state.extraPrices).reduce(function (stateTotal, title) {\n          return stateTotal + (state.extraActive[title] === false ? 0 : state.extraPrices[title]);\n        }, 0);\n      }, 0);\n      window.__wsBundleAddonCents = addon;\n      var basePrice = Number(variant.price) || 0;\n      var price = basePrice + addon;\n      var compare = Math.max(basePrice, Number(variant.compare_at_price) || 0) + addon;\n      syncBundleUnitPrice(price);\n      var total = document.querySelector('[data-ws-summary-total] .money') || document.querySelector('[data-ws-summary-total]');\n      var subtotal = document.querySelector('[data-ws-summary-subtotal]');\n      var baseCents = document.querySelector('[data-ws-base-product-cents]');\n      var compareCents = document.querySelector('[data-ws-compare-product-cents]');\n      if (total) total.textContent = money(price);\n      if (subtotal) subtotal.textContent = money(compare);\n      if (baseCents) baseCents.textContent = price;\n      if (compareCents) compareCents.textContent = compare;\n      window.dispatchEvent(new CustomEvent('ws:bundle-price-change', { detail: { addonCents: addon } }));\n    }\n    function syncVariant() {\n      var selected = [];\n      globalOptions.forEach(function (option) {\n        var active = option.querySelector('[data-ws-bundle-global-value][aria-pressed=\"true\"]');\n        selected[Number(option.getAttribute('data-option-index'))] = active ? active.value : '';\n      });\n      states.filter(function (state) { return !state.supplemental; }).forEach(function (state) {\n        selected[state.index] = state.position;\n      });\n      // Bundles with only \"Default Title\" have no native option state to match.\n      var variant = selected.length === 0 && variants.length === 1 ? variants[0] : variants.find(function (candidate) { return candidate.options && candidate.options.every(function (value, index) { return value === selected[index]; }); });\n      if (!variant) return;\n      window.__wsBundleSelectedVariantId = String(variant.id);\n      root.setAttribute('data-ws-selected-variant-id', String(variant.id));\n      document.querySelectorAll('form[action*=\"/cart/add\"] [name=\"id\"]').forEach(function (input) { input.value = variant.id; input.setAttribute('value', variant.id); });\n      syncSummary(variant);\n      window.dispatchEvent(new CustomEvent('ws:bundle-variant-change', { detail: { variant: variant } }));\n    }\n    function complete(state) {\n      var sizesComplete = !state.hasSize || (state.sizeLimit > 0 ? state.sizeTotal === state.sizeLimit : state.sizeTotal > 0);\n      return state.loaded && (!state.positionRequired || state.position) && (!state.hasShape || state.shape) && (!state.hasColour || state.colour) && sizesComplete && !state.sizeOver;\n    }\n    function syncCta() {\n      var allComplete = !discoveringComponent && states.length > 0 && states.every(complete);\n      var button = document.querySelector('#ws-product-form-summary .ws-cta__btn');\n\n      root.setAttribute('data-ws-bundle-complete', allComplete ? 'true' : 'false');\n      if (!button) return;\n      if (/aggiunta in corso/i.test(button.textContent || '')) return;\n\n      // The duplicated kit template has a legacy size validator that disables every\n      // add-to-cart button. On bundle pages this configurator owns completeness.\n      if (button.disabled !== !allComplete) button.disabled = !allComplete;\n      if (button.getAttribute('aria-disabled') !== (allComplete ? 'false' : 'true')) button.setAttribute('aria-disabled', allComplete ? 'false' : 'true');\n      if (button.style.cursor !== (allComplete ? '' : 'not-allowed')) button.style.cursor = allComplete ? '' : 'not-allowed';\n      if (button.style.opacity !== (allComplete ? '' : '0.6')) button.style.opacity = allComplete ? '' : '0.6';\n    }\n    function bindCtaState() {\n      var summary = document.querySelector('[data-ws-order-summary]');\n      if (!summary || root.dataset.wsBundleCtaObserver === '1') return false;\n      root.dataset.wsBundleCtaObserver = '1';\n      new MutationObserver(function () { window.setTimeout(syncCta, 0); }).observe(summary, {\n        attributes: true,\n        childList: true,\n        subtree: true,\n        attributeFilter: ['disabled', 'aria-disabled', 'style']\n      });\n      syncCta();\n      return true;\n    }\n    function update(state) {\n      if (state.refreshExtraConditions) state.refreshExtraConditions();\n      var status = state.node.querySelector('[data-ws-bundle-status]'), done = complete(state); state.node.classList.toggle('is-complete', !!done);\n      var nativeValues = Object.keys(state.nativeSelections).filter(function (key) { return !state.excludedNativeSelections[key]; }).map(function (key) { return state.nativeSelections[key]; });\n      var extraValues = Object.keys(state.extraSelections).filter(function (key) { return state.extraActive[key] !== false; }).map(function (key) { return state.extraSelections[key]; });\n      status.textContent = !state.loaded ? (state.loading ? 'Caricamento...' : 'Da configurare') : done ? (nativeValues.concat(extraValues, [state.position, state.shape, state.colour, state.size]).filter(Boolean).join(' \u00B7 ') || 'Configurazione completata') : state.hasSize && state.sizeLimit > 0 ? 'Assegna le taglie: ' + state.sizeTotal + '/' + state.sizeLimit : 'Completa le opzioni';\n      syncVariant();\n      if (state.hasShape) {\n        var rectangular = norm(state.shape).indexOf('rettangolare') >= 0;\n        property(state.title + ' \u00B7 Posizione stampa', state.position);\n        property(state.title + ' \u00B7 Forma Toppa', state.shape);\n        property(state.title + ' \u00B7 Colore', '');\n        property(state.title + ' \u00B7 Colore Berretti Toppa Rettangolare', rectangular ? state.colour : '');\n        property(state.title + ' \u00B7 Colore Berretti Toppa Circolare', rectangular ? '' : state.colour);\n      } else {\n        property(state.title + ' \u00B7 Posizione stampa', state.position);\n        property(state.title + ' \u00B7 Colore', state.colour);\n      }\n      property(state.title + ' \u00B7 Taglia', state.size);\n      var globalQuantity = selectedGlobalQuantity();\n      property(state.title + ' \u00B7 Quantit\u00E0', globalQuantity > 0 ? String(globalQuantity) : '');\n      Object.keys(state.nativeSelections).forEach(function (name) { property(state.title + ' \u00B7 ' + name, state.excludedNativeSelections[name] ? '' : state.nativeSelections[name]); });\n      Object.keys(state.extraSelections).forEach(function (name) {\n        var active = state.extraActive[name] !== false;\n        var price = state.extraPrices[name] || 0;\n        var value = active ? state.extraSelections[name] : '';\n        property(state.title + ' \u00B7 ' + name, value && price > 0 ? value + ' | ' + money(price) : value);\n      });\n      syncCta();\n      window.setTimeout(syncCta, 0);\n    }\n    var wsQtyComponents = null; function wsQtyFor(state) { if (state.nativeOptions && state.nativeOptions.length) return Promise.resolve(); wsQtyComponents = wsQtyComponents || loadBundleComponents(root.getAttribute('data-parent-variant-id')).catch(function () { return []; }); return wsQtyComponents.then(function (cs) { var c = (cs || []).find(function (x) { return norm(x.title) === norm(state.title); }); if (!c) return; state.nativeOptions = state.nativeOptions || []; (c.selectedOptions || []).forEach(function (o) { var n = String(o.name || '').trim(); if (norm(n).indexOf('quantit') !== 0) return; state.nativeOptions.push({ name: n, values: [o.value] }); state.nativeSelections[n] = o.value; }); }).catch(function () {}); } function load(state) {\n      if (state.loaded || state.loading) return; state.loading = true; update(state);\n      wsQtyFor(state).then(function () { return loadComponent(state.title, state.handle); }).then(function (data) {\n        var dynamic = state.node.querySelector('[data-ws-bundle-dynamic]'), options = data.options || [], shape = findOption(options, 'forma toppa'), position = state.supplemental ? findOption(options, 'posizione') : null, colour = findOption(options, 'colore'), size = findOption(options, 'taglia'); dynamic.innerHTML = '';\n        state.nativeOptions.forEach(function (nativeOption) {\n          state.excludedNativeSelections[nativeOption.name] = !!shape && optionTitle(nativeOption).indexOf('posizione') >= 0;\n        });\n        var renderedNative = renderNativeOptions(dynamic, state, function () { update(state); });\n        var renderedExtra = (flatMode || state.supplemental) && renderExtraOptions(dynamic, options, state, function () { update(state); }, !!shape);\n        if (shape) {\n          renderHatOptions(dynamic, options, state, function () { update(state); });\n          state.loaded = true; state.loading = false; update(state); return;\n        }\n        if (size && isOneSizeOption(size)) size = null;\n        state.positionRequired = !state.supplemental || !!position;\n        state.hasColour = !!colour; state.hasSize = !!size;\n        if (position) renderPosition(dynamic, position, state, function () { update(state); });\n        if (colour) renderColours(dynamic, colour, state, function () { update(state); });\n        if (size) renderSizes(dynamic, size, state, function () { update(state); });\n        if (!renderedNative && !renderedExtra && !position && !colour && !size) dynamic.innerHTML = '<div class=\"ws-bundle-loading\">Nessuna opzione aggiuntiva richiesta.</div>';\n        state.loaded = true; state.loading = false; update(state);\n      }).catch(function (error) {\n        state.loading = false; state.node.querySelector('[data-ws-bundle-dynamic]').innerHTML = '<div class=\"ws-bundle-error\">' + error.message + '. Ricarica la pagina per riprovare.</div>'; update(state);\n      });\n    }\n    function activate(state) {\n      var toggle = state.node.querySelector('[data-ws-bundle-toggle]'), panel = state.node.querySelector('[data-ws-bundle-panel]'), select = state.node.querySelector('[data-ws-bundle-position]');\n      var initialPositionValue = state.node.querySelector('[data-ws-bundle-position-value]');\n      if (initialPositionValue) initialPositionValue.textContent = state.position;\n      if (flatMode) {\n        toggle.setAttribute('aria-expanded', 'true');\n        toggle.setAttribute('aria-disabled', 'true');\n        toggle.tabIndex = -1;\n        panel.hidden = false;\n        state.node.classList.add('is-open');\n        load(state);\n      } else {\n        toggle.setAttribute('aria-expanded', 'true');\n        panel.hidden = false;\n        state.node.classList.add('is-open');\n        load(state);\n        toggle.addEventListener('click', function () { var open = toggle.getAttribute('aria-expanded') !== 'true'; toggle.setAttribute('aria-expanded', String(open)); panel.hidden = !open; state.node.classList.toggle('is-open', open); if (open) load(state); });\n      }\n      if (select) select.addEventListener('change', function () {\n        state.position = select.value;\n        var positionValue = state.node.querySelector('[data-ws-bundle-position-value]');\n        if (positionValue) positionValue.textContent = state.position;\n        update(state);\n      }); update(state);\n    }\n    function refreshSizeLimit(state) {\n      state.sizeOver = state.sizeLimit > 0 && state.sizeTotal > state.sizeLimit;\n      Array.prototype.forEach.call(state.node.querySelectorAll('.ws-bundle-size__qty'), function (input) {\n        if (state.sizeLimit > 0) input.max = String(state.sizeLimit);\n        else input.removeAttribute('max');\n      });\n      var total = state.node.querySelector('.ws-bundle-size-total strong');\n      if (total) total.textContent = state.sizeLimit > 0 ? state.sizeTotal + '/' + state.sizeLimit : String(state.sizeTotal);\n      var error = state.node.querySelector('.ws-bundle-size-error');\n      if (error) {\n        error.hidden = !state.sizeOver;\n        error.textContent = state.sizeOver ? 'Hai superato il limite di ' + state.sizeLimit + ' prodotti. Riduci le quantit\u00E0 per continuare.' : '';\n      }\n    }\n    function bindGlobalOptions() {\n      globalOptions.forEach(function (option) {\n        var buttons = Array.prototype.slice.call(option.querySelectorAll('[data-ws-bundle-global-value]'));\n        var label = option.querySelector('[data-ws-bundle-global-value-label]');\n        var optionName = option.getAttribute('data-option-name') || 'Quantit\u00E0';\n        function selectValue(button, refreshStates) {\n          buttons.forEach(function (candidate) {\n            var selected = candidate === button;\n            candidate.setAttribute('aria-pressed', selected ? 'true' : 'false');\n            candidate.setAttribute('aria-checked', selected ? 'true' : 'false');\n          });\n          if (label) label.textContent = button.value;\n          if (norm(optionName) === 'quantita') {\n            var quantity = parseInt(button.value, 10);\n            if (quantity > 0) states.forEach(function (state) {\n              state.sizeLimit = quantity;\n              if (state.hasSize && !state.node.querySelector('.ws-bundle-size__qty')) state.sizeTotal = quantity;\n              refreshSizeLimit(state);\n            });\n          }\n          syncVariant();\n          if (refreshStates) states.forEach(update);\n        }\n        buttons.forEach(function (button) {\n          button.addEventListener('click', function () { selectValue(button, true); });\n        });\n        var initial = option.querySelector('[data-ws-bundle-global-value][aria-pressed=\"true\"]') || buttons[0];\n        if (initial) selectValue(initial, false);\n      });\n    }\n    bindGlobalOptions();\n    states.forEach(activate);\n    var hasOnlyDefaultVariant = variants.length === 1 && variants[0].options && variants[0].options.length === 1 && variants[0].options[0] === 'Default Title';\n    var shouldDiscoverComponents = !states.length || hasOnlyDefaultVariant && states.every(function (state) { return state.supplemental; });\n    if (shouldDiscoverComponents) {\n      discoveringComponent = true; syncCta();\n      loadBundleComponents(root.getAttribute('data-parent-variant-id')).then(function (components) {\n        var products = root.querySelector('.ws-bundle-products');\n        products.innerHTML = '';\n        states.length = 0;\n        (flatMode ? components.slice(0, 1) : components).forEach(function (component, index) {\n          var node = document.createElement('section');\n          node.className = 'ws-bundle-product'; node.setAttribute('data-ws-bundle-product', ''); node.setAttribute('data-ws-bundle-supplemental', 'true'); node.setAttribute('data-component-title', component.title);\n          node.innerHTML = '<button type=\"button\" class=\"ws-bundle-product__toggle\" aria-expanded=\"false\" data-ws-bundle-toggle><span class=\"ws-bundle-product__number\"></span><span class=\"ws-bundle-product__heading\"><strong></strong><small data-ws-bundle-status>Da configurare</small></span><span class=\"ws-bundle-product__chevron\" aria-hidden=\"true\"></span></button><div class=\"ws-bundle-product__panel\" data-ws-bundle-panel hidden><div class=\"ws-bundle-product__dynamic\" data-ws-bundle-dynamic><div class=\"ws-bundle-loading\" role=\"status\">Caricamento delle opzioni prodotto...</div></div></div>';\n          node.querySelector('.ws-bundle-product__number').textContent = String(index + 1);\n          node.querySelector('.ws-bundle-product__heading strong').textContent = component.title;\n          products.appendChild(node);\n          var state = stateForNode(node, component); states.push(state); activate(state);\n        });\n        discoveringComponent = false; syncVariant(); syncCta();\n      }).catch(function (error) {\n        discoveringComponent = false;\n        if (!states.length) root.querySelector('.ws-bundle-products').innerHTML = '<div class=\"ws-bundle-error\" role=\"alert\">' + error.message + '. Verifica il collegamento Shopify Bundles e ricarica la pagina.</div>';\n        syncCta();\n      });\n    }\n    function stopIncomplete(event) { if (!document.documentElement.contains(root)) return false;\n      // The summary form is rendered after the configurator and can replace its\n      // hidden variant input, so refresh it at the exact moment of submission.\n      syncVariant();\n      var missing = states.find(function (state) { return !complete(state); });\n      if (!missing) return false;\n      event.preventDefault(); event.stopImmediatePropagation();\n      var toggle = missing.node.querySelector('[data-ws-bundle-toggle]');\n      if (flatMode) load(missing);\n      else if (toggle.getAttribute('aria-expanded') !== 'true') toggle.click();\n      missing.node.scrollIntoView({ behavior: 'smooth', block: 'center' });\n      return true;\n    }\n    document.addEventListener('click', function (event) {\n      var target = event.target && event.target.closest && event.target.closest('#ws-product-form-summary button[type=\"submit\"], #ws-product-form-summary [data-ws-cta-guard]');\n      if (target) stopIncomplete(event);\n    }, true);\n    function bindForm() {\n      var form = document.getElementById(root.getAttribute('data-form-id'));\n      if (!form || form.dataset.wsBundleValidationBound === '1') return false;\n      form.dataset.wsBundleValidationBound = '1';\n      form.addEventListener('submit', stopIncomplete, true);\n      return true;\n    }\n    if (!bindForm()) {\n      var bindAttempts = 0;\n      var bindTimer = setInterval(function () { bindAttempts += 1; if (bindForm() || bindAttempts >= 40) clearInterval(bindTimer); }, 100);\n    }\n    if (!bindCtaState()) window.setTimeout(bindCtaState, 250);\n    syncVariant();\n  }\n  function boot(scope) { Array.prototype.forEach.call((scope || document).querySelectorAll(ROOT), initialise); }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', function () { boot(document); }); else boot(document);\n  document.addEventListener('shopify:section:load', function (event) { boot(event.target); });\n}());\n"],
  "mappings": "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",
  "names": ["total"]
}
