JSON filters view

This commit is contained in:
Jan Prochazka
2021-04-05 09:29:01 +02:00
parent 853eee6701
commit ff52430e1e
4 changed files with 62 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
<script lang="ts">
import DataFilterControl from '../datagrid/DataFilterControl.svelte';
import ColumnLabel from '../elements/ColumnLabel.svelte';
import InlineButton from '../elements/InlineButton.svelte';
import FontIcon from '../icons/FontIcon.svelte';
export let uniqueName;
export let display;
export let filters;
</script>
<div class="m-1">
<div class="space-between">
<ColumnLabel columnName={uniqueName} />
<InlineButton
square
on:click={() => {
display.removeFilter(uniqueName);
}}
>
<FontIcon icon="icon delete" />
</InlineButton>
</div>
<DataFilterControl
filterType="mongo"
filter={filters[uniqueName]}
setFilter={value => display.setFilter(uniqueName, value)}
/>
</div>

View File

@@ -0,0 +1,19 @@
<script lang="ts">
import _ from 'lodash';
import ManagerInnerContainer from '../elements/ManagerInnerContainer.svelte';
import JsonViewFilterColumn from './JsonViewFilterColumn.svelte';
export let managerSize;
export let display;
$: filters = display?.config?.filters;
$: allFilterNames = _.keys(filters || {});
</script>
<ManagerInnerContainer width={managerSize}>
{#each allFilterNames as uniqueName}
<JsonViewFilterColumn {uniqueName} {display} {filters} />
{/each}
</ManagerInnerContainer>