{
  "version": 3,
  "sources": ["/cdn/shop/t/16/assets/thz-cards.js?t=1794361903712"],
  "sourcesContent": ["/* THZ builder: picture options (border, fixing kit) shown as cards with the name and price inside each card,\n   the same as the size, tint and flag cards. The options app's own lists stay underneath and do the work. */\n(function () {\n  'use strict';\n  if (!document.querySelector('.thz-bld')) return;\n  function txt(el) { return el ? (el.textContent || '').replace(/\\s+/g, ' ').trim() : ''; }\n  function esc(v) { return String(v).replace(/[&<>\"]/g, function (c) { return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c]; }); }\n  function prices() {\n    var m = {};\n    try {\n      var a = window.mwApo && window.mwApo.instances && window.mwApo.instances()[0];\n      if (a) a.getOptions().forEach(function (o) { (a.getValues(o.id) || []).forEach(function (v) { m[v.id] = v.price; }); });\n    } catch (e) {}\n    return m;\n  }\n  function money(n) { return '\u00A3' + (Math.round(n * 100) / 100).toFixed(2); }\n\n  var css = document.createElement('style');\n  css.textContent =\n    'html.thz-bld-on body .mw-option--type-swatch .mw-option__container{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:4px 3px}' +\n    '@media (max-width:560px){html.thz-bld-on body .mw-option--type-swatch .mw-option__container{grid-template-columns:repeat(2,minmax(0,1fr))}}' +\n    'html.thz-bld-on body .mw-option--type-swatch .mw-option__value,html.thz-bld-on body .mw-option--type-swatch .mw-option__value>.mw-stack,html.thz-bld-on body .mw-option--type-swatch .mw-option__value .mw-stack__item{width:100%;min-width:0}' +\n    'html.thz-bld-on body .mw-option--type-swatch .mw-option__value .mw-label{display:block;height:100%;padding:10px;border:2px solid #e6e0f0;border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s,background .15s}' +\n    'html.thz-bld-on body .mw-option--type-swatch .mw-option__value .mw-label:hover{border-color:#b998f9}' +\n    'html.thz-bld-on body .mw-option--type-swatch .mw-option__value--selected .mw-label{border-color:#7b2ff7;background:#f7f2ff;box-shadow:0 0 0 3px rgba(123,47,247,.15)}' +\n    'html.thz-bld-on body .mw-option--type-swatch .mw-option__value .mw-label>.mw-stack{display:block}' +\n    'html.thz-bld-on body .mw-option--type-swatch .mw-stack__item-swatch{display:flex;flex-direction:column;align-items:flex-start;gap:3px}' +\n    'html.thz-bld-on body .mw-option--type-swatch .mw-option__swatch-media{width:100%!important;height:72px!important;margin-bottom:6px;padding:4px;border:0!important;box-shadow:none!important;background:#f4f1f8;border-radius:9px!important}' +\n    'html.thz-bld-on body .mw-option--type-swatch .mw-option__swatch-media img{object-fit:contain}' +\n    '.thz-sw__n{font-size:14px;font-weight:800;line-height:1.2;color:#16101f}' +\n    '.thz-sw__s{font-size:12px;line-height:1.3;color:#6b6378}' +\n    '.thz-sw__p{margin-top:2px;font-size:13.5px;font-weight:800;color:#2c0b4f}' +\n    // The options app's own name line under the pictures and the choice next to the heading: the cards say it now.\n    'html.thz-bld-on .mw-option--type-swatch>.mw-stack>.mw-stack__item>.mw-text{display:none!important}' +\n    'html.thz-bld-on .mw-option--type-swatch .mw-accumulated-title{display:none!important}' +\n    // Plate preview: one fixed height whether it shows a pair or a single plate, so the page under it doesn't jump\n    // up and down when switching between Front & Rear, Front only and Rear only. The summary line stays on one line.\n    '.thz-bld .thz-3d__canvas{height:236px!important}' +\n    '@media screen and (min-width:750px){.thz-bld .thz-3d__canvas{height:310px!important}}' +\n    '@media screen and (min-width:990px){.thz-bld .thz-3d__canvas{height:440px!important}}' +\n    '@media screen and (max-width:749px){.thz-bld .thz-bld__sum{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}' +\n    // The options app's \"Selections will add \u00A3x to the price\" line: the total in the bottom bar already updates live.\n    'html.thz-bld-on body .mws-price,html.thz-bld-on.thz-last body .mws-price{display:none!important}';\n  document.head.appendChild(css);\n\n  function cards() {\n    var pm = null;\n    document.querySelectorAll('.mw-option--type-swatch .mw-option__value').forEach(function (v) {\n      var inp = v.querySelector('input'), slot = v.querySelector('.mw-stack__item-swatch');\n      if (!inp || !slot) return;\n      if (!pm) pm = prices();\n      var full = inp.getAttribute('aria-label') || '', p = pm[inp.value];\n      var key = full + '|' + p;\n      var box = slot.querySelector('.thz-sw');\n      if (box && box.getAttribute('data-k') === key) return;\n      var parts = full.split(/\\s+-\\s+/), name = parts.shift(), sub = parts.join(' \u2013 ');\n      var price = /^\\s*no\\b/i.test(full) || p === 0 ? 'Included' : (typeof p === 'number' ? '+' + money(p) : '');\n      if (!box) { box = document.createElement('span'); box.className = 'thz-sw'; box.style.display = 'contents'; slot.appendChild(box); }\n      box.setAttribute('data-k', key);\n      box.innerHTML = '<span class=\"thz-sw__n\">' + esc(name) + '</span>' + (sub ? '<span class=\"thz-sw__s\">' + esc(sub) + '</span>' : '') +\n        (price ? '<span class=\"thz-sw__p\">' + esc(price) + '</span>' : '');\n    });\n  }\n  var q = false;\n  function later() { if (!q) { q = true; requestAnimationFrame(function () { q = false; cards(); placeNotices(); }); } }\n  if (window.MutationObserver) new MutationObserver(function (ms) {\n    for (var i = 0; i < ms.length; i++) { var t = ms[i].target; if (!(t.closest && t.closest('.thz-sw'))) { later(); return; } }\n  }).observe(document.body, { childList: true, subtree: true });\n  document.addEventListener('change', later, true);\n  cards();\n  var n = 0, t = setInterval(function () { cards(); if (++n > 10) clearInterval(t); }, 700);\n\n  // Notices (not road legal, not available, please choose...) are shown at the top of each step, above the\n  // option cards, so they can't be missed. The builder's own notices stay where its scripts put them but are\n  // hidden; a copy is shown in a notice box under the step heading. To stop the page jumping while you tap:\n  // the tint step always shows its \"not road legal\" line, and the plate spacing box keeps its height\n  // whichever message it shows.\n  var SRC = '.thz-tn__warn,.thz-big-note,.thz-nob-note,.thz-fl__hex,.thz-q__warn,.thz-q__note,.thz-q__err,.thz-ntc-hex,' +\n    '.thz-bld__err:not([data-thz-reg-err]):not(.thz-pick-msg)';\n  var ncss = document.createElement('style');\n  ncss.textContent =\n    'html.thz-bld-on :is(' + SRC + '):not(.thz-ntc-item){display:none!important}' +\n    '.thz-ntc{margin:0 0 12px}.thz-ntc:empty{display:none}' +\n    '.thz-ntc .thz-ntc-item{display:block;margin:0 0 8px!important}.thz-ntc .thz-ntc-item:last-child{margin-bottom:0!important}' +\n    '.thz-ntc .thz-q__note{display:flex}' +\n    '.thz-ntc-warn{padding:9px 11px;border-radius:10px;background:#fff4e5;border:1px solid #f5c46b;color:#6b3d00;font-size:13px;line-height:1.4}' +\n    '.thz-ntc-info{padding:9px 11px;border-radius:10px;background:#f4effd;border:1px solid #e6dcfb;color:#3b2a57;font-size:13px;line-height:1.4}' +\n    '.thz-ntc--sp{min-height:62px;margin:6px 0 10px}@media (max-width:749px){.thz-ntc--sp{min-height:76px}}';\n  document.head.appendChild(ncss);\n  var TINT_WARN = 'Tinted and smoked plates are <strong>not road legal</strong>. They are for shows, events and off-road display only.';\n  function shown(el) { return !el.hidden && !el.closest('[hidden]') && !!txt(el); }\n  function headEnd(panel) {\n    // The last of the heading lines at the top of the step (heading, sub lines, show plate note).\n    var last = null;\n    for (var c = panel.firstElementChild; c; c = c.nextElementSibling) {\n      if (c.matches('h2, .thz-bld__sub, .thz-shownote, .thz-ntc')) { if (!c.classList.contains('thz-ntc')) last = c; continue; }\n      if (c.matches('style, script')) continue;\n      break;\n    }\n    return last;\n  }\n  function panelFor(el) {\n    var p = el.closest('.thz-bld__panel');\n    if (p) return p;\n    if (el.closest('.thz-fl')) return document.querySelector('.thz-bld__panel[data-kind=\"flag\"]');\n    var o = el.closest('.mw-option');\n    var n = o && o.getAttribute('data-thz-step');\n    return n ? document.querySelector('.thz-bld__panel[data-panel=\"' + n + '\"]') : null;\n  }\n  function fill(box, items) {\n    var sig = items.map(function (x) { return x.className + ':' + x.innerHTML; }).join('|');\n    if (box.getAttribute('data-sig') === sig) return;\n    box.setAttribute('data-sig', sig);\n    box.innerHTML = '';\n    items.forEach(function (x) { box.appendChild(x); });\n    // A new \"please choose\" message: make sure it's on screen (the builder scrolls to its own, now hidden, copy).\n    if (items.some(function (x) { return x.matches('.thz-bld__err,.thz-q__err'); })) {\n      var r = box.getBoundingClientRect(), barH = (document.querySelector('.thz-bld__bar') || { offsetHeight: 0 }).offsetHeight;\n      if (r.top < 70 || r.bottom > window.innerHeight - barH) setTimeout(function () { box.scrollIntoView({ behavior: 'smooth', block: 'center' }); }, 60);\n    }\n  }\n  function copyOf(el) {\n    var c = el.cloneNode(true);\n    c.removeAttribute('hidden'); c.removeAttribute('id'); c.classList.add('thz-ntc-item');\n    if (c.matches('.thz-big-note,.thz-nob-note,.thz-ntc-hex')) c.classList.add('thz-ntc-warn');\n    return c;\n  }\n  function item(cls, html) { var p = document.createElement('p'); p.className = 'thz-ntc-item ' + cls; p.innerHTML = html; return p; }\n  var placing = false;\n  function placeNotices() {\n    if (placing) return;\n    placing = true;\n    try {\n      // The hex note at the bottom of the Extras step.\n      document.querySelectorAll('.thz-bld__panel[data-kind=\"extras\"] > p.thz-bld__sub').forEach(function (p) {\n        if (/hex/i.test(p.textContent) && !p.classList.contains('thz-ntc-hex')) p.classList.add('thz-ntc-hex');\n      });\n      // Plate spacing: one box above the two spacing buttons.\n      var spWarn = document.querySelector('.thz-q__warn:not(.thz-ntc-item)');\n      if (spWarn) {\n        var wrap = spWarn.parentNode, btn = wrap.querySelector('.thz-q__btn'), rowEl = btn && btn.parentNode;\n        while (rowEl && rowEl.parentNode !== wrap) rowEl = rowEl.parentNode;\n        var sp = wrap.querySelector(':scope > .thz-ntc--sp');\n        if (rowEl && (!sp || sp.nextElementSibling !== rowEl)) {\n          if (!sp) { sp = document.createElement('div'); sp.className = 'thz-ntc thz-ntc--sp'; sp.setAttribute('aria-live', 'polite'); }\n          wrap.insertBefore(sp, rowEl);\n        }\n        if (sp) {\n          var note = document.querySelector('.thz-q__note:not(.thz-ntc-item)'), err = wrap.querySelector('.thz-q__err:not(.thz-ntc-item)');\n          var list = [];\n          if (shown(spWarn)) list.push(copyOf(spWarn));\n          else if (note && shown(note)) list.push(copyOf(note));\n          else list.push(item('thz-ntc-info', 'Road legal spacing follows the UK DVLA rules. Show plate spacing lets you space it your way, but it is not road legal.'));\n          if (err && shown(err)) list.push(copyOf(err));\n          fill(sp, list);\n        }\n      }\n      // Every other step: a notice box under the step heading.\n      var byPanel = {};\n      document.querySelectorAll(SRC).forEach(function (el) {\n        if (el.classList.contains('thz-ntc-item') || el.closest('.thz-ntc')) return;\n        if (el.matches('.thz-q__warn,.thz-q__note,.thz-q__err')) return; // plate spacing, done above\n        var p = panelFor(el);\n        if (!p) return;\n        var k = p.getAttribute('data-panel');\n        (byPanel[k] = byPanel[k] || { p: p, items: [] });\n        if (shown(el) && !el.matches('.thz-tn__warn')) byPanel[k].items.push(copyOf(el));\n      });\n      document.querySelectorAll('.thz-bld__panel').forEach(function (p) {\n        var k = p.getAttribute('data-panel'), rec = byPanel[k] || { p: p, items: [] };\n        var tint = p.getAttribute('data-kind') === 'tint';\n        if (tint) {\n          var off = p.querySelector('[data-thz-notint]');\n          if (!(off && !off.hidden)) rec.items.unshift(item('thz-ntc-warn', TINT_WARN));\n        }\n        var box = p.querySelector(':scope > .thz-ntc:not(.thz-ntc--sp)');\n        if (!rec.items.length && !box) return;\n        if (!box) { box = document.createElement('div'); box.className = 'thz-ntc'; box.setAttribute('aria-live', 'polite'); }\n        var after = headEnd(p);\n        if (after ? after.nextElementSibling !== box : p.firstElementChild !== box) p.insertBefore(box, after ? after.nextElementSibling : p.firstElementChild);\n        fill(box, rec.items);\n      });\n    } finally { placing = false; }\n  }\n  placeNotices();\n  var pn = 0, pt = setInterval(function () { placeNotices(); if (++pn > 20) clearInterval(pt); }, 300);\n})();\n\n/* Next / Back buttons on phones. If the page is still gliding after a swipe, or Safari's bottom bar is sliding back\n   in, the phone can use up the first tap just to stop the movement, so the button seemed to need two taps.\n   Here a quick tap on the button always counts once: it is handled straight away and the phone's own late\n   click is ignored, so a step is never skipped. */\n(function () {\n  'use strict';\n  var bar = document.querySelector('.thz-bld__bar');\n  if (!bar || !('ontouchstart' in window)) return;\n  var css = document.createElement('style');\n  css.textContent = '.thz-bld__bar{z-index:30!important}.thz-bld__bar button{touch-action:manipulation}';\n  document.head.appendChild(css);\n  var btn = null, sx = 0, sy = 0, st = 0, done = 0;\n  bar.addEventListener('touchstart', function (e) {\n    btn = e.target.closest && e.target.closest('[data-thz-next],[data-thz-back]');\n    if (!btn || e.touches.length > 1) { btn = null; return; }\n    sx = e.touches[0].clientX; sy = e.touches[0].clientY; st = Date.now();\n  }, { passive: true });\n  bar.addEventListener('touchmove', function (e) {\n    if (btn && (Math.abs(e.touches[0].clientX - sx) > 12 || Math.abs(e.touches[0].clientY - sy) > 12)) btn = null;\n  }, { passive: true });\n  bar.addEventListener('touchend', function (e) {\n    var b = btn; btn = null;\n    if (!b || b.disabled || b.hidden || Date.now() - st > 800) return;\n    var t = e.changedTouches[0], r = b.getBoundingClientRect();\n    if (t.clientX < r.left - 8 || t.clientX > r.right + 8 || t.clientY < r.top - 8 || t.clientY > r.bottom + 8) return;\n    if (e.cancelable) e.preventDefault();\n    var a = document.activeElement;\n    if (a && a !== document.body && a.blur) a.blur();\n    done = Date.now();\n    b.click();\n  });\n  // The phone's own click for the same tap (if it still comes) is dropped.\n  window.addEventListener('click', function (e) {\n    if (!e.isTrusted || !done || Date.now() - done > 700) return;\n    if (e.target.closest && e.target.closest('.thz-bld__bar')) { e.preventDefault(); e.stopImmediatePropagation(); }\n  }, true);\n})();\n"],
  "mappings": "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",
  "names": ["n", "t"]
}
