types/search.types.ts
types/search.types.ts is a file in Bane's Lab Site. 61 lines of code and 11 definitions.
import type { Section, Tab, TabLayout } from "#types/document.types";
import type { DefinitionLocation } from "#types/anatomy.types";
import type { Evidence } from "#types/evidence.types";
import type { PageDefinition } from "#types/page.types";
export type SpreadLayout = TabLayout | "document";
export interface SearchPage {
readonly definition: PageDefinition;
readonly icon: string;
}
export interface SearchSource {
readonly first: boolean;
readonly icon: string;
readonly label: string;
readonly layout: SpreadLayout;
readonly page: string;
readonly tab: Tab;
readonly tone: string | null;
}
export interface SearchPositions {
readonly evidence: Readonly<Record<string, number>>;
readonly links: Readonly<Record<string, number>>;
readonly route: Readonly<Record<string, number>>;
}
export interface SearchAsset {
readonly definitions: readonly DefinitionLocation[];
readonly positions: SearchPositions;
}
export interface PositionSources {
readonly evidence: readonly Evidence[];
readonly pages: readonly SearchPage[];
readonly route: readonly string[];
}
export interface SearchCorpus {
readonly definitions: readonly DefinitionLocation[];
readonly pages: readonly SearchPage[];
readonly positions: SearchPositions;
}
export interface SearchIndex {
readonly evidence: ReadonlyMap<string, number>;
readonly links: ReadonlyMap<string, number>;
readonly route: ReadonlyMap<string, number>;
readonly sources: readonly SearchSource[];
}
export interface SearchHit {
readonly home: string;
readonly position: number;
readonly section: Section;
readonly sectionIndex: number;
readonly source: SearchSource;
readonly sourceIndex: number;
}
export interface SearchToggle {
readonly dispose: () => void;
readonly showButtons: () => void;
readonly showField: (query: string) => void;
}
export interface SearchSpread {
readonly home: string;
readonly sections: readonly Section[];
readonly source: SearchSource;
}