preview {STRATEGY_LABELS[strategy] ?? strategy}
{#if strategy === 'static' && staticUrl} {#if !imgError} {getLabelStr(view.label) imgLoaded = true} onerror={() => imgError = true} /> {:else}
{glob.t('vcen.editor.view.imgLoadError')} {staticUrl}
{/if} {:else if strategy === 'dynamic' && resolvedUrl} {#if !imgError} {getLabelStr(view.label) imgLoaded = true} onerror={() => imgError = true} /> {:else}
{glob.t('vcen.editor.view.imgLoadError')} {resolvedUrl}
{/if} {#if resolution?.hasFallback}
fallback
{/if} {:else if strategy === 'layers' && resolvedLayers.length > 0} {#each resolvedLayers as layer, li (li)} {#if !hiddenLayers.has(li)} {glob.t('vcen.editor.view.layerN', {/if} {/each} {#if resolution?.hasFallback}
fallback
{/if} {:else if strategy === 'layers' && layers.length === 0}
{glob.t('vcen.editor.view.noLayers')}
{:else if strategy === 'dynamic'}
{#if dynTpl} {dynTpl} {:else} {glob.t('vcen.editor.view.noTemplate')} {/if}
{:else if strategy === 'api'} {#if apiEp && !imgError} {getLabelStr(view.label) imgLoaded = true} onerror={() => imgError = true} /> {:else if apiEp && imgError}
{glob.t('vcen.editor.view.imgLoadError')} {apiEp}
{:else}
{glob.t('vcen.editor.view.noEndpoint')}
{/if} {:else if strategy === 'd3'}
{#if d3Model} {d3Model} {:else} {glob.t('vcen.editor.view.noModel')} {/if}
{:else}
{pickingPos ? glob.t('vcen.editor.hotspot.clickToPosition') : glob.t('vcen.editor.view.noImage')}
{/if} {#each (view.hotspots ?? []) as marker (marker.id)} {@const isActive = activeHotspotId === marker.id} {@const mX = typeof marker.posX === 'number' ? marker.posX : parseFloat(String(marker.posX)) || 0} {@const mY = typeof marker.posY === 'number' ? marker.posY : parseFloat(String(marker.posY)) || 0} {@const size = (marker.radius ?? 8) * 2}
{/each} {#if showLayersPanel}
e.stopPropagation()} > {#if layersPanelOpen}
{#if resolvedLayers.length > 0} {#each sortedLayerIndices as li (li)} {@const layer = resolvedLayers[li]} {@const hidden = hiddenLayers.has(li)} {/each} {:else} {#each [...layers].sort((a, b) => (b.zIndex ?? 0) - (a.zIndex ?? 0)) as layer, li (li)}
z{layer.zIndex ?? 0} {layer.attId || '—'} {#if layer.condition} if {/if}
{/each} {/if}
{/if}
{/if}
{view.width || '?'} × {view.height || '?'} px {#if pickingPos} {glob.t('vcen.editor.hotspot.clickToPosition')} {/if}
{#if resolvedUrl || (strategy === 'static' && staticUrl)} {resolvedUrl || staticUrl} {/if}