{
  "version": 3,
  "sources": ["/cdn/shop/t/542/assets/massimo-storefront-pricing.js?massimo_pricing_build=v1"],
  "sourcesContent": ["/* Massimo Storefront Pricing + Stock \u2014 standalone module\n * Adds price + stock check box to Massimo \u00F6zel \u00F6l\u00E7\u00FC product pages without\n * touching the main `massimo-ozel-olcu.js`. Reads state from DOM\n * (data-massimo-dimension, data-massimo-edge, data-massimo-shape) and\n * `root.__massimoConfig` (already exposed by the main JS).\n *\n * Endpoints:\n *   GET /api/massimo/storefront-price\n *   GET /api/massimo/storefront-stock-check\n *\n * No silent fallback (SKILL 15/28): missing data \u2192 a\u00E7\u0131k hata, gizleme yok.\n */\n(function () {\n  'use strict';\n  if (window.__MASSIMO_STOREFRONT_PRICING__) return;\n  window.__MASSIMO_STOREFRONT_PRICING__ = true;\n\n  var BUILD = 'storefront-pricing-v1';\n  var API_BASE = window.__MASSIMO_API_BASE__\n    || (window.__MASSIMO_ALL_CONFIGS__ && window.__MASSIMO_ALL_CONFIGS__.massimoApi)\n    || 'https://dolcevita-massimo.ngrok.io/api/massimo';\n  var DEBOUNCE_MS = 450;\n  var CACHE_TTL_MS = 60000;\n  var cache = {};\n  var timers = new WeakMap();\n  var aborts = new WeakMap();\n\n  function $(root, sel) { return root && root.querySelector(sel); }\n\n  function describeEdge(edgeType) {\n    var map = { bordur: 'Bord\u00FCr', biye: 'Biye', cift_bordur: '\u00C7ift Bord\u00FCr', overlok: 'Overlok' };\n    return map[String(edgeType || '').toLowerCase()] || edgeType;\n  }\n  function describeShape(shapeType) {\n    var map = { dikdortgen: 'Dikd\u00F6rtgen', amorf: 'Amorf', yuvarlak: 'Yuvarlak', daire: 'Daire', oval: 'Oval' };\n    return map[String(shapeType || '').toLowerCase()] || shapeType;\n  }\n  function formatTRY(value, currency) {\n    var c = String(currency || 'TRY').toUpperCase();\n    var symbol = c === 'TRY' ? '\u20BA' : (c === 'EUR' ? '\u20AC' : (c === 'USD' ? '$' : c));\n    var num = Number(value);\n    if (!isFinite(num)) return '\u2014';\n    try {\n      return new Intl.NumberFormat('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(num) + ' ' + symbol;\n    } catch (_) {\n      return num.toFixed(2) + ' ' + symbol;\n    }\n  }\n\n  // ===== Inline styles (idempotent) =====\n  function ensureStyles() {\n    if (document.getElementById('massimo-storefront-pricing-styles')) return;\n    var css = ''\n      + '.massimo-oo__price-box{margin:10px 0 12px;padding:12px 14px;background:#fff;border:1px solid #d9d2c6;border-radius:8px;box-shadow:0 6px 18px rgba(37,31,25,.06);font-size:13px;color:#251f19}'\n      + '.massimo-oo__price-box[hidden]{display:none}'\n      + '.massimo-oo__price-box.is-loading{opacity:.78}'\n      + '.massimo-oo__price-box.is-error{background:#fdecec;border-color:#f1c2c2;color:#a83232}'\n      + '.massimo-oo__price-loading{text-align:center;font-style:italic;color:#786f65}'\n      + '.massimo-oo__price-summary{display:flex;flex-direction:column;gap:6px}'\n      + '.massimo-oo__price-summary[hidden]{display:none}'\n      + '.massimo-oo__price-summary-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}'\n      + '.massimo-oo__price-summary-row span{color:#786f65;font-size:12.5px}'\n      + '.massimo-oo__price-summary-row strong{font-weight:600;font-variant-numeric:tabular-nums}'\n      + '.massimo-oo__price-summary-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:4px;padding-top:8px;border-top:1px solid #d9d2c6}'\n      + '.massimo-oo__price-summary-total span{font-size:14px;color:#251f19;font-weight:600}'\n      + '.massimo-oo__price-summary-total strong{font-size:22px;font-weight:800;color:#8f5f34;font-variant-numeric:tabular-nums}'\n      + '.massimo-oo__price-detail-toggle{margin-top:8px;padding:7px 12px;width:100%;border:1px solid #d9d2c6;border-radius:6px;background:#faf7f1;color:#8f5f34;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}'\n      + '.massimo-oo__price-detail-toggle:hover{background:#f0e9d9;border-color:#c8b890}'\n      + '.massimo-oo__price-detail-toggle[aria-expanded=true]{background:#f0e9d9;border-color:#c8b890}'\n      + '.massimo-oo__price-detail{display:flex;flex-direction:column;gap:10px;margin-top:10px;padding-top:10px;border-top:1px dashed #d9d2c6}'\n      + '.massimo-oo__price-section{display:flex;flex-direction:column;gap:4px;padding:8px 10px;background:#faf7f1;border:1px solid #ebe5d8;border-radius:6px}'\n      + '.massimo-oo__price-section[hidden]{display:none}'\n      + '.massimo-oo__price-section-title{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8f5f34;margin-bottom:2px}'\n      + '.massimo-oo__price-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}'\n      + '.massimo-oo__price-row span{color:#786f65;font-size:12px;line-height:1.35}'\n      + '.massimo-oo__price-row strong{font-weight:600;font-variant-numeric:tabular-nums;text-align:right}'\n      + '.massimo-oo__price-row--fire strong{color:#a83232}'\n      + '.massimo-oo__price-row--amorf strong{color:#8a5a00}'\n      + '.massimo-oo__price-row--template strong{color:#8a5a00}'\n      + '.massimo-oo__price-row--formula span{font-size:11.5px;color:#8a8278;font-style:italic}'\n      + '.massimo-oo__price-row--total{margin-top:4px;padding-top:6px;border-top:1px solid #d9d2c6;align-items:baseline}'\n      + '.massimo-oo__price-row--total span{font-size:14px;color:#251f19;font-weight:600;font-style:normal}'\n      + '.massimo-oo__price-row--total strong{font-size:20px;font-weight:800;color:#8f5f34}'\n      + '.massimo-oo__price-meta{margin-top:4px;font-size:11px;color:#8a8278;text-align:right}'\n      + '.massimo-oo__price-error{font-size:12.5px;line-height:1.4}'\n      + '.massimo-oo__price-error[hidden]{display:none}'\n      + '.massimo-oo__cut-plan-box{background:#1a252f;color:#fff;border:1px solid #2d3a44;border-radius:8px;margin-top:6px;overflow:hidden}'\n      + '.massimo-oo__cut-plan-box[hidden]{display:none}'\n      + '.massimo-oo__cut-plan-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:9px 12px;background:transparent;border:0;color:#f0c97f;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;text-align:left}'\n      + '.massimo-oo__cut-plan-toggle:hover{background:rgba(240,201,127,.08)}'\n      + '.massimo-oo__cut-plan-toggle[aria-expanded=true]{background:rgba(240,201,127,.12)}'\n      + '.massimo-oo__cut-plan-toggle-icon{font-size:14px;color:#f0c97f}'\n      + '.massimo-oo__cut-plan-body{padding:8px 10px 10px;border-top:1px solid #2d3a44}'\n      + '.massimo-oo__cut-plan-body[hidden]{display:none}'\n      + '.massimo-oo__cut-plan-render{min-height:120px;display:flex;align-items:center;justify-content:center;background:#0e1822;border-radius:4px;font-size:11.5px;color:#94a3b8}'\n      + '.massimo-oo__cut-plan-render svg{display:block;width:100%;max-width:100%;height:auto}'\n      + '.massimo-oo__cut-plan-meta{margin-top:6px;font-size:11px;color:#94a3b8;text-align:right}'\n      + '.massimo-oo__cut-plan-meta[hidden]{display:none}';\n    var styleEl = document.createElement('style');\n    styleEl.id = 'massimo-storefront-pricing-styles';\n    styleEl.appendChild(document.createTextNode(css));\n    (document.head || document.body || document.documentElement).appendChild(styleEl);\n  }\n\n  // ===== Price box DOM injection =====\n  function ensurePriceBox(root) {\n    if (!root) return;\n    var existing = $(root, '[data-massimo-price-display]');\n    if (existing && existing.querySelector('[data-massimo-info-order]')) return;\n    if (existing) existing.parentNode && existing.parentNode.removeChild(existing);\n    var addBtn = $(root, '[data-massimo-add]');\n    if (!addBtn || !addBtn.parentNode) return;\n    var box = document.createElement('div');\n    box.className = 'massimo-oo__price-box';\n    box.setAttribute('data-massimo-price-display', '');\n    box.hidden = true;\n    box.innerHTML = ''\n      + '<div class=\"massimo-oo__price-loading\" data-massimo-price-loading hidden>Fiyat hesaplan\u0131yor\u2026</div>'\n      + '<div class=\"massimo-oo__price-summary\" data-massimo-price-summary hidden>'\n      +   '<div class=\"massimo-oo__price-summary-row\"><span>Birim fiyat</span><strong data-massimo-price-summary-unit>\u2014</strong></div>'\n      +   '<div class=\"massimo-oo__price-summary-row\"><span data-massimo-price-summary-size-label>\u00D6l\u00E7\u00FC</span><strong data-massimo-price-summary-size>\u2014</strong></div>'\n      +   '<div class=\"massimo-oo__price-summary-total\"><span>Toplam</span><strong data-massimo-price-summary-total>\u2014</strong></div>'\n      +   '<button type=\"button\" class=\"massimo-oo__price-detail-toggle\" data-massimo-price-detail-toggle aria-expanded=\"false\">Detay\u0131 G\u00F6ster \u25BE</button>'\n      + '</div>'\n      + '<div class=\"massimo-oo__price-detail\" data-massimo-price-detail hidden>'\n      +   '<div class=\"massimo-oo__price-section\">'\n      +     '<div class=\"massimo-oo__price-section-title\">\u00D6l\u00E7\u00FC &amp; Alan</div>'\n      +     '<div class=\"massimo-oo__price-row\"><span>Sipari\u015F \u00F6l\u00E7\u00FCs\u00FC</span><strong data-massimo-info-order>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row\"><span>Sipari\u015F alan\u0131</span><strong data-massimo-info-customer-area>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row\"><span>Fatura \u00F6l\u00E7\u00FCs\u00FC (B kural\u0131)</span><strong data-massimo-info-invoice>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row\"><span>Fatura alan\u0131</span><strong data-massimo-info-invoice-area>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row massimo-oo__price-row--fire\" data-massimo-info-fire-row hidden><span>Fire (m\u00FC\u015Fteri \u00F6der)</span><strong data-massimo-info-fire>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row\"><span>\u00C7evre (kenar uzunlu\u011Fu)</span><strong data-massimo-info-perimeter>\u2014</strong></div>'\n      +   '</div>'\n      +   '<div class=\"massimo-oo__price-section\" data-massimo-stock-section hidden>'\n      +     '<div class=\"massimo-oo__price-section-title\">Stok &amp; Kesim</div>'\n      +     '<div class=\"massimo-oo__price-row\"><span>Durum</span><strong data-massimo-stock-state>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row\" data-massimo-stock-roll-row hidden><span>Se\u00E7ilen top</span><strong data-massimo-stock-roll>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row\" data-massimo-stock-rollen-row hidden><span>Top eni</span><strong data-massimo-stock-rollen>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row\" data-massimo-stock-maxlen-row hidden><span>Max kullan\u0131labilir boy</span><strong data-massimo-stock-maxlen>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row\" data-massimo-stock-suggest-row hidden><span>Alternatif boylar</span><strong data-massimo-stock-suggest>\u2014</strong></div>'\n      +   '</div>'\n      +   '<div class=\"massimo-oo__price-section\">'\n      +     '<div class=\"massimo-oo__price-section-title\">Fiyat Detay\u0131</div>'\n      +     '<div class=\"massimo-oo__price-row massimo-oo__price-row--formula\"><span data-massimo-price-product-formula>\u00DCr\u00FCn</span><strong data-massimo-price-product>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row massimo-oo__price-row--formula\"><span data-massimo-price-edge-formula>Kenar</span><strong data-massimo-price-edge>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row massimo-oo__price-row--amorf\" data-massimo-price-amorf-row hidden><span>Amorf \u00FCr\u00FCn zamm\u0131</span><strong data-massimo-price-amorf>+0%</strong></div>'\n      +     '<div class=\"massimo-oo__price-row massimo-oo__price-row--template\" data-massimo-price-template-row hidden><span>Amorf \u015Fablon \u00FCcreti (sabit)</span><strong data-massimo-price-template>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-row massimo-oo__price-row--total\"><span>Toplam</span><strong data-massimo-price-total>\u2014</strong></div>'\n      +     '<div class=\"massimo-oo__price-meta\" data-massimo-price-meta>\u2014</div>'\n      +   '</div>'\n      + '</div>'\n      + '<div class=\"massimo-oo__price-error\" data-massimo-price-error hidden></div>';\n    addBtn.parentNode.insertBefore(box, addBtn);\n  }\n\n  function getPriceDom(root) {\n    ensureStyles();\n    ensurePriceBox(root);\n    return {\n      box: $(root, '[data-massimo-price-display]'),\n      loading: $(root, '[data-massimo-price-loading]'),\n      summary: $(root, '[data-massimo-price-summary]'),\n      summaryUnit: $(root, '[data-massimo-price-summary-unit]'),\n      summarySize: $(root, '[data-massimo-price-summary-size]'),\n      summarySizeLabel: $(root, '[data-massimo-price-summary-size-label]'),\n      summaryTotal: $(root, '[data-massimo-price-summary-total]'),\n      detailToggle: $(root, '[data-massimo-price-detail-toggle]'),\n      detail: $(root, '[data-massimo-price-detail]'),\n      infoOrder: $(root, '[data-massimo-info-order]'),\n      infoCustomerArea: $(root, '[data-massimo-info-customer-area]'),\n      infoInvoice: $(root, '[data-massimo-info-invoice]'),\n      infoInvoiceArea: $(root, '[data-massimo-info-invoice-area]'),\n      infoFireRow: $(root, '[data-massimo-info-fire-row]'),\n      infoFire: $(root, '[data-massimo-info-fire]'),\n      infoPerimeter: $(root, '[data-massimo-info-perimeter]'),\n      stockSection: $(root, '[data-massimo-stock-section]'),\n      stockState: $(root, '[data-massimo-stock-state]'),\n      stockRollRow: $(root, '[data-massimo-stock-roll-row]'),\n      stockRoll: $(root, '[data-massimo-stock-roll]'),\n      stockRollenRow: $(root, '[data-massimo-stock-rollen-row]'),\n      stockRollen: $(root, '[data-massimo-stock-rollen]'),\n      stockMaxlenRow: $(root, '[data-massimo-stock-maxlen-row]'),\n      stockMaxlen: $(root, '[data-massimo-stock-maxlen]'),\n      stockSuggestRow: $(root, '[data-massimo-stock-suggest-row]'),\n      stockSuggest: $(root, '[data-massimo-stock-suggest]'),\n      product: $(root, '[data-massimo-price-product]'),\n      productFormula: $(root, '[data-massimo-price-product-formula]'),\n      edge: $(root, '[data-massimo-price-edge]'),\n      edgeFormula: $(root, '[data-massimo-price-edge-formula]'),\n      amorfRow: $(root, '[data-massimo-price-amorf-row]'),\n      amorf: $(root, '[data-massimo-price-amorf]'),\n      templateRow: $(root, '[data-massimo-price-template-row]'),\n      template: $(root, '[data-massimo-price-template]'),\n      total: $(root, '[data-massimo-price-total]'),\n      meta: $(root, '[data-massimo-price-meta]'),\n      err: $(root, '[data-massimo-price-error]')\n    };\n  }\n\n  function setMode(root, mode) {\n    var dom = getPriceDom(root);\n    if (!dom.box) return;\n    dom.box.hidden = false;\n    dom.box.className = 'massimo-oo__price-box is-' + mode;\n    if (dom.loading) dom.loading.hidden = mode !== 'loading';\n    if (dom.summary) dom.summary.hidden = mode !== 'ready';\n    if (dom.detail && mode !== 'ready') {\n      dom.detail.hidden = true;\n      if (dom.detailToggle) dom.detailToggle.setAttribute('aria-expanded', 'false');\n    }\n    if (dom.err) dom.err.hidden = mode !== 'error';\n  }\n  function showError(root, message) {\n    var dom = getPriceDom(root);\n    if (!dom.err) return;\n    dom.err.textContent = message || 'Fiyat hesaplanamad\u0131';\n    setMode(root, 'error');\n  }\n\n  // ===== Cut plan viz loader =====\n  function ensureCutPlanScript() {\n    if (window.MassimoCutPlanViz) return Promise.resolve(true);\n    if (window.__massimoCutPlanScriptPromise) return window.__massimoCutPlanScriptPromise;\n    return (window.__massimoCutPlanScriptPromise = new Promise(function (resolve) {\n      var existing = document.querySelector('script[src*=\"massimo-storefront-pricing.js\"]')\n        || document.querySelector('script[src*=\"massimo-ozel-olcu.js\"]');\n      var cutPlanUrl = '';\n      if (existing && existing.src) {\n        cutPlanUrl = existing.src.replace(/(massimo-storefront-pricing|massimo-ozel-olcu)\\.js(\\?[^\"]*)?$/, 'massimo-cut-plan-viz.js$2');\n      }\n      if (!cutPlanUrl) { resolve(false); return; }\n      var script = document.createElement('script');\n      script.src = cutPlanUrl;\n      script.async = true;\n      script.onload = function () { resolve(!!window.MassimoCutPlanViz); };\n      script.onerror = function () { resolve(false); };\n      (document.head || document.body || document.documentElement).appendChild(script);\n    }));\n  }\n  function ensureCutPlanBox(root) {\n    if (!root) return null;\n    var existing = $(root, '[data-massimo-cut-plan-container]');\n    if (existing) return existing;\n    // Detay b\u00F6l\u00FCm\u00FCn\u00FCn \u0130\u00C7\u0130NE ekle \u2014 kendi a\u00E7\u0131l\u0131r toggle'\u0131 ile (collapsible).\n    var detail = $(root, '[data-massimo-price-detail]');\n    if (!detail) return null;\n    var box = document.createElement('div');\n    box.className = 'massimo-oo__cut-plan-box massimo-oo__cut-plan-box--collapsible';\n    box.setAttribute('data-massimo-cut-plan-container', '');\n    box.innerHTML = ''\n      + '<button type=\"button\" class=\"massimo-oo__cut-plan-toggle\" data-massimo-cut-plan-toggle aria-expanded=\"false\">'\n      +   '<span class=\"massimo-oo__cut-plan-toggle-label\">Kesim Plan\u0131</span>'\n      +   '<span class=\"massimo-oo__cut-plan-toggle-icon\" aria-hidden=\"true\">\u25BE</span>'\n      + '</button>'\n      + '<div class=\"massimo-oo__cut-plan-body\" data-massimo-cut-plan-body hidden>'\n      +   '<div class=\"massimo-oo__cut-plan-render\" data-massimo-cut-plan-render>Kesim plan\u0131 haz\u0131rlan\u0131yor\u2026</div>'\n      +   '<div class=\"massimo-oo__cut-plan-meta\" data-massimo-cut-plan-meta hidden></div>'\n      + '</div>';\n    detail.appendChild(box);\n    return box;\n  }\n  function renderCutPlan(root, stockData) {\n    var container = ensureCutPlanBox(root);\n    if (!container) return;\n    if (!stockData || stockData.ok === false || !stockData.plan || !stockData.available) {\n      container.hidden = true;\n      return;\n    }\n    container.hidden = false;\n    // Veriyi container'a sakla \u2014 kullan\u0131c\u0131 toggle'a bas\u0131nca render edilecek\n    container.__massimoStockData = stockData;\n    // E\u011Fer body a\u00E7\u0131ksa an\u0131nda render et\n    var body = $(container, '[data-massimo-cut-plan-body]');\n    if (body && !body.hidden) renderCutPlanNow(container);\n  }\n\n  function renderCutPlanNow(container) {\n    if (!container) return;\n    var stockData = container.__massimoStockData;\n    if (!stockData || !stockData.plan) return;\n    var render = $(container, '[data-massimo-cut-plan-render]');\n    var meta = $(container, '[data-massimo-cut-plan-meta]');\n    if (render) render.textContent = 'Y\u00FCkleniyor\u2026';\n    ensureCutPlanScript().then(function (loaded) {\n      if (!loaded || !window.MassimoCutPlanViz || typeof window.MassimoCutPlanViz.render !== 'function') {\n        if (render) render.textContent = 'Kesim plan\u0131 g\u00F6rselle\u015Ftirici y\u00FCklenemedi.';\n        return;\n      }\n      if (render) render.innerHTML = '';\n      try {\n        window.MassimoCutPlanViz.render(render, stockData.plan, { compact: true, maxWidth: 380 });\n        if (meta) {\n          var ss = stockData.selectedStock;\n          if (ss && ss.ruloNo) {\n            meta.textContent = 'Top: ' + ss.ruloNo + ' (' + (ss.en ? (ss.en * 100) + ' cm' : '\u2014') + ' enli, kalan ' + (ss.kalan != null ? ss.kalan + ' m\u00B2' : '\u2014') + ')';\n            meta.hidden = false;\n          } else {\n            meta.hidden = true;\n          }\n        }\n      } catch (err) {\n        if (render) render.textContent = 'G\u00F6rselle\u015Ftirme hatas\u0131: ' + err.message;\n      }\n    });\n  }\n\n  // ===== Read state from DOM =====\n  function readState(root) {\n    if (!root) return null;\n    var config = root.__massimoConfig || {};\n    var quality = config.qualityCode;\n    var pattern = config.patternCode;\n    if (!quality || !pattern) return null;\n    var wInput = $(root, '[data-massimo-dimension=\"width\"]');\n    var lInput = $(root, '[data-massimo-dimension=\"length\"]');\n    var w = wInput ? parseInt(wInput.value, 10) : NaN;\n    var l = lInput ? parseInt(lInput.value, 10) : NaN;\n    if (!isFinite(w) || !isFinite(l) || w <= 0 || l <= 0) return null;\n    var edgeBtn = $(root, '[data-massimo-edge].is-active') || $(root, '[data-massimo-edge]');\n    var shapeBtn = $(root, '[data-massimo-shape].is-active') || $(root, '[data-massimo-shape]');\n    var edgeType = (edgeBtn && (edgeBtn.dataset.massimoEdge || edgeBtn.getAttribute('data-massimo-edge'))) || 'bordur';\n    var shapeType = (shapeBtn && (shapeBtn.dataset.massimoShape || shapeBtn.getAttribute('data-massimo-shape'))) || 'dikdortgen';\n    return {\n      quality: String(quality).toLowerCase(),\n      pattern: String(pattern),\n      width: w,\n      length: l,\n      edgeType: String(edgeType).toLowerCase(),\n      shapeType: String(shapeType).toLowerCase()\n    };\n  }\n\n  // ===== Apply result to DOM =====\n  function applyResult(root, data, stockData) {\n    if (!data || data.ok === false) {\n      showError(root, (data && (data.message || data.error)) || 'Fiyat servisine ula\u015F\u0131lamad\u0131');\n      return;\n    }\n    var p = data.pricing;\n    if (!p || typeof p.total !== 'number' || !isFinite(p.total)) {\n      showError(root, 'Fiyat cevab\u0131 eksik (total alan\u0131 yok)');\n      return;\n    }\n    var dom = getPriceDom(root);\n    var inv = data.invoice || {};\n    var cust = data.customer || {};\n    var fire = data.fire || {};\n    var req = data.request || {};\n    var shapeLabel = describeShape(req.shapeType);\n    var edgeLabel = describeEdge(req.edgeType);\n    var fmtM2 = function (n) { return (typeof n === 'number' ? n.toFixed(2) : '\u2014') + ' m\u00B2'; };\n    var fmtCm = function (n) { return (typeof n === 'number' ? n : '\u2014') + ' cm'; };\n    var fmtM = function (n) { return (typeof n === 'number' ? n.toFixed(2) : '\u2014') + ' m'; };\n\n    if (dom.summaryUnit) dom.summaryUnit.textContent = formatTRY(p.unitPriceM2, data.currency) + '/m\u00B2';\n    if (dom.summarySize) dom.summarySize.textContent = (cust.width || '\u2014') + ' \u00D7 ' + (cust.length || '\u2014') + ' cm (' + (cust.area || 0).toFixed(2) + ' m\u00B2)';\n    if (dom.summarySizeLabel) dom.summarySizeLabel.textContent = shapeLabel + ' \u00F6l\u00E7\u00FC';\n    if (dom.summaryTotal) dom.summaryTotal.textContent = formatTRY(p.total, data.currency);\n\n    if (dom.infoOrder) dom.infoOrder.textContent = (cust.width || '\u2014') + ' \u00D7 ' + (cust.length || '\u2014') + ' cm (' + shapeLabel + ')';\n    if (dom.infoCustomerArea) dom.infoCustomerArea.textContent = fmtM2(cust.area);\n    if (dom.infoInvoice) dom.infoInvoice.textContent = (inv.width || '\u2014') + ' \u00D7 ' + (inv.length || '\u2014') + ' cm';\n    if (dom.infoInvoiceArea) dom.infoInvoiceArea.textContent = fmtM2(inv.area);\n    if (dom.infoFire && dom.infoFireRow) {\n      if (fire.width && fire.width > 0 && fire.area > 0) {\n        dom.infoFire.textContent = fmtCm(fire.width) + ' \u00D7 ' + (inv.length || '\u2014') + ' cm = ' + fmtM2(fire.area);\n        dom.infoFireRow.hidden = false;\n      } else {\n        dom.infoFireRow.hidden = true;\n      }\n    }\n    if (dom.infoPerimeter) dom.infoPerimeter.textContent = fmtM(cust.perimeter) + ' (' + shapeLabel.toLowerCase() + ' form\u00FCl\u00FC)';\n\n    if (dom.stockSection) {\n      if (!stockData || stockData.ok === false) {\n        dom.stockSection.hidden = true;\n      } else {\n        dom.stockSection.hidden = false;\n        var available = stockData.available === true;\n        if (dom.stockState) {\n          dom.stockState.textContent = available\n            ? '\u2713 Stokta mevcut \u2014 ' + (stockData.rollCount || 1) + ' top, kesim yap\u0131labilir'\n            : '\u2717 ' + (stockData.message || 'Bu \u00F6l\u00E7\u00FCde stok yok');\n          dom.stockState.style.color = available ? '#1e6b35' : '#a83232';\n        }\n        var byWidth = stockData.stockSummary && stockData.stockSummary.byWidth;\n        var widths = byWidth ? Object.keys(byWidth).map(Number).filter(function (w) { return w >= (inv.width || 0); }) : [];\n        if (widths.length > 0 && available) {\n          var bestW = widths.reduce(function (acc, w) {\n            return (byWidth[w].maxLengthM > (byWidth[acc] ? byWidth[acc].maxLengthM : 0)) ? w : acc;\n          }, widths[0]);\n          var info = byWidth[bestW];\n          if (dom.stockRoll && dom.stockRollRow) {\n            dom.stockRoll.textContent = info.rollCount + ' top (' + bestW + ' cm enli)';\n            dom.stockRollRow.hidden = false;\n          }\n          if (dom.stockRollen && dom.stockRollenRow) {\n            dom.stockRollen.textContent = bestW + ' cm';\n            dom.stockRollenRow.hidden = false;\n          }\n          if (dom.stockMaxlen && dom.stockMaxlenRow) {\n            dom.stockMaxlen.textContent = (info.maxLengthM || 0).toFixed(2) + ' m (toplam kalan: ' + (info.totalLengthM || 0).toFixed(2) + ' m)';\n            dom.stockMaxlenRow.hidden = false;\n          }\n          if (dom.stockSuggestRow) dom.stockSuggestRow.hidden = true;\n        } else if (!available) {\n          if (dom.stockRollRow) dom.stockRollRow.hidden = true;\n          if (dom.stockRollenRow) dom.stockRollenRow.hidden = true;\n          if (dom.stockMaxlenRow) dom.stockMaxlenRow.hidden = true;\n          if (stockData.suggestion && stockData.suggestion.length && dom.stockSuggest && dom.stockSuggestRow) {\n            dom.stockSuggest.textContent = stockData.suggestion.map(function (m) { return m + ' m'; }).join(', ');\n            dom.stockSuggestRow.hidden = false;\n          } else if (dom.stockSuggestRow) {\n            dom.stockSuggestRow.hidden = true;\n          }\n        }\n      }\n    }\n\n    if (dom.productFormula) {\n      dom.productFormula.textContent = '\u00DCr\u00FCn base (' + (inv.area || 0).toFixed(2) + ' m\u00B2 \u00D7 ' + (p.unitPriceM2 || 0).toLocaleString('tr-TR') + ' ' + data.currency + '/m\u00B2)';\n    }\n    if (dom.product) dom.product.textContent = formatTRY(p.productBaseAmount != null ? p.productBaseAmount : p.productAmount, data.currency);\n\n    if (dom.edgeFormula) {\n      dom.edgeFormula.textContent = 'Kenar (' + edgeLabel + ' \u2014 ' + (p.edgeMeters || 0).toFixed(2) + ' m \u00D7 ' + (p.edgeBaseRate || 0).toLocaleString('tr-TR') + ' ' + data.currency + '/m)';\n    }\n    if (dom.edge) dom.edge.textContent = formatTRY(p.edgeAmount, data.currency);\n    if (dom.amorfRow && dom.amorf) {\n      if (p.amorfSurchargePct && p.amorfSurchargePct > 0) {\n        dom.amorf.textContent = '+' + formatTRY(p.amorfProductSurchargeAmount || 0, data.currency);\n        var amorfLabel = dom.amorfRow.querySelector('span');\n        if (amorfLabel) amorfLabel.textContent = 'Amorf \u00FCr\u00FCn zamm\u0131 (+%' + p.amorfSurchargePct + ')';\n        dom.amorfRow.hidden = false;\n      } else {\n        dom.amorfRow.hidden = true;\n      }\n    }\n    if (dom.template && dom.templateRow) {\n      if (p.templateFee && p.templateFee > 0) {\n        dom.template.textContent = formatTRY(p.templateFee, data.currency);\n        dom.templateRow.hidden = false;\n      } else {\n        dom.templateRow.hidden = true;\n      }\n    }\n    if (dom.total) dom.total.textContent = formatTRY(p.total, data.currency);\n    if (dom.meta) dom.meta.textContent = 'Fiyat listesi: ' + (data.priceListName || data.priceListId) + ' (' + data.currency + ' / ' + data.paymentMode + ')';\n\n    setMode(root, 'ready');\n    root.__massimoLastPricing = data;\n    root.__massimoLastStock = stockData || null;\n    try { renderCutPlan(root, stockData); } catch (_) {}\n  }\n\n  // ===== Fetch =====\n  function performFetch(root) {\n    var q = readState(root);\n    if (!q) {\n      var dom = getPriceDom(root);\n      if (dom.box) dom.box.hidden = true;\n      return;\n    }\n    var cacheKey = [q.quality, q.pattern, q.width, q.length, q.edgeType, q.shapeType].join('/');\n    var cached = cache[cacheKey];\n    if (cached && Date.now() - cached.time < CACHE_TTL_MS) {\n      applyResult(root, cached.priceData, cached.stockData);\n      return;\n    }\n    var prevAbort = aborts.get(root);\n    if (prevAbort) { try { prevAbort.abort(); } catch (_) {} }\n    var abort = (typeof AbortController !== 'undefined') ? new AbortController() : null;\n    if (abort) aborts.set(root, abort);\n    setMode(root, 'loading');\n    var commonQs = 'quality=' + encodeURIComponent(q.quality)\n      + '&pattern=' + encodeURIComponent(q.pattern)\n      + '&width=' + q.width\n      + '&length=' + q.length;\n    var priceUrl = API_BASE + '/storefront-price?' + commonQs\n      + '&edgeType=' + encodeURIComponent(q.edgeType)\n      + '&shapeType=' + encodeURIComponent(q.shapeType);\n    var stockUrl = API_BASE + '/storefront-stock-check?' + commonQs;\n    var fetchOpt = abort ? { signal: abort.signal } : undefined;\n    var pricePromise = fetch(priceUrl, fetchOpt).then(function (r) {\n      return r.json().then(function (b) { return { httpOk: r.ok, status: r.status, body: b }; });\n    }).catch(function (err) {\n      if (err && err.name === 'AbortError') throw err;\n      return { httpOk: false, status: 0, body: { ok: false, message: 'Fiyata ula\u015F\u0131lamad\u0131 (a\u011F)' } };\n    });\n    var stockPromise = fetch(stockUrl, fetchOpt).then(function (r) {\n      return r.json().then(function (b) { return { httpOk: r.ok, status: r.status, body: b }; });\n    }).catch(function (err) {\n      if (err && err.name === 'AbortError') throw err;\n      return { httpOk: false, status: 0, body: { ok: false, message: 'Stok bilgisine ula\u015F\u0131lamad\u0131' } };\n    });\n    Promise.all([pricePromise, stockPromise]).then(function (results) {\n      var priceBody = results[0].body || { ok: false, message: 'HTTP ' + results[0].status };\n      var stockBody = results[1] && results[1].body ? results[1].body : null;\n      if (results[0].httpOk && priceBody.ok !== false) {\n        cache[cacheKey] = { priceData: priceBody, stockData: stockBody, time: Date.now() };\n      }\n      applyResult(root, priceBody, stockBody);\n    }).catch(function (err) {\n      if (err && err.name === 'AbortError') return;\n      showError(root, 'Fiyata ula\u015F\u0131lamad\u0131 (a\u011F hatas\u0131). Sayfay\u0131 yenileyin.');\n    });\n  }\n\n  function scheduleFetch(root) {\n    if (!root) return;\n    var existing = timers.get(root);\n    if (existing) clearTimeout(existing);\n    var timer = setTimeout(function () {\n      timers.delete(root);\n      performFetch(root);\n    }, DEBOUNCE_MS);\n    timers.set(root, timer);\n  }\n\n  // ===== Wire-up =====\n  function watchRoot(root) {\n    if (!root || root.__massimoStorefrontPricingBound) return;\n    root.__massimoStorefrontPricingBound = true;\n    var inputs = root.querySelectorAll('[data-massimo-dimension]');\n    Array.prototype.forEach.call(inputs, function (inp) {\n      inp.addEventListener('input', function () { scheduleFetch(root); });\n      inp.addEventListener('change', function () { scheduleFetch(root); });\n    });\n    // \u0130lk render\n    setTimeout(function () { scheduleFetch(root); }, 250);\n  }\n\n  function bindGlobalDelegation() {\n    if (window.__MASSIMO_STOREFRONT_PRICING_DELEGATED__) return;\n    window.__MASSIMO_STOREFRONT_PRICING_DELEGATED__ = true;\n    // Edge / shape de\u011Fi\u015Fikli\u011Fi \u2014 main JS state'i g\u00FCncelledikten sonra fetch\n    document.addEventListener('click', function (e) {\n      var t = e.target;\n      if (!t || !t.closest) return;\n      var toggle = t.closest('[data-massimo-price-detail-toggle]');\n      if (toggle) {\n        var root = toggle.closest('[data-massimo-ozel-olcu]');\n        if (!root) return;\n        var detail = $(root, '[data-massimo-price-detail]');\n        if (!detail) return;\n        var isHidden = detail.hidden;\n        detail.hidden = !isHidden;\n        toggle.setAttribute('aria-expanded', isHidden ? 'true' : 'false');\n        toggle.textContent = isHidden ? 'Detay\u0131 Gizle \u25B4' : 'Detay\u0131 G\u00F6ster \u25BE';\n        return;\n      }\n      // Kesim Plan\u0131 a\u00E7\u0131l\u0131r toggle\n      var cutToggle = t.closest('[data-massimo-cut-plan-toggle]');\n      if (cutToggle) {\n        var container = cutToggle.closest('[data-massimo-cut-plan-container]');\n        if (!container) return;\n        var body = $(container, '[data-massimo-cut-plan-body]');\n        var icon = $(cutToggle, '.massimo-oo__cut-plan-toggle-icon');\n        if (!body) return;\n        var willOpen = !!body.hidden;\n        body.hidden = !willOpen;\n        cutToggle.setAttribute('aria-expanded', willOpen ? 'true' : 'false');\n        if (icon) icon.textContent = willOpen ? '\u25B4' : '\u25BE';\n        if (willOpen) renderCutPlanNow(container);\n        return;\n      }\n      var btn = t.closest('[data-massimo-edge], [data-massimo-shape]');\n      if (!btn) return;\n      var rootB = btn.closest('[data-massimo-ozel-olcu]');\n      if (!rootB) return;\n      setTimeout(function () { scheduleFetch(rootB); }, 120);\n    }, true);\n  }\n\n  function bootstrap() {\n    bindGlobalDelegation();\n    var roots = document.querySelectorAll('[data-massimo-ozel-olcu]');\n    Array.prototype.forEach.call(roots, watchRoot);\n    var obs = new MutationObserver(function (muts) {\n      muts.forEach(function (m) {\n        Array.prototype.forEach.call(m.addedNodes || [], function (n) {\n          if (!n || n.nodeType !== 1) return;\n          if (n.matches && n.matches('[data-massimo-ozel-olcu]')) watchRoot(n);\n          else if (n.querySelectorAll) Array.prototype.forEach.call(n.querySelectorAll('[data-massimo-ozel-olcu]'), watchRoot);\n          // Bir massimo root'unun i\u00E7inde __massimoConfig set edilince de tetikle\n          if (n.matches && n.matches('[data-massimo-ozel-olcu]')) {\n            setTimeout(function () { scheduleFetch(n); }, 400);\n          }\n        });\n      });\n    });\n    obs.observe(document.body || document.documentElement, { childList: true, subtree: true });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', bootstrap);\n  } else {\n    bootstrap();\n  }\n\n  window.__MASSIMO_STOREFRONT_PRICING_BUILD__ = BUILD;\n})();\n"],
  "mappings": "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",
  "names": []
}
