135 lines
3.0 KiB
TypeScript
135 lines
3.0 KiB
TypeScript
export type Config = {
|
|
newWords: Word[],
|
|
skipWords: Word[],
|
|
skipWordNames: string[],
|
|
dict: string,
|
|
currentDict: {
|
|
wordList: Word[],
|
|
chapterList: Word[][],
|
|
name: string,
|
|
desc: string
|
|
}
|
|
chapterIndex: number,
|
|
wordIndex: number,
|
|
}
|
|
export type Word = {"name": string, "usphone": string, "ukphone": string, "trans": string[]}
|
|
|
|
export const SaveKey = 'bb-word-config'
|
|
|
|
export const PronunciationApi = 'https://dict.youdao.com/dictvoice?audio='
|
|
|
|
export type PronunciationType = 'us' | 'uk' | 'romaji' | 'zh' | 'ja' | 'de'
|
|
export type PhoneticType = 'us' | 'uk' | 'romaji' | 'zh' | 'ja' | 'de'
|
|
export type LanguageType = 'en' | 'romaji' | 'zh' | 'ja' | 'code' | 'de'
|
|
export type LanguageCategoryType = 'en' | 'ja' | 'de' | 'code'
|
|
|
|
|
|
export type DictionaryResource = {
|
|
id: string
|
|
name: string
|
|
description: string
|
|
category: string
|
|
tags: string[]
|
|
url: string
|
|
length: number
|
|
language: LanguageType
|
|
languageCategory: LanguageCategoryType
|
|
//override default pronunciation when not undefined
|
|
defaultPronIndex?: number
|
|
}
|
|
|
|
export type Dictionary = {
|
|
id: string
|
|
name: string
|
|
description: string
|
|
category: string
|
|
tags: string[]
|
|
url: string
|
|
length: number
|
|
language: LanguageType
|
|
languageCategory: LanguageCategoryType
|
|
// calculated in the store
|
|
chapterCount: number
|
|
//override default pronunciation when not undefined
|
|
defaultPronIndex?: number
|
|
}
|
|
|
|
export type PronunciationConfig = {
|
|
name: string
|
|
pron: PronunciationType
|
|
}
|
|
|
|
export type LanguagePronunciationMapConfig = {
|
|
defaultPronIndex: number
|
|
pronunciation: PronunciationConfig[]
|
|
}
|
|
|
|
export type LanguagePronunciationMap = {
|
|
[key in LanguageType]: LanguagePronunciationMapConfig
|
|
}
|
|
|
|
export type SoundResource = {
|
|
key: string
|
|
name: string
|
|
filename: string
|
|
}
|
|
|
|
|
|
export interface DictJson {
|
|
name: string,
|
|
description: string,
|
|
category: string,
|
|
tags: string[],
|
|
url: string,
|
|
length: number,
|
|
language: string,
|
|
languageCategory: string,
|
|
}
|
|
|
|
export enum DictType {
|
|
newWordDict = 'newWordDict',
|
|
skipWordDict = 'skipWordDict',
|
|
inner = 'inner',
|
|
custom = 'custom',
|
|
}
|
|
|
|
export interface Dict extends DictJson {
|
|
type: DictType,
|
|
wordList: Word[],
|
|
chapterList: Word[][],
|
|
chapterIndex: number,
|
|
wordIndex: number,
|
|
}
|
|
|
|
export interface State {
|
|
newWordDict: {
|
|
type: DictType,
|
|
wordList: Word[],
|
|
chapterList: Word[][],
|
|
chapterIndex: number,
|
|
wordIndex: number,
|
|
},
|
|
skipWordDict: {
|
|
type: DictType,
|
|
wordList: Word[],
|
|
chapterList: Word[][],
|
|
chapterIndex: number,
|
|
wordIndex: number,
|
|
},
|
|
dict: Dict,
|
|
currentDictType: {
|
|
name: DictType,
|
|
dictUrl: string
|
|
}
|
|
sideIsOpen: boolean,
|
|
dictModalIsOpen: boolean,
|
|
dictModalIsOpen2: boolean,
|
|
setting: {
|
|
showToolbar: boolean,
|
|
show: boolean,
|
|
value1: boolean,
|
|
value2: number,
|
|
value3: number,
|
|
value4: boolean,
|
|
}
|
|
} |