{
  "version": 3,
  "sources": ["/cdn/shop/t/199/assets/pab-tablet-preview.js?pab_build=20260929_t3"],
  "sourcesContent": ["/* Print A Bill \u2014 tablet single-side sticky Live Preview.\n *\n * Tablet only. Self-gates on the house tablet query (mirrors the ranges in\n * pab-tablet-preview.css); fully tears down outside them. Presentational:\n * drives one shared transform on the existing .pab-preview-zoom-layer (which\n * wraps BOTH #bill-image and #callouts, so artwork and callouts move as a\n * single rigid coordinate system and can never drift apart) plus control\n * chrome in slim side rails. Selections, pricing, guide, validation and\n * cart flows are untouched.\n */\n(function () {\n  \"use strict\";\n\n  var MQ =\n    \"(min-width: 768px) and (max-width: 1199px) and (orientation: portrait), \" +\n    \"(min-width: 768px) and (max-width: 1399px) and (orientation: landscape) and (min-height: 501px)\";\n  var ZOOM_LEVELS = [1, 1.5, 2, 3, 4];\n  var SIDE_FRONT = \"front\";\n  var SIDE_BACK = \"back\";\n\n  var mq = window.matchMedia ? window.matchMedia(MQ) : null;\n  var teardownFn = null;\n  var collapsed = false;\n  var PREVIEW_HIDDEN_KEY = 'pab-tablet-preview-hidden-v1';\n  try { collapsed = window.sessionStorage.getItem(PREVIEW_HIDDEN_KEY) === '1'; } catch (_error) {}\n\n  function matches() {\n    return !!mq && mq.matches;\n  }\n\n  function formatZoom(value) {\n    return (Math.abs(value - Math.round(value)) < 0.01 ? Math.round(value) : value) + \"\\u00d7\";\n  }\n\n  function init() {\n    if (teardownFn || !matches()) return;\n    var root = document.getElementById(\"pab-mockup-root\");\n    var card = root && root.querySelector(\".preview-card\");\n    var bill = document.getElementById(\"bill-preview\");\n    var img = document.getElementById(\"bill-image\");\n    var callouts = document.getElementById(\"callouts\");\n    var label = card && card.querySelector(\".preview-label\");\n    var status = card && card.querySelector(\".preview-status\");\n    if (!root || !card || !bill || !img || !callouts || !label) return;\n\n    var aborter = window.AbortController ? new AbortController() : null;\n    var signal = aborter ? aborter.signal : undefined;\n    function on(target, type, handler, options) {\n      if (!target) return;\n      if (signal) {\n        var opts = typeof options === \"object\" && options !== null\n          ? Object.assign({}, options, { signal: signal })\n          : { signal: signal };\n        if (options === true || (typeof options === \"object\" && options && options.capture)) opts.capture = true;\n        target.addEventListener(type, handler, opts);\n      } else {\n        target.addEventListener(type, handler, options);\n      }\n    }\n\n    var state = { side: SIDE_FRONT, zoom: 1, panX: 0, panY: 0, dim: false };\n    var pointers = {};\n    var drag = null;\n    var pinch = null;\n    var animTimer = 0;\n    var slideEl = null;\n\n    /* Own transformed wrapper inside the house zoom layer. House scripts\n     * write .pab-preview-zoom-layer's inline transform themselves, so our\n     * transform lives one level deeper on .ptp-slide where nothing else\n     * touches it. Both artwork and callouts move inside it as one sheet. */\n    var layerHost = bill.querySelector(\".pab-preview-zoom-layer\") || bill;\n    var slide = document.createElement(\"div\");\n    slide.className = \"ptp-slide\";\n    layerHost.insertBefore(slide, img);\n    slide.appendChild(img);\n    slide.appendChild(callouts);\n    function getSlide() {\n      if (!slideEl || !slideEl.isConnected) {\n        slideEl = layerHost.querySelector(\".ptp-slide\");\n      }\n      return slideEl;\n    }\n\n    /* Reparent the card to the workspace root so position:sticky tracks the\n     * full page scroll (the column ends right below the card). */\n    var configurator = card.parentElement && card.parentElement.closest\n      ? card.parentElement.closest(\".configurator\") || card.parentElement\n      : card.parentElement;\n    var home = document.createComment(\"pab-tablet-preview-home\");\n    card.parentElement.insertBefore(home, card);\n    configurator.insertBefore(card, configurator.firstChild);\n\n    /* Exact face geometry from the live artwork (fallback: known composite).\n     * Measured N-series composite: front face occupies the top 807/1590 of\n     * the sheet (back art sits lower with its own matte), so the window and\n     * the side shift use that fraction, not 1/2. */\n    var FRONT_FACE_FRACTION = 807 / 1590;\n    function syncAspect() {\n      var w = img.naturalWidth || 1842;\n      var h = img.naturalHeight || 1590;\n      if (w > 8 && h > 8) bill.style.setProperty(\"aspect-ratio\", w + \" / \" + (h * FRONT_FACE_FRACTION), \"important\");\n      render(false);\n    }\n\n    function maxPan() {\n      var z = state.zoom;\n      if (z <= 1) return { x: 0, y: 0 };\n      return { x: (bill.clientWidth * (z - 1)) / 2, y: (bill.clientHeight * (z - 1)) / 2 };\n    }\n\n    function render(animate) {\n      var m = maxPan();\n      state.panX = Math.max(-m.x, Math.min(m.x, state.panX));\n      state.panY = Math.max(-m.y, Math.min(m.y, state.panY));\n      if (state.zoom <= 1) {\n        state.panX = 0;\n        state.panY = 0;\n      }\n      /* One transform on the shared slide: artwork + callouts stay locked. */\n      var sheet = getSlide();\n      if (sheet) {\n        sheet.classList.toggle(\"ptp-anim\", !!animate);\n        sheet.style.setProperty(\"--pside\", state.side === SIDE_BACK ? \"-50.75%\" : \"0%\");\n        sheet.style.setProperty(\"--ptz\", String(state.zoom));\n        sheet.style.setProperty(\"--ptx\", state.panX + \"px\");\n        sheet.style.setProperty(\"--pty\", state.panY + \"px\");\n        sheet.style.transformOrigin = state.side === SIDE_BACK ? \"50% 75%\" : \"50% 25.4%\";\n        if (animate) {\n          window.clearTimeout(animTimer);\n          animTimer = window.setTimeout(function () {\n            var live = getSlide();\n            if (live) live.classList.remove(\"ptp-anim\");\n          }, 300);\n        }\n      }\n      bill.classList.toggle(\"ptp-zoomed\", state.zoom > 1.001);\n      bill.dataset.ptpSide = state.side;\n      if (zoomVal) zoomVal.textContent = formatZoom(state.zoom);\n      if (zoomOut) zoomOut.disabled = state.zoom <= 1.001;\n      if (zoomIn) zoomIn.disabled = state.zoom >= 3.999;\n      if (frontBtn && backBtn) {\n        frontBtn.classList.toggle(\"is-active\", state.side === SIDE_FRONT);\n        backBtn.classList.toggle(\"is-active\", state.side === SIDE_BACK);\n        frontBtn.setAttribute(\"aria-pressed\", state.side === SIDE_FRONT ? \"true\" : \"false\");\n        backBtn.setAttribute(\"aria-pressed\", state.side === SIDE_BACK ? \"true\" : \"false\");\n      }\n      if (status) status.textContent = state.side === SIDE_BACK ? \"Back view\" : \"Front view\";\n    }\n\n    function applySideFilter() {\n      var wantBack = state.side === SIDE_BACK;\n      Array.prototype.forEach.call(callouts.querySelectorAll(\".callout\"), function (el) {\n        var top = parseFloat(el.style.top);\n        var isBack = !isNaN(top) && top >= 50;\n        el.classList.toggle(\"ptp-hide\", isNaN(top) ? false : isBack !== wantBack);\n      });\n    }\n\n    function setSide(side, animate) {\n      if (side !== SIDE_BACK) side = SIDE_FRONT;\n      state.side = side;\n      render(animate !== false);\n      applySideFilter();\n    }\n\n    function setZoom(next, animate) {\n      var nearest = ZOOM_LEVELS[0];\n      ZOOM_LEVELS.forEach(function (level) {\n        if (Math.abs(level - next) < Math.abs(nearest - next)) nearest = level;\n      });\n      state.zoom = nearest;\n      render(animate);\n    }\n\n    function stepZoom(direction) {\n      var index = ZOOM_LEVELS.indexOf(state.zoom);\n      if (index < 0) index = 0;\n      setZoom(ZOOM_LEVELS[Math.max(0, Math.min(ZOOM_LEVELS.length - 1, index + direction))], true);\n    }\n\n    /* Controls: slim side rails (side toggle left, zoom right) + header eye. */\n    var stage = card.querySelector(\".bill-stage\");\n    var stageHost = stage || card;\n    var railSide = document.createElement(\"div\");\n    railSide.className = \"ptp-rail ptp-rail-side\";\n    railSide.setAttribute(\"role\", \"group\");\n    railSide.setAttribute(\"aria-label\", \"Bill side\");\n    railSide.innerHTML =\n      '<div class=\"ptp-seg\" role=\"group\" aria-label=\"Bill side\">' +\n        '<button type=\"button\" data-ptp-side=\"front\" aria-pressed=\"true\">Front</button>' +\n        '<button type=\"button\" data-ptp-side=\"back\" aria-pressed=\"false\">Back</button>' +\n      \"</div>\";\n    var railZoom = document.createElement(\"div\");\n    railZoom.className = \"ptp-rail ptp-rail-zoom\";\n    railZoom.setAttribute(\"role\", \"group\");\n    railZoom.setAttribute(\"aria-label\", \"Bill zoom\");\n    railZoom.innerHTML =\n      '<button type=\"button\" class=\"ptp-zbtn\" data-ptp-zoom=\"out\" aria-label=\"Zoom out\">\\u2212</button>' +\n      '<button type=\"button\" class=\"ptp-zval\" data-ptp-zoom=\"status\" aria-label=\"Reset zoom to 1\\u00d7\" aria-live=\"polite\">1\\u00d7</button>' +\n      '<button type=\"button\" class=\"ptp-zbtn\" data-ptp-zoom=\"in\" aria-label=\"Zoom in\">+</button>';\n    stageHost.appendChild(railSide);\n    stageHost.appendChild(railZoom);\n    var frontBtn = railSide.querySelector('[data-ptp-side=\"front\"]');\n    var backBtn = railSide.querySelector('[data-ptp-side=\"back\"]');\n    var zoomOut = railZoom.querySelector('[data-ptp-zoom=\"out\"]');\n    var zoomVal = railZoom.querySelector('[data-ptp-zoom=\"status\"]');\n    var zoomIn = railZoom.querySelector('[data-ptp-zoom=\"in\"]');\n\n    var eye = label.querySelector(\".ptp-eye\") || document.createElement(\"button\");\n    eye.type = \"button\";\n    eye.className = \"ptp-eye\";\n    eye.setAttribute(\"aria-pressed\", \"false\");\n    eye.setAttribute(\"aria-label\", \"Dim callouts\");\n    if (!eye.hasAttribute(\"data-pab-tablet-header-control\")) eye.innerHTML =\n      '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\">' +\n        '<path d=\"M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z\"/>' +\n        '<circle cx=\"12\" cy=\"12\" r=\"2.75\"/>' +\n      \"</svg>\";\n    if (eye.parentElement !== label) label.appendChild(eye);\n\n    var copy = root.querySelector('[data-pab-price-copy]');\n    function previewCopy(key, fallback) {\n      return copy && copy.getAttribute('data-' + key) || fallback;\n    }\n    var previewClose = label.querySelector('.ptp-preview-close') || document.createElement('button');\n    previewClose.type = 'button';\n    previewClose.className = 'ptp-preview-close';\n    previewClose.setAttribute('aria-label', previewCopy('close-preview', 'Close bill preview'));\n    if (!previewClose.hasAttribute(\"data-pab-tablet-header-control\")) previewClose.innerHTML = '<svg viewBox=\"0 0 20 20\" width=\"18\" height=\"18\" aria-hidden=\"true\"><path d=\"m5 5 10 10M15 5 5 15\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>';\n    if (previewClose.parentElement !== label) label.appendChild(previewClose);\n    if (!card.id) card.id = 'pab-tablet-preview-card';\n\n    var previewTab = document.createElement('button');\n    previewTab.type = 'button';\n    previewTab.className = 'ptp-preview-tab';\n    previewTab.hidden = true;\n    previewTab.setAttribute('aria-label', previewCopy('open-preview', 'Open bill preview'));\n    previewTab.setAttribute('aria-controls', card.id);\n    previewTab.setAttribute('aria-expanded', 'false');\n    previewTab.innerHTML = '<svg viewBox=\"0 0 20 20\" width=\"20\" height=\"20\" aria-hidden=\"true\"><rect x=\"2\" y=\"4\" width=\"16\" height=\"12\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.3\"/><circle cx=\"10\" cy=\"10\" r=\"2.3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.3\"/><path d=\"M5 8v4m10-4v4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.3\"/></svg>';\n    var tabLabel = document.createElement('span');\n    tabLabel.textContent = previewCopy('preview-label', 'Preview');\n    previewTab.appendChild(tabLabel);\n    root.appendChild(previewTab);\n\n    function syncPreviewTab() {\n      var rect = root.getBoundingClientRect();\n      previewTab.hidden = !collapsed || rect.bottom <= 80 || rect.top >= window.innerHeight;\n    }\n    function setPreviewCollapsed(next, returnFocus) {\n      collapsed = !!next;\n      root.classList.toggle('pab-tablet-preview-collapsed', collapsed);\n      root.dataset.pabTabletPreview = collapsed ? 'closed' : 'open';\n      card.hidden = collapsed;\n      previewTab.setAttribute('aria-expanded', String(!collapsed));\n      syncPreviewTab();\n      try { window.sessionStorage.setItem(PREVIEW_HIDDEN_KEY, collapsed ? '1' : '0'); } catch (_error) {}\n      if (!collapsed) render(false);\n      if (returnFocus) (collapsed ? previewTab : previewClose).focus({ preventScroll: true });\n      root.dispatchEvent(new CustomEvent('pab:tablet-preview-visibility', { bubbles: true, detail: { visible: !collapsed } }));\n    }\n    on(previewClose, 'click', function () { setPreviewCollapsed(true, true); });\n    on(previewTab, 'click', function () { setPreviewCollapsed(false, true); });\n    on(window, 'scroll', syncPreviewTab, { passive: true });\n\n    on(frontBtn, \"click\", function () { setSide(SIDE_FRONT, true); });\n    on(backBtn, \"click\", function () { setSide(SIDE_BACK, true); });\n    on(zoomOut, \"click\", function () { stepZoom(-1); });\n    on(zoomIn, \"click\", function () { stepZoom(1); });\n    on(zoomVal, \"click\", function () { setZoom(1, true); });\n    on(eye, \"click\", function () {\n      state.dim = bill.classList.toggle(\"ptp-dim\");\n      eye.classList.toggle(\"is-off\", state.dim);\n      eye.setAttribute(\"aria-pressed\", state.dim ? \"true\" : \"false\");\n      eye.setAttribute(\"aria-label\", state.dim ? \"Restore callouts\" : \"Dim callouts\");\n    });\n    on(bill, \"dblclick\", function () {\n      if (state.zoom > 1) setZoom(1, true);\n    });\n\n    /* Drag to pan + pinch to zoom while zoomed. Page scroll untouched at 1x. */\n    on(bill, \"pointerdown\", function (event) {\n      pointers[event.pointerId] = { x: event.clientX, y: event.clientY };\n      var active = Object.keys(pointers);\n      if (active.length === 1) {\n        drag = state.zoom > 1.001\n          ? { x: event.clientX, y: event.clientY, panX: state.panX, panY: state.panY }\n          : null;\n        pinch = null;\n        if (drag) {\n          try { bill.setPointerCapture(event.pointerId); } catch (_e) {}\n          bill.classList.add(\"ptp-panning\");\n          event.preventDefault();\n        }\n      } else if (active.length === 2) {\n        var a = pointers[active[0]];\n        var b = pointers[active[1]];\n        pinch = { distance: Math.hypot(b.x - a.x, b.y - a.y) || 1, zoom: state.zoom };\n        drag = null;\n        try { bill.setPointerCapture(event.pointerId); } catch (_e) {}\n      }\n    });\n    function endPointer(event) {\n      delete pointers[event.pointerId];\n      if (Object.keys(pointers).length === 0) {\n        if (pinch) setZoom(state.zoom, false);\n        drag = null;\n        pinch = null;\n        bill.classList.remove(\"ptp-panning\");\n      } else if (Object.keys(pointers).length === 1) {\n        pinch = null;\n        var remaining = pointers[Object.keys(pointers)[0]];\n        drag = state.zoom > 1.001\n          ? { x: remaining.x, y: remaining.y, panX: state.panX, panY: state.panY }\n          : null;\n      }\n    }\n    on(bill, \"pointermove\", function (event) {\n      if (!pointers[event.pointerId]) return;\n      pointers[event.pointerId] = { x: event.clientX, y: event.clientY };\n      var active = Object.keys(pointers);\n      if (pinch && active.length === 2) {\n        var a = pointers[active[0]];\n        var b = pointers[active[1]];\n        var dist = Math.hypot(b.x - a.x, b.y - a.y) || 1;\n        state.zoom = Math.max(1, Math.min(4, (pinch.zoom * dist) / pinch.distance));\n        render(false);\n        event.preventDefault();\n      } else if (drag && active.length === 1) {\n        state.panX = drag.panX + (event.clientX - drag.x);\n        state.panY = drag.panY + (event.clientY - drag.y);\n        render(false);\n        event.preventDefault();\n      }\n    });\n    on(bill, \"pointerup\", endPointer);\n    on(bill, \"pointercancel\", endPointer);\n\n    /* Keep callout side-filtering + pan valid across re-renders/resizes. */\n    var calloutObserver = null;\n    if (window.MutationObserver) {\n      calloutObserver = new MutationObserver(function () { applySideFilter(); });\n      calloutObserver.observe(callouts, { childList: true });\n    }\n    on(window, \"resize\", function () { render(false); syncPreviewTab(); });\n    if (img.complete && img.naturalWidth) syncAspect();\n    else on(img, \"load\", syncAspect);\n\n    var originalStatus = status ? status.textContent : \"\";\n    render(false);\n    applySideFilter();\n    setPreviewCollapsed(collapsed, false);\n\n    teardownFn = function () {\n      teardownFn = null;\n      if (aborter) aborter.abort();\n      if (calloutObserver) calloutObserver.disconnect();\n      window.clearTimeout(animTimer);\n      if (railSide.parentElement) railSide.parentElement.removeChild(railSide);\n      if (railZoom.parentElement) railZoom.parentElement.removeChild(railZoom);\n      if (!eye.hasAttribute(\"data-pab-tablet-header-control\") && eye.parentElement) eye.parentElement.removeChild(eye);\n      if (!previewClose.hasAttribute(\"data-pab-tablet-header-control\")) previewClose.remove();\n      previewTab.remove();\n      card.hidden = false;\n      root.classList.remove('pab-tablet-preview-collapsed');\n      delete root.dataset.pabTabletPreview;\n      if (home.parentElement) home.parentElement.insertBefore(card, home.nextSibling);\n      if (home.parentElement) home.parentElement.removeChild(home);\n      if (img.parentElement === slide) layerHost.insertBefore(img, slide);\n      if (callouts.parentElement === slide) layerHost.insertBefore(callouts, slide);\n      if (slide.parentElement) slide.parentElement.removeChild(slide);\n      slideEl = null;\n      bill.style.removeProperty(\"aspect-ratio\");\n      bill.classList.remove(\"ptp-zoomed\", \"ptp-panning\", \"ptp-dim\");\n      delete bill.dataset.ptpSide;\n      Array.prototype.forEach.call(callouts.querySelectorAll(\".callout.ptp-hide\"), function (el) {\n        el.classList.remove(\"ptp-hide\");\n      });\n      if (status) status.textContent = originalStatus;\n    };\n  }\n\n  function teardown() {\n    if (teardownFn) teardownFn();\n  }\n\n  function boot() {\n    if (matches()) init();\n    else teardown();\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", boot, { once: true });\n  } else {\n    boot();\n  }\n  if (mq) {\n    if (mq.addEventListener) mq.addEventListener(\"change\", boot);\n    else if (mq.addListener) mq.addListener(boot);\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
