forked from uptick/react-interactive-tutorials
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.d.ts
122 lines (104 loc) · 2.84 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
export type Tutorial = {};
export type TutorialTranslation = {
trans: string;
}
export type TutorialParagraph = {
p: string;
}
export type TutorialCondition = {
compare: 'url';
url: string;
} | {
compare: 'inputVal' | 'inputNotVal';
selector: string;
value: string;
} | {
compare: 'dropdownState';
selector: string;
state: 'open' | 'closed';
} | {
compare: 'checkpointComplete' | 'checkpointIncomplete';
checkpoint: string;
} | {
compare: 'either' | 'all';
when: TutorialCondition[];
}
| {
compare: 'custom';
custom: () => boolean;
}
export type TutorialStep = {
key: string;
activeWhen: TutorialCondition[];
announce?: TutorialParagraph;
announceDismiss?: TutorialTranslation;
annotate?: TutorialParagraph;
annotateIn?: string;
annotateTop?: string;
annotateBottom?: string;
annotateLeft?: string;
annotateRight?: string;
additionalBeforeHandler?: () => void;
additionalAfterHandler?: () => void;
annotateSkip?: TutorialTranslation;
highlight?: string;
editWhileOpen?: boolean;
highlightBack?: string;
noFocus?: boolean;
}
export type TutorialCheckpoint = {
on: 'form_submission',
checkpoint: string,
form: {
method: string,
url: string
}
}
export interface TutorialType {
key: string;
title: TutorialTranslation;
steps: TutorialStep[];
complete: {
on: 'checkpointReached';
checkpoint: string;
title: TutorialTranslation;
message: TutorialParagraph;
} | {
on: 'form_submission';
form: {
method: string;
url: string;
};
title: TutorialTranslation;
message: TutorialParagraph;
}
checkpoints?: TutorialCheckpoint[],
}
export type TutorialOptions = {
forceZIndex?: boolean;
centralizeAnnouncements?: boolean;
translations?: {
annotateSkip?: string;
exit?: string;
hideHelp?: string;
showHelp?: string;
complete?: string;
tooLow?: string;
tooHigh?: string;
nextStep?: string;
};
baseZIndex?: number;
}
export declare type TranslationFunction = (text: string, lang: any) => string;
export declare class TutorialWrapper<T extends string> {
constructor() {
}
LANG:string;
TRANSLATION_FUNC: TranslationFunction;
abortTutorial: (callback: (tutorial: Tutorial) => void) => void;
overrideTransFunction: (transFunc: (text: string, language: any) => string, language: any) => void;
registerFinaliseCallback: (callback: (tutorial?: TutorialType) => void) => void;
registerTutorials: (tutorials: { [U in T]: TutorialType }, options?: TutorialOptions, transFunc?: TranslationFunction, lang?: string) => void;
startTutorial: (tutorialKey: T) => void;
setLang: (lang: string) => void;
}