{ if (!isLegacy) { contextMenuInput = $focusedInput; onContextMenu(event, api, $focusedInput, contextMenu); } }} on:dragover={preventDefaultIfNonLegacy} on:drop={checkNonLegacy(handlePickerDrop)} > {#if mode === "add" && !isLegacy} {/if} {#if mode === "browser"} {/if} {#if hint} {@html hint} {/if} {#if imageOcclusionMode && ($ioMaskEditorVisible || imageOcclusionMode?.kind === "add")}
{/if} {#if $ioMaskEditorVisible && isImageOcclusion && !isIOImageLoaded} {/if} {#if !$ioMaskEditorVisible} {#each fieldsData as field, index} {@const content = fieldStores[index]} { $focusedField = fields[index]; setAddonButtonsDisabled(false); bridgeCommand(`focus:${index}`); }} on:focusout={async () => { $focusedField = null; setAddonButtonsDisabled(true); if (isLegacy) { bridgeCommand( `blur:${index}:${getNoteId()}:${await transformContentBeforeSave( get(content), )}`, ); } else { bridgeCommand(`blur:${index}`); note!.fields[index] = await transformContentBeforeSave( get(content), ); await updateCurrentNote(); await updateDuplicateDisplay(); } }} on:mouseenter={() => { $hoveredField = fields[index]; }} on:mouseleave={() => { $hoveredField = null; }} collapsed={fieldsCollapsed[index]} dupe={cols[index] === "dupe"} --description-font-size="{field.fontSize}px" --description-content={`"${field.description}"`} > toggleField(index)} --icon-align="bottom" > {field.name} {#if cols[index] === "dupe"} {/if} {#if mode === "add"} {/if} {#if plainTextDefaults[index]} toggleRichTextInput(index)} /> {:else} togglePlainTextInput(index)} /> {/if} { saveFieldNow(); $focusedInput = null; }} bind:this={richTextInputs[index]} isClozeField={field.isClozeField} /> { saveFieldNow(); $focusedInput = null; }} bind:this={plainTextInputs[index]} /> {/each} { updateTagsCollapsed(false); }} /> updateTagsCollapsed(!$tagsCollapsed)} > {@html `${tagAmount > 0 ? tagAmount : ""} ${tr.editingTags()}`} {/if} {#if !isLegacy} {/if} {#if !isLegacy} {#each contextMenuItems as item} { item.action(); contextMenuInput?.focus(); }} > {item.label} {/each} {/if}