quasar

Форк
0
/
globals.d.ts 
76 строк · 2.6 Кб
1
import { QuasarIconSet } from "./extras/icon-set";
2
import { HasBex, HasCapacitor, HasCordova, HasSsr } from "./feature-flag";
3
import { QuasarLanguage } from "./lang";
4

5
// We cannot reference directly Capacitor/Cordova types
6
//  or they would generate TS errors for Vue CLI users
7
// We also cannot move feature-flags system into `@quasar/app-webpack`/`@quasar/app-vite`
8
//  because `QVueGlobals` augmentations won't be transferred to
9
//  the `vue/types/vue` augmentation for unknown reason (probably TS limitations)
10
//  and the system will just stop working
11
// To workaround these problems we define an empty holder interface
12
//  and augment it into `@quasar/app-webpack`/`@quasar/app-vite` with current typings
13
export interface GlobalsTypesHolder {
14
  [index: string]: any;
15
}
16

17
interface QuasarLanguageInstance extends QuasarLanguage {
18
  rtl: boolean;
19
}
20

21
export interface GlobalQuasarLanguage extends QuasarLanguageInstance {
22
  set(lang: QuasarLanguage): void;
23
  /** Returns undefined when it cannot determine current language or when running on server in SSR mode. */
24
  getLocale(): string | undefined;
25
}
26

27
export interface GlobalQuasarLanguageSingleton
28
  extends Pick<GlobalQuasarLanguage, "isoName" | "nativeName" | "getLocale">,
29
    HasSsr<
30
      { set(lang: QuasarLanguage, ssrContext: any): void },
31
      { set(lang: QuasarLanguage): void }
32
    > {
33
  props: QuasarLanguageInstance;
34
}
35

36
export interface GlobalQuasarIconSet extends QuasarIconSet {
37
  set(iconSet: QuasarIconSet): void;
38
}
39

40
export interface GlobalQuasarIconSetSingleton
41
  extends QuasarIconSet,
42
    HasSsr<
43
      // QSsrContext interface depends on q/app, making it available into UI package adds complexity without any real benefit
44
      { set(iconSet: QuasarIconSet, ssrContext: any): void },
45
      { set(iconSet: QuasarIconSet): void }
46
    > {
47
  iconMapFn: GlobalQuasarIconMapFn;
48
}
49

50
export type GlobalQuasarIconMapFn = (
51
  iconName: string,
52
) => { icon: string } | { cls: string; content?: string } | void;
53

54
// `import { Quasar } from 'quasar'` will contain these types
55
export interface QSingletonGlobals {
56
  version: string;
57
  lang: GlobalQuasarLanguageSingleton;
58
  iconSet: GlobalQuasarIconSetSingleton;
59
}
60

61
export interface BaseQGlobals {
62
  version: string;
63
  lang: GlobalQuasarLanguage;
64
  iconSet: GlobalQuasarIconSet;
65
}
66

67
// $q object will contain these types
68
export interface QVueGlobals
69
  extends HasCapacitor<{ capacitor: any }>,
70
    HasBex<{ bex: GlobalsTypesHolder["bex"] }>,
71
    HasCordova<{ cordova: GlobalsTypesHolder["cordova"] }>,
72
    HasSsr<
73
      { iconMapFn?: GlobalQuasarIconMapFn; onSSRHydrated?: () => void },
74
      { iconMapFn: GlobalQuasarIconMapFn }
75
    >,
76
    BaseQGlobals {}
77

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.