{
  "version": 3,
  "sources": ["/cdn/shop/t/29/assets/epic-room-view.js?epicv=room5"],
  "sourcesContent": ["/* Epic \"View in a room\" (2D) - room5\n   Composites the flat art onto room photos at true scale for the selected size.\n   v3: every room is its own gallery slide/tile (slot 0 = the default room for the size, then the others).\n   Each room has close / mid / wide photos. For each slide the view picks the photo and the square crop\n   that keeps a recognizable scale object (lamp, nightstand, plant, sofa arm, chair...) fully in frame\n   next to the art, with the art as large as that allows (up to ~62% of the frame width, 68% for wide art). */\n(function () {\n  if (window.__epicRoomView5) return;\n  window.__epicRoomView5 = true;\n\n  var ROOMS = null;\n  var ORDER = ['office', 'bedroom', 'dining', 'living'];\n  var DEPTH_IN = 1.5; // gallery-wrap depth, drives shadow size\n  var T_WIDTH = 0.62, T_WIDTH_WIDE = 0.68, MAX_H = 0.76;\n  var TOP_M = 0.085, BOT_M = 0.05, SIDE_M = 0.035;\n  var GAP_IN = 3;           // art keeps this distance from scale objects\n  var SHIFT_FRAC = 0.35;    // art may slide this share of the free furniture span toward an object\n  var SHIFT_COST = 0.006;   // score cost per inch of slide\n  var WEAK_COST = 0.15;     // pillows/throws are a weaker cue than a lamp or table\n  var LAMP_BONUS = 0.04;    // lamps, plants, nightstands, side tables and decor read best\n\n  function abs(u) { return u && u.indexOf('//') === 0 ? 'https:' + u : u; }\n  function rooms() {\n    if (ROOMS) return ROOMS;\n    var el = document.querySelector('script[data-epic-room-config]');\n    try { ROOMS = JSON.parse((el && el.textContent) || '[]'); } catch (e) { ROOMS = []; }\n    ROOMS.forEach(function (r) {\n      r.url = abs(r.url);\n      (r.tiers || []).forEach(function (t) { t.url = abs(t.url); });\n    });\n    return ROOMS;\n  }\n  function sized(url, w) { return url ? url + (url.indexOf('?') === -1 ? '?' : '&') + 'width=' + w : ''; }\n\n  function parseSize(title, sku) {\n    var s = String(title || '').replace(/[\"'\\u2033\\u201d]/g, '').replace(/\\s+/g, '');\n    var m = s.match(/(\\d+(?:\\.\\d+)?)[xX\\u00d7](\\d+(?:\\.\\d+)?)/);\n    if (m) return { w: parseFloat(m[1]), h: parseFloat(m[2]) };\n    var km = String(sku || '').match(/(\\d{2})(\\d{2})$/);\n    if (km) return { w: parseInt(km[1], 10), h: parseInt(km[2], 10) };\n    return null;\n  }\n  var VARIANTS = null;\n  function variants() {\n    if (VARIANTS) return VARIANTS;\n    var list = [];\n    try { list = JSON.parse(document.querySelector('script[data-epic-room-variants]').textContent || '[]'); } catch (e) { list = []; }\n    VARIANTS = list.map(function (v) { return Object.assign({}, v, parseSize(v.title, v.sku) || {}); });\n    return VARIANTS;\n  }\n  function selectedId() {\n    var input = document.querySelector('.product-information product-form-component input[name=\"id\"]') ||\n      document.querySelector('product-form-component input[name=\"id\"], form[action*=\"/cart/add\"] input[name=\"id\"]');\n    if (input && input.value) return String(input.value);\n    var r = document.querySelector('[data-epic-room]');\n    return String((r && r.getAttribute('data-selected-variant')) || '');\n  }\n  function currentSize() {\n    var list = variants();\n    var id = selectedId();\n    var v = list.find(function (x) { return String(x.id) === id; });\n    if (v && v.w && v.h) return v;\n    for (var i = 0; i < list.length; i++) if (list[i].w) return list[i];\n    return { w: 12, h: 12, title: '' };\n  }\n  function defaultRoom(size) {\n    var list = rooms();\n    var L = Math.max(size.w, size.h);\n    for (var i = 0; i < list.length; i++) if (L <= list[i].maxLong + 0.01) return list[i];\n    return list[list.length - 1];\n  }\n  // slot 0 = default room for the size, then the others in the fixed order\n  function roomForSlot(size, slot) {\n    var d = defaultRoom(size);\n    var rest = rooms().filter(function (r) { return r !== d; });\n    rest.sort(function (a, b) { return ORDER.indexOf(a.id) - ORDER.indexOf(b.id); });\n    return slot === 0 ? d : rest[slot - 1] || d;\n  }\n  var ALT_ROOM = { office: 'office', bedroom: 'bedroom', dining: 'dining room', living: 'living room' };\n  function artName() {\n    var el = document.querySelector('script[data-epic-room-variants]');\n    var n = ((el && el.getAttribute('data-art-name')) || '').trim();\n    // belt and braces: drop a \" by <artist> ...\" trailer and outer quotes if the Liquid cleanup missed them\n    n = n.replace(/\\s+by\\s+.*$/i, '').replace(/\\s+canvas wall art$/i, '').trim();\n    var m = n.match(/^['\"\\u2018\\u201c](.*)['\"\\u2019\\u201d]$/);\n    return (m ? m[1] : n).trim();\n  }\n  // alt text for a room view: \"<Art Name> 12\" x 12\" in living room\"\n  function altText(size, room) {\n    var n = artName();\n    return (n ? n + ' ' : '') + fmt(size.w) + '\" x ' + fmt(size.h) + '\" in ' + (ALT_ROOM[room.id] || room.name.toLowerCase());\n  }\n  function fmt(n) { return (Math.round(n * 10) / 10).toString(); }\n\n  function hits(a, o, g) {\n    return a.x < o[3] + g && a.x + a.w > o[1] - g && a.y < o[4] + g && a.y + a.h > o[2] - g;\n  }\n\n  // Best photo + crop for one room at one size.\n  var botM = BOT_M;\n  // small (mobile) stages: the slideshow dots and 3D/Room thumbs cover the bottom ~12-14%, keep the object above them\n  function frame(room, size, small) {\n    botM = small ? 0.12 : BOT_M;\n    return frameWith(room, size, SHIFT_FRAC) || frameWith(room, size, 1) || frameWith(room, size, 1, true);\n  }\n  function frameWith(room, size, shiftFrac, any) {\n    var tw = size.w / size.h >= 1.6 ? T_WIDTH_WIDE : T_WIDTH;\n    var best = null;\n    (room.tiers || []).forEach(function (t) {\n      var side = Math.min(t.w, t.h);\n      var w = size.w * t.ppi, h = size.h * t.ppi;\n      var lo = Math.max(t.safeL, t.zoneL) + w / 2, hi = Math.min(t.safeR, t.zoneR) - w / 2;\n      if (lo > hi + 0.5 || h > t.maxBottom - t.minTop + 0.5) return;\n      var cy = t.cy != null ? Math.min(t.cy, t.maxBottom - h / 2) : t.maxBottom - h / 2;\n      cy = Math.max(cy, t.minTop + h / 2);\n      var pref = Math.max(lo, Math.min(hi, t.cx));\n      var maxShift = Math.max(0, (Math.min(t.zoneR, t.safeR) - Math.max(t.zoneL, t.safeL) - w) * shiftFrac);\n      var g = GAP_IN * t.ppi;\n      var cands = [pref];\n      t.obj.forEach(function (o) { cands.push(o[1] - g - w / 2, o[3] + g + w / 2); });\n      cands.forEach(function (cx) {\n        cx = Math.max(lo, Math.min(hi, Math.max(pref - maxShift, Math.min(pref + maxShift, cx))));\n        var a = { x: cx - w / 2, y: cy - h / 2, w: w, h: h };\n        if (t.obj.some(function (o) { return hits(a, o, g * 0.5); })) return;\n        t.obj.forEach(function (o) {\n          var ux0 = Math.min(a.x, o[1]), ux1 = Math.max(a.x + w, o[3]);\n          var uy0 = Math.min(a.y, o[2]), uy1 = Math.max(a.y + h, o[4]);\n          var F = Math.max((ux1 - ux0) / (1 - 2 * SIDE_M), (uy1 - uy0) / (1 - TOP_M - botM), w / tw, h / MAX_H, side / (t.maxZoom || 1.75));\n          if (F > side + 0.5) return;\n          var share = w / F;\n          var score = share - SHIFT_COST * Math.max(1, size.w / 24) * Math.abs(cx - pref) / t.ppi - (o[5] ? 0 : WEAK_COST) + (o[5] === 2 ? LAMP_BONUS : 0);\n          if (!best || score > best.score + 1e-6) best = { t: t, a: a, F: F, o: o, u: [ux0, uy0, ux1, uy1], score: score };\n        });\n      });\n    });\n    if (!best && !any) return null;\n    if (!best) { // nothing fits with an object: show the whole widest photo\n      var t = room.tiers[room.tiers.length - 1];\n      var w = size.w * t.ppi, h = size.h * t.ppi, side = Math.min(t.w, t.h);\n      var cyy = Math.max(t.minTop + h / 2, Math.min(t.cy != null ? t.cy : 1e9, t.maxBottom - h / 2));\n      var aa = { x: Math.max(t.safeL, Math.min(t.safeR - w, t.cx - w / 2)), y: cyy - h / 2, w: w, h: h };\n      return { t: t, art: aa, fx: 0, fy: 0, F: side, zoom: 1, obj: null };\n    }\n    var T = best.t, F = best.F, u = best.u, A = best.a;\n    // horizontal: centered on the art, but keep the union (art + object) inside\n    var fxMin = u[2] + SIDE_M * F - F, fxMax = u[0] - SIDE_M * F;\n    var fx = Math.max(fxMin, Math.min(fxMax, A.x + A.w / 2 - F / 2));\n    // vertical: prefer the furniture line at the bottom, keep the union inside\n    var fyMin = u[3] + botM * F - F, fyMax = u[1] - TOP_M * F;\n    var fy = Math.max(fyMin, Math.min(fyMax, T.ctxY - F));\n    fx = Math.max(0, Math.min(fx, T.w - F));\n    fy = Math.max(0, Math.min(fy, T.h - F));\n    return { t: T, art: A, fx: fx, fy: fy, F: F, zoom: Math.min(T.w, T.h) / F, obj: best.o };\n  }\n\n  function loadImages(root) {\n    if (root.__epicLoaded) return;\n    root.__epicLoaded = true;\n    var art = root.querySelector('[data-epic-room-art-img]');\n    if (art && !art.src) art.src = root.getAttribute('data-art-url');\n    render(root);\n  }\n\n  function render(root) {\n    var list = rooms();\n    if (!list.length) return;\n    var size = currentSize();\n    var slot = parseInt(root.getAttribute('data-epic-room-slot') || '0', 10) || 0;\n    var room = roomForSlot(size, slot);\n    root.setAttribute('data-room', room.id);\n    var alt = altText(size, room);\n    if (root.getAttribute('aria-label') !== alt) root.setAttribute('aria-label', alt);\n    if (!root.__epicLoaded) return;\n\n    var bg = root.querySelector('[data-epic-room-bg]');\n    var stage = root.querySelector('[data-epic-room-stage]');\n    var scene = root.querySelector('[data-epic-room-scene]');\n    var px = stage ? stage.getBoundingClientRect().width : 0;\n    if (!px) px = root.__epicPx || 600; else root.__epicPx = px;\n    var fr = frame(room, size, px < 600);\n    var t = fr.t;\n    var key = room.id + ':' + t.k + ':' + fmt(size.w) + 'x' + fmt(size.h) + ':' + Math.round(px);\n    if (root.__epicKey === key) return;\n    root.__epicKey = key;\n    if (scene) {\n      scene.style.width = (t.w / fr.F * 100) + '%';\n      scene.style.height = (t.h / fr.F * 100) + '%';\n      scene.style.left = (-fr.fx / fr.F * 100) + '%';\n      scene.style.top = (-fr.fy / fr.F * 100) + '%';\n    }\n    root.setAttribute('data-room-tier', t.k);\n    root.setAttribute('data-room-zoom', fr.zoom.toFixed(2));\n    root.setAttribute('data-room-object', fr.obj ? fr.obj[0] : '');\n    if (fr.obj) {\n      var o = fr.obj; // object box as % of the stage, for checks\n      root.setAttribute('data-room-object-box', [(o[1] - fr.fx) / fr.F, (o[2] - fr.fy) / fr.F, (o[3] - fr.fx) / fr.F, (o[4] - fr.fy) / fr.F].map(function (v) { return v.toFixed(3); }).join(','));\n    }\n    var bgKey = room.id + ':' + t.k;\n    var bgPx = Math.round(px * t.w / fr.F);\n    if (bg && bg.getAttribute('data-room') !== bgKey) {\n      bg.setAttribute('data-room', bgKey);\n      bg.classList.remove('is-ready');\n      bg.onload = function () { bg.classList.add('is-ready'); };\n      var fw = t.fileW || t.w;\n      var steps = fw > 1600 ? [800, 1200, 1600, 2000] : [600, 900, 1200, fw];\n      bg.srcset = steps.map(function (w) { return sized(t.url, w) + ' ' + w + 'w'; }).join(', ');\n      bg.sizes = Math.max(320, bgPx) + 'px';\n      bg.src = sized(t.url, 1200);\n      if (bg.complete && bg.naturalWidth) bg.classList.add('is-ready');\n    } else if (bg) {\n      bg.sizes = Math.max(320, bgPx) + 'px';\n    }\n    var artBox = root.querySelector('[data-epic-room-art]');\n    if (!artBox) return;\n    var p = fr.art;\n    artBox.hidden = false;\n    artBox.style.left = (p.x / t.w * 100) + '%';\n    artBox.style.top = (p.y / t.h * 100) + '%';\n    artBox.style.width = (p.w / t.w * 100) + '%';\n    artBox.style.height = (p.h / t.h * 100) + '%';\n    var inch = t.ppi * px / fr.F;\n    artBox.style.setProperty('--epic-in', inch.toFixed(3) + 'px');\n    artBox.style.setProperty('--epic-bright', room.bright);\n    artBox.style.setProperty('--epic-sat', room.sat);\n    artBox.style.setProperty('--epic-warm', room.warm || 0);\n    artBox.style.setProperty('--epic-sx', (DEPTH_IN * 0.32 * inch).toFixed(2) + 'px');\n    artBox.style.setProperty('--epic-sy', (DEPTH_IN * 0.55 * inch).toFixed(2) + 'px');\n    artBox.style.setProperty('--epic-sb', (DEPTH_IN * 1.2 * inch).toFixed(2) + 'px');\n  }\n\n  // thumbnails (strip thumbs per slot + compact mobile \"Room\" thumb) follow the slot's room\n  function renderThumbs() {\n    if (!rooms().length) return;\n    var size = currentSize();\n    document.querySelectorAll('[data-epic-room-thumb]').forEach(function (b) {\n      var slot = parseInt(b.getAttribute('data-epic-room-thumb-slot') || '0', 10) || 0;\n      var room = roomForSlot(size, slot);\n      var img = b.querySelector('img');\n      var src = sized(room.url, 144);\n      if (img && img.getAttribute('src') !== src) img.setAttribute('src', src);\n      var lab = altText(size, room);\n      if (b.getAttribute('aria-label') !== lab) b.setAttribute('aria-label', lab);\n    });\n  }\n\n  window.__epicRoomFrame = function (roomId, w, h, small) {\n    var r = rooms().find(function (x) { return x.id === roomId; });\n    return r ? frame(r, { w: w, h: h }, !!small) : null;\n  };\n\n  function all() {\n    return Array.prototype.filter.call(document.querySelectorAll('[data-epic-room]'), function (el) {\n      return !el.closest('template');\n    });\n  }\n  function visible(el) { return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length); }\n  // when one room view comes near the viewport, load all visible ones (the other slides are one swipe away)\n  function loadAll() { all().forEach(function (r) { if (visible(r)) loadImages(r); }); }\n  var io = 'IntersectionObserver' in window ? new IntersectionObserver(function (entries) {\n    if (entries.some(function (e) { return e.isIntersecting; })) loadAll();\n  }, { rootMargin: '300px' }) : null;\n\n  function init() {\n    all().forEach(function (root) {\n      if (!root.__epicInit) {\n        root.__epicInit = true;\n        if (io) io.observe(root); else loadImages(root);\n      }\n      render(root);\n    });\n    renderThumbs();\n  }\n  var t1 = 0;\n  function schedule() { clearTimeout(t1); t1 = setTimeout(init, 60); }\n  function onVariant() { schedule(); setTimeout(init, 350); setTimeout(init, 900); }\n\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();\n  window.addEventListener('load', schedule);\n  window.addEventListener('resize', schedule);\n  document.addEventListener('shopify:product:select', onVariant, true);\n  document.addEventListener('product:select', onVariant, true);\n  document.addEventListener('variant:change', onVariant, true);\n  document.addEventListener('variant:update', onVariant, true);\n  document.addEventListener('change', function (ev) {\n    var t = ev.target;\n    if (!t || !t.closest) return;\n    if (t.getAttribute('name') === 'id' || t.closest('variant-picker, variant-selects, product-form-component, sticky-add-to-cart')) onVariant();\n  }, true);\n  if (window.MutationObserver) {\n    new MutationObserver(function (muts) {\n      // ignore our own attribute/text writes; react to re-rendered gallery markup\n      if (muts.some(function (m) { return m.type === 'childList' && m.addedNodes.length; })) schedule();\n    }).observe(document.documentElement, { childList: true, subtree: true });\n  }\n  var lastId = '';\n  setInterval(function () {\n    if (!all().length) return;\n    var id = selectedId();\n    if (id !== lastId) { lastId = id; init(); }\n  }, 500);\n})();\n"],
  "mappings": "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",
  "names": ["t", "side", "w", "h", "F"]
}
