{
  "version": 3,
  "sources": ["/cdn/shop/t/107/assets/panel-led-v4.share-card.js?p2cr4sharecard=20261005p120dqrscore100"],
  "sourcesContent": ["/* =========================================================\r\n   PANEL LED V4 \u2014 P12-4E SHARE CARD SMART SHORT TITLE SYNC\r\n   M\u00FCh\u00FCr aday\u0131: PANEL-V4-P12-4E-SHARE-CARD-SMART-SHORT-TITLE-SYNC-SAFE\r\n\r\n   G\u00F6rev:\r\n   - P12-3R2 share card veri/sourceLock yap\u0131s\u0131n\u0131 korur.\r\n   - PNG kart\u0131nda \u00FCr\u00FCn adlar\u0131n\u0131 smartTitle ile kullan\u0131r.\r\n   - Uzun mekanik ba\u015Fl\u0131k kesmelerini azalt\u0131r.\r\n   - Compare / commerce / recommender / data / QR ak\u0131\u015F\u0131na dokunmaz.\r\n   ========================================================= */\r\n(function (window, document) {\r\n  \"use strict\";\r\n\r\n  if (window.GDX_PANEL_LED_V4_SHARE_CARD_READY) return;\r\n  window.GDX_PANEL_LED_V4_SHARE_CARD_READY = true;\r\n\r\n  var VERSION = \"PANEL-V4-R4PA-P1.20D-SHARE-PNG-QR-SCORE100-PARITY-V1\";\r\n  var LAST_RENDER = null;\r\n  var CARD_W = 1080;\r\n  var CARD_H = 1440;\r\n  var QR_DRAW_SIZE = 146;\r\n  var LAST_P120C_DIAGNOSTIC = {\r\n    version: \"CANFOTO-ETAP2-R4-PA-P1.20D-SHARE-PNG-QR-SCORE100-PARITY-V1\",\r\n    qr: { ok: null, reason: \"not-run\" },\r\n    serialization: { ok: null, fallbackWithoutExternalImages: false, reason: \"not-run\" },\r\n    canvas: { ok: null, reason: \"not-run\" }\r\n  };\r\n\r\n  function ready(fn) {\r\n    if (document.readyState === \"loading\") {\r\n      document.addEventListener(\"DOMContentLoaded\", fn, { once: true });\r\n    } else {\r\n      fn();\r\n    }\r\n  }\r\n\r\n  function cleanText(value) {\r\n    return String(value || \"\").replace(/\\s+/g, \" \").trim();\r\n  }\r\n\r\n  function escapeHtml(value) {\r\n    return String(value || \"\").replace(/[&<>\"']/g, function (char) {\r\n      return { \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\", '\"': \"&quot;\", \"'\": \"&#39;\" }[char];\r\n    });\r\n  }\r\n\r\n  function normalizeKey(value) {\r\n    value = cleanText(value).toLocaleLowerCase(\"tr-TR\");\r\n    value = value.replace(/^\\/products\\//i, \"\");\r\n    value = value.split(\"?\")[0].split(\"#\")[0];\r\n    return value;\r\n  }\r\n\r\n  function root() { return document.getElementById(\"gdx-panel-led-v4-root\"); }\r\n  function shareEl() { return document.getElementById(\"gdxPanelV4SharePreview\"); }\r\n  function commerceEl() { return document.getElementById(\"gdxPanelV4CommercePreview\"); }\r\n  function resultEl() { return document.getElementById(\"gdxPanelV4ResultPreview\"); }\r\n\r\n  function getUiApi() { return window.GDX_PANEL_LED_V4_UI || null; }\r\n  function getShareApi() { return window.GDX_PANEL_LED_V4_SHARE || null; }\r\n  function getQrApi() { return window.GDX_PANEL_LED_V4_QR || null; }\r\n\r\n  function getState() {\r\n    var UI = getUiApi();\r\n    return UI && UI.state ? UI.state : null;\r\n  }\r\n\r\n  function getCompareResult() {\r\n    var state = getState();\r\n    return state && state.compareResult && state.compareResult.ok ? state.compareResult : null;\r\n  }\r\n\r\n  function getShareCardMount() {\r\n    var existing = document.getElementById(\"gdxPanelV4ShareCardPreview\");\r\n    if (existing) return existing;\r\n\r\n    var r = root();\r\n    if (!r) return null;\r\n\r\n    var anchor = shareEl() || commerceEl() || resultEl();\r\n    if (!anchor || !anchor.parentNode) return null;\r\n\r\n    var el = document.createElement(\"div\");\r\n    el.id = \"gdxPanelV4ShareCardPreview\";\r\n    el.className = \"gdx-panel-v4-share-card-mount\";\r\n\r\n    anchor.parentNode.insertBefore(el, anchor.nextSibling);\r\n    return el;\r\n  }\r\n\r\n  function getShareUrl() {\r\n    var SHARE = getShareApi();\r\n    if (SHARE && typeof SHARE.buildUrl === \"function\") return SHARE.buildUrl();\r\n    return window.location.href;\r\n  }\r\n\r\n  function getQrShareUrl(fallbackShareUrl) {\r\n    var SHARE = getShareApi();\r\n\r\n    if (SHARE && typeof SHARE.buildQrUrl === \"function\") {\r\n      var qrUrl = SHARE.buildQrUrl();\r\n      if (qrUrl) return qrUrl;\r\n    }\r\n\r\n    return fallbackShareUrl || getShareUrl();\r\n  }\r\n\r\n  function renderPanel() {\r\n    var mount = getShareCardMount();\r\n    if (!mount) return false;\r\n\r\n    var result = getCompareResult();\r\n    if (!result || !result.winner || !result.loser) {\r\n      mount.hidden = true;\r\n      mount.innerHTML = \"\";\r\n      return false;\r\n    }\r\n\r\n    mount.hidden = true;\r\n    mount.classList.add(\"is-service-only\");\r\n    mount.innerHTML =\r\n      '<section class=\"gdx-panel-v4-share-card-section is-service-only\" hidden>' +\r\n        '<button type=\"button\" data-gdx-panel-share-card-render>PNG G\u00F6rseli Olu\u015Ftur</button>' +\r\n        '<a href=\"#\" data-gdx-panel-share-card-download hidden>PNG \u0130ndir</a>' +\r\n        '<div class=\"gdx-panel-v4-share-card-status\" hidden></div>' +\r\n        '<div class=\"gdx-panel-v4-share-card-preview\" data-gdx-panel-share-card-preview hidden></div>' +\r\n      '</section>';\r\n\r\n    return true;\r\n  }\r\n\r\n  function setStatus(message, state) {\r\n    var el = document.querySelector(\"#gdxPanelV4ShareCardPreview .gdx-panel-v4-share-card-status\");\r\n    if (!el) return;\r\n\r\n    el.textContent = message || \"\";\r\n    el.classList.remove(\"is-success\", \"is-error\", \"is-loading\");\r\n    if (state) el.classList.add(state);\r\n  }\r\n\r\n  function setButtonState(button, label, state) {\r\n    if (!button) return;\r\n    button.textContent = label || \"PNG G\u00F6rseli Olu\u015Ftur\";\r\n    button.classList.remove(\"is-success\", \"is-error\", \"is-loading\");\r\n    if (state) button.classList.add(state);\r\n  }\r\n\r\n  function round(value, digits) {\r\n    var m = Math.pow(10, digits === undefined ? 1 : digits);\r\n    var n = Number(value || 0);\r\n    if (!isFinite(n)) n = 0;\r\n    return Math.round(n * m) / m;\r\n  }\r\n\r\n  function clamp(value, min, max) {\r\n    value = Number(value || 0);\r\n    if (!isFinite(value)) value = 0;\r\n    return Math.max(min, Math.min(max, value));\r\n  }\r\n\r\n  function fmtScore(value) {\r\n    if (value === undefined || value === null || value === \"\") return \"\u2014\";\r\n    return String(round(value, 1)).replace(\".\", \",\");\r\n  }\r\n\r\n  function scoreAs10(value) {\r\n    var n = Number(value || 0);\r\n    if (!isFinite(n)) n = 0;\r\n    return n > 10 ? n / 10 : n;\r\n  }\r\n\r\n  function scoreAs100(value) {\r\n    var n = Number(value || 0);\r\n    if (!isFinite(n)) n = 0;\r\n    if (n <= 10) n = n * 10;\r\n    return clamp(Math.round(n), 0, 100);\r\n  }\r\n\r\n  function fmtScore100(value) {\r\n    if (value === undefined || value === null || value === \"\") return \"\u2014\";\r\n    return String(scoreAs100(value));\r\n  }\r\n\r\n  function scoreNumber(item) {\r\n    if (!item) return 0;\r\n    if (item.score10 !== undefined) return Number(item.score10 || 0);\r\n    if (item.score !== undefined) return Number(item.score || 0);\r\n    return 0;\r\n  }\r\n\r\n  function getItemTitle(item) {\r\n    return cleanText(item && (\r\n      item.offerIdentityTitle ||\r\n      item.productSmartTitle ||\r\n      item.smartTitle ||\r\n      item.smartShortTitle ||\r\n      (item.product && (item.product.smartTitle || item.product.smartShortTitle || item.product.displayTitle)) ||\r\n      item.productShortTitle ||\r\n      item.productTitle ||\r\n      item.shortTitle ||\r\n      item.title ||\r\n      (item.product && (item.product.shortTitle || item.product.title))\r\n    ));\r\n  }\r\n\r\n  function shortTitle(value, max) {\r\n    var text = cleanText(value);\r\n    max = max || 48;\r\n    if (text.length <= max) return text;\r\n    var cut = text.slice(0, max);\r\n    var last = cut.lastIndexOf(\" \");\r\n    if (last > 18) cut = cut.slice(0, last);\r\n    return cut.replace(/[.,;:!?-]*$/, \"\") + \"...\";\r\n  }\r\n\r\n  function getItemKey(item) {\r\n    return normalizeKey(item && (\r\n      item.productKey || item.key || item.handle || item.id ||\r\n      (item.product && (item.product.key || item.product.handle || item.product.id))\r\n    ));\r\n  }\r\n\r\n  function findSelectedProductForItem(item) {\r\n    var state = getState();\r\n    var selected = state && state.selected ? state.selected : {};\r\n    var products = [selected[1], selected[2]].filter(Boolean);\r\n    var wantedKey = getItemKey(item);\r\n    var wantedTitle = normalizeKey(getItemTitle(item));\r\n\r\n    if (!products.length || !item) return null;\r\n\r\n    if (wantedKey) {\r\n      var byKey = products.find(function (product) {\r\n        return product && (\r\n          normalizeKey(product.key) === wantedKey ||\r\n          normalizeKey(product.handle) === wantedKey ||\r\n          normalizeKey(product.id) === wantedKey ||\r\n          normalizeKey(product.url) === wantedKey ||\r\n          normalizeKey(product.title) === wantedKey\r\n        );\r\n      });\r\n      if (byKey) return byKey;\r\n    }\r\n\r\n    if (wantedTitle) {\r\n      var byTitle = products.find(function (product) {\r\n        var title = normalizeKey(product.title || product.shortTitle || \"\");\r\n        var short = normalizeKey(product.shortTitle || \"\");\r\n        return title.indexOf(wantedTitle.slice(0, 22)) > -1 ||\r\n          wantedTitle.indexOf(title.slice(0, 22)) > -1 ||\r\n          short.indexOf(wantedTitle.slice(0, 22)) > -1;\r\n      });\r\n      if (byTitle) return byTitle;\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n  function getProductImage(item, selectedProduct) {\r\n    selectedProduct = selectedProduct || findSelectedProductForItem(item) || {};\r\n    return cleanText(\r\n      (item && item.image) ||\r\n      (item && item.product && item.product.image) ||\r\n      selectedProduct.image ||\r\n      (selectedProduct.images && selectedProduct.images[0] && selectedProduct.images[0].src) ||\r\n      \"\"\r\n    );\r\n  }\r\n\r\n  function familyLabel(product) {\r\n    var specs = product && product.specs ? product.specs : {};\r\n    if (specs.family === \"rgb\") return \"RGB Panel\";\r\n    if (specs.family === \"bicolor\") return \"Bi-Color Panel\";\r\n    if (specs.family === \"daylight\") return \"Daylight Panel\";\r\n    return cleanText(product && product.productType) || \"Panel LED\";\r\n  }\r\n\r\n  function chipList(product) {\r\n    product = product || {};\r\n    var specs = product.specs || {};\r\n    var out = [];\r\n    out.push(familyLabel(product).replace(\" Panel\", \"\"));\r\n    if (specs.powerW) out.push(specs.powerW + \"W\");\r\n    if (specs.cri) out.push(\"CRI \" + specs.cri + \"+\");\r\n    else if (specs.tlci) out.push(\"TLCI \" + specs.tlci + \"+\");\r\n    if (specs.hasBattery) out.push(\"Batarya\");\r\n    if (specs.hasAC && !specs.hasBattery) out.push(\"AC/DC\");\r\n    if (specs.hasBluetooth) out.push(\"APP\");\r\n\r\n    if (!out.length && Array.isArray(product.badges)) out = product.badges.slice(0, 3);\r\n    return out.filter(Boolean).slice(0, 3);\r\n  }\r\n\r\n  function itemProduct(item) {\r\n    return findSelectedProductForItem(item) || (item && item.product) || {};\r\n  }\r\n\r\n\r\n  /* =========================================================\r\n     PANEL LED V4 \u2014 P20-1 SHARE CARD COMMERCE SIGNAL DATA MODEL\r\n     M\u00FCh\u00FCr aday\u0131:\r\n     PANEL-V4-P20-2-R3-SHARE-PNG-SUMMARY-BAND-MICRO-POLISH-SAFE\r\n\r\n     Ama\u00E7:\r\n     - P18 commerce sinyallerini share-card modeline ba\u011Flamak.\r\n     - Bu fazda canvas g\u00F6rsel yerle\u015Fimi de\u011Fi\u015Ftirilmez.\r\n     - P20-2 i\u00E7in g\u00FCvenli data model haz\u0131rlan\u0131r.\r\n     ========================================================= */\r\n\r\n  function normalizeHandle(value) {\r\n    value = cleanText(value);\r\n    value = value.replace(/^\\/products\\//i, \"\");\r\n    value = value.split(\"?\")[0].split(\"#\")[0];\r\n    return value;\r\n  }\r\n\r\n  function parseMoneyNumber(value) {\r\n    if (value === undefined || value === null || value === \"\") return 0;\r\n\r\n    if (typeof value === \"number\") {\r\n      if (!isFinite(value)) return 0;\r\n      return value > 100000 ? value / 100 : value;\r\n    }\r\n\r\n    var text = cleanText(value)\r\n      .replace(/\u20BA/g, \"\")\r\n      .replace(/TRY/gi, \"\")\r\n      .replace(/TL/gi, \"\")\r\n      .replace(/\\s/g, \"\")\r\n      .replace(/[^\\d.,]/g, \"\");\r\n\r\n    if (!text) return 0;\r\n\r\n    var comma = text.lastIndexOf(\",\");\r\n    var dot = text.lastIndexOf(\".\");\r\n    var decimalSep = \"\";\r\n\r\n    /*\r\n      P20-2-R1:\r\n      Shopify bridge baz\u0131 fiyatlar\u0131 EN bi\u00E7iminde d\u00F6nd\u00FCr\u00FCyor:\r\n      9,699.00TL / 43,179.00TL\r\n\r\n      \u00D6nceki parse bu format\u0131 TR bi\u00E7imi san\u0131p 9.699 TL olarak okuyordu.\r\n      Sonu\u00E7 PNG'de 9.699 TL yerine 10 TL g\u00F6r\u00FCn\u00FCyordu.\r\n\r\n      Kural:\r\n      - Hem \",\" hem \".\" varsa son gelen separator decimal kabul edilir.\r\n      - Sadece tek separator varsa, son par\u00E7an\u0131n 2 hane olmas\u0131 decimal,\r\n        3 hane olmas\u0131 thousands kabul edilir.\r\n    */\r\n    if (comma > -1 && dot > -1) {\r\n      decimalSep = comma > dot ? \",\" : \".\";\r\n    } else if (comma > -1) {\r\n      var commaTail = text.length - comma - 1;\r\n      decimalSep = commaTail === 2 ? \",\" : \"\";\r\n    } else if (dot > -1) {\r\n      var dotTail = text.length - dot - 1;\r\n      decimalSep = dotTail === 2 ? \".\" : \"\";\r\n    }\r\n\r\n    var normalized = text;\r\n\r\n    if (decimalSep) {\r\n      var parts = text.split(decimalSep);\r\n      var decimal = parts.pop();\r\n      var integer = parts.join(decimalSep).replace(/[.,]/g, \"\");\r\n      normalized = integer + \".\" + decimal;\r\n    } else {\r\n      normalized = text.replace(/[.,]/g, \"\");\r\n    }\r\n\r\n    var number = Number(normalized);\r\n    if (!isFinite(number)) return 0;\r\n\r\n    return number > 100000 ? number / 100 : number;\r\n  }\r\n\r\n  function formatMoneyTry(value) {\r\n    value = Number(value || 0);\r\n    if (!value || !isFinite(value)) return \"\";\r\n\r\n    try {\r\n      return new Intl.NumberFormat(\"tr-TR\", {\r\n        style: \"currency\",\r\n        currency: \"TRY\",\r\n        minimumFractionDigits: 2,\r\n        maximumFractionDigits: 2\r\n      }).format(value);\r\n    } catch (error) {\r\n      return \"\u20BA\" + value.toFixed(2).replace(\".\", \",\");\r\n    }\r\n  }\r\n\r\n  function readFirstCommerceText(product, keys) {\r\n    product = product || {};\r\n\r\n    for (var i = 0; i < keys.length; i += 1) {\r\n      var value = product[keys[i]];\r\n      if (value !== undefined && value !== null && cleanText(value) !== \"\") {\r\n        return cleanText(value);\r\n      }\r\n    }\r\n\r\n    return \"\";\r\n  }\r\n\r\n  function getBridgeProductForShare(product) {\r\n    product = product || {};\r\n\r\n    var bridge = window.GDX_PANEL_LED_V4_SHOPIFY_BRIDGE || null;\r\n    if (!bridge || !bridge.products) return null;\r\n\r\n    var urlHandle = \"\";\r\n    if (product.url && String(product.url).indexOf(\"/products/\") > -1) {\r\n      urlHandle = String(product.url).split(\"/products/\")[1];\r\n    }\r\n\r\n    var candidates = [\r\n      product.handle,\r\n      product.key,\r\n      product.id,\r\n      product.productId,\r\n      product.url,\r\n      urlHandle,\r\n      product.title,\r\n      product.shortTitle,\r\n      product.smartTitle,\r\n      product.smartShortTitle\r\n    ].map(function (value) {\r\n      return normalizeHandle(value || \"\");\r\n    }).filter(Boolean);\r\n\r\n    for (var i = 0; i < candidates.length; i += 1) {\r\n      var key = candidates[i];\r\n      var direct = bridge.products[key] || bridge.products[String(key).toLocaleLowerCase(\"tr-TR\")];\r\n      if (direct) return direct;\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n  function mergeShareCommerceProduct(product, bridgeProduct) {\r\n    product = product || {};\r\n    bridgeProduct = bridgeProduct || null;\r\n\r\n    if (!bridgeProduct) return product;\r\n\r\n    var merged = {};\r\n    Object.keys(product).forEach(function (key) { merged[key] = product[key]; });\r\n\r\n    [\r\n      \"price\",\r\n      \"priceText\",\r\n      \"compareAtPrice\",\r\n      \"compareAtPriceText\",\r\n      \"comparePriceText\",\r\n      \"discountPercentText\",\r\n      \"discount_percent_text\",\r\n      \"savingsText\",\r\n      \"savingsAmount\",\r\n      \"campaignLabel\",\r\n      \"campaign_label\",\r\n      \"campaignNote\",\r\n      \"campaign_note\",\r\n      \"giftLabel\",\r\n      \"gift_label\",\r\n      \"gift\"\r\n    ].forEach(function (key) {\r\n      if (merged[key] === undefined || merged[key] === null || cleanText(merged[key]) === \"\") {\r\n        if (bridgeProduct[key] !== undefined && bridgeProduct[key] !== null) merged[key] = bridgeProduct[key];\r\n      }\r\n    });\r\n\r\n    return merged;\r\n  }\r\n\r\n  function getDiscountPercentTextForShare(priceText, compareAtText) {\r\n    var priceNumber = parseMoneyNumber(priceText);\r\n    var compareNumber = parseMoneyNumber(compareAtText);\r\n\r\n    if (!priceNumber || !compareNumber || compareNumber <= priceNumber) return \"\";\r\n\r\n    var percent = Math.round(((compareNumber - priceNumber) / compareNumber) * 100);\r\n    if (!percent || percent <= 0) return \"\";\r\n\r\n    return \"%\" + percent + \" indirim\";\r\n  }\r\n\r\n  function getSavingsTextForShare(priceText, compareAtText) {\r\n    var priceNumber = parseMoneyNumber(priceText);\r\n    var compareNumber = parseMoneyNumber(compareAtText);\r\n    var diff = compareNumber - priceNumber;\r\n\r\n    if (!diff || diff <= 0) return \"\";\r\n\r\n    return formatMoneyTry(diff);\r\n  }\r\n\r\n  function getShareCommerceSignal(product) {\r\n    product = product || {};\r\n\r\n    var bridgeProduct = getBridgeProductForShare(product);\r\n    var merged = mergeShareCommerceProduct(product, bridgeProduct);\r\n\r\n    var priceText = readFirstCommerceText(merged, [\r\n      \"priceText\",\r\n      \"price_text\",\r\n      \"formattedPrice\"\r\n    ]);\r\n\r\n    if (!priceText && merged.price !== undefined && merged.price !== null) {\r\n      priceText = formatMoneyTry(merged.price);\r\n    }\r\n\r\n    var compareAtPriceText = readFirstCommerceText(merged, [\r\n      \"compareAtPriceText\",\r\n      \"compare_at_price_text\",\r\n      \"comparePriceText\",\r\n      \"compare_price_text\",\r\n      \"oldPriceText\",\r\n      \"regularPriceText\"\r\n    ]);\r\n\r\n    if (!compareAtPriceText && merged.compareAtPrice !== undefined && merged.compareAtPrice !== null) {\r\n      compareAtPriceText = formatMoneyTry(merged.compareAtPrice);\r\n    }\r\n\r\n    var savingsText = readFirstCommerceText(merged, [\r\n      \"savingsText\",\r\n      \"savings_text\"\r\n    ]) || getSavingsTextForShare(priceText, compareAtPriceText);\r\n\r\n    savingsText = cleanText(savingsText.replace(/\\s*(avantaj|kazan\u00E7|kazanc)\\s*$/i, \"\"));\r\n\r\n    var discountPercentText = readFirstCommerceText(merged, [\r\n      \"discountPercentText\",\r\n      \"discount_percent_text\"\r\n    ]) || getDiscountPercentTextForShare(priceText, compareAtPriceText);\r\n\r\n    var campaignLabel = readFirstCommerceText(merged, [\r\n      \"campaignLabel\",\r\n      \"campaign_label\",\r\n      \"campaign\",\r\n      \"promoLabel\",\r\n      \"promotionLabel\"\r\n    ]);\r\n\r\n    var campaignNote = readFirstCommerceText(merged, [\r\n      \"campaignNote\",\r\n      \"campaign_note\",\r\n      \"campaignDescription\",\r\n      \"promoNote\",\r\n      \"promotionNote\"\r\n    ]);\r\n\r\n    var giftLabel = readFirstCommerceText(merged, [\r\n      \"giftLabel\",\r\n      \"gift_label\",\r\n      \"gift\",\r\n      \"giftText\",\r\n      \"gift_note\",\r\n      \"giftNote\"\r\n    ]);\r\n\r\n    var hasComparePrice = !!(priceText && compareAtPriceText && parseMoneyNumber(compareAtPriceText) > parseMoneyNumber(priceText));\r\n    var hasAnySignal = !!(priceText || compareAtPriceText || discountPercentText || savingsText || campaignLabel || giftLabel);\r\n\r\n    return {\r\n      ok: hasAnySignal,\r\n      source: bridgeProduct ? \"shopify-bridge+product\" : \"product\",\r\n      priceText: priceText,\r\n      compareAtPriceText: compareAtPriceText,\r\n      hasComparePrice: hasComparePrice,\r\n      discountPercentText: discountPercentText,\r\n      savingsText: savingsText,\r\n      campaignLabel: campaignLabel,\r\n      campaignNote: campaignNote,\r\n      giftLabel: giftLabel,\r\n      hasCampaign: !!campaignLabel,\r\n      hasGift: !!giftLabel\r\n    };\r\n  }\r\n\r\n\r\n  function formatSharePngMoney(value) {\r\n    /*\r\n      P20-2-R2 HARD FIX:\r\n      PNG i\u00E7inde fiyat g\u00F6stermek i\u00E7in art\u0131k sadece number parse'a g\u00FCvenmiyoruz.\r\n      \u00D6nce gelen para stringini format olarak \u00E7\u00F6z\u00FCyoruz.\r\n\r\n      \u00D6rnek destek:\r\n      - 9,699.00TL  -> 9.699 TL\r\n      - 43,179.00TL -> 43.179 TL\r\n      - 9.699,00TL  -> 9.699 TL\r\n      - 43179       -> 43.179 TL\r\n      - 4317900     -> 43.179 TL (kuru\u015F/cents)\r\n    */\r\n\r\n    if (value === undefined || value === null || value === \"\") return \"\";\r\n\r\n    if (typeof value === \"number\") {\r\n      var numberValue = value > 100000 ? value / 100 : value;\r\n\r\n      try {\r\n        return new Intl.NumberFormat(\"tr-TR\", {\r\n          minimumFractionDigits: 0,\r\n          maximumFractionDigits: 0\r\n        }).format(numberValue) + \" TL\";\r\n      } catch (error) {\r\n        return String(Math.round(numberValue)).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\") + \" TL\";\r\n      }\r\n    }\r\n\r\n    var raw = cleanText(value)\r\n      .replace(/\u20BA/g, \"\")\r\n      .replace(/TRY/gi, \"\")\r\n      .replace(/TL/gi, \"\")\r\n      .replace(/\\s/g, \"\")\r\n      .replace(/[^\\d.,]/g, \"\");\r\n\r\n    if (!raw) return \"\";\r\n\r\n    var comma = raw.lastIndexOf(\",\");\r\n    var dot = raw.lastIndexOf(\".\");\r\n    var decimalSep = \"\";\r\n\r\n    if (comma > -1 && dot > -1) {\r\n      decimalSep = comma > dot ? \",\" : \".\";\r\n    } else if (comma > -1) {\r\n      decimalSep = (raw.length - comma - 1) === 2 ? \",\" : \"\";\r\n    } else if (dot > -1) {\r\n      decimalSep = (raw.length - dot - 1) === 2 ? \".\" : \"\";\r\n    }\r\n\r\n    var integerPart = raw;\r\n\r\n    if (decimalSep) {\r\n      var parts = raw.split(decimalSep);\r\n      parts.pop();\r\n      integerPart = parts.join(decimalSep);\r\n    }\r\n\r\n    integerPart = integerPart.replace(/[.,]/g, \"\").replace(/^0+/, \"\") || \"0\";\r\n\r\n    var number = Number(integerPart);\r\n    if (!isFinite(number)) return cleanText(value || \"\");\r\n\r\n    /*\r\n      Sadece saf rakam \u00E7ok b\u00FCy\u00FCk gelirse kuru\u015F/cents kabul et.\r\n      43,179.00 gibi stringlerde buraya 43179 gelir ve b\u00F6l\u00FCnmez.\r\n    */\r\n    if (/^\\d+$/.test(raw) && number > 100000) {\r\n      number = number / 100;\r\n    }\r\n\r\n    try {\r\n      return new Intl.NumberFormat(\"tr-TR\", {\r\n        minimumFractionDigits: 0,\r\n        maximumFractionDigits: 0\r\n      }).format(number) + \" TL\";\r\n    } catch (error) {\r\n      return String(Math.round(number)).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\") + \" TL\";\r\n    }\r\n  }\r\n\r\n  function shareCommerceSignalPills(signal) {\r\n    signal = signal || {};\r\n\r\n    var out = [];\r\n\r\n    if (signal.priceText) {\r\n      out.push({\r\n        type: \"price\",\r\n        label: \"F\u0130YAT\",\r\n        text: formatSharePngMoney(signal.priceText),\r\n        color: \"#ffffff\",\r\n        border: \"rgba(56,189,248,0.52)\",\r\n        bg: \"rgba(56,189,248,0.10)\"\r\n      });\r\n    }\r\n\r\n    if (signal.discountPercentText) {\r\n      out.push({\r\n        type: \"discount\",\r\n        label: \"\",\r\n        text: signal.discountPercentText,\r\n        color: \"#fde68a\",\r\n        border: \"rgba(250,204,21,0.62)\",\r\n        bg: \"rgba(250,204,21,0.12)\"\r\n      });\r\n    }\r\n\r\n    if (signal.savingsText) {\r\n      out.push({\r\n        type: \"saving\",\r\n        label: \"KAZAN\u00C7\",\r\n        text: formatSharePngMoney(signal.savingsText),\r\n        color: \"#bbf7d0\",\r\n        border: \"rgba(34,197,94,0.58)\",\r\n        bg: \"rgba(34,197,94,0.11)\"\r\n      });\r\n    }\r\n\r\n    if (signal.campaignLabel) {\r\n      out.push({\r\n        type: \"campaign\",\r\n        label: \"\",\r\n        text: shortTitle(signal.campaignLabel, 22),\r\n        color: \"#fde68a\",\r\n        border: \"rgba(250,204,21,0.46)\",\r\n        bg: \"rgba(250,204,21,0.10)\"\r\n      });\r\n    }\r\n\r\n    if (signal.giftLabel) {\r\n      out.push({\r\n        type: \"gift\",\r\n        label: \"HED\u0130YE\",\r\n        text: shortTitle(signal.giftLabel, 20),\r\n        color: \"#bae6fd\",\r\n        border: \"rgba(56,189,248,0.50)\",\r\n        bg: \"rgba(56,189,248,0.10)\"\r\n      });\r\n    }\r\n\r\n    return out;\r\n  }\r\n\r\n  function drawCommercePill(ctx, pill, x, y, w, h) {\r\n    pill = pill || {};\r\n\r\n    fillRoundRect(ctx, x, y, w, h, h / 2, pill.bg || \"rgba(2,6,23,0.34)\");\r\n    strokeRoundRect(ctx, x, y, w, h, h / 2, pill.border || \"rgba(255,255,255,0.18)\", 1.5);\r\n\r\n    var text = cleanText((pill.label ? pill.label + \": \" : \"\") + (pill.text || \"\"));\r\n    drawText(ctx, shortTitle(text, w < 105 ? 13 : 18), x + w / 2, y + 7, {\r\n      color: pill.color || \"#f8fafc\",\r\n      font: \"950 12px Arial\",\r\n      align: \"center\"\r\n    });\r\n  }\r\n\r\n\r\n  function criterionSide(evidence, item) {\r\n    if (!evidence || !item) return \"\";\r\n    var key = getItemKey(item);\r\n    var title = normalizeKey(getItemTitle(item));\r\n    var aKey = normalizeKey(evidence.productA && evidence.productA.productKey);\r\n    var bKey = normalizeKey(evidence.productB && evidence.productB.productKey);\r\n    var aTitle = normalizeKey(evidence.productA && (evidence.productA.productTitle || evidence.productA.productShortTitle));\r\n    var bTitle = normalizeKey(evidence.productB && (evidence.productB.productTitle || evidence.productB.productShortTitle));\r\n\r\n    if (key && aKey && key === aKey) return \"a\";\r\n    if (key && bKey && key === bKey) return \"b\";\r\n    if (title && aTitle && (title.indexOf(aTitle.slice(0, 18)) > -1 || aTitle.indexOf(title.slice(0, 18)) > -1)) return \"a\";\r\n    if (title && bTitle && (title.indexOf(bTitle.slice(0, 18)) > -1 || bTitle.indexOf(title.slice(0, 18)) > -1)) return \"b\";\r\n    return \"\";\r\n  }\r\n\r\n  function rowForKey(rows, key) {\r\n    return (rows || []).find(function (row) { return row && row.key === key; }) || null;\r\n  }\r\n\r\n  function sideRow(row, side) {\r\n    if (!row) return null;\r\n    return side === \"a\" ? row.productA : row.productB;\r\n  }\r\n\r\n  function getCompareApi() {\r\n    return window.GDX_PANEL_LED_V4_COMPARE || null;\r\n  }\r\n\r\n  function sourceLockIsUsable(sourceLock) {\r\n    return !!(sourceLock && Number(sourceLock.total || 0) > 0);\r\n  }\r\n\r\n  function shortMoney(value) {\r\n    /* LB2.4-R3: display-only price contract. Keep money math untouched and\r\n       render a single visible tr-TR whole-TL form: 14.999 TL / 13.999 TL. */\r\n    return formatSharePngMoney(value);\r\n  }\r\n\r\n  function compactLumen(value) {\r\n    value = Number(value || 0);\r\n    if (!value) return \"\";\r\n    if (value >= 1000) {\r\n      var rounded = Math.round(value / 100) / 10;\r\n      return String(rounded).replace(\".\", \",\") + \"K\";\r\n    }\r\n    return String(value);\r\n  }\r\n\r\n  function compactCriterionValue(key, value, product, part) {\r\n    var specs = product && product.specs ? product.specs : {};\r\n    value = cleanText(value);\r\n\r\n    if (key === \"price_value\") {\r\n      return shortMoney(value || (product && product.priceText) || \"\");\r\n    }\r\n\r\n    if (key === \"output_power\") {\r\n      var power = specs.powerW ? specs.powerW + \"W\" : \"\";\r\n      var lumen = specs.lumen ? compactLumen(specs.lumen) : (specs.estimatedLumen ? \"~\" + compactLumen(specs.estimatedLumen) : \"\");\r\n      return [power, lumen].filter(Boolean).join(\"\u00B7\") || shortTitle(value, 12);\r\n    }\r\n\r\n    if (key === \"color_accuracy\") {\r\n      if (specs.cri) return \"CRI \" + specs.cri + \"+\";\r\n      if (specs.tlci) return \"TLCI \" + specs.tlci + \"+\";\r\n      if (specs.family === \"rgb\") return \"RGB\";\r\n      if (specs.family === \"bicolor\") return \"Bi-Color\";\r\n      if (specs.kelvinLabel) return \"CCT\";\r\n      return \"Renk yok\";\r\n    }\r\n\r\n    if (key === \"mobile_power\") {\r\n      var out = [\r\n        specs.hasAC ? \"AC\" : \"\",\r\n        specs.hasBattery ? \"Bat\" : \"\",\r\n        specs.hasNPF ? \"NPF\" : \"\",\r\n        specs.hasVmount ? \"VM\" : \"\"\r\n      ].filter(Boolean).join(\"\u00B7\");\r\n\r\n      return out || shortTitle(value, 12);\r\n    }\r\n\r\n    if (key === \"portability\") {\r\n      if (specs.weightGr) {\r\n        return specs.weightGr >= 1000\r\n          ? (Math.round(specs.weightGr / 100) / 10).toLocaleString(\"tr-TR\") + \" kg\"\r\n          : specs.weightGr + \" gr\";\r\n      }\r\n\r\n      if (specs.panelInch) return specs.panelInch + \" in\u00E7\";\r\n      if (specs.hasBattery || specs.hasNPF || specs.hasVmount) return \"Mobil\";\r\n      return \"Standart\";\r\n    }\r\n\r\n    return shortTitle(value, 12);\r\n  }\r\n\r\n  function summarizeCriteriaSource(criteria) {\r\n    var out = {\r\n      totalRows: 0,\r\n      lockedRows: 0,\r\n      fields: 0,\r\n      parsed: 0,\r\n      derived: 0,\r\n      fallback: 0,\r\n      rows: []\r\n    };\r\n\r\n    (criteria || []).forEach(function (row) {\r\n      var lock = row && row.sourceLock ? row.sourceLock : null;\r\n\r\n      out.totalRows += 1;\r\n\r\n      if (sourceLockIsUsable(lock)) {\r\n        out.lockedRows += 1;\r\n        out.fields += Number(lock.total || 0);\r\n        out.parsed += Number(lock.parsed || 0);\r\n        out.derived += Number(lock.derived || 0);\r\n        out.fallback += Number(lock.fallback || 0);\r\n      }\r\n\r\n      out.rows.push({\r\n        key: row && row.key,\r\n        label: row && row.label,\r\n        value: row && row.value,\r\n        score: row && row.score,\r\n        sourceLock: lock\r\n      });\r\n    });\r\n\r\n    out.allRowsLocked = out.totalRows > 0 && out.lockedRows === out.totalRows;\r\n    return out;\r\n  }\r\n\r\n  function combineCriteriaSourceSummary(model) {\r\n    var left = summarizeCriteriaSource(model.otherCriteria || []);\r\n    var right = summarizeCriteriaSource(model.winnerCriteria || []);\r\n\r\n    return {\r\n      version: VERSION,\r\n      totalRows: left.totalRows + right.totalRows,\r\n      lockedRows: left.lockedRows + right.lockedRows,\r\n      fields: left.fields + right.fields,\r\n      parsed: left.parsed + right.parsed,\r\n      derived: left.derived + right.derived,\r\n      fallback: left.fallback + right.fallback,\r\n      allRowsLocked: left.allRowsLocked && right.allRowsLocked,\r\n      other: left,\r\n      winner: right\r\n    };\r\n  }\r\n\r\n\r\n  function criterionValueFallback(product, key) {\r\n    product = product || {};\r\n    var specs = product.specs || {};\r\n    if (key === \"price_value\") return product.priceText || \"Fiyat\";\r\n    if (key === \"output_power\") return specs.powerW ? specs.powerW + \"W\" : \"I\u015F\u0131k\";\r\n    if (key === \"color_accuracy\") return specs.cri ? \"CRI \" + specs.cri + \"+\" : (specs.tlci ? \"TLCI \" + specs.tlci + \"+\" : \"Renk\");\r\n    if (key === \"mobile_power\") {\r\n      return [specs.hasBattery ? \"Batarya\" : \"\", specs.hasVmount ? \"VMount\" : \"\", specs.hasAC ? \"AC/DC\" : \"\"].filter(Boolean).join(\" / \") || \"G\u00FC\u00E7\";\r\n    }\r\n    if (key === \"portability\") return specs.panelInch ? specs.panelInch + \" in\u00E7\" : \"Ta\u015F\u0131ma\";\r\n    return \"Veri\";\r\n  }\r\n\r\n  function buildCriteria(result, item, product, side) {\r\n    var evidence = result && result.fp14Evidence ? result.fp14Evidence : null;\r\n    var rows = evidence && Array.isArray(evidence.rows) ? evidence.rows : [];\r\n    var keys = [\r\n      { key: \"price_value\", label: \"F\u0130YAT\", fallbackScore: scoreNumber(item) },\r\n      { key: \"output_power\", label: \"I\u015EIK G\u00DCC\u00DC\", fallbackScore: 6.8 },\r\n      { key: \"color_accuracy\", label: \"RENK\", fallbackScore: 7.8 },\r\n      { key: \"mobile_power\", label: \"BATARYA\", fallbackScore: 6.7 },\r\n      { key: \"portability\", label: \"TA\u015EIMA\", fallbackScore: 6.8 }\r\n    ];\r\n\r\n    return keys.map(function (meta) {\r\n      var row = rowForKey(rows, meta.key);\r\n      var part = row ? sideRow(row, side) : null;\r\n      var score = part && part.score10 !== undefined\r\n        ? Number(part.score10)\r\n        : (part && part.score !== undefined ? Number(part.score) : meta.fallbackScore);\r\n      var rawValue = part && part.valueLabel ? part.valueLabel : criterionValueFallback(product, meta.key);\r\n      var sourceLock = part && part.sourceLock ? part.sourceLock : null;\r\n      var value = compactCriterionValue(meta.key, rawValue, product, part);\r\n\r\n      if (meta.key === \"price_value\" && product && product.priceText) value = shortMoney(product.priceText);\r\n\r\n      return {\r\n        key: meta.key,\r\n        label: meta.label,\r\n        value: shortTitle(value, meta.key === \"output_power\" ? 22 : 18),\r\n        rawValue: rawValue,\r\n        score: clamp(score, 0, 10),\r\n        sourceLock: sourceLock,\r\n        sourceLocked: sourceLockIsUsable(sourceLock),\r\n        sourceDerived: sourceLock ? Number(sourceLock.derived || 0) : 0,\r\n        sourceFallback: sourceLock ? Number(sourceLock.fallback || 0) : 0\r\n      };\r\n    });\r\n  }\r\n\r\n  function cardModel() {\r\n    var result = getCompareResult();\r\n    if (!result || !result.winner || !result.loser) return null;\r\n\r\n    var evidence = result.fp14Evidence || null;\r\n    var exactTie = !!(result.isExactTie || result.decisionState === \"EXACT_TIE\");\r\n\r\n    /* Canvas historically paints `other` on the left and `winner` on the right.\r\n       For an exact tie preserve stable A/B ordering without inventing a winner:\r\n       A -> left (`other` compatibility slot), B -> right (`winner` slot). */\r\n    var winner = exactTie ? (result.productB || result.loser) : result.winner;\r\n    var other = exactTie ? (result.productA || result.winner) : result.loser;\r\n\r\n    var winnerProduct = itemProduct(winner);\r\n    var otherProduct = itemProduct(other);\r\n    var winnerSide = criterionSide(evidence, winner) || (exactTie ? \"b\" : \"a\");\r\n    var otherSide = criterionSide(evidence, other) || (exactTie ? \"a\" : (winnerSide === \"a\" ? \"b\" : \"a\"));\r\n\r\n    var model = {\r\n      result: result,\r\n      exactTie: exactTie,\r\n      decisionState: exactTie ? \"EXACT_TIE\" : (result.decisionState || (result.isTie ? \"NEAR_TIE\" : \"DECISIVE\")),\r\n      winner: winner,\r\n      other: other,\r\n      winnerSlotLabel: exactTie ? \"B\" : \"\",\r\n      otherSlotLabel: exactTie ? \"A\" : \"\",\r\n      winnerProduct: winnerProduct,\r\n      otherProduct: otherProduct,\r\n      winnerTitle: shortTitle(getItemTitle(winner) || winnerProduct.smartTitle || winnerProduct.smartShortTitle || winnerProduct.shortTitle || winnerProduct.title || (exactTie ? \"B \u00FCr\u00FCn\u00FC\" : \"Kazanan \u00FCr\u00FCn\"), 42),\r\n      otherTitle: shortTitle(getItemTitle(other) || otherProduct.smartTitle || otherProduct.smartShortTitle || otherProduct.shortTitle || otherProduct.title || (exactTie ? \"A \u00FCr\u00FCn\u00FC\" : \"Di\u011Fer \u00FCr\u00FCn\"), 42),\r\n      winnerFamily: familyLabel(winnerProduct),\r\n      otherFamily: familyLabel(otherProduct),\r\n      winnerScore: scoreNumber(winner),\r\n      otherScore: scoreNumber(other),\r\n      winnerImage: getProductImage(winner, winnerProduct),\r\n      otherImage: getProductImage(other, otherProduct),\r\n      winnerCriteria: buildCriteria(result, winner, winnerProduct, winnerSide),\r\n      otherCriteria: buildCriteria(result, other, otherProduct, otherSide),\r\n      winnerChips: chipList(winnerProduct),\r\n      otherChips: chipList(otherProduct),\r\n      winnerCommerceSignal: getShareCommerceSignal(winnerProduct),\r\n      otherCommerceSignal: getShareCommerceSignal(otherProduct)\r\n    };\r\n\r\n    model.commerceSignals = {\r\n      winner: model.winnerCommerceSignal,\r\n      other: model.otherCommerceSignal,\r\n      hasAny: !!(\r\n        (model.winnerCommerceSignal && model.winnerCommerceSignal.ok) ||\r\n        (model.otherCommerceSignal && model.otherCommerceSignal.ok)\r\n      ),\r\n      hasDiscount: !!(\r\n        (model.winnerCommerceSignal && model.winnerCommerceSignal.discountPercentText) ||\r\n        (model.otherCommerceSignal && model.otherCommerceSignal.discountPercentText)\r\n      ),\r\n      hasSavings: !!(\r\n        (model.winnerCommerceSignal && model.winnerCommerceSignal.savingsText) ||\r\n        (model.otherCommerceSignal && model.otherCommerceSignal.savingsText)\r\n      ),\r\n      hasCampaignOrGift: !!(\r\n        (model.winnerCommerceSignal && (model.winnerCommerceSignal.campaignLabel || model.winnerCommerceSignal.giftLabel)) ||\r\n        (model.otherCommerceSignal && (model.otherCommerceSignal.campaignLabel || model.otherCommerceSignal.giftLabel))\r\n      )\r\n    };\r\n\r\n    model.criteriaSourceSummary = combineCriteriaSourceSummary(model);\r\n\r\n    return model;\r\n  }\r\n\r\n  function loadImage(src) {\r\n    src = cleanText(src);\r\n    if (!src) return Promise.resolve(null);\r\n\r\n    return new Promise(function (resolve) {\r\n      var img = new Image();\r\n      img.crossOrigin = \"anonymous\";\r\n      img.onload = function () { resolve(img); };\r\n      img.onerror = function () { resolve(null); };\r\n      img.src = src;\r\n    });\r\n  }\r\n\r\n  function roundRect(ctx, x, y, w, h, r) {\r\n    r = Math.min(r, w / 2, h / 2);\r\n    ctx.beginPath();\r\n    ctx.moveTo(x + r, y);\r\n    ctx.arcTo(x + w, y, x + w, y + h, r);\r\n    ctx.arcTo(x + w, y + h, x, y + h, r);\r\n    ctx.arcTo(x, y + h, x, y, r);\r\n    ctx.arcTo(x, y, x + w, y, r);\r\n    ctx.closePath();\r\n  }\r\n\r\n  function fillRoundRect(ctx, x, y, w, h, r, fill) {\r\n    ctx.save();\r\n    roundRect(ctx, x, y, w, h, r);\r\n    ctx.fillStyle = fill;\r\n    ctx.fill();\r\n    ctx.restore();\r\n  }\r\n\r\n  function strokeRoundRect(ctx, x, y, w, h, r, stroke, width) {\r\n    ctx.save();\r\n    roundRect(ctx, x, y, w, h, r);\r\n    ctx.strokeStyle = stroke;\r\n    ctx.lineWidth = width || 1;\r\n    ctx.stroke();\r\n    ctx.restore();\r\n  }\r\n\r\n  function drawText(ctx, text, x, y, options) {\r\n    options = options || {};\r\n    ctx.save();\r\n    ctx.fillStyle = options.color || \"#f8fafc\";\r\n    ctx.font = options.font || \"700 32px Arial\";\r\n    ctx.textAlign = options.align || \"left\";\r\n    ctx.textBaseline = options.baseline || \"top\";\r\n    if (options.shadow) {\r\n      ctx.shadowColor = options.shadowColor || \"rgba(255,255,255,0.28)\";\r\n      ctx.shadowBlur = options.shadowBlur || 12;\r\n    }\r\n    ctx.fillText(cleanText(text), x, y);\r\n    ctx.restore();\r\n  }\r\n\r\n  function wrapText(ctx, text, x, y, maxWidth, lineHeight, maxLines, options) {\r\n    text = cleanText(text);\r\n    options = options || {};\r\n\r\n    ctx.save();\r\n    ctx.font = options.font || \"700 32px Arial\";\r\n    ctx.fillStyle = options.color || \"#f8fafc\";\r\n    ctx.textAlign = options.align || \"left\";\r\n    ctx.textBaseline = \"top\";\r\n\r\n    var words = text.split(\" \");\r\n    var line = \"\";\r\n    var lines = [];\r\n\r\n    words.forEach(function (word) {\r\n      var test = line ? line + \" \" + word : word;\r\n      if (ctx.measureText(test).width > maxWidth && line) {\r\n        lines.push(line);\r\n        line = word;\r\n      } else {\r\n        line = test;\r\n      }\r\n    });\r\n\r\n    if (line) lines.push(line);\r\n\r\n    if (maxLines && lines.length > maxLines) {\r\n      lines = lines.slice(0, maxLines);\r\n      lines[lines.length - 1] = lines[lines.length - 1].replace(/[.,;:!?]*$/, \"\") + \"...\";\r\n    }\r\n\r\n    lines.forEach(function (row, index) { ctx.fillText(row, x, y + index * lineHeight); });\r\n    ctx.restore();\r\n    return y + lines.length * lineHeight;\r\n  }\r\n\r\n  function drawImageContain(ctx, img, x, y, w, h) {\r\n    fillRoundRect(ctx, x, y, w, h, 22, \"#ffffff\");\r\n    if (!img) {\r\n      drawText(ctx, \"\u00DCr\u00FCn g\u00F6rseli\", x + w / 2, y + h / 2 - 12, {\r\n        color: \"#64748b\",\r\n        font: \"900 24px Arial\",\r\n        align: \"center\"\r\n      });\r\n      return;\r\n    }\r\n\r\n    var ratio = Math.min((w - 34) / img.width, (h - 34) / img.height);\r\n    var dw = img.width * ratio;\r\n    var dh = img.height * ratio;\r\n    var dx = x + (w - dw) / 2;\r\n    var dy = y + (h - dh) / 2;\r\n    ctx.drawImage(img, dx, dy, dw, dh);\r\n  }\r\n\r\n  function drawBackground(ctx) {\r\n    var bg = ctx.createLinearGradient(0, 0, CARD_W, CARD_H);\r\n    bg.addColorStop(0, \"#020617\");\r\n    bg.addColorStop(0.50, \"#060916\");\r\n    bg.addColorStop(1, \"#101827\");\r\n    ctx.fillStyle = bg;\r\n    ctx.fillRect(0, 0, CARD_W, CARD_H);\r\n\r\n    ctx.save();\r\n    ctx.globalAlpha = 0.28;\r\n    var g1 = ctx.createRadialGradient(0, 0, 0, 0, 0, 430);\r\n    g1.addColorStop(0, \"#facc15\");\r\n    g1.addColorStop(1, \"rgba(250,204,21,0)\");\r\n    ctx.fillStyle = g1;\r\n    ctx.fillRect(0, 0, CARD_W, CARD_H);\r\n\r\n    var g2 = ctx.createRadialGradient(CARD_W, 0, 0, CARD_W, 0, 500);\r\n    g2.addColorStop(0, \"#22c55e\");\r\n    g2.addColorStop(1, \"rgba(34,197,94,0)\");\r\n    ctx.fillStyle = g2;\r\n    ctx.fillRect(0, 0, CARD_W, CARD_H);\r\n    ctx.restore();\r\n\r\n    strokeRoundRect(ctx, 24, 24, CARD_W - 48, CARD_H - 48, 24, \"rgba(250,204,21,0.70)\", 2);\r\n    strokeRoundRect(ctx, 42, 42, CARD_W - 84, CARD_H - 84, 22, \"rgba(250,204,21,0.26)\", 1);\r\n  }\r\n\r\n  function drawTop(ctx, model) {\r\n    var exactTie = !!(model && model.exactTie);\r\n    fillRoundRect(ctx, 192, 18, 696, 72, 18, \"rgba(4,8,22,0.96)\");\r\n    strokeRoundRect(ctx, 192, 18, 696, 72, 18, \"rgba(250,204,21,0.86)\", 2);\r\n    drawText(ctx, \"KAR\u015EILA\u015ETIRMA SONUCU\", 540, 38, {\r\n      color: \"#facc15\",\r\n      font: \"950 33px Arial\",\r\n      align: \"center\"\r\n    });\r\n\r\n    drawText(ctx, exactTie ? \"SONU\u00C7 BERABERE\" : \"GENEL F/P'DE K\u0130M KAZANDI?\", 540, 122, {\r\n      color: \"#ffffff\",\r\n      font: exactTie ? \"950 72px Arial\" : \"950 58px Arial\",\r\n      align: \"center\",\r\n      shadow: true,\r\n      shadowBlur: 18\r\n    });\r\n  }\r\n\r\n  function drawScoreBubble(ctx, x, y, score, tone) {\r\n    var color = tone === \"green\" ? \"#22c55e\" : \"#facc15\";\r\n    fillRoundRect(ctx, x, y, 92, 92, 46, \"rgba(2,6,23,0.92)\");\r\n    strokeRoundRect(ctx, x, y, 92, 92, 46, tone === \"green\" ? \"rgba(34,197,94,0.80)\" : \"rgba(250,204,21,0.80)\", 2);\r\n    drawText(ctx, \"F/P\", x + 46, y + 17, { color: color, font: \"950 18px Arial\", align: \"center\" });\r\n    drawText(ctx, fmtScore100(score), x + 46, y + 38, { color: color, font: \"950 38px Arial\", align: \"center\" });\r\n    drawText(ctx, \"/100\", x + 46, y + 70, { color: \"#cbd5e1\", font: \"900 17px Arial\", align: \"center\" });\r\n  }\r\n\r\n  function drawCriteriaRows(ctx, rows, x, y, w, tone) {\r\n    var green = tone === \"green\";\r\n    var border = green ? \"rgba(34,197,94,0.72)\" : \"rgba(250,204,21,0.72)\";\r\n    var fillA = green ? \"#16a34a\" : \"#9a6700\";\r\n    var fillB = green ? \"#22c55e\" : \"#d9a006\";\r\n    var labelColor = green ? \"#86efac\" : \"#fde68a\";\r\n\r\n    rows.forEach(function (row, index) {\r\n      var yy = y + index * 52;\r\n      var barX = x + 142;\r\n      var barW = 135;\r\n      var scoreX = x + w - 9;\r\n\r\n      fillRoundRect(ctx, x, yy, w, 38, 19, \"rgba(2,6,23,0.62)\");\r\n      strokeRoundRect(ctx, x, yy, w, 38, 19, border, 1.6);\r\n\r\n      drawText(ctx, shortTitle(row.label, 10).toLocaleUpperCase(\"tr-TR\"), x + 42, yy + 9, {\r\n        color: labelColor,\r\n        font: \"950 16px Arial\"\r\n      });\r\n\r\n      fillRoundRect(ctx, barX, yy + 7, barW, 24, 12, \"#334155\");\r\n      var grad = ctx.createLinearGradient(barX, 0, barX + barW, 0);\r\n      grad.addColorStop(0, fillA);\r\n      grad.addColorStop(1, fillB);\r\n      fillRoundRect(ctx, barX, yy + 7, clamp(scoreAs10(row.score), 0, 10) / 10 * barW, 24, 12, grad);\r\n\r\n      drawText(ctx, shortTitle(row.value, 13), barX + barW / 2, yy + 10, {\r\n        color: \"#ffffff\",\r\n        font: \"950 13px Arial\",\r\n        align: \"center\"\r\n      });\r\n\r\n      fillRoundRect(ctx, scoreX - 64, yy + 6, 58, 26, 13, \"rgba(2,6,23,0.42)\");\r\n\r\n      drawText(ctx, fmtScore100(row.score) + \"/100\", scoreX, yy + 10, {\r\n        color: \"#ffffff\",\r\n        font: \"950 14px Arial\",\r\n        align: \"right\"\r\n      });\r\n    });\r\n  }\r\n\r\n  function drawRoleBadge(ctx, text, x, y, w, tone) {\r\n    fillRoundRect(ctx, x, y, w, 52, 16, tone === \"green\" ? \"rgba(4,83,45,0.96)\" : \"rgba(91,59,0,0.96)\");\r\n    strokeRoundRect(ctx, x, y, w, 52, 16, tone === \"green\" ? \"rgba(34,197,94,0.86)\" : \"rgba(250,204,21,0.86)\", 2);\r\n    drawText(ctx, text, x + w / 2, y + 14, {\r\n      color: tone === \"green\" ? \"#4ade80\" : \"#fde68a\",\r\n      font: \"950 22px Arial\",\r\n      align: \"center\"\r\n    });\r\n  }\r\n\r\n  function drawProductPanel(ctx, model, img, x, y, w, isWinner) {\r\n    var exactTie = !!(model && model.exactTie);\r\n    var tone = exactTie ? \"gold\" : (isWinner ? \"green\" : \"gold\");\r\n    var border = exactTie ? \"rgba(250,204,21,0.72)\" : (isWinner ? \"rgba(34,197,94,0.76)\" : \"rgba(250,204,21,0.72)\");\r\n    var bg = exactTie ? \"rgba(78,54,7,0.24)\" : (isWinner ? \"rgba(3,76,46,0.32)\" : \"rgba(78,54,7,0.32)\");\r\n    var rows = isWinner ? model.winnerCriteria : model.otherCriteria;\r\n    var title = isWinner ? model.winnerTitle : model.otherTitle;\r\n    var family = isWinner ? model.winnerFamily : model.otherFamily;\r\n    var score = isWinner ? model.winnerScore : model.otherScore;\r\n    var slot = isWinner ? model.winnerSlotLabel : model.otherSlotLabel;\r\n    var badge = exactTie ? (slot + \" \u00B7 SONU\u00C7 BERABERE\") : (isWinner ? \"\uD83C\uDFC6  F/P KAZANANI\" : \"D\u0130\u011EER \u00DCR\u00DCN\");\r\n\r\n    fillRoundRect(ctx, x, y, w, 735, 22, bg);\r\n    strokeRoundRect(ctx, x, y, w, 735, 22, border, 2);\r\n\r\n    drawRoleBadge(ctx, badge, x + 85, y - 28, w - 170, 58, tone);\r\n\r\n    wrapText(ctx, title, x + w / 2, y + 62, w - 82, 35, 2, {\r\n      color: exactTie ? \"#ffffff\" : (isWinner ? \"#dcfce7\" : \"#ffffff\"),\r\n      font: \"950 31px Arial\",\r\n      align: \"center\"\r\n    });\r\n\r\n    drawText(ctx, family, x + w / 2, y + 142, {\r\n      color: exactTie ? \"#facc15\" : (isWinner ? \"#86efac\" : \"#facc15\"),\r\n      font: \"950 24px Arial\",\r\n      align: \"center\"\r\n    });\r\n\r\n    drawImageContain(ctx, img, x + 72, y + 174, w - 144, 246);\r\n    drawScoreBubble(ctx, isWinner ? x + w - 52 : x - 40, y + 300, score, tone);\r\n    drawCriteriaRows(ctx, rows, x + 42, y + 450, w - 84, tone);\r\n  }\r\n\r\n  function drawVs(ctx) {\r\n    var grad = ctx.createRadialGradient(540, 625, 10, 540, 625, 84);\r\n    grad.addColorStop(0, \"rgba(255,255,255,0.22)\");\r\n    grad.addColorStop(0.48, \"rgba(250,204,21,0.22)\");\r\n    grad.addColorStop(1, \"rgba(34,197,94,0.08)\");\r\n    fillRoundRect(ctx, 474, 559, 132, 132, 66, grad);\r\n    strokeRoundRect(ctx, 474, 559, 132, 132, 66, \"rgba(250,204,21,0.75)\", 2);\r\n    strokeRoundRect(ctx, 480, 565, 120, 120, 60, \"rgba(34,197,94,0.55)\", 2);\r\n    drawText(ctx, \"VS\", 540, 595, {\r\n      color: \"#ffffff\",\r\n      font: \"950 54px Arial\",\r\n      align: \"center\",\r\n      shadow: true,\r\n      shadowBlur: 15\r\n    });\r\n  }\r\n\r\n  function drawMiniProduct(ctx, img, x, y, chips, tone, signal, exactTie, slotLabel) {\r\n    var green = tone === \"green\";\r\n    var line = green ? \"rgba(34,197,94,0.56)\" : \"rgba(250,204,21,0.56)\";\r\n    var pills = shareCommerceSignalPills(signal).slice(0, 3);\r\n\r\n    fillRoundRect(ctx, x, y, 458, 114, 18, \"rgba(2,6,23,0.50)\");\r\n    strokeRoundRect(ctx, x, y, 458, 114, 18, line, 2);\r\n\r\n    fillRoundRect(ctx, x + 16, y + 18, 76, 76, 38, \"#ffffff\");\r\n    drawImageContain(ctx, img, x + 22, y + 24, 64, 64);\r\n\r\n    if (pills.length) {\r\n      drawText(ctx, exactTie ? ((slotLabel || \"\u00DCR\u00DCN\") + \" \u00B7 SATIN ALMA S\u0130NYAL\u0130\") : (green ? \"KAZANAN SATIN ALMA S\u0130NYAL\u0130\" : \"D\u0130\u011EER \u00DCR\u00DCN S\u0130NYAL\u0130\"), x + 114, y + 14, {\r\n        color: exactTie ? \"#fde68a\" : (green ? \"#86efac\" : \"#fde68a\"),\r\n        font: \"950 11px Arial\"\r\n      });\r\n\r\n      var startX = x + 108;\r\n      var available = 336;\r\n      var widths = pills.length === 1 ? [available] : (pills.length === 2 ? [160, 168] : [116, 96, 116]);\r\n\r\n      pills.forEach(function (pill, index) {\r\n        var px = startX + (index === 0 ? 0 : widths.slice(0, index).reduce(function (sum, value) { return sum + value + 6; }, 0));\r\n        drawCommercePill(ctx, pill, px, y + 42, widths[index], 30);\r\n      });\r\n\r\n      /*\r\n        P20-2-R1:\r\n        Kazan\u00E7 pill i\u00E7inde zaten g\u00F6sterildi\u011Fi i\u00E7in alt sat\u0131rda tekrar yazma.\r\n        Alt sat\u0131r\u0131 sade bilgi / kampanya alan\u0131 olarak kullan.\r\n      */\r\n      var subLine = \"\";\r\n\r\n      if (signal && signal.campaignLabel) {\r\n        subLine = shortTitle(signal.campaignLabel, 34);\r\n      } else if (signal && signal.giftLabel) {\r\n        subLine = \"Hediye: \" + shortTitle(signal.giftLabel, 26);\r\n      } else {\r\n        /*\r\n          P20-2-R3:\r\n          \"fiyat avantaj\u0131\" ifadesi kald\u0131r\u0131ld\u0131.\r\n          Kaybeden \u00FCr\u00FCn i\u00E7in avantaj alg\u0131s\u0131 olu\u015Fturmas\u0131n diye n\u00F6tr sinyal metni kullan\u0131l\u0131r.\r\n        */\r\n        subLine = exactTie ? ((slotLabel || \"\u00DCr\u00FCn\") + \" sat\u0131n alma sinyali\") : (green ? \"Kazanan sat\u0131n alma sinyali\" : \"Di\u011Fer \u00FCr\u00FCn sat\u0131n alma sinyali\");\r\n      }\r\n\r\n      if (subLine) {\r\n        drawText(ctx, shortTitle(subLine, 36), x + 114, y + 82, {\r\n          color: exactTie ? \"#fef3c7\" : (green ? \"#bbf7d0\" : \"#fef3c7\"),\r\n          font: \"950 13px Arial\"\r\n        });\r\n      }\r\n\r\n      return;\r\n    }\r\n\r\n    (chips || []).slice(0, 3).forEach(function (chip, index) {\r\n      var px = x + 118 + index * 108;\r\n      fillRoundRect(ctx, px, y + 43, 94, 28, 14, \"rgba(2,6,23,0.34)\");\r\n      strokeRoundRect(ctx, px, y + 43, 94, 28, 14, line, 1.5);\r\n      drawText(ctx, shortTitle(chip, 12), px + 47, y + 50, {\r\n        color: green ? \"#86efac\" : \"#fde68a\",\r\n        font: \"950 14px Arial\",\r\n        align: \"center\"\r\n      });\r\n    });\r\n  }\r\n\r\n  function drawSummaryBand(ctx, model, otherImg, winnerImg) {\r\n    /*\r\n      P20-2-R3:\r\n      Orta ba\u015Fl\u0131k kald\u0131r\u0131ld\u0131.\r\n      \"F\u0130YAT / \u0130ND\u0130R\u0130M / KAZAN\u00C7\" metni band i\u00E7inde s\u0131k\u0131\u015Fma yarat\u0131yordu.\r\n      Fiyat/indirim/kazan\u00E7 sinyalleri zaten pill'lerin i\u00E7inde net g\u00F6r\u00FCn\u00FCyor.\r\n    */\r\n    fillRoundRect(ctx, 60, 1008, 960, 136, 20, \"rgba(2,6,23,0.58)\");\r\n    strokeRoundRect(ctx, 60, 1008, 960, 136, 20, \"rgba(250,204,21,0.62)\", 2);\r\n\r\n    drawMiniProduct(ctx, otherImg, 82, 1022, model.otherChips, \"gold\", model.otherCommerceSignal, model.exactTie, model.otherSlotLabel);\r\n    drawMiniProduct(ctx, winnerImg, 540, 1022, model.winnerChips, model.exactTie ? \"gold\" : \"green\", model.winnerCommerceSignal, model.exactTie, model.winnerSlotLabel);\r\n  }\r\n\r\n  function drawQrBox(ctx, shareUrl) {\r\n    var QR = getQrApi();\r\n    fillRoundRect(ctx, 792, 1178, 166, 166, 20, \"#ffffff\");\r\n\r\n    LAST_P120C_DIAGNOSTIC.qr = { ok: false, reason: \"qr-api-unavailable\" };\r\n\r\n    if (QR && QR.ready && typeof QR.drawToCanvas === \"function\") {\r\n      try {\r\n        var qrResult = QR.drawToCanvas(ctx, shareUrl, 802, 1188, QR_DRAW_SIZE, {\r\n          background: \"#ffffff\",\r\n          foreground: \"#020617\",\r\n          quiet: 4\r\n        });\r\n\r\n        LAST_P120C_DIAGNOSTIC.qr = {\r\n          ok: true,\r\n          reason: \"\",\r\n          version: QR.version || \"\",\r\n          qrVersion: qrResult && qrResult.qrVersion,\r\n          textLength: cleanText(shareUrl).length\r\n        };\r\n        return true;\r\n      } catch (error) {\r\n        /*\r\n         * P1.20C:\r\n         * QR is an enhancement inside the PNG, not permission to abort the whole\r\n         * share card. A stale/over-capacity/local-QR exception previously rejected\r\n         * renderPng(), which made share.js show \"Tekrar Dene\".\r\n         */\r\n        LAST_P120C_DIAGNOSTIC.qr = {\r\n          ok: false,\r\n          reason: error && error.message ? error.message : \"qr-draw-error\",\r\n          version: QR.version || \"\",\r\n          textLength: cleanText(shareUrl).length\r\n        };\r\n      }\r\n    }\r\n\r\n    drawText(ctx, \"QR\", 875, 1235, { color: \"#020617\", font: \"950 42px Arial\", align: \"center\" });\r\n    return false;\r\n  }\r\n\r\n  function drawCta(ctx, shareUrl) {\r\n    fillRoundRect(ctx, 60, 1160, 960, 182, 22, \"rgba(2,6,23,0.62)\");\r\n    strokeRoundRect(ctx, 60, 1160, 960, 182, 22, \"rgba(250,204,21,0.72)\", 2);\r\n\r\n    fillRoundRect(ctx, 98, 1202, 82, 82, 14, \"rgba(250,204,21,0.08)\");\r\n    strokeRoundRect(ctx, 98, 1202, 82, 82, 14, \"rgba(250,204,21,0.80)\", 2);\r\n    drawText(ctx, \"\u2197\", 139, 1216, { color: \"#facc15\", font: \"950 58px Arial\", align: \"center\" });\r\n\r\n    drawText(ctx, \"SONUCU PAYLA\u015E!\", 220, 1200, {\r\n      color: \"#facc15\",\r\n      font: \"950 31px Arial\"\r\n    });\r\n    wrapText(ctx, \"Detayl\u0131 kar\u015F\u0131la\u015Ft\u0131rma i\u00E7in QR kodu okut veya ba\u011Flant\u0131y\u0131 payla\u015F.\", 220, 1242, 500, 34, 2, {\r\n      color: \"#e5e7eb\",\r\n      font: \"950 25px Arial\"\r\n    });\r\n\r\n    return drawQrBox(ctx, shareUrl);\r\n  }\r\n\r\n  function drawFooter(ctx) {\r\n    drawText(ctx, \"CANFOTO.COM\", 540, 1360, {\r\n      color: \"#facc15\",\r\n      font: \"950 36px Arial\",\r\n      align: \"center\"\r\n    });\r\n  }\r\n\r\n  function renderCanvasToPng(button) {\r\n    var model = cardModel();\r\n\r\n    if (!model) {\r\n      LAST_RENDER = { ok: false, version: VERSION, reason: \"missing-compare-result\" };\r\n      setStatus(\"Payla\u015F\u0131m kart\u0131 i\u00E7in \u00F6nce iki \u00FCr\u00FCn\u00FC kar\u015F\u0131la\u015Ft\u0131r\u0131n.\", \"is-error\");\r\n      return Promise.resolve(LAST_RENDER);\r\n    }\r\n\r\n    setButtonState(button, \"Haz\u0131rlan\u0131yor...\", \"is-loading\");\r\n    setStatus(\"Payla\u015F\u0131m kart\u0131 haz\u0131rlan\u0131yor...\", \"is-loading\");\r\n\r\n    var shareUrl = getShareUrl();\r\n    var qrShareUrl = getQrShareUrl(shareUrl);\r\n\r\n    return Promise.all([\r\n      loadImage(model.otherImage),\r\n      loadImage(model.winnerImage)\r\n    ]).then(function (images) {\r\n      var otherImg = images[0];\r\n      var winnerImg = images[1];\r\n      function paintShareCanvas(targetCanvas, paintOtherImg, paintWinnerImg) {\r\n        targetCanvas.width = CARD_W;\r\n        targetCanvas.height = CARD_H;\r\n\r\n        var paintCtx = targetCanvas.getContext(\"2d\");\r\n        if (!paintCtx) {\r\n          LAST_P120C_DIAGNOSTIC.canvas = { ok: false, reason: \"canvas-2d-context-unavailable\" };\r\n          throw new Error(\"canvas-2d-context-unavailable\");\r\n        }\r\n\r\n        LAST_P120C_DIAGNOSTIC.canvas = { ok: true, reason: \"\" };\r\n\r\n        drawBackground(paintCtx);\r\n        drawTop(paintCtx, model);\r\n        drawProductPanel(paintCtx, model, paintOtherImg, 70, 238, 420, false);\r\n        drawProductPanel(paintCtx, model, paintWinnerImg, 590, 238, 420, true);\r\n        drawVs(paintCtx);\r\n        drawSummaryBand(paintCtx, model, paintOtherImg, paintWinnerImg);\r\n        var paintQrReady = drawCta(paintCtx, qrShareUrl);\r\n        drawFooter(paintCtx);\r\n\r\n        return paintQrReady;\r\n      }\r\n\r\n      var canvas = document.createElement(\"canvas\");\r\n      var qrReady = paintShareCanvas(canvas, otherImg, winnerImg);\r\n      var dataUrl = \"\";\r\n      var externalImageFallbackUsed = false;\r\n      var serializationReason = \"\";\r\n\r\n      try {\r\n        dataUrl = canvas.toDataURL(\"image/png\");\r\n        LAST_P120C_DIAGNOSTIC.serialization = {\r\n          ok: true,\r\n          fallbackWithoutExternalImages: false,\r\n          reason: \"\"\r\n        };\r\n      } catch (serializationError) {\r\n        /*\r\n         * P1.20C safe fallback:\r\n         * If any remote product image taints the canvas in a browser/CDN edge\r\n         * condition, rebuild the exact 1080x1440 card without remote images.\r\n         * The share action remains functional; scoring/data/QR/deeplink are untouched.\r\n         */\r\n        serializationReason = serializationError && serializationError.message\r\n          ? serializationError.message\r\n          : \"canvas-serialization-error\";\r\n        externalImageFallbackUsed = true;\r\n\r\n        canvas = document.createElement(\"canvas\");\r\n        qrReady = paintShareCanvas(canvas, null, null);\r\n        dataUrl = canvas.toDataURL(\"image/png\");\r\n\r\n        LAST_P120C_DIAGNOSTIC.serialization = {\r\n          ok: true,\r\n          fallbackWithoutExternalImages: true,\r\n          reason: serializationReason\r\n        };\r\n      }\r\n\r\n      if (!dataUrl || dataUrl.indexOf(\"data:image/png\") !== 0) {\r\n        LAST_P120C_DIAGNOSTIC.serialization = {\r\n          ok: false,\r\n          fallbackWithoutExternalImages: externalImageFallbackUsed,\r\n          reason: \"png-data-url-empty\"\r\n        };\r\n        throw new Error(\"png-data-url-empty\");\r\n      }\r\n      var preview = document.querySelector(\"#gdxPanelV4ShareCardPreview [data-gdx-panel-share-card-preview]\");\r\n      var download = document.querySelector(\"#gdxPanelV4ShareCardPreview [data-gdx-panel-share-card-download]\");\r\n\r\n      if (preview) {\r\n        preview.hidden = false;\r\n        preview.innerHTML = '<img src=\"' + dataUrl + '\" alt=\"Panel LED kar\u015F\u0131la\u015Ft\u0131rma payla\u015F\u0131m kart\u0131\">';\r\n      }\r\n\r\n      if (download) {\r\n        download.hidden = false;\r\n        download.href = dataUrl;\r\n        download.download = \"panel-led-karsilastirma-sonucu.png\";\r\n      }\r\n\r\n      LAST_RENDER = {\r\n        ok: true,\r\n        version: VERSION,\r\n        width: CARD_W,\r\n        height: CARD_H,\r\n        ratio: \"3:4\",\r\n        layout: \"cob-style-duel-card-layout-fix\",\r\n        hasWinner: !model.exactTie,\r\n        hasLoser: !model.exactTie,\r\n        exactTie: !!model.exactTie,\r\n        decisionState: model.decisionState,\r\n        criteriaCount: 5,\r\n        criteriaSourceSummary: model.criteriaSourceSummary,\r\n        criteriaSourceLocked: !!(model.criteriaSourceSummary && model.criteriaSourceSummary.allRowsLocked),\r\n        criteriaSourceDerived: model.criteriaSourceSummary ? model.criteriaSourceSummary.derived : 0,\r\n        criteriaSourceFallback: model.criteriaSourceSummary ? model.criteriaSourceSummary.fallback : 0,\r\n        criteriaValueCompact: true,\r\n        criteriaValueUltraCompact: true,\r\n        smartTitleSync: true,\r\n        commerceSignalModel: true,\r\n        commerceSignalBand: true,\r\n        commerceSignalBandPlacement: \"summary-band\",\r\n        commerceMoneyParseFix: true,\r\n        commerceMoneyTextHardFix: true,\r\n        commerceSignalBandDedupe: true,\r\n        commerceSummaryBandMicroPolish: true,\r\n        commerceSummaryBandHeaderRemoved: true,\r\n        commerceSignals: model.commerceSignals,\r\n        winnerCommerceSignal: model.winnerCommerceSignal,\r\n        otherCommerceSignal: model.otherCommerceSignal,\r\n        winnerTitle: model.winnerTitle,\r\n        otherTitle: model.otherTitle,\r\n        qrReady: qrReady,\r\n        qrSize: QR_DRAW_SIZE,\r\n        qrUrl: qrShareUrl,\r\n        qrUrlLength: cleanText(qrShareUrl).length,\r\n        qrHasCompactParam: (\r\n          cleanText(qrShareUrl).indexOf(\"gdx_qv4=1\") > -1 ||\r\n          cleanText(qrShareUrl).indexOf(\"gdx_pv4=\") > -1\r\n        ),\r\n        qrTransport: cleanText(qrShareUrl).indexOf(\"gdx_qv4=1\") > -1 ? \"gdx_qv4\" : \"legacy\",\r\n        scoreDisplayScale: 100,\r\n        criterionScoreDisplayScale: 100,\r\n        winnerScoreDisplay100: scoreAs100(model.winnerScore),\r\n        otherScoreDisplay100: scoreAs100(model.otherScore),\r\n        p120cRuntimeRestore: true,\r\n        p120dQrScore100Parity: true,\r\n      lb24R3TieNeutralShare: true,\r\n        externalImageFallbackUsed: externalImageFallbackUsed,\r\n        serializationReason: serializationReason,\r\n        diagnostic: JSON.parse(JSON.stringify(LAST_P120C_DIAGNOSTIC)),\r\n        dataUrl: dataUrl,\r\n        dataUrlLength: dataUrl.length\r\n      };\r\n\r\n      setButtonState(button, \"Payla\u015F\u0131m haz\u0131r\", \"is-success\");\r\n      setStatus(\"Payla\u015F\u0131m haz\u0131r.\", \"is-success\");\r\n      return LAST_RENDER;\r\n    }).catch(function (error) {\r\n      LAST_RENDER = {\r\n        ok: false,\r\n        version: VERSION,\r\n        reason: error && error.message ? error.message : \"png-render-error\",\r\n        p120cRuntimeRestore: true,\r\n        diagnostic: JSON.parse(JSON.stringify(LAST_P120C_DIAGNOSTIC))\r\n      };\r\n\r\n      setButtonState(button, \"Tekrar Dene\", \"is-error\");\r\n      setStatus(\"Payla\u015F\u0131m kart\u0131 haz\u0131rlan\u0131rken sorun olu\u015Ftu. Tekrar deneyin.\", \"is-error\");\r\n      return LAST_RENDER;\r\n    });\r\n  }\r\n\r\n  function scheduleRender() {\r\n    [120, 360, 900].forEach(function (delay) { window.setTimeout(renderPanel, delay); });\r\n  }\r\n\r\n  function bindEvents() {\r\n    document.addEventListener(\"click\", function (event) {\r\n      var render = event.target.closest(\"[data-gdx-panel-share-card-render]\");\r\n      if (render) {\r\n        event.preventDefault();\r\n        renderCanvasToPng(render);\r\n        return;\r\n      }\r\n\r\n      if (\r\n        event.target.closest(\"#gdxPanelV4CompareBtn\") ||\r\n        event.target.closest(\"[data-gdx-panel-product]\") ||\r\n        event.target.closest(\"[data-gdx-panel-usecase]\") ||\r\n        event.target.closest(\"[data-gdx-panel-share-copy]\") ||\r\n        event.target.closest(\"[data-gdx-panel-commerce-add]\")\r\n      ) {\r\n        scheduleRender();\r\n      }\r\n    }, true);\r\n  }\r\n\r\n  ready(function () {\r\n    bindEvents();\r\n    scheduleRender();\r\n\r\n    window.GDX_PANEL_LED_V4_SHARE_CARD = {\r\n      ready: true,\r\n      version: VERSION,\r\n      render: renderPanel,\r\n      renderPng: renderCanvasToPng,\r\n      getLastRender: function () { return LAST_RENDER; },\r\n      getLastDataUrl: function () { return LAST_RENDER && LAST_RENDER.dataUrl ? LAST_RENDER.dataUrl : \"\"; },\r\n      getP120cDiagnostic: function () { return JSON.parse(JSON.stringify(LAST_P120C_DIAGNOSTIC)); },\r\n      p120cRuntimeRestore: true,\r\n      p120dQrScore100Parity: true,\r\n      lb24R3TieNeutralShare: true,\r\n      lb24R31ShareParity: true,\r\n      fs3B2FpScopeHeadlineExact: true,\r\n      fpScopeHeadline: \"GENEL F/P'DE K\u0130M KAZANDI?\",\r\n      scoreDisplayScale: 100,\r\n      debugCardModel: function () {\r\n        var model = cardModel();\r\n        return model ? {\r\n          ok: true,\r\n          version: VERSION,\r\n          exactTie: !!model.exactTie,\r\n          decisionState: model.decisionState,\r\n          lb24R3TieNeutralShare: true,\r\n          lb24R31ShareParity: true,\r\n          fs3B2FpScopeHeadlineExact: true,\r\n          fpScopeHeadline: \"GENEL F/P'DE K\u0130M KAZANDI?\",\r\n          leftSlot: model.otherSlotLabel || \"OTHER\",\r\n          rightSlot: model.winnerSlotLabel || \"WINNER\",\r\n          leftTitle: model.otherTitle,\r\n          rightTitle: model.winnerTitle,\r\n          criteriaSourceSummary: model.criteriaSourceSummary,\r\n          winnerCriteria: model.winnerCriteria,\r\n          otherCriteria: model.otherCriteria,\r\n          commerceSignalModel: true,\r\n          commerceSignalBandReady: true,\r\n          commerceMoneyParseFix: true,\r\n          commerceMoneyTextHardFix: true,\r\n          commerceSignalBandDedupe: true,\r\n          commerceSummaryBandMicroPolish: true,\r\n          commerceSummaryBandHeaderRemoved: true,\r\n          commerceSignals: model.commerceSignals,\r\n          winnerCommerceSignal: model.winnerCommerceSignal,\r\n          otherCommerceSignal: model.otherCommerceSignal\r\n        } : {\r\n          ok: false,\r\n          version: VERSION,\r\n          error: \"Kar\u015F\u0131la\u015Ft\u0131rma sonucu bulunamad\u0131.\"\r\n        };\r\n      }\r\n    };\r\n  });\r\n})(window, document);\r\n"],
  "mappings": "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",
  "names": ["window", "document"]
}
