{
  "version": 3,
  "sources": ["/cdn/shop/t/83/assets/pdp-clean-v4-bundle-v837.js?lly=laley-custom-20260908-illustrations-v848"],
  "sourcesContent": ["/* ============================================================\n   Laley PDP Clean v4 \u2014 bundle v837\n   Modul\u00E6r PDP-runtime. Den gamle v3-monolitten er kun historisk arkiv.\n   Registrerer metoder p\u00E5 LaleyPDP.prototype via PDP.registerModule.\n   Krever pdp-clean-v4-core.js lastet f\u00F8rst (defer-rekkef\u00F8lge i product-clean-v3-1.liquid).\n   ============================================================ */\n(() => {\n  const PDP = window.LaleyPDPCleanV4;\n  if (!PDP || typeof PDP.registerModule !== 'function') {\n    console.error('[PDP] Kjerne mangler \u2014 hopper over modul: bundle');\n    return;\n  }\n  const { cssEscape, escapeHTML } = PDP.utils;\n\n  PDP.registerModule('bundle', {\n    formatNorwegianList(items) {\n      const list = items.map((item) => String(item || '').trim()).filter(Boolean);\n      if (list.length <= 1) return list[0] || '';\n      if (list.length === 2) return `${list[0]} og ${list[1]}`;\n      return `${list.slice(0, -1).join(', ')} og ${list[list.length - 1]}`;\n    },\n\n    bundleSharedSizeInfo(value, sizeGroups = this.bundleSharedSizeGroups || []) {\n      const groupList = Array.from(sizeGroups || []);\n      const sizeIndexes = groupList\n        .map((group) => Number(group.dataset.optionIndex))\n        .filter((index) => Number.isFinite(index));\n      const sizeIndexSet = new Set(sizeIndexes);\n      const selected = this.selectedOptions();\n      const matchesNonSizeSelection = (variant) => selected.every((selectedValue, index) => {\n        if (!selectedValue || sizeIndexSet.has(index)) return true;\n        return variant.options[index] === selectedValue;\n      });\n\n      const exactMatches = this.variants.filter((variant) => (\n        matchesNonSizeSelection(variant)\n        && sizeIndexes.every((index) => variant.options[index] === value)\n      ));\n\n      const parts = groupList.map((group) => {\n        const index = Number(group.dataset.optionIndex);\n        const matchesPart = this.variants.filter((variant) => (\n          matchesNonSizeSelection(variant)\n          && variant.options[index] === value\n        ));\n        return {\n          index,\n          name: this.optionGroupDisplayName(group),\n          exists: matchesPart.length > 0,\n          available: matchesPart.some((variant) => variant.available),\n        };\n      });\n\n      const availableParts = parts.filter((part) => part.available);\n      const unavailableParts = parts.filter((part) => part.exists && !part.available);\n\n      return {\n        value,\n        exactExists: exactMatches.length > 0,\n        exactAvailable: exactMatches.some((variant) => variant.available),\n        availableParts,\n        unavailableParts,\n        canMix: availableParts.length > 0 && !exactMatches.some((variant) => variant.available),\n      };\n    },\n\n    bundleNearestAvailableValue(group, wantValue) {\n      // N\u00E6rmeste kj\u00F8pbare st\u00F8rrelse i gruppen; \u00F8nsket f\u00F8rst, deretter\n      // n\u00E6rmeste med preferanse for mindre (M utsolgt -> S f\u00F8r L).\n      const values = Array.from(group.querySelectorAll('[data-pdp-option-input]')).map((input) => input.value);\n      const availableAt = (index) => {\n        const value = values[index];\n        if (value == null) return null;\n        const info = this.bundleSharedSizeInfo(value, [group]);\n        return info.availableParts.length > 0 ? value : null;\n      };\n      const wantIndex = values.indexOf(wantValue);\n      if (wantIndex === -1) {\n        for (let i = 0; i < values.length; i += 1) { const hit = availableAt(i); if (hit) return hit; }\n        return null;\n      }\n      for (let distance = 0; distance < values.length; distance += 1) {\n        const below = availableAt(wantIndex - distance);\n        if (below) return below;\n        if (distance > 0) {\n          const above = availableAt(wantIndex + distance);\n          if (above) return above;\n        }\n      }\n      return null;\n    },\n\n    bundleSharedStatusCopy(value, info = this.bundleSharedSizeInfo(value)) {\n      const label = String(value || '').trim();\n      if (!label) return { title: '', copy: '' };\n      if (info.exactAvailable) return { title: '', copy: '' };\n      const availableParts = this.formatNorwegianList(info.availableParts.map((part) => `${part.name} ${label}`));\n      const unavailableParts = this.formatNorwegianList(info.unavailableParts.map((part) => part.name));\n      if (!info.exactExists) {\n        return {\n          title: `${label} finnes ikke samlet`,\n          copy: 'Miks st\u00F8rrelser og velg st\u00F8rrelse per plagg.',\n        };\n      }\n      if (info.availableParts.length > 0 && info.unavailableParts.length > 0) {\n        return {\n          title: `${unavailableParts} utsolgt i ${label}`,\n          copy: `${availableParts} finnes. Miks st\u00F8rrelser for \u00E5 kj\u00F8pe settet.`,\n        };\n      }\n      if (info.availableParts.length > 1 && info.unavailableParts.length === 0) {\n        return {\n          title: `${label} kan ikke kj\u00F8pes samlet`,\n          copy: 'Miks st\u00F8rrelser og velg en tilgjengelig kombinasjon.',\n        };\n      }\n      return {\n        title: `${label} er utsolgt`,\n        copy: 'F\u00E5 varsel n\u00E5r st\u00F8rrelsen er tilbake.',\n      };\n    },\n\n    bundleMixedStatusCopy(variant) {\n      if (!variant || variant.available) return null;\n      const sharedVisible = this.section.querySelector('[data-pdp-bundle-shared]:not([hidden])');\n      if (sharedVisible) return null;\n      const groups = Array.from(this.bundleSharedSizeGroups || []);\n      if (groups.length < 2) return null;\n\n      const bundleSizeIndexes = this.bundleSizeOptionIndexes();\n      const selected = this.selectedOptions();\n      const matchesNonBundleSelection = (candidate) => selected.every((selectedValue, index) => {\n        if (!selectedValue || bundleSizeIndexes.has(index)) return true;\n        return candidate.options[index] === selectedValue;\n      });\n\n      const parts = groups.map((group) => {\n        const index = Number(group.dataset.optionIndex);\n        const value = group.querySelector('[data-pdp-option-input]:checked')?.value || selected[index] || variant.options?.[index] || '';\n        const matches = this.variants.filter((candidate) => (\n          matchesNonBundleSelection(candidate)\n          && candidate.options[index] === value\n        ));\n        return {\n          name: this.optionGroupDisplayName(group),\n          value,\n          exists: matches.length > 0,\n          available: matches.some((candidate) => candidate.available),\n        };\n      }).filter((part) => part.value);\n\n      const unavailable = parts.filter((part) => part.exists && !part.available);\n      if (!unavailable.length) return null;\n      const available = parts.filter((part) => part.available);\n      const unavailableLabel = this.formatNorwegianList(unavailable.map((part) => `${part.name} ${part.value}`));\n      const unavailableNames = this.formatNorwegianList(unavailable.map((part) => part.name));\n      const availableLabel = this.formatNorwegianList(available.map((part) => `${part.name} ${part.value}`));\n      return {\n        title: `${unavailableLabel} er utsolgt`,\n        copy: availableLabel\n          ? `${availableLabel} finnes. Velg en annen st\u00F8rrelse p\u00E5 ${unavailableNames}.`\n          : 'Velg en annen st\u00F8rrelse eller f\u00E5 varsel n\u00E5r den er tilbake.',\n      };\n    },\n\n    showBundleSharedNote(pill) {\n      const note = this.bundleShared?.querySelector('[data-pdp-bundle-shared-note]');\n      if (!note) return;\n      const title = pill?.dataset.statusTitle || '';\n      const copy = pill?.dataset.statusCopy || '';\n      if (!title && !copy) {\n        note.hidden = true;\n        note.removeAttribute('aria-label');\n        note.replaceChildren();\n        return;\n      }\n      note.innerHTML = `${title ? `<strong>${escapeHTML(title)}</strong>` : ''}${copy ? `<span>${escapeHTML(copy)}</span>` : ''}`;\n      note.setAttribute('aria-label', [title, copy].filter(Boolean).join('. '));\n      note.hidden = false;\n    },\n\n    hideBundleSharedNote() {\n      const note = this.bundleShared?.querySelector('[data-pdp-bundle-shared-note]');\n      if (!note) return;\n      note.hidden = true;\n      note.removeAttribute('aria-label');\n      note.replaceChildren();\n    },\n\n    bundleSizeOptionIndexes() {\n      const groups = Array.from(this.bundleSharedSizeGroups || []);\n      if (groups.length < 2) return new Set();\n      return new Set(groups\n        .map((group) => Number(group.dataset.optionIndex))\n        .filter((index) => Number.isFinite(index)));\n    },\n\n    async bindBundleAutoDiscover() {\n      const bundle = this.bundle;\n      if (!bundle || bundle.dataset.pdpBundleAuto !== 'true') return;\n      // Bundle pieces must come from Shopify Bundles.\n      // Search-based guessing/manual fallbacks showed wrong products in \"Settet inkluderer\".\n      bundle.removeAttribute('data-pdp-bundle-auto');\n      bundle.querySelector('[data-pdp-bundle-options]')?.remove();\n      bundle.querySelector('[data-pdp-bundle-tags]')?.remove();\n      const piecesCountEl = bundle.querySelector('[data-pdp-bundle-pieces-count]');\n      const expectedPieces = Number(bundle.dataset.setPieces || 0);\n      if (piecesCountEl && expectedPieces > 0) piecesCountEl.textContent = String(expectedPieces);\n      bundle.querySelector('.pdp-clean__bundle-icons')?.remove();\n    },\n\n    async bindBundleParentFallback() {\n      // \"Kj\u00F8p som sett\" skal server-rendres fra custom.set_parent.\n      // Klient-s\u00F8k p\u00E5 tittel ga falske settkoblinger og er fjernet med vilje.\n    },\n\n    updateBundlePieceUI(bundle, foundPieces) {\n      const piecesCount = foundPieces.length;\n      const sumComponents = foundPieces.reduce((sum, p) => sum + (Number(p.price) || 0), 0);\n      // Lagre p\u00E5 dataset slik at updateBundle (kalt ved hver variant-change)\n      // kan reberegne savings mot current variant.price\n      bundle.dataset.bundleComponentSum = String(sumComponents);\n\n      const piecesCountEl = bundle.querySelector('[data-pdp-bundle-pieces-count]');\n      if (piecesCountEl) piecesCountEl.textContent = String(piecesCount);\n\n      // Trigger initial savings-render mot current variant\n      if (this.currentVariant) this.updateBundle(this.currentVariant);\n    },\n\n    bindBundleSizeSync() {\n      if (!this.optionGroups || this.optionGroups.length < 2) return;\n      const isBundle = !!this.section.querySelector('[data-pdp-bundle]');\n      if (!isBundle) return;\n\n      const isSizeGroup = (g) => {\n        const legend = (g.querySelector('legend')?.textContent || '').toLowerCase();\n        return !g.hasAttribute('data-pdp-color-group') && !/farge|color|colour/.test(legend);\n      };\n      const sizeGroups = this.optionGroups.filter(isSizeGroup);\n      if (sizeGroups.length < 2) return;\n\n      const valuesFor = (group) => Array.from(group.querySelectorAll('[data-pdp-option-input]')).map(i => i.value);\n      const firstValues = valuesFor(sizeGroups[0]);\n      const sortedKey = firstValues.slice().sort().join('|');\n      const allMatch = sizeGroups.every(g => valuesFor(g).sort().join('|') === sortedKey);\n      if (!allMatch) return;\n\n      const shared = document.createElement('div');\n      // picker-klassen gir pillene N\u00D8YAKTIG samme metrikk-regler som enkeltprodukt\n      shared.className = 'pdp-clean__picker pdp-clean__bundle-shared';\n      shared.setAttribute('data-pdp-bundle-shared', '');\n      const pillsHtml = firstValues.map((v) => {\n        const safeValue = escapeHTML(v);\n        return `\n          <button type=\"button\" role=\"radio\" aria-checked=\"false\" class=\"pdp-clean__option pdp-clean__option--button pdp-clean__bundle-shared-pill\" data-value=\"${safeValue}\">\n            <span class=\"pdp-clean__option-name\">${safeValue}</span>\n            <span class=\"pdp-clean__option-stock\" data-pdp-bundle-shared-pill-status hidden></span>\n          </button>\n        `;\n      }).join('');\n      // Product-info moves the drawer to <body> before the bundle module runs.\n      // The server-rendered trigger remains in this section and is therefore\n      // the stable, accessible source for the shared picker's aria-controls.\n      const sizeGuideId = this.section\n        .querySelector('[data-pdp-sizeguide-open][aria-controls]')\n        ?.getAttribute('aria-controls') || '';\n      const sizeGuideAction = sizeGuideId\n        ? `<button type=\"button\" class=\"pdp-clean__size-guide pdp-clean__bundle-shared-guide lly-link-underline\" data-pdp-sizeguide-open aria-controls=\"${escapeHTML(sizeGuideId)}\" aria-expanded=\"false\">St\u00F8rrelsesguide</button>`\n        : '';\n      // Felles st\u00F8rrelse er standard n\u00E5r alle plagg faktisk deler st\u00F8rrelsesskala.\n      // Det gir ett raskt valg for majoriteten, mens per-plagg-valg fortsatt er\n      // tilgjengelig som en rolig sekund\u00E6rhandling.\n      shared.innerHTML = `\n        <div class=\"pdp-clean__picker-label pdp-clean__bundle-shared-head\">\n          <span>St\u00F8rrelse: <span class=\"pdp-clean__picker-label-value\" data-pdp-bundle-shared-value>Velg</span></span>\n          <span class=\"pdp-clean__bundle-shared-actions\">\n            ${sizeGuideAction}\n          </span>\n        </div>\n        <div class=\"pdp-clean__picker-options pdp-clean__bundle-shared-pills\" data-pdp-size-count=\"${firstValues.length}\" role=\"radiogroup\" aria-label=\"Velg samme st\u00F8rrelse til hele settet\">${pillsHtml}</div>\n        <p class=\"pdp-clean__bundle-shared-note\" data-pdp-bundle-shared-note role=\"status\" hidden></p>\n      `;\n      this.optionGroups[0].insertAdjacentElement('beforebegin', shared);\n\n      const modeControl = document.createElement('div');\n      modeControl.className = 'pdp-clean__bundle-size-modes';\n      modeControl.setAttribute('role', 'group');\n      modeControl.setAttribute('aria-label', 'Hvordan vil du velge st\u00F8rrelse?');\n      modeControl.innerHTML = `\n        <button type=\"button\" class=\"pdp-clean__bundle-size-mode is-selected\" data-pdp-bundle-mode=\"shared\" aria-pressed=\"true\">\n          <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n            <rect x=\"2.75\" y=\"4.25\" width=\"14.5\" height=\"11.5\" rx=\"1.5\"></rect>\n            <path d=\"M6 8h8M6 12h8\"></path>\n          </svg>\n          <span>Bruk samme st\u00F8rrelse</span>\n        </button>\n        <button type=\"button\" class=\"pdp-clean__bundle-size-mode\" data-pdp-bundle-mode=\"mixed\" aria-pressed=\"false\">\n          <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n            <rect x=\"2.75\" y=\"2.75\" width=\"10\" height=\"11.5\" rx=\"1.5\"></rect>\n            <rect x=\"7.25\" y=\"5.75\" width=\"10\" height=\"11.5\" rx=\"1.5\"></rect>\n          </svg>\n          <span>Velg st\u00F8rrelse per plagg</span>\n        </button>\n      `;\n      shared.insertAdjacentElement('afterend', modeControl);\n\n      this.bundleShared = shared;\n      this.bundleSharedSizeGroups = sizeGroups;\n      this.bundleSizeModes = modeControl;\n      sizeGroups.forEach((g) => g.hidden = true);\n\n      const sharedPills = Array.from(shared.querySelectorAll('.pdp-clean__bundle-shared-pill'));\n      const sharedModeToggle = modeControl.querySelector('[data-pdp-bundle-mode=\"shared\"]');\n      const mixedModeToggle = modeControl.querySelector('[data-pdp-bundle-mode=\"mixed\"]');\n      this.updateBundleSharedState();\n\n      const setBundleSizeMode = (mode) => {\n        const mixed = mode === 'mixed';\n        shared.hidden = mixed;\n        sizeGroups.forEach((group) => { group.hidden = !mixed; });\n        [sharedModeToggle, mixedModeToggle].forEach((button) => {\n          const selected = button.dataset.pdpBundleMode === mode;\n          button.classList.toggle('is-selected', selected);\n          button.setAttribute('aria-pressed', selected ? 'true' : 'false');\n        });\n      };\n\n      // Auto-fallback (Sondre juli-26): n\u00E5r INGEN felles st\u00F8rrelse er kj\u00F8pbar\n      // (delene finnes bare i ulike st\u00F8rrelser) er den delte velgeren en\n      // blindvei \u2014 en vegg av UTSOLGT selv om plaggene kan kj\u00F8pes hver for\n      // seg. \u00C5pne per-plagg-valget direkte i stedet.\n      const anySharedAvailable = firstValues.some((value) => {\n        const info = this.bundleSharedSizeInfo(value, sizeGroups);\n        return info.exactExists && info.exactAvailable;\n      });\n      if (!anySharedAvailable) {\n        modeControl.hidden = true;\n        shared.hidden = true;\n        sizeGroups.forEach((g) => { g.hidden = false; });\n        this.updateVariantStatus?.(this.currentVariant);\n        return;\n      }\n\n      const openMixedSizePicker = (value) => {\n        setBundleSizeMode('mixed');\n        this.hideBundleSharedNote();\n        let changed = false;\n        sizeGroups.forEach((group) => {\n          const target = this.bundleNearestAvailableValue(group, value);\n          if (!target) return;\n          const match = group.querySelector(`[data-pdp-option-input][value=\"${cssEscape(target)}\"]`);\n          if (match && !match.disabled) {\n            match.checked = true;\n            match.dispatchEvent(new Event('change', { bubbles: true }));\n            changed = true;\n          }\n        });\n        this.updateVariantStatus?.(this.currentVariant);\n        return changed;\n      };\n\n      sharedPills.forEach((pill) => {\n        this.on(pill, 'click', () => {\n          if (pill.disabled) return;\n          const value = pill.dataset.value;\n          if (pill.dataset.canMix === 'true' || pill.dataset.soldout === 'true') {\n            // Sondre juli-26: delt st\u00F8rrelse som er delvis utsolgt skal ikke\n            // v\u00E6re en blindvei. Helt utsolgt fellesst\u00F8rrelse skal heller ikke\n            // l\u00E5se underliggende inputs p\u00E5 utsolgt verdi \u2014 velg n\u00E6rmeste\n            // kj\u00F8pbare st\u00F8rrelse per plagg.\n            openMixedSizePicker(value);\n            return;\n          }\n          sharedPills.forEach((p) => {\n            const selected = p === pill;\n            p.classList.toggle('is-selected', selected);\n            p.setAttribute('aria-checked', selected ? 'true' : 'false');\n          });\n          const sharedValue = shared.querySelector('[data-pdp-bundle-shared-value]');\n          if (sharedValue) sharedValue.textContent = value;\n          if (pill.dataset.soldout === 'true' || pill.dataset.impossible === 'true') this.showBundleSharedNote(pill);\n          else this.hideBundleSharedNote();\n          sizeGroups.forEach((group) => {\n            const match = group.querySelector(`[data-pdp-option-input][value=\"${cssEscape(value)}\"]`);\n            if (match && !match.disabled) {\n              match.checked = true;\n              match.dispatchEvent(new Event('change', { bubbles: true }));\n            }\n          });\n        });\n      });\n\n      this.on(sharedModeToggle, 'click', () => {\n        setBundleSizeMode('shared');\n        this.updateBundleSharedState();\n        this.updateVariantStatus(this.currentVariant);\n      });\n\n      this.on(mixedModeToggle, 'click', () => {\n        setBundleSizeMode('mixed');\n        this.hideBundleSharedNote();\n        this.updateVariantStatus(this.currentVariant);\n      });\n    },\n\n    updateBundleSharedState() {\n      const shared = this.bundleShared || this.section.querySelector('[data-pdp-bundle-shared]');\n      const sizeGroups = this.bundleSharedSizeGroups || [];\n      if (!shared || !sizeGroups.length) return;\n\n      shared.querySelectorAll('.pdp-clean__bundle-shared-pill').forEach((pill) => {\n        const value = pill.dataset.value || '';\n        const info = this.bundleSharedSizeInfo(value, sizeGroups);\n        const copy = this.bundleSharedStatusCopy(value, info);\n        const soldOut = info.exactExists && !info.exactAvailable;\n        const impossible = !info.exactExists;\n        const status = pill.querySelector('[data-pdp-bundle-shared-pill-status]');\n\n        pill.classList.toggle('is-unavailable', (soldOut || impossible) && !info.canMix);\n        pill.dataset.soldout = soldOut && !info.canMix ? 'true' : 'false';\n        pill.dataset.impossible = impossible && !info.canMix ? 'true' : 'false';\n        pill.dataset.canMix = info.canMix ? 'true' : 'false';\n        pill.dataset.statusTitle = copy.title || '';\n        pill.dataset.statusCopy = copy.copy || '';\n        pill.title = copy.title && copy.copy ? `${copy.title}. ${copy.copy}` : (copy.title || '');\n        pill.disabled = impossible && !info.canMix;\n        pill.setAttribute('aria-disabled', pill.disabled ? 'true' : 'false');\n\n        if (status) {\n          if (info.canMix) {\n            // Delvis tilgjengelig: klikk \u00E5pner per-plagg med n\u00E6rmeste\n            // st\u00F8rrelse \u2014 pillen skal ikke se ut som en utsolgt-vegg.\n            status.textContent = '';\n            status.hidden = true;\n          } else {\n            status.textContent = soldOut ? 'Utsolgt' : (impossible ? 'Ikke mulig' : '');\n            status.hidden = !(soldOut || impossible);\n          }\n        }\n\n        if (pill.classList.contains('is-selected')) {\n          if (soldOut || impossible) this.showBundleSharedNote(pill);\n          else this.hideBundleSharedNote();\n        }\n      });\n    },\n\n    updateBundle(variant) {\n      if (!this.bundle || !variant) return;\n      // Variant-pris oppdateres slik at savings beregnes mot riktig pris\n      this.bundle.dataset.bundlePrice = variant.price;\n\n      // P\u00E5 settets egen PDP vinner produktets compare-at n\u00E5r settet er p\u00E5 salg.\n      // Uten salg brukes dagens komponentpriser, med metafeltet som fallback.\n      const manualCompare = Number(this.bundle.dataset.bundleCompareCents || 0);\n      const autoSum = Number(this.bundle.dataset.bundleComponentSum || 0);\n      const saleCompare = Number(variant.compareAtPrice || 0) > Number(variant.price || 0)\n        ? Number(variant.compareAtPrice)\n        : 0;\n      const reference = saleCompare > 0\n        ? saleCompare\n        : (autoSum > variant.price ? autoSum : manualCompare);\n      const referenceLabel = saleCompare > 0 ? 'F\u00F8r' : 'Enkeltvis';\n      const savings = reference > 0 ? (reference - variant.price) : 0;\n      const savingsPercent = savings > 0 ? Math.round((savings / reference) * 100) : 0;\n      const showSavingsPercent = savingsPercent >= 20;\n\n      // Verdilinjen ved prisen viser hele regnestykket, ikke bare en rabattp\u00E5stand.\n      const headline = this.section.querySelector('[data-pdp-bundle-headline]');\n      const headlineReferenceWrap = this.section.querySelector('[data-pdp-bundle-headline-reference-wrap]');\n      const headlineReferenceLabel = this.section.querySelector('[data-pdp-bundle-headline-reference-label]');\n      const headlineReference = this.section.querySelector('[data-pdp-bundle-headline-reference]');\n      const headlineSeparator = this.section.querySelector('[data-pdp-bundle-headline-separator]');\n      const headlineAmount = this.section.querySelector('[data-pdp-bundle-headline-amount]');\n      if (headline && headlineReference && headlineAmount) {\n        if (savings > 0) {\n          if (headlineReferenceLabel) headlineReferenceLabel.textContent = referenceLabel;\n          headlineReference.textContent = this.money(reference);\n          if (headlineReferenceWrap) headlineReferenceWrap.hidden = saleCompare > 0;\n          if (headlineSeparator) headlineSeparator.hidden = saleCompare > 0;\n          headlineAmount.textContent = `${this.money(savings)}${showSavingsPercent ? ` (${savingsPercent}%)` : ''}`;\n          headline.setAttribute(\n            'aria-label',\n            `Settpris ${this.money(variant.price)}. ${referenceLabel} ${this.money(reference)}. Du sparer ${this.money(savings)}${showSavingsPercent ? `, ${savingsPercent} prosent` : ''}.`\n          );\n          headline.hidden = false;\n        } else {\n          headline.hidden = true;\n          headline.removeAttribute('aria-label');\n        }\n      }\n      // Bundle-copy: vis kun pieces-count (savings vises i headline \u00F8verst, ingen duplikater)\n      const copyEl = this.bundle.querySelector('[data-pdp-bundle-copy]');\n      const piecesCount = Number(this.bundle.dataset.setPieces || 0);\n      if (copyEl) {\n        if (savings > 0) {\n          // Skjul duplikat-tekst n\u00E5r savings-headline allerede vises\n          copyEl.hidden = true;\n        } else {\n          copyEl.hidden = false;\n          copyEl.innerHTML = `<span data-pdp-bundle-pieces-count>${piecesCount}</span> deler inkludert`;\n        }\n      }\n    },\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
