mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-20 07:46:00 +00:00
lisgt matcher refactor
This commit is contained in:
@@ -29,8 +29,8 @@
|
|||||||
|
|
||||||
export const extractKey = data => data.fileName;
|
export const extractKey = data => data.fileName;
|
||||||
export const createMatcher =
|
export const createMatcher =
|
||||||
({ fileName }) =>
|
|
||||||
filter =>
|
filter =>
|
||||||
|
({ fileName }) =>
|
||||||
filterName(filter, fileName);
|
filterName(filter, fileName);
|
||||||
const APP_ICONS = {
|
const APP_ICONS = {
|
||||||
'config.json': 'img json',
|
'config.json': 'img json',
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts" context="module">
|
<script lang="ts" context="module">
|
||||||
export const extractKey = data => data.name;
|
export const extractKey = data => data.name;
|
||||||
export const createMatcher = data => filter => filterName(filter, data.name);
|
export const createMatcher = filter => data => filterName(filter, data.name);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|||||||
@@ -29,21 +29,12 @@
|
|||||||
export let collapsedGroupNames = writable([]);
|
export let collapsedGroupNames = writable([]);
|
||||||
export let onChangeFilteredList;
|
export let onChangeFilteredList;
|
||||||
|
|
||||||
$: filtered = !groupFunc
|
$: matcher = module.createMatcher && module.createMatcher(filter, passProps?.searchSettings);
|
||||||
? list.filter(data => {
|
$: childMatcher = module.createChildMatcher && module.createChildMatcher(filter, passProps?.searchSettings);
|
||||||
const matcher = module.createMatcher && module.createMatcher(data, passProps?.searchSettings);
|
|
||||||
if (matcher && !matcher(filter)) return false;
|
|
||||||
return true;
|
|
||||||
})
|
|
||||||
: null;
|
|
||||||
|
|
||||||
$: childrenMatched = !groupFunc
|
$: filtered = !groupFunc ? list.filter(data => !matcher || matcher(data)) : null;
|
||||||
? list.filter(data => {
|
|
||||||
const matcher = module.createChildMatcher && module.createChildMatcher(data, passProps?.searchSettings);
|
$: childrenMatched = !groupFunc ? list.filter(data => !childMatcher || childMatcher(data)) : null;
|
||||||
if (matcher && !matcher(filter)) return false;
|
|
||||||
return true;
|
|
||||||
})
|
|
||||||
: null;
|
|
||||||
|
|
||||||
// let filtered = [];
|
// let filtered = [];
|
||||||
|
|
||||||
@@ -62,8 +53,7 @@
|
|||||||
$: listGrouped = groupFunc
|
$: listGrouped = groupFunc
|
||||||
? _.compact(
|
? _.compact(
|
||||||
(list || []).map(data => {
|
(list || []).map(data => {
|
||||||
const matcher = module.createMatcher && module.createMatcher(data, passProps?.searchSettings);
|
const isMatched = matcher && !matcher(data) ? false : true;
|
||||||
const isMatched = matcher && !matcher(filter) ? false : true;
|
|
||||||
const group = groupFunc(data);
|
const group = groupFunc(data);
|
||||||
return { group, data, isMatched };
|
return { group, data, isMatched };
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -42,8 +42,8 @@
|
|||||||
|
|
||||||
export const extractKey = data => data.fileName;
|
export const extractKey = data => data.fileName;
|
||||||
export const createMatcher =
|
export const createMatcher =
|
||||||
({ fileName }) =>
|
|
||||||
filter =>
|
filter =>
|
||||||
|
({ fileName }) =>
|
||||||
filterName(filter, fileName);
|
filterName(filter, fileName);
|
||||||
const ARCHIVE_ICONS = {
|
const ARCHIVE_ICONS = {
|
||||||
'table.yaml': 'img table',
|
'table.yaml': 'img table',
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
import { getExtensions } from '../stores';
|
import { getExtensions } from '../stores';
|
||||||
|
|
||||||
import createQuickExportMenu from '../utility/createQuickExportMenu';
|
import createQuickExportMenu from '../utility/createQuickExportMenu';
|
||||||
import { exportQuickExportFile, } from '../utility/exportFileTools';
|
import { exportQuickExportFile } from '../utility/exportFileTools';
|
||||||
import openNewTab from '../utility/openNewTab';
|
import openNewTab from '../utility/openNewTab';
|
||||||
import AppObjectCore from './AppObjectCore.svelte';
|
import AppObjectCore from './AppObjectCore.svelte';
|
||||||
import InputTextModal from '../modals/InputTextModal.svelte';
|
import InputTextModal from '../modals/InputTextModal.svelte';
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts" context="module">
|
<script lang="ts" context="module">
|
||||||
export const extractKey = data => data.name;
|
export const extractKey = data => data.name;
|
||||||
export const createMatcher = data => filter => filterName(filter, data.name);
|
export const createMatcher = filter => data => filterName(filter, data.name);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<script context="module">
|
<script context="module">
|
||||||
export const extractKey = data => data._id;
|
export const extractKey = data => data._id;
|
||||||
export const createMatcher = props => filter => {
|
export const createMatcher = filter => props => {
|
||||||
const { _id, displayName, server } = props;
|
const { _id, displayName, server } = props;
|
||||||
const databases = getLocalStorage(`database_list_${_id}`) || [];
|
const databases = getLocalStorage(`database_list_${_id}`) || [];
|
||||||
return filterName(filter, displayName, server, ...databases.map(x => x.name));
|
return filterName(filter, displayName, server, ...databases.map(x => x.name));
|
||||||
};
|
};
|
||||||
export const createChildMatcher = props => filter => {
|
export const createChildMatcher = filter => props => {
|
||||||
if (!filter) return false;
|
if (!filter) return false;
|
||||||
const { _id } = props;
|
const { _id } = props;
|
||||||
const databases = getLocalStorage(`database_list_${_id}`) || [];
|
const databases = getLocalStorage(`database_list_${_id}`) || [];
|
||||||
|
|||||||
@@ -3,11 +3,8 @@
|
|||||||
|
|
||||||
export const extractKey = ({ schemaName, pureName }) => (schemaName ? `${schemaName}.${pureName}` : pureName);
|
export const extractKey = ({ schemaName, pureName }) => (schemaName ? `${schemaName}.${pureName}` : pureName);
|
||||||
export const createMatcher =
|
export const createMatcher =
|
||||||
(
|
(filter, cfg = DEFAULT_SEARCH_SETTINGS) =>
|
||||||
{ schemaName, pureName, objectComment, tableEngine, columns, objectTypeField, createSql },
|
({ schemaName, pureName, objectComment, tableEngine, columns, objectTypeField, createSql }) => {
|
||||||
cfg = DEFAULT_SEARCH_SETTINGS
|
|
||||||
) =>
|
|
||||||
filter => {
|
|
||||||
const filterArgs = [];
|
const filterArgs = [];
|
||||||
if (cfg.schemaName) filterArgs.push(schemaName);
|
if (cfg.schemaName) filterArgs.push(schemaName);
|
||||||
if (objectTypeField == 'tables') {
|
if (objectTypeField == 'tables') {
|
||||||
@@ -25,7 +22,8 @@
|
|||||||
if (cfg.sqlObjectText) filterArgs.push(createSql);
|
if (cfg.sqlObjectText) filterArgs.push(createSql);
|
||||||
}
|
}
|
||||||
|
|
||||||
return filterName(filter, ...filterArgs);
|
const res = filterName(filter, ...filterArgs);
|
||||||
|
return res;
|
||||||
};
|
};
|
||||||
export const createTitle = ({ schemaName, pureName }) => (schemaName ? `${schemaName}.${pureName}` : pureName);
|
export const createTitle = ({ schemaName, pureName }) => (schemaName ? `${schemaName}.${pureName}` : pureName);
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
<script lang="ts" context="module">
|
<script lang="ts" context="module">
|
||||||
export const extractKey = data => data.name;
|
export const extractKey = data => data.name;
|
||||||
export const createMatcher = ({ name, title }) => filter => filterName(filter, name, title);
|
export const createMatcher =
|
||||||
|
filter =>
|
||||||
|
({ name, title }) =>
|
||||||
|
filterName(filter, name, title);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|||||||
@@ -104,8 +104,8 @@
|
|||||||
|
|
||||||
export const extractKey = data => data.file;
|
export const extractKey = data => data.file;
|
||||||
export const createMatcher =
|
export const createMatcher =
|
||||||
({ file }) =>
|
|
||||||
filter =>
|
filter =>
|
||||||
|
({ file }) =>
|
||||||
filterName(filter, file);
|
filterName(filter, file);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -150,11 +150,8 @@
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
$: flatFilteredList = objectList.filter(data => {
|
$: matcher = databaseObjectAppObject.createMatcher(filter, $databaseObjectAppObjectSearchSettings);
|
||||||
const matcher = databaseObjectAppObject.createMatcher(data, $databaseObjectAppObjectSearchSettings);
|
$: flatFilteredList = objectList.filter(data => !matcher || matcher(data));
|
||||||
if (matcher && !matcher(filter)) return false;
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
|
|
||||||
export function focus() {
|
export function focus() {
|
||||||
domListHandler?.focusFirst();
|
domListHandler?.focusFirst();
|
||||||
|
|||||||
Reference in New Issue
Block a user