diff --git a/packages/web/src/datagrid/DataFilterControl.svelte b/packages/web/src/datagrid/DataFilterControl.svelte index 4fa42d0d9..9ce5e1c34 100644 --- a/packages/web/src/datagrid/DataFilterControl.svelte +++ b/packages/web/src/datagrid/DataFilterControl.svelte @@ -131,7 +131,7 @@ const handleKeyDown = ev => { if (isReadOnly) return; if (ev.keyCode == keycodes.enter) { - setFilter(value); + applyFilter(); } if (ev.keyCode == keycodes.escape) { setFilter(''); @@ -146,6 +146,22 @@ // } }; + function handlePaste(event) { + var pastedText = undefined; + // @ts-ignore + if (window.clipboardData && window.clipboardData.getData) { + // IE + // @ts-ignore + pastedText = window.clipboardData.getData('Text'); + } else if (event.clipboardData && event.clipboardData.getData) { + pastedText = event.clipboardData.getData('text/plain'); + } + if (pastedText && pastedText.includes('\n')) { + event.preventDefault(); + setFilter(createMultiLineFilter('is', pastedText)); + } + } + $: value = filter; $: { @@ -161,11 +177,25 @@ } } + function applyFilter() { + setFilter(value); + } + // $: if (value != filter) setFilter(value);