mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-05 00:03:08 +00:00
* replace on click wt on pointer down on flow node click
* pointerdown on virtualitems
* Load monaco async with a placeholder to avoid size flash
* monaco placeholder for editor
* less flashing
* simulate first line bg
* better match to monaco
* more fine tune
* fix for increased browser font sizes
* flow nodes feel much better to click on
* move setTimeout upwards
* only load async in flow editor
* load async monaco in app
* lots of components dont respect the type and pass undefined
* weird outline when opening and closing OutputPicker
* fixed hover flow nodes
* moved setTimeout upwards
* hover color for virtual items
* wrong Cargo.lock
* disable interaction if not selectable
* pixel perfect editor placeholder
* fake monaco editor perfect in flow editor
* fake monaco for app json editor
* (temp) never load editor monaco
* os dependant constants in monaco
* Revert " (temp) never load editor monaco"
This reverts commit c20fca134d.
---------
Co-authored-by: Diego Imbert <diego@windmill.dev>
59 lines
1.3 KiB
Svelte
59 lines
1.3 KiB
Svelte
<script lang="ts">
|
|
import '@codingame/monaco-vscode-standalone-json-language-features'
|
|
|
|
import SimpleEditor from '$lib/components/SimpleEditor.svelte'
|
|
import { createEventDispatcher } from 'svelte'
|
|
import { createDispatcherIfMounted } from '$lib/createDispatcherIfMounted'
|
|
export let code: string | undefined
|
|
export let value: any = undefined
|
|
export let error = ''
|
|
export let editor: SimpleEditor | undefined = undefined
|
|
export let small = false
|
|
export let loadAsync = false
|
|
|
|
$: tooBig = code && code?.length > 1000000
|
|
|
|
const dispatch = createEventDispatcher()
|
|
const dispatchIfMounted = createDispatcherIfMounted(dispatch)
|
|
|
|
function parseJson() {
|
|
try {
|
|
if (code == '') {
|
|
value = undefined
|
|
error = ''
|
|
return
|
|
}
|
|
value = JSON.parse(code ?? '')
|
|
dispatchIfMounted('changeValue', value)
|
|
error = ''
|
|
} catch (e) {
|
|
error = e.message
|
|
}
|
|
}
|
|
$: code != undefined && parseJson()
|
|
</script>
|
|
|
|
{#if tooBig}
|
|
<span class="text-tertiary">JSON to edit is too big</span>
|
|
{:else}
|
|
<div class="flex flex-col w-full">
|
|
<div class="border w-full">
|
|
<SimpleEditor
|
|
{loadAsync}
|
|
{small}
|
|
on:focus
|
|
on:blur
|
|
bind:this={editor}
|
|
on:change
|
|
autoHeight
|
|
lang="json"
|
|
bind:code
|
|
class={$$props.class}
|
|
/>
|
|
</div>
|
|
{#if error != ''}
|
|
<span class="text-red-600 text-xs">{error}</span>
|
|
{/if}
|
|
</div>
|
|
{/if}
|