vue-json-search
Version:
Headless Vue (3.x) search component based on [Fuse.js](https://github.com/krisk/Fuse). Designed for static generators like [Hugo](https://github.com/gohugoio/hugo) but works with any site that's cabable of producing a JSON corpus.
144 lines (143 loc) • 5.01 kB
TypeScript
import type { renderTag } from '../utils';
import type { DefineComponent, Ref, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, EmitsOptions } from 'vue';
import Fuse from 'fuse.js';
import { FuseResult, SearchResultItem } from '../types';
declare const _sfc_main: DefineComponent<{
url: {
type: StringConstructor;
required: false;
};
fuseOptions: {
type: null;
required: false;
};
maxResults: {
type: NumberConstructor;
required: false;
};
showTags: {
type: BooleanConstructor;
required: false;
};
tagRoot: {
type: StringConstructor;
required: false;
};
}, {
defaultOptions: Fuse.IFuseOptions<SearchResultItem>;
searchReady: Ref<boolean>;
searchTerm: Ref<string>;
resultsTitle: Ref<string>;
numResults: Ref<number>;
results: Ref<{
item: {
title: string;
permalink: string;
summary: string;
tags: string[];
};
refIndex: number;
score?: number | undefined;
matches?: readonly {
indices: readonly [number, number][];
key?: string | undefined;
refIndex?: number | undefined;
value?: string | undefined;
}[] | undefined;
}[]>;
visibleResults: Ref<{
item: {
title: string;
permalink: string;
summary: string;
tags: string[];
};
refIndex: number;
score?: number | undefined;
matches?: readonly {
indices: readonly [number, number][];
key?: string | undefined;
refIndex?: number | undefined;
value?: string | undefined;
}[] | undefined;
}[]>;
fuse: Fuse<SearchResultItem>;
props: {
url?: string | undefined;
fuseOptions?: Fuse.IFuseOptions<unknown> | undefined;
maxResults?: number | undefined;
showTags?: boolean | undefined;
tagRoot?: string | undefined;
};
dataUrl: string;
maxResults: number;
fuseOptions: Fuse.IFuseOptions<SearchResultItem>;
initSearch: () => Promise<void>;
SearchInput: DefineComponent<{
label: {
type: StringConstructor;
required: false;
};
}, {
props: {
label?: string | undefined;
};
label: string;
searchTerm: Ref<string> | undefined;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
label: {
type: StringConstructor;
required: false;
};
}>>, {}>;
SearchResults: DefineComponent<{}, {
searchTerm: Ref<string> | undefined;
ResultTitle: DefineComponent<{}, {
numResults: Ref<number> | undefined;
resultsTitle: string | undefined;
searchTerm: string | undefined;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{}>>, {}>;
ResultList: DefineComponent<{}, {
results: Ref<FuseResult<SearchResultItem>[]> | undefined;
ResultListItem: DefineComponent<{
result: {
type: null;
required: true;
};
}, {
showTags: boolean | undefined;
tagRoot: string | undefined;
renderTag: typeof renderTag;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
result: {
type: null;
required: true;
};
}>>, {}>;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{}>>, {}>;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{}>>, {}>;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
url: {
type: StringConstructor;
required: false;
};
fuseOptions: {
type: null;
required: false;
};
maxResults: {
type: NumberConstructor;
required: false;
};
showTags: {
type: BooleanConstructor;
required: false;
};
tagRoot: {
type: StringConstructor;
required: false;
};
}>>, {
showTags: boolean;
}>;
export default _sfc_main;