{
  "version": 3,
  "sources": ["/cdn/shop/t/104/assets/canfoto-canonical-setup-dto-r3.js?etap2r6a=20260919"],
  "sourcesContent": ["/* =========================================================\r\n   CANFOTO / GDX \u2014 ETAP 2 R3-R1\r\n   CANONICAL SETUP DTO \u2014 SHARED COB + PANEL READ-ONLY OWNER\r\n\r\n   Shopify path:\r\n   assets/canfoto-canonical-setup-dto-r3.js\r\n\r\n   PURPOSE\r\n   - One canonical setup-data contract shared by COB LED V5 + Panel LED V4.\r\n   - Read current engine/setup truth only.\r\n   - No score/rank/F-P/commerce/share/UI mutation.\r\n   - No visible renderer migration. R4 owns visible Shared V27 migration.\r\n   - Never fabricate geometry. Unknown stays null.\r\n\r\n   CURRENT SOURCES\r\n   PANEL:\r\n   - GDX_PANEL_V4_R32_SETUP_TRUTH_LIBRARY\r\n   - GDX_PANEL_V4_R32_AF02_N1_API\r\n   - GDX_PANEL_V4_R2H_REGISTRY_V2\r\n   - debugPanelV4R28R1R1SelectionUiBlueprintScenarioLockKeyFix()\r\n\r\n   COB:\r\n   - GDX_COB_LED_V5.services.setupGeometryStrict\r\n   - GDX_COB_LED_V5.services.setupSceneMapStrict\r\n   - GDX_COB_LED_V5.services.catalog\r\n   ========================================================= */\r\n(function (W) {\r\n  \"use strict\";\r\n\r\n  var GLOBAL = \"CANFOTO_CANONICAL_SETUP_DTO\";\r\n  var VERSION = \"CANFOTO-ETAP2-R6-2F-R1-CANONICAL-DTO-COB-SOURCEVERSION\";\r\n  var SCHEMA_VERSION = \"1.0.0\";\r\n\r\n  if (W[GLOBAL] && W[GLOBAL].version === VERSION) return;\r\n\r\n  function clean(v) {\r\n    return String(v == null ? \"\" : v)\r\n      .replace(/\\u00a0/g, \" \")\r\n      .replace(/\\u202f/g, \" \")\r\n      .replace(/\\s+/g, \" \")\r\n      .trim();\r\n  }\r\n\r\n  function lower(v) {\r\n    return clean(v).toLocaleLowerCase(\"tr-TR\");\r\n  }\r\n\r\n  function numOrNull(v) {\r\n    if (v === null || v === undefined || v === \"\") return null;\r\n    var n = Number(v);\r\n    return Number.isFinite(n) ? n : null;\r\n  }\r\n\r\n  function strOrNull(v) {\r\n    var s = clean(v);\r\n    return s ? s : null;\r\n  }\r\n\r\n  function clonePlain(value) {\r\n    if (value === undefined) return null;\r\n    try {\r\n      return JSON.parse(JSON.stringify(value));\r\n    } catch (_) {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  function deepFreeze(value) {\r\n    if (!value || typeof value !== \"object\" || Object.isFrozen(value)) return value;\r\n    Object.keys(value).forEach(function (key) {\r\n      deepFreeze(value[key]);\r\n    });\r\n    return Object.freeze(value);\r\n  }\r\n\r\n  function uniqueStrings(list) {\r\n    var seen = Object.create(null);\r\n    return (list || []).map(clean).filter(function (v) {\r\n      if (!v || seen[v]) return false;\r\n      seen[v] = true;\r\n      return true;\r\n    });\r\n  }\r\n\r\n  function productFromRow(row) {\r\n    row = row || {};\r\n    return {\r\n      key: strOrNull(row.key || row.handle || row.id),\r\n      handle: strOrNull(row.handle || row.key),\r\n      title: strOrNull(row.shortTitle || row.smartTitle || row.title || row.productTitle),\r\n      family: strOrNull(row.family || row.familyKey || row.headFamilyKey),\r\n      lane: strOrNull(row.purchaseLane || row.lane || row.sourceLane)\r\n    };\r\n  }\r\n\r\n  function guards() {\r\n    return {\r\n      scoreMutation: \"NONE\",\r\n      rankingMutation: \"NONE\",\r\n      fpMutation: \"NONE\",\r\n      commerceMutation: \"NONE\",\r\n      shareMutation: \"NONE\",\r\n      visibleRendererMutation: \"NONE\"\r\n    };\r\n  }\r\n\r\n  function nullSemantics() {\r\n    return {\r\n      unknown: null,\r\n      unavailable: null,\r\n      notApplicable: null,\r\n      fabricatedZeroForbidden: true,\r\n      rule: \"SOURCE_NULL_OR_UNKNOWN_STAYS_NULL\"\r\n    };\r\n  }\r\n\r\n  function semanticFromPanel(scenarioType, semanticRole) {\r\n    if (semanticRole === \"rim_edge_contour\") return \"RIM_EDGE\";\r\n    if (scenarioType === \"rgb_background_accent\") return \"BACKGROUND_OR_EDGE\";\r\n    if (scenarioType === \"compact_support_close_range\") return \"CLOSE_SUPPORT\";\r\n    if (scenarioType === \"balanced_key_fill\") return \"BALANCED_KEY_FILL\";\r\n    return null;\r\n  }\r\n\r\n  function semanticFromCob(record) {\r\n    record = record || {};\r\n    var purpose = clean(record.purposeKey);\r\n    var role = clean(record.recommendedRole);\r\n    var variantKey = clean(record.variantKey);\r\n    var variantHint = clean(\r\n      [record.variantLabelTr, record.variantReasonTr].filter(Boolean).join(\" \")\r\n    ).toLocaleLowerCase(\"tr-TR\");\r\n\r\n    if (purpose === \"rgb_background_edge_brand\") {\r\n      if (/kenar|ayr\u0131m|rim/.test(variantHint)) return \"RIM_EDGE\";\r\n      if (/fon|arka plan|renk y\u0131kama/.test(variantHint)) return \"BACKGROUND\";\r\n      if (variantKey === \"MAIN\") return \"BACKGROUND\";\r\n      return \"BACKGROUND_OR_EDGE\";\r\n    }\r\n\r\n    if (role === \"RGB_ARKA_KENAR_ISIGI\") return \"BACKGROUND_OR_EDGE\";\r\n    if (purpose === \"brand_color_live_background\") return \"BACKGROUND\";\r\n    if (purpose === \"music_video_color_scene\" || role === \"RGB_SAHNE_ISIGI\") {\r\n      return \"RGB_SCENE\";\r\n    }\r\n    return null;\r\n  }\r\n\r\n  function cobTargetForSemantic(record, semantic) {\r\n    if (clean(record && record.purposeKey) === \"rgb_background_edge_brand\") {\r\n      if (semantic === \"BACKGROUND\") return \"Fon d\u00FCzlemi\";\r\n      if (semantic === \"RIM_EDGE\") return \"Konu kenar\u0131\";\r\n    }\r\n    return strOrNull(record && record.targetTr);\r\n  }\r\n\r\n  function makeBackgroundPlane(semantic, sourceOwner) {\r\n    var active = semantic === \"BACKGROUND\" ||\r\n      semantic === \"BACKGROUND_OR_EDGE\" ||\r\n      semantic === \"RGB_SCENE\";\r\n\r\n    return {\r\n      state: active ? \"ACTIVE_SEMANTIC\" : \"INACTIVE\",\r\n      mode: active ? semantic : null,\r\n      distanceM: null,\r\n      source: sourceOwner || null,\r\n      note: active\r\n        ? \"Background semantic is proven; background-plane distance is not present in current source and therefore remains null.\"\r\n        : null\r\n    };\r\n  }\r\n\r\n  function makeRimEdge(semantic, roleId, sourceOwner) {\r\n    if (semantic === \"RIM_EDGE\") {\r\n      return {\r\n        state: \"ACTIVE\",\r\n        mode: \"RIM_EDGE\",\r\n        roleId: roleId || null,\r\n        source: sourceOwner || null\r\n      };\r\n    }\r\n    if (semantic === \"BACKGROUND_OR_EDGE\" || semantic === \"RGB_SCENE\") {\r\n      return {\r\n        state: \"AMBIGUOUS_BACKGROUND_OR_EDGE\",\r\n        mode: semantic,\r\n        roleId: roleId || null,\r\n        source: sourceOwner || null\r\n      };\r\n    }\r\n    return {\r\n      state: \"INACTIVE\",\r\n      mode: null,\r\n      roleId: null,\r\n      source: sourceOwner || null\r\n    };\r\n  }\r\n\r\n  function baseDto(args) {\r\n    return {\r\n      schema: \"CANFOTO_CANONICAL_SETUP_DTO\",\r\n      schemaVersion: SCHEMA_VERSION,\r\n      setupRecordId: args.setupRecordId,\r\n      engine: args.engine,\r\n      source: args.source,\r\n      product: args.product,\r\n      scenario: args.scenario,\r\n      roles: args.roles,\r\n      powered: args.roles.filter(function (r) { return r.kind === \"powered\"; }),\r\n      passive: args.roles.filter(function (r) { return r.kind === \"passive\"; }),\r\n      positions: args.positions,\r\n      distances: args.distances,\r\n      angles: args.angles,\r\n      subject: args.subject,\r\n      camera: args.camera,\r\n      backgroundPlane: args.backgroundPlane,\r\n      rimEdge: args.rimEdge,\r\n      fov: args.fov,\r\n      nullSemantics: nullSemantics(),\r\n      guards: guards()\r\n    };\r\n  }\r\n\r\n  /* ---------------- PANEL ---------------- */\r\n\r\n  function panelTruthOwner() {\r\n    return W.GDX_PANEL_V4_R32_SETUP_TRUTH_LIBRARY || null;\r\n  }\r\n\r\n  function panelExactOwner() {\r\n    return W.GDX_PANEL_V4_R32_AF02_N1_API || null;\r\n  }\r\n\r\n  function panelRegistryOwner() {\r\n    return W.GDX_PANEL_V4_R2H_REGISTRY_V2 || null;\r\n  }\r\n\r\n  function panelBlueprint() {\r\n    try {\r\n      var fn = W.debugPanelV4R28R1R1SelectionUiBlueprintScenarioLockKeyFix;\r\n      var out = typeof fn === \"function\" ? fn() : null;\r\n      var bp = out && out.diagnostics ? out.diagnostics.selectionUiBlueprint : null;\r\n      return bp && Array.isArray(bp.flatSelections) ? bp : null;\r\n    } catch (_) {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  function panelSelectionRows() {\r\n    var bp = panelBlueprint();\r\n    return bp && Array.isArray(bp.flatSelections) ? bp.flatSelections.slice() : [];\r\n  }\r\n\r\n  function panelAlias(purposeKey, subPurposeKey) {\r\n    var owner = panelRegistryOwner();\r\n    if (!owner || typeof owner.getSetupAlias !== \"function\") return null;\r\n    try {\r\n      return clonePlain(owner.getSetupAlias(purposeKey, subPurposeKey));\r\n    } catch (_) {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  function panelTemplateKey(purposeKey, subPurposeKey, scenarioType) {\r\n    return [clean(purposeKey), clean(subPurposeKey), clean(scenarioType)]\r\n      .filter(Boolean)\r\n      .join(\"_\");\r\n  }\r\n\r\n  function panelSourceInfo(purposeKey, subPurposeKey, scenarioType) {\r\n    var alias = panelAlias(purposeKey, subPurposeKey);\r\n    var sourcePurposeKey = alias && alias.sourcePurposeKey\r\n      ? alias.sourcePurposeKey\r\n      : clean(purposeKey);\r\n    var sourceSubPurposeKey = alias && alias.sourceSubPurposeKey\r\n      ? alias.sourceSubPurposeKey\r\n      : clean(subPurposeKey);\r\n\r\n    return {\r\n      alias: alias,\r\n      sourcePurposeKey: sourcePurposeKey,\r\n      sourceSubPurposeKey: sourceSubPurposeKey,\r\n      templateKey: panelTemplateKey(sourcePurposeKey, sourceSubPurposeKey, scenarioType)\r\n    };\r\n  }\r\n\r\n  function panelScenarioLabel(scenarioType) {\r\n    if (scenarioType === \"balanced_key_fill\") return \"Dengeli ana / dolgu\";\r\n    if (scenarioType === \"rgb_background_accent\") return \"RGB arka plan / vurgu\";\r\n    if (scenarioType === \"compact_support_close_range\") return \"Kompakt destek / yak\u0131n mesafe\";\r\n    return null;\r\n  }\r\n\r\n  function panelDeferredDto(purposeKey, subPurposeKey, scenarioType, row, src, owner, exactOwner) {\r\n    var semanticRole = src.alias && src.alias.semanticRole\r\n      ? clean(src.alias.semanticRole)\r\n      : null;\r\n    var semantic = semanticFromPanel(scenarioType, semanticRole);\r\n\r\n    return deepFreeze(baseDto({\r\n      setupRecordId: \"PANEL::\" + purposeKey + \"::\" + subPurposeKey + \"::\" + scenarioType,\r\n      engine: \"PANEL_LED_V4\",\r\n      source: {\r\n        owner: \"GDX_PANEL_V4_R32_SETUP_TRUTH_LIBRARY\",\r\n        ownerVersion: strOrNull(owner && owner.version),\r\n        exactOwner: \"GDX_PANEL_V4_R32_AF02_N1_API\",\r\n        exactOwnerVersion: strOrNull(exactOwner && exactOwner.version),\r\n        sourceTemplateKey: src.templateKey,\r\n        sourceSelectionKey: src.alias && src.alias.sourceSelectionKey\r\n          ? src.alias.sourceSelectionKey\r\n          : purposeKey + \"::\" + subPurposeKey,\r\n        targetSelectionKey: purposeKey + \"::\" + subPurposeKey,\r\n        geometryPolicy: src.alias && src.alias.geometryPolicy\r\n          ? src.alias.geometryPolicy\r\n          : \"DEFERRED_NO_EXACT_GEOMETRY\",\r\n        sourceTruthClass: \"PANEL_R32_DEFERRED_NO_EXACT_GEOMETRY\",\r\n        status: \"DEFERRED_NO_EXACT_GEOMETRY\",\r\n        deferred: true\r\n      },\r\n      product: productFromRow(row || {}),\r\n      scenario: {\r\n        purposeKey: purposeKey,\r\n        subPurposeKey: subPurposeKey,\r\n        scenarioType: scenarioType,\r\n        scenarioLabel: panelScenarioLabel(scenarioType),\r\n        semanticRole: semanticRole,\r\n        canonicalSemantic: semantic,\r\n        variantKey: null,\r\n        geometryCategory: null,\r\n        sourceScenarioRule: null\r\n      },\r\n      roles: [],\r\n      positions: [],\r\n      distances: {\r\n        lightToTargetM: [],\r\n        cameraToTargetM: null,\r\n        passiveFillToTargetM: null,\r\n        backgroundPlaneM: null\r\n      },\r\n      angles: {\r\n        lightsDeg: [],\r\n        passiveFillDeg: null,\r\n        cameraFovDeg: null\r\n      },\r\n      subject: {\r\n        targets: [],\r\n        referenceHeightM: null\r\n      },\r\n      camera: {\r\n        distanceM: null,\r\n        heightM: null,\r\n        frameOrientation: null,\r\n        bodyOrientation: null\r\n      },\r\n      backgroundPlane: makeBackgroundPlane(semantic, \"PANEL_DEFERRED_SCENARIO_SEMANTIC\"),\r\n      rimEdge: makeRimEdge(semantic, null, \"PANEL_DEFERRED_SCENARIO_SEMANTIC\"),\r\n      fov: {\r\n        deg: null,\r\n        source: \"UNAVAILABLE_DEFERRED_NO_EXACT_GEOMETRY\"\r\n      }\r\n    }));\r\n  }\r\n\r\n  function panelDto(purposeKey, subPurposeKey, scenarioType, row) {\r\n    purposeKey = clean(purposeKey);\r\n    subPurposeKey = clean(subPurposeKey);\r\n    scenarioType = clean(scenarioType);\r\n\r\n    var owner = panelTruthOwner();\r\n    var exactOwner = panelExactOwner();\r\n    if (!owner || !owner.entriesByTemplate || !purposeKey || !subPurposeKey || !scenarioType) {\r\n      return null;\r\n    }\r\n\r\n    var src = panelSourceInfo(purposeKey, subPurposeKey, scenarioType);\r\n    var truth = owner.entriesByTemplate[src.templateKey] || null;\r\n\r\n    if (!truth) {\r\n      return panelDeferredDto(\r\n        purposeKey,\r\n        subPurposeKey,\r\n        scenarioType,\r\n        row,\r\n        src,\r\n        owner,\r\n        exactOwner\r\n      );\r\n    }\r\n\r\n    var resolved = null;\r\n    try {\r\n      if (exactOwner && typeof exactOwner.resolveExactContext === \"function\") {\r\n        resolved = exactOwner.resolveExactContext(row || {}, { templateKey: src.templateKey });\r\n      }\r\n    } catch (_) {\r\n      resolved = null;\r\n    }\r\n\r\n    var selectedRoleLabel = clean(\r\n      resolved && resolved.selectedLight && resolved.selectedLight.role\r\n    );\r\n\r\n    var roles = (Array.isArray(truth.lights) ? truth.lights : []).map(function (light, index) {\r\n      var label = clean(light && light.role);\r\n      return {\r\n        id: \"panel-role-\" + String(index + 1),\r\n        label: label || null,\r\n        kind: \"powered\",\r\n        assignedToProduct: selectedRoleLabel ? label === selectedRoleLabel : null,\r\n        colorMode: strOrNull(light && light.colorMode),\r\n        target: strOrNull(light && light.target),\r\n        family: strOrNull(light && light.panelFamily)\r\n      };\r\n    });\r\n\r\n    var positions = (Array.isArray(truth.lights) ? truth.lights : []).map(function (light, index) {\r\n      return {\r\n        roleId: \"panel-role-\" + String(index + 1),\r\n        reference: \"TARGET_ORIGIN_CAMERA_AXIS\",\r\n        angleDeg: numOrNull(light && light.angleDeg),\r\n        distanceM: numOrNull(light && light.distanceM),\r\n        heightM: numOrNull(light && light.heightM),\r\n        tiltDeg: null,\r\n        side: null,\r\n        band: strOrNull(light && light.band)\r\n      };\r\n    });\r\n\r\n    var targets = uniqueStrings((truth.lights || []).map(function (light) {\r\n      return light && light.target;\r\n    }));\r\n\r\n    var semanticRole = src.alias && src.alias.semanticRole\r\n      ? clean(src.alias.semanticRole)\r\n      : null;\r\n    var semantic = semanticFromPanel(scenarioType, semanticRole);\r\n\r\n    var rgbRole = roles.find(function (role) {\r\n      return /RGB|Kenar|Rim/i.test(clean(role.label));\r\n    }) || null;\r\n\r\n    var dto = baseDto({\r\n      setupRecordId: \"PANEL::\" + purposeKey + \"::\" + subPurposeKey + \"::\" + scenarioType,\r\n      engine: \"PANEL_LED_V4\",\r\n      source: {\r\n        owner: \"GDX_PANEL_V4_R32_SETUP_TRUTH_LIBRARY\",\r\n        ownerVersion: strOrNull(owner.version),\r\n        exactOwner: \"GDX_PANEL_V4_R32_AF02_N1_API\",\r\n        exactOwnerVersion: strOrNull(exactOwner && exactOwner.version),\r\n        sourceTemplateKey: src.templateKey,\r\n        sourceSelectionKey: src.alias && src.alias.sourceSelectionKey\r\n          ? src.alias.sourceSelectionKey\r\n          : purposeKey + \"::\" + subPurposeKey,\r\n        targetSelectionKey: purposeKey + \"::\" + subPurposeKey,\r\n        geometryPolicy: src.alias && src.alias.geometryPolicy\r\n          ? src.alias.geometryPolicy\r\n          : \"EXACT_TEMPLATE_TRUTH\",\r\n        sourceTruthClass: \"PANEL_R32_EXACT_SETUP_TRUTH\",\r\n        status: src.alias ? \"EXACT_GEOMETRY_REUSED_BY_APPROVED_ALIAS\" : \"EXACT\",\r\n        deferred: false\r\n      },\r\n      product: productFromRow(row || {}),\r\n      scenario: {\r\n        purposeKey: purposeKey,\r\n        subPurposeKey: subPurposeKey,\r\n        scenarioType: scenarioType,\r\n        scenarioLabel: strOrNull(truth.scenario),\r\n        semanticRole: semanticRole,\r\n        canonicalSemantic: semantic,\r\n        variantKey: null,\r\n        geometryCategory: null,\r\n        sourceScenarioRule: strOrNull(truth.scenarioSpecialRule)\r\n      },\r\n      roles: roles,\r\n      positions: positions,\r\n      distances: {\r\n        lightToTargetM: positions.map(function (p) { return p.distanceM; }),\r\n        cameraToTargetM: numOrNull(truth.camera && truth.camera.distanceM),\r\n        passiveFillToTargetM: null,\r\n        backgroundPlaneM: null\r\n      },\r\n      angles: {\r\n        lightsDeg: positions.map(function (p) { return p.angleDeg; }),\r\n        passiveFillDeg: null,\r\n        cameraFovDeg: null\r\n      },\r\n      subject: {\r\n        targets: targets,\r\n        referenceHeightM: null\r\n      },\r\n      camera: {\r\n        distanceM: numOrNull(truth.camera && truth.camera.distanceM),\r\n        heightM: null,\r\n        frameOrientation: strOrNull(truth.camera && truth.camera.frameOrientation),\r\n        bodyOrientation: strOrNull(truth.camera && truth.camera.bodyOrientation)\r\n      },\r\n      backgroundPlane: makeBackgroundPlane(semantic, \"PANEL_SCENARIO_TRUTH\"),\r\n      rimEdge: makeRimEdge(semantic, rgbRole && rgbRole.id, \"PANEL_SCENARIO_TRUTH\"),\r\n      fov: {\r\n        deg: null,\r\n        source: \"UNAVAILABLE_IN_CURRENT_PANEL_SETUP_TRUTH\"\r\n      }\r\n    });\r\n\r\n    return deepFreeze(dto);\r\n  }\r\n\r\n  function panelCatalog() {\r\n    var scenarios = [\r\n      \"balanced_key_fill\",\r\n      \"rgb_background_accent\",\r\n      \"compact_support_close_range\"\r\n    ];\r\n    var rows = panelSelectionRows();\r\n    var out = [];\r\n    rows.forEach(function (selection) {\r\n      var purposeKey = clean(selection && selection.purposeKey);\r\n      var subPurposeKey = clean(selection && selection.subPurposeKey);\r\n      if (!purposeKey || !subPurposeKey) {\r\n        var key = clean(selection && selection.selectionKey);\r\n        var parts = key.split(\"::\");\r\n        purposeKey = purposeKey || clean(parts[0]);\r\n        subPurposeKey = subPurposeKey || clean(parts[1]);\r\n      }\r\n      scenarios.forEach(function (scenarioType) {\r\n        var dto = panelDto(purposeKey, subPurposeKey, scenarioType, null);\r\n        if (dto) out.push(dto);\r\n      });\r\n    });\r\n    return deepFreeze(out);\r\n  }\r\n\r\n  /* ---------------- COB ---------------- */\r\n\r\n  function cobServices() {\r\n    return W.GDX_COB_LED_V5 && W.GDX_COB_LED_V5.services\r\n      ? W.GDX_COB_LED_V5.services\r\n      : null;\r\n  }\r\n\r\n  function cobSourceVersion() {\r\n    var app = W.GDX_COB_LED_V5 || null;\r\n    var runtime = app && app.runtime ? app.runtime : null;\r\n    var diagnostics = runtime && runtime.diagnostics ? runtime.diagnostics : null;\r\n    var geometry = diagnostics && diagnostics.setupGeometryStrict\r\n      ? diagnostics.setupGeometryStrict\r\n      : null;\r\n\r\n    return (\r\n      strOrNull(geometry && geometry.phase) ||\r\n      strOrNull(runtime && runtime.version) ||\r\n      null\r\n    );\r\n  }\r\n\r\n  function cobRecordById(id) {\r\n    var services = cobServices();\r\n    var geom = services && services.setupGeometryStrict;\r\n    if (!geom) return null;\r\n    try {\r\n      return (\r\n        (typeof geom.getResolvedById === \"function\" && geom.getResolvedById(id)) ||\r\n        (typeof geom.getById === \"function\" && geom.getById(id)) ||\r\n        null\r\n      );\r\n    } catch (_) {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  function cobCatalogEvidenceValue(value) {\r\n    var current = value;\r\n    var guard = 0;\r\n\r\n    while (\r\n      current &&\r\n      typeof current === \"object\" &&\r\n      Object.prototype.hasOwnProperty.call(current, \"value\") &&\r\n      guard < 4\r\n    ) {\r\n      current = current.value;\r\n      guard += 1;\r\n    }\r\n\r\n    return current;\r\n  }\r\n\r\n  function cobOfferProduct(record) {\r\n    record = record || {};\r\n    var services = cobServices();\r\n    var catalog = services && services.catalog;\r\n    var offerKey = null;\r\n\r\n    if (Array.isArray(record.offerBindings) && record.offerBindings.length) {\r\n      offerKey = clean(record.offerBindings[0] && record.offerBindings[0].offerKey);\r\n    }\r\n    if (!offerKey && Array.isArray(record.sourceOfferKeys) && record.sourceOfferKeys.length) {\r\n      offerKey = clean(record.sourceOfferKeys[0]);\r\n    }\r\n\r\n    var offer = null;\r\n    try {\r\n      offer = catalog && typeof catalog.getOffer === \"function\"\r\n        ? catalog.getOffer(offerKey)\r\n        : null;\r\n    } catch (_) {\r\n      offer = null;\r\n    }\r\n\r\n    var offerHandle = cobCatalogEvidenceValue(\r\n      offer && (offer.handle || offer.key)\r\n    );\r\n    var offerTitle = cobCatalogEvidenceValue(\r\n      offer && (offer.title || offer.productTitle || offer.displayTitle)\r\n    );\r\n\r\n    return {\r\n      key: offerKey || null,\r\n      handle: strOrNull(offerHandle) || offerKey || null,\r\n      title: strOrNull(offerTitle),\r\n      family: strOrNull(record.headFamilyKey),\r\n      lane: strOrNull(\r\n        record.purchaseLane ||\r\n        (record.offerBindings && record.offerBindings[0] && record.offerBindings[0].purchaseLane) ||\r\n        (record.sourceLanes && record.sourceLanes[0])\r\n      )\r\n    };\r\n  }\r\n\r\n  function cobDto(recordOrId) {\r\n    var record = typeof recordOrId === \"string\"\r\n      ? cobRecordById(recordOrId)\r\n      : recordOrId;\r\n\r\n    if (!record || !clean(record.setupRecordId)) return null;\r\n\r\n    var semantic = semanticFromCob(record);\r\n    var semanticTargetTr = cobTargetForSemantic(record, semantic);\r\n    var roles = [{\r\n      id: \"cob-role-main\",\r\n      label: strOrNull(record.roleTr || record.recommendedRole),\r\n      kind: \"powered\",\r\n      assignedToProduct: true,\r\n      colorMode: /RGB/i.test(clean(record.recommendedRole)) ? \"RGB\" : null,\r\n      target: semanticTargetTr,\r\n      family: strOrNull(record.headFamilyKey)\r\n    }];\r\n\r\n    if (clean(record.passiveFillType)) {\r\n      roles.push({\r\n        id: \"cob-role-passive-fill\",\r\n        label: strOrNull(record.passiveFillType),\r\n        kind: \"passive\",\r\n        assignedToProduct: false,\r\n        colorMode: null,\r\n        target: semanticTargetTr,\r\n        family: null\r\n      });\r\n    }\r\n\r\n    var positions = [{\r\n      roleId: \"cob-role-main\",\r\n      reference: \"TARGET_ORIGIN_CAMERA_AXIS\",\r\n      angleDeg: numOrNull(record.horizontalAngleDeg),\r\n      distanceM: numOrNull(record.lightToTargetM),\r\n      heightM: numOrNull(record.lightHeightM),\r\n      tiltDeg: numOrNull(record.verticalTiltDeg),\r\n      side: strOrNull(record.defaultSide || record.setupSide),\r\n      band: strOrNull(record.distanceBandLabelTr || record.lightBand)\r\n    }];\r\n\r\n    if (clean(record.passiveFillType)) {\r\n      positions.push({\r\n        roleId: \"cob-role-passive-fill\",\r\n        reference: \"TARGET_ORIGIN_CAMERA_AXIS\",\r\n        angleDeg: numOrNull(record.passiveFillAngleDeg),\r\n        distanceM: numOrNull(record.passiveFillToTargetM),\r\n        heightM: null,\r\n        tiltDeg: null,\r\n        side: null,\r\n        band: null\r\n      });\r\n    }\r\n\r\n    var sceneNode = null;\r\n    var services = cobServices();\r\n    try {\r\n      sceneNode = services && services.setupSceneMapStrict &&\r\n        typeof services.setupSceneMapStrict.get === \"function\"\r\n          ? services.setupSceneMapStrict.get(record.purposeKey, record.headFamilyKey)\r\n          : null;\r\n    } catch (_) {\r\n      sceneNode = null;\r\n    }\r\n\r\n    var dto = baseDto({\r\n      setupRecordId: clean(record.setupRecordId),\r\n      engine: \"COB_LED_V5\",\r\n      source: {\r\n        owner: \"GDX_COB_LED_V5.services.setupGeometryStrict\",\r\n        ownerVersion: cobSourceVersion(),\r\n        sourceSetupRecordId: clean(record.setupRecordId),\r\n        sourceKind: strOrNull(record.sourceKind || record.recordSource),\r\n        sceneNodeKey: strOrNull(record.sceneNodeKey),\r\n        sceneIndex: numOrNull(sceneNode && sceneNode.sceneIndex),\r\n        bindingStrategy: strOrNull(record.bindingStrategy),\r\n        geometryStatus: strOrNull(record.geometryStatus),\r\n        measurementBasis: strOrNull(record.measurementBasis)\r\n      },\r\n      product: cobOfferProduct(record),\r\n      scenario: {\r\n        purposeKey: strOrNull(record.purposeKey),\r\n        subPurposeKey: null,\r\n        scenarioType: semantic,\r\n        scenarioLabel: strOrNull(record.purposeLabel),\r\n        semanticRole: strOrNull(record.recommendedRole),\r\n        canonicalSemantic: semantic,\r\n        variantKey: strOrNull(record.variantKey),\r\n        geometryCategory: strOrNull(record.geometryCategory),\r\n        sourceScenarioRule: null\r\n      },\r\n      roles: roles,\r\n      positions: positions,\r\n      distances: {\r\n        lightToTargetM: [numOrNull(record.lightToTargetM)],\r\n        cameraToTargetM: numOrNull(record.cameraToTargetM),\r\n        passiveFillToTargetM: numOrNull(record.passiveFillToTargetM),\r\n        backgroundPlaneM: null\r\n      },\r\n      angles: {\r\n        lightsDeg: [numOrNull(record.horizontalAngleDeg)],\r\n        passiveFillDeg: numOrNull(record.passiveFillAngleDeg),\r\n        cameraFovDeg: null\r\n      },\r\n      subject: {\r\n        targets: uniqueStrings([semanticTargetTr]),\r\n        referenceHeightM: numOrNull(record.targetReferenceHeightM)\r\n      },\r\n      camera: {\r\n        distanceM: numOrNull(record.cameraToTargetM),\r\n        heightM: numOrNull(record.cameraHeightM),\r\n        frameOrientation: null,\r\n        bodyOrientation: null\r\n      },\r\n      backgroundPlane: makeBackgroundPlane(semantic, \"COB_STRICT_SETUP_SEMANTIC\"),\r\n      rimEdge: makeRimEdge(\r\n        semantic,\r\n        semantic === \"RIM_EDGE\" ||\r\n        semantic === \"BACKGROUND_OR_EDGE\" ||\r\n        semantic === \"RGB_SCENE\"\r\n          ? \"cob-role-main\"\r\n          : null,\r\n        \"COB_STRICT_SETUP_SEMANTIC\"\r\n      ),\r\n      fov: {\r\n        deg: null,\r\n        source: \"UNAVAILABLE_IN_CURRENT_COB_SETUP_TRUTH\"\r\n      }\r\n    });\r\n\r\n    return deepFreeze(dto);\r\n  }\r\n\r\n  function cobCatalog() {\r\n    var services = cobServices();\r\n    var geom = services && services.setupGeometryStrict;\r\n    if (!geom || typeof geom.getResolvedAll !== \"function\") return deepFreeze([]);\r\n    var records = [];\r\n    try {\r\n      records = geom.getResolvedAll() || [];\r\n    } catch (_) {\r\n      records = [];\r\n    }\r\n    return deepFreeze(records.map(cobDto).filter(Boolean));\r\n  }\r\n\r\n  var api = {\r\n    ready: true,\r\n    version: VERSION,\r\n    schemaVersion: SCHEMA_VERSION,\r\n    compatibilityPatch: \"CANFOTO-ETAP2-R6-1A-R2.3-COB-CATALOG-EVIDENCE-UNWRAP-V1\",\r\n    cobVariantTargetPatch: \"CANFOTO-ETAP2-R6-1B-R2C-B-B-SHARED-V27-VARIANT-SEMANTIC-V1\",\r\n    cobPublicRoleLabelPatch: \"CANFOTO-ETAP2-R6-1B-R2C-B-COB-PUBLIC-ROLE-LABEL-R1\",\r\n      r62fCobSourceVersionPatch: \"CANFOTO-ETAP2-R6-2F-R1-CANONICAL-DTO-COB-SOURCEVERSION\",\r\n    contract: deepFreeze({\r\n      setupRecordId: true,\r\n      product: true,\r\n      scenario: true,\r\n      roles: true,\r\n      powered: true,\r\n      passive: true,\r\n      positions: true,\r\n      distances: true,\r\n      angles: true,\r\n      subject: true,\r\n      camera: true,\r\n      backgroundPlane: true,\r\n      rimEdge: true,\r\n      fov: true,\r\n      nullSemantics: true,\r\n      adapterCalculatesScore: false,\r\n      adapterInventsGeometry: false\r\n    }),\r\n    ownership: deepFreeze({\r\n      dom: false,\r\n      renderer: false,\r\n      scores: false,\r\n      ranking: false,\r\n      fp: false,\r\n      commerce: false,\r\n      share: false,\r\n      observers: false,\r\n      timers: false,\r\n      eventListeners: false\r\n    }),\r\n    panel: deepFreeze({\r\n      fromSelection: panelDto,\r\n      buildCatalog: panelCatalog,\r\n      getSelections: panelSelectionRows,\r\n      getSetupAlias: panelAlias\r\n    }),\r\n    cob: deepFreeze({\r\n      fromSetupRecordId: function (id) { return cobDto(id); },\r\n      fromRecord: function (record) { return cobDto(record); },\r\n      buildCatalog: cobCatalog\r\n    })\r\n  };\r\n\r\n  try {\r\n    Object.defineProperty(W, GLOBAL, {\r\n      value: deepFreeze(api),\r\n      configurable: true,\r\n      enumerable: false,\r\n      writable: false\r\n    });\r\n  } catch (_) {\r\n    W[GLOBAL] = deepFreeze(api);\r\n  }\r\n})(window);\r\n"],
  "mappings": "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",
  "names": []
}
