-
-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathtypes.ts
137 lines (126 loc) · 2.76 KB
/
types.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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/**
* The user description.
*/
export interface IUser {
username: string;
name?: string;
display_name?: string;
initials?: string;
color?: string;
avatar_url?: string;
}
/**
* The configuration interface.
*/
export interface IConfig {
/**
* Whether to send a message via Shift-Enter instead of Enter.
*/
sendWithShiftEnter?: boolean;
/**
* Whether to stack consecutive messages from same user.
*/
stackMessages?: boolean;
/**
* Whether to enable or not the notifications on unread messages.
*/
unreadNotifications?: boolean;
/**
* Whether to enable or not the code toolbar.
*/
enableCodeToolbar?: boolean;
/**
* Whether to send typing notification.
*/
sendTypingNotification?: boolean;
}
/**
* The chat message description.
*/
export interface IChatMessage<T = IUser> {
type: 'msg';
body: string;
id: string;
time: number;
sender: T;
raw_time?: boolean;
deleted?: boolean;
edited?: boolean;
stacked?: boolean;
}
/**
* The chat history interface.
*/
export interface IChatHistory {
messages: IChatMessage[];
}
/**
* The content of a new message.
*/
export interface INewMessage {
body: string;
id?: string;
}
/**
* An empty interface to describe optional settings that could be fetched from server.
*/
export interface ISettings {}
/**
* The autocomplete command type.
*/
export type AutocompleteCommand = {
label: string;
};
/**
* Representation of a selected text.
*/
export type TextSelection = {
type: 'text';
source: string;
};
/**
* Representation of a selected cell.
*/
export type CellSelection = {
type: 'cell';
source: string;
};
/**
* Selection object (text or cell).
*/
export type Selection = TextSelection | CellSelection;
/**
* The properties of the autocompletion.
*
* The autocompletion component will open if the 'opener' string is typed at the
* beginning of the input field.
*/
export interface IAutocompletionCommandsProps {
/**
* The string that open the completer.
*/
opener: string;
/**
* The list of available commands.
*/
commands?: AutocompleteCommand[] | (() => Promise<AutocompleteCommand[]>);
/**
* The props for the Autocomplete component.
*
* Must be compatible with https://mui.com/material-ui/api/autocomplete/#props.
*
* ## NOTES:
* - providing `options` will overwrite the commands argument.
* - providing `renderInput` will overwrite the input component.
* - providing `renderOptions` allows to customize the rendering of the component.
* - some arguments should not be provided and would be overwritten:
* - inputValue
* - onInputChange
* - onHighlightChange
*/
props?: any;
}