|
|
|
@ -14,6 +14,7 @@
|
|
|
|
|
code = 'undefined';
|
|
|
|
|
} else {
|
|
|
|
|
code = fleece.stringify(value);
|
|
|
|
|
console.log({ value, code });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$: try {
|
|
|
|
@ -22,15 +23,31 @@
|
|
|
|
|
error = e;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let previous_code;
|
|
|
|
|
|
|
|
|
|
function handleChange(event) {
|
|
|
|
|
try {
|
|
|
|
|
const value = fleece.evaluate(event.detail.value);
|
|
|
|
|
previous_code = event.detail.value;
|
|
|
|
|
error = null;
|
|
|
|
|
dispatch('change', { value });
|
|
|
|
|
} catch (e) {
|
|
|
|
|
error = e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function stringify(value) {
|
|
|
|
|
if (value === undefined) return '<undefined>';
|
|
|
|
|
|
|
|
|
|
console.log(value);
|
|
|
|
|
|
|
|
|
|
const code = previous_code
|
|
|
|
|
? fleece.patch(previous_code, value)
|
|
|
|
|
: fleece.stringify(value);
|
|
|
|
|
|
|
|
|
|
previous_code = code;
|
|
|
|
|
return code;
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
@ -47,7 +64,7 @@
|
|
|
|
|
<div class="prop-editor" class:error title="{error && error.message}">
|
|
|
|
|
<CodeMirror
|
|
|
|
|
mode="json"
|
|
|
|
|
bind:code
|
|
|
|
|
code={stringify(value)}
|
|
|
|
|
lineNumbers={false}
|
|
|
|
|
on:change={handleChange}
|
|
|
|
|
flex
|
|
|
|
|