diff options
author | polwex <polwex@sortug.com> | 2025-05-15 20:32:25 +0700 |
---|---|---|
committer | polwex <polwex@sortug.com> | 2025-05-15 20:32:25 +0700 |
commit | fd86dc15734f3b7126d88f0130897c597100e30a (patch) | |
tree | 253890a5f0bde7bc460904ce1743581f53a23d5b /src/zoom/logic/types.ts | |
parent | 3d4b740e5a512db8fbdd934af2fbc9585fa00f0f (diff) |
m
Diffstat (limited to 'src/zoom/logic/types.ts')
-rw-r--r-- | src/zoom/logic/types.ts | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/src/zoom/logic/types.ts b/src/zoom/logic/types.ts new file mode 100644 index 0000000..1342bc7 --- /dev/null +++ b/src/zoom/logic/types.ts @@ -0,0 +1,84 @@ +import type { NLP } from "sortug-ai"; + +export type ViewLevel = + | "text" + | "paragraph" + | "sentence" + | "clause" + | "word" + | "syllable" + | "phoneme"; +export interface ViewState { + level: ViewLevel; + pIndex: number | null; + sIndex: number | null; + cIndex: number | null; + wIndex: number | null; + yIndex: number | null; + fIndex: number | null; +} + +export interface ViewProps { + idx: number; + rawText: string; + context: Context; + doc: NLP.Spacy.SpacyRes; + stanza?: NLP.Stanza.StanzaRes | undefined; +} +export type Context = { + parentText: string; + segmented: string[]; + idx: number; +}; +export type DBWord = { + confidence: number; + frequency: number | null; + id: number; + ipa: string; + spelling: string; + type: ExpressionType; + syllables: number; + lang: string; + prosody: string; + senses_array: string; +}; + +export type WordData = { + confidence: number; + frequency: number | null; + id: number; + ipa: Array<{ ipa: string; tags?: string[] }>; + spelling: string; + type: ExpressionType; + syllables: number; + lang: string; + prosody: Prosody; + senses: Sense[]; +}; +export type Prosody = { stressedSyllable: number; rhyme: string }; +export type ExpressionType = "word" | "expression" | "syllable"; +export type Sense = { + etymology: string; + pos: string; + forms: Array<{ form: string; tags: string[] }>; + related: Related; + senses: SubSense[]; +}; +export type SubSense = { + glosses: string[]; + raw_glosses: string[]; + categories: string[]; + examples: Example[]; + links: Array<[string, string]>; + synonyms: RelatedEntry[]; + tags: string[]; +}; +export type Example = { ref: string; text: string; type: "quote" }; +export type Related = { + related: RelatedEntry[]; + antonyms: RelatedEntry[]; + synonyms: RelatedEntry[]; + derived: RelatedEntry[]; +}; +export type RelatedEntry = { word: string; source?: string }; +export type LoadingStatus = "pending" | "loading" | "success" | "error"; |