forked from ElemeFE/element
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.d.ts
1124 lines (1068 loc) · 36.1 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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// TypeScript Version: 2.3
/// <reference types="react" />
declare module "element-react" {
export import i18n = ElementReact.i18n
export import Alert = ElementReact.Alert
export import Button = ElementReact.Button
export import Card = ElementReact.Card
export import Layout = ElementReact.Layout
export import Loading = ElementReact.Loading
export import Message = ElementReact.Message
export import MessageBox = ElementReact.MessageBox
export import Notification = ElementReact.Notification
export import Radio = ElementReact.Radio
export import Dialog = ElementReact.Dialog
export import Rate = ElementReact.Rate
export import Progress = ElementReact.Progress
export import Badge = ElementReact.Badge
export import Tabs = ElementReact.Tabs
export import Tree = ElementReact.Tree
export import Input = ElementReact.Input
export import Icon = ElementReact.Icon
export import Menu = ElementReact.Menu
export import Steps = ElementReact.Steps
export import Breadcrumb = ElementReact.Breadcrumb
export import Tooltip = ElementReact.Tooltip
export import InputNumber = ElementReact.InputNumber
export import Checkbox = ElementReact.Checkbox
export import Slider = ElementReact.Slider
export import Table = ElementReact.Table
export import Switch = ElementReact.Switch
export import Form = ElementReact.Form
export import Upload = ElementReact.Upload
export import Tag = ElementReact.Tag
export import Select = ElementReact.Select
export import Dropdown = ElementReact.Dropdown
export import Popover = ElementReact.Popover
export import Pagination = ElementReact.Pagination
export import AutoComplete = ElementReact.AutoComplete
export import TimeSelect = ElementReact.TimeSelect
export import TimePicker = ElementReact.TimePicker
export import TimeRangePicker = ElementReact.TimeRangePicker
export import DatePicker = ElementReact.DatePicker
export import DateRangePicker = ElementReact.DateRangePicker
export import Carousel = ElementReact.Carousel
export import Collapse = ElementReact.Collapse
export import ColorPicker = ElementReact.ColorPicker
export import Cascader = ElementReact.Cascader
export import Transfer = ElementReact.Transfer
}
declare module "element-react/next" {
export import i18n = ElementReact.i18n
export import Alert = ElementReact.Alert
export import Button = ElementReact.Button
export import Card = ElementReact.Card
export import Layout = ElementReact.Layout
export import Loading = ElementReact.Loading
export import Message = ElementReact.Message
export import MessageBox = ElementReact.MessageBox
export import Notification = ElementReact.Notification
export import Radio = ElementReact.Radio
export import Dialog = ElementReact.Dialog
export import Rate = ElementReact.Rate
export import Progress = ElementReact.Progress
export import Badge = ElementReact.Badge
export import Tabs = ElementReact.Tabs
export import Tree = ElementReact.Tree
export import Input = ElementReact.Input
export import Icon = ElementReact.Icon
export import Menu = ElementReact.Menu
export import Steps = ElementReact.Steps
export import Breadcrumb = ElementReact.Breadcrumb
export import Tooltip = ElementReact.Tooltip
export import InputNumber = ElementReact.InputNumber
export import Checkbox = ElementReact.Checkbox
export import Slider = ElementReact.Slider
export import Table = ElementReact.Table
export import Switch = ElementReact.Switch
export import Form = ElementReact.Form
export import Upload = ElementReact.Upload
export import Tag = ElementReact.Tag
export import Select = ElementReact.Select
export import Dropdown = ElementReact.Dropdown
export import Popover = ElementReact.Popover
export import Pagination = ElementReact.Pagination
export import AutoComplete = ElementReact.AutoComplete
export import TimeSelect = ElementReact.TimeSelect
export import TimePicker = ElementReact.TimePicker
export import TimeRangePicker = ElementReact.TimeRangePicker
export import DatePicker = ElementReact.DatePicker
export import DateRangePicker = ElementReact.DateRangePicker
export import Carousel = ElementReact.Carousel
export import Collapse = ElementReact.Collapse
export import ColorPicker = ElementReact.ColorPicker
export import Cascader = ElementReact.Cascader
export import Transfer = ElementReact.Transfer
}
declare namespace ElementReact {
type typeColor = 'success' | 'info' | 'warning'
type I18nLang = any
// i18n
interface I18n {
// TODO: set lang type
use(lang: I18nLang): void
// TODO: set options type
t(path: string, options: any): string
}
export const i18n: I18n
// Alert
interface AlertProps extends ElementReactLibs.ComponentProps<{}> {
onClose?(): void
title: string
description?: string
type?: typeColor | 'error'
closable?: boolean
closeText?: string
showIcon?: boolean
}
export class Alert extends ElementReactLibs.Component<AlertProps, {}> { }
// Button
interface ButtonProps extends ElementReactLibs.ComponentProps<{}> {
onClick?(e: React.SyntheticEvent<HTMLButtonElement>): void
type?: typeColor | 'danger' | 'primary' | 'text'
size?: 'large' | 'small' | 'mini'
icon?: string
nativeType?: 'button' | 'submit' | 'reset'
loading?: boolean
disabled?: boolean
plain?: boolean
}
class ButtonGroup extends ElementReactLibs.Component<{}, {}> { }
export class Button extends ElementReactLibs.Component<ButtonProps, {}> {
static Group: typeof ButtonGroup
}
// Card
interface CardProps extends ElementReactLibs.ComponentProps<{}> {
header?: string | React.ReactElement<any>
bodyStyle?: React.CSSProperties
}
export class Card extends ElementReactLibs.Component<CardProps, {}> { }
// Layout
interface RowProps extends ElementReactLibs.ComponentProps<{}> {
gutter?: number | string
type?: 'flex'
justify?: 'start' | 'end' | 'center' | 'space-around' | 'space-between'
align?: 'top' | 'middle' | 'bottom'
}
class Row extends ElementReactLibs.Component<RowProps, {}> { }
interface ColProps extends ElementReactLibs.ComponentProps<{}> {
span: number | string
offset?: number | string
pull?: number | string
push?: number | string
// the next props are not on https://eleme.github.io/element-react/#/zh-CN/layout
xs?: number | string | Object
sm?: number | string | Object
md?: number | string | Object
lg?: number | string | Object
}
class Col extends ElementReactLibs.Component<ColProps, {}> { }
export const Layout: {
Row: typeof Row
Col: typeof Col
}
// Loading
interface LoadingProps extends ElementReactLibs.ComponentProps<{}> {
loading?: boolean
fullscreen?: boolean
text?: string
}
export class Loading extends ElementReactLibs.Component<LoadingProps, {}> { }
// Message
type Message = any
interface MessageOptions {
message: string
type?: typeColor | 'error'
iconClass?: string
customClass?: string
duration?: number
showClose?: boolean
onClose?(message?: Message): void
}
type MessageFunction = (options: string | MessageOptions, type?: typeColor | 'error') => void
type MessageObject = {
success(options: string | MessageOptions): void
info(options: string | MessageOptions): void
warning(options: string | MessageOptions): void
error(options: string | MessageOptions): void
close(): void
}
export const Message: MessageFunction & MessageObject
// MessageBox
interface NextOptions {
modal?: 'alert' | 'confirm' | 'prompt'
type?: typeColor | 'error'
title?: string
message?: string
showInput?: boolean
showClose?: boolean
showCancelButton?: boolean
showConfirmButton?: boolean
confirmButtonText?: string
cancelButtonText?: string
cancelButtonClass?: string
confirmButtonClass?: string
inputPlaceholder?: string
inputPattern?: RegExp
inputValidator?(): string | boolean
inputErrorMessage?: string
}
export const MessageBox: {
alert(message: string, props?: NextOptions): Promise<void>
alert(message: string, title?: string, props?: NextOptions): Promise<void>
confirm(message: string, props?: NextOptions): Promise<void>
confirm(message: string, title?: string, props?: NextOptions): Promise<void>
prompt(message: string, props?: NextOptions): Promise<void>
prompt(message: string, title?: string, props?: NextOptions): Promise<void>
msgbox(options?: NextOptions): Promise<void>
}
// Notification
interface NotificationOptions {
message?: string | React.ReactElement<any>
title?: string
type?: typeColor | 'error'
iconClass?: string
duration?: number
onClick?(): void
onClose?(): void
offset?: number
}
type NotificationFunction = (options: string | NotificationOptions, type?: typeColor | 'error') => void
type NotificationObject = {
success(options: string | NotificationOptions): void
info(options: string | NotificationOptions): void
warning(options: string | NotificationOptions): void
error(options: string | NotificationOptions): void
close(): void
}
export const Notification: NotificationFunction & NotificationObject
// Radio
interface RadioProps extends ElementReactLibs.ComponentProps<{}> {
value: string | number | boolean
onChange?(value?: string | number | boolean): void
disabled?: boolean
checked?: boolean
name?: string
}
interface RadioGroupProps extends ElementReactLibs.ComponentProps<{}> {
value?: string | number
disabled?: boolean
size?: 'large' | 'small'
textColor?: string
fill?: string
onChange?(value?: string | number): void
}
interface RadioButtonProps extends ElementReactLibs.ComponentProps<{}> {
value: string | number
disabled?: boolean
name?: string
}
class RadioGroup extends ElementReactLibs.Component<RadioGroupProps, {}> { }
class RadioButton extends ElementReactLibs.Component<RadioButtonProps, {}> { }
export class Radio extends ElementReactLibs.Component<RadioProps, {}> {
static Group: typeof RadioGroup
static Button: typeof RadioButton
}
// Dialog
interface DialogProps extends ElementReactLibs.ComponentProps<{}> {
visible: boolean
title?: string
size?: 'tiny' | 'small' | 'large' | 'full'
top?: string
modal?: boolean
customClass?: string
lockScroll?: boolean
closeOnClickModal?: boolean
closeOnPressEscape?: boolean
onCancel?(): void
onOpen?(...args): any
opClose?(...args): any
}
interface DialogBodyProps extends ElementReactLibs.ComponentProps<{}> { }
interface DialogFooterProps extends ElementReactLibs.ComponentProps<{}> { }
class DialogBody extends ElementReactLibs.Component<DialogBodyProps, {}> { }
class DialogFooter extends ElementReactLibs.Component<DialogFooterProps, {}> { }
export class Dialog extends ElementReactLibs.Component<DialogProps, {}> {
static Body: typeof DialogBody
static Footer: typeof DialogFooter
}
// Rate
interface RateProps extends ElementReactLibs.ComponentProps<{}> {
colors?: string[]
texts?: string[]
showText?: boolean
textColor?: string
disabled?: boolean
value?: number
onChange?(value?: number): void
textTemplate?: string
lowThreshold?: number
highThreshold?: number
max?: number
voidColor?: string
disabledVoidColor?: string
iconClasses?: string[]
voidIconClass?: string
disabledVoidIconClass?: string
allowHalf?: boolean
}
export class Rate extends ElementReactLibs.Component<RateProps, {}> { }
// Progress
interface ProgressProps extends ElementReactLibs.ComponentProps<{}> {
type?: 'line' | 'circle'
percentage: number
status?: 'success' | 'exception'
strokeWidth?: number
width?: number
textInside?: boolean
showText?: boolean
}
export class Progress extends ElementReactLibs.Component<ProgressProps, {}> { }
// Badge
interface BadgeProps extends ElementReactLibs.ComponentProps<{}> {
value?: number | string
max?: number
isDot?: boolean
}
export class Badge extends ElementReactLibs.Component<BadgeProps, {}> { }
// Tabs
interface TabsProps extends ElementReactLibs.ComponentProps<{}> {
type?: 'card' | 'border-card'
activeName?: string
value?: string
closable?: boolean
addable?: boolean
editable?: boolean
// TODO: add tab type
onTabClick?(tab?: any): void
onTabRemove?(name?: string): void
onTabAdd?(): void
onTabEdit?(targetName?: string, action?: string): void
}
interface TabsPaneProps extends ElementReactLibs.ComponentProps<{}> {
label?: string | React.ReactElement<any>
name?: string
disabled?: boolean
closable?: boolean
}
class TabsPane extends ElementReactLibs.Component<TabsPaneProps, {}> { }
export class Tabs extends ElementReactLibs.Component<TabsProps, {}> {
static Pane: typeof TabsPane
}
// Tree
interface TreeProps extends ElementReactLibs.ComponentProps<{}> {
autoExpandParent?: boolean
checkStrictly?: boolean
currentNodeKey?: any
defaultCheckedKeys?: any[]
defaultExpandedKeys?: any[]
defaultExpandAll?: boolean
data?: any[]
emptyText?: string
expandOnClickNode?: boolean
filterNodeMethod?(value?, data?, node?): boolean
renderContent?(nodeModel?, data?, store?): React.ReactElement<any>
isShowCheckbox?: boolean
accordion?: boolean
indent?: number,
nodeKey?: string
options?: {
children?: string
label?: string
icon?: string
},
lazy?: boolean
highlightCurrent?: boolean
load?(node?, resolve?): void
onCheckChange?(data?, checked?: boolean, indeterminate?): void
onNodeClicked?(data?, node?): void
onCurrentChange?(data?, node?): void
onNodeExpand?(data?, nodeModel?, node?): void
onNodeCollapse?(data?, nodeModel?, node?): void
}
export class Tree extends ElementReactLibs.Component<TreeProps, {}> {
filter(...args): void
getCheckedNodes(leafOnly?: boolean): any[]
setCheckedNodes(nodes: any[], leafOnly?: boolean): void
getCheckedKeys(leafOnly?: boolean): any[]
setCheckedKeys(keys: any[], leafOnly?: boolean): void
setChecked(data: any, checked: boolean, deep?: boolean): void
}
interface InputProps extends ElementReactLibs.ComponentProps<{}>
{
type?: string // valid value are 'text' & 'textarea'
icon?: string | React.ReactElement<any>
disabled?: boolean
name?: string
placeholder?: string
readOnly?: boolean
autoFocus?: boolean
maxLength?: number
minLength?: number
defaultValue?: any
value?: any
// type !== 'textarea'
size?: 'large' | 'small' | 'mini'
prepend?: any
append?: any
// type === 'textarea'
autosize?: boolean | Object
rows?: number
// event
onFocus?(e?: React.SyntheticEvent<HTMLInputElement>): void
onBlur?(e?: React.SyntheticEvent<HTMLInputElement>): void
onChange?(e?: React.SyntheticEvent<HTMLInputElement>): void
onIconClick?(): void
onMouseEnter?(e?: React.SyntheticEvent<HTMLDivElement>): void
onMouseLeave?(e?: React.SyntheticEvent<HTMLDivElement>): void
// autoComplete
autoComplete?: string
inputSelect?(item?): void
// form related
form?: string
validating?: boolean
max?: string | number
min?: string | number
step?: string | number
resize?: 'none' | 'both' | 'horizontal' | 'vertical'
}
export class Input extends ElementReactLibs.Component<InputProps, {}> { }
// Icon
interface IconProps extends ElementReactLibs.ComponentProps<{}> {
name: string
}
export class Icon extends ElementReactLibs.Component<IconProps, {}> { }
// Menu
type menuIndex = string // 这里代码里面标注的 flowtype 是 number
interface MenuProps extends ElementReactLibs.ComponentProps<{}> {
mode?: 'horizontal' | 'vertical'
defaultActive?: menuIndex
defaultOpeneds?: menuIndex[]
theme?: 'light' | 'dark'
uniqueOpened?: boolean
menuTrigger?: string
onSelect?(index?: menuIndex, indexPath?: menuIndex[]): void
onOpen?(index?: menuIndex, indexPath?: menuIndex[]): void
onClose?(index?: menuIndex, indexPath?: menuIndex[]): void
}
interface SubMenuProps extends ElementReactLibs.ComponentProps<{}> {
index: menuIndex
title?: React.ReactElement<any> | string
}
interface MenuItemProps extends ElementReactLibs.ComponentProps<{}> {
index: menuIndex
disabled?: boolean
}
interface MenuItemGroupProps extends ElementReactLibs.ComponentProps<{}> {
title: string
}
class SubMenu extends ElementReactLibs.Component<SubMenuProps, {}> { }
class MenuItem extends ElementReactLibs.Component<MenuItemProps, {}> { }
class MenuItemGroup extends ElementReactLibs.Component<MenuItemGroupProps, {}> { }
export class Menu extends ElementReactLibs.Component<MenuProps, {}> {
static SubMenu: typeof SubMenu
static Item: typeof MenuItem
static ItemGroup: typeof MenuItemGroup
}
// Steps
type statusMap = 'wait' | 'process' | 'finish' | 'error' | 'success'
interface StepsProps extends ElementReactLibs.ComponentProps<{}> {
space?: number
active?: number
direction?: 'vertical' | 'horizontal'
finishStatus?: statusMap
processStatus?: statusMap
}
interface StepProps extends ElementReactLibs.ComponentProps<{}> {
title?: string
icon?: string
description?: string | React.ReactElement<any>
status?: statusMap
direction?: 'vertical' | 'horizontal'
style?: React.CSSProperties
lineStyle?: React.CSSProperties
stepNumber?: number
}
class Step extends ElementReactLibs.Component<StepProps, {}> { }
export class Steps extends ElementReactLibs.Component<StepsProps, {}> {
static Step: typeof Step
}
// Breadcrumb
interface BreadcrumbProps extends ElementReactLibs.ComponentProps<{}> {
separator?: string
}
interface BreadcrumbItemProps extends ElementReactLibs.ComponentProps<{}> { }
class BreadcrumbItem extends ElementReactLibs.Component<BreadcrumbItemProps, {}> { }
export class Breadcrumb extends ElementReactLibs.Component<BreadcrumbProps, {}> {
static Item: typeof BreadcrumbItem
}
// Tooltip
interface TooltipProps extends ElementReactLibs.ComponentProps<{}> {
effect?: 'dark' | 'light'
content?: string | React.ReactElement<any>
placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'
disabled?: boolean
transition?: string
visibleArrow?: boolean
openDelay?: number
manual?: boolean
visible?: boolean
}
export class Tooltip extends ElementReactLibs.Component<TooltipProps, {}> { }
// InputNumber
interface InputNumberProps extends ElementReactLibs.ComponentProps<{}> {
defaultValue?: number
value?: number
step?: number | string
max?: number | string
min?: number | string
disabled?: boolean
controls?: boolean
size?: 'large' | 'small'
onChange?(value?: number): void
}
export class InputNumber extends ElementReactLibs.Component<InputNumberProps, {}> { }
// Checkbox
interface CheckboxProps extends ElementReactLibs.ComponentProps<{}> {
label?: string
trueLabel?: string | number
falseLabel?: string | number
disabled?: boolean
checked?: boolean
indeterminate?: boolean
focus?: boolean
onChange?(value?): void
}
interface CheckboxGroupProps extends ElementReactLibs.ComponentProps<{}> {
min?: number | string
max?: number | string
size?: 'large' | 'small'
fill?: string
textColor?: string
value?: any
onChange?(value?): void
}
interface CheckboxButtonProps extends ElementReactLibs.ComponentProps<{}> { }
class CheckboxGroup extends ElementReactLibs.Component<CheckboxGroupProps, {}> { }
class CheckboxButton extends ElementReactLibs.Component<CheckboxButtonProps, {}> { }
export class Checkbox extends ElementReactLibs.Component<CheckboxProps, {}> {
static Group: typeof CheckboxGroup
static Button: typeof CheckboxButton
}
// Slider
interface SliderProps extends ElementReactLibs.ComponentProps<{}> {
min?: number | string
max?: number | string
step?: number | string
value?: number | number[]
showInput?: boolean
showInputControls?: boolean
showTooltip?: boolean
showStops?: boolean
disabled?: boolean
range?: boolean
vertical?: boolean
height?: string
formatTooltip?(): void
onChange?(value): void
}
export class Slider extends ElementReactLibs.Component<SliderProps, {}> { }
// Table
interface TableColumn {
label?: string
prop?: string
property?: string
type?: string
minWidth?: number
width?: number
align?: string
sortable?: boolean
sortMethod?: () => void
resizable?: boolean
formatter?: () => void
selectable?: boolean
fixed?: boolean | string
filterMethod?: () => void
filters?: Object[]
render?: () => void
}
interface TableProps extends ElementReactLibs.ComponentProps<{}> {
columns?: TableColumn[]
data?: Object[]
height?: number
stripe?: boolean
border?: boolean
fit?: boolean
rowClassName?(row?, index?): void
style?: Object
highlightCurrentRow?: boolean
onCurrentChange?(): void
onSelectAll?(): void
onSelectChange?(): void
}
export class Table extends ElementReactLibs.Component<TableProps, {}> { }
// Switch
interface SwitchProps extends ElementReactLibs.ComponentProps<{}> {
value?: number | string | boolean
disabled?: boolean
width?: number
onIconClass?: string
offIconClass?: string
onText?: string
offText?: string
onColor?: string
offColor?: string
onValue?: number | string | boolean
offValue?: number | string | boolean
name?: string
onChange?(value: number | string | boolean): void
}
export class Switch extends ElementReactLibs.Component<SwitchProps, {}> { }
// Form
interface FormProps extends ElementReactLibs.ComponentProps<{}> {
model?: Object
rules?: Object
labelPosition?: 'right' | 'left' | 'top'
labelWidth?: string | number
labelSuffix?: string
inline?: boolean
}
interface FormItemProps extends ElementReactLibs.ComponentProps<{}> {
label?: string
labelWidth?: string | number
prop?: string
required?: boolean
rules?: Object | any[]
}
class FormItem extends ElementReactLibs.Component<FormItemProps, {}> { }
export class Form extends ElementReactLibs.Component<FormProps, {}> {
static Item: typeof FormItem
validate(cb?: (valid: boolean) => void): void
validateField(prop: string, cb?: () => void): void
resetFields(): void
}
// Upload
interface UploadProps extends ElementReactLibs.ComponentProps<{}> {
action: string
headers?: Object
data?: Object
multiple?: boolean
name?: string
withCredentials?: boolean
showFileList?: boolean
fileList?: any[]
autoUpload?: boolean
accept?: string
drag?: boolean
listType?: 'text' | 'picture' | 'picture-card'
tip?: React.ReactElement<any>
trigger?: React.ReactElement<any>
beforeUpload?(file?): boolean | Promise<any>
onRemove?(file?, fileList?: any[]): void
onPreview?(file?): void
onProgress?(event?, file?, fileList?: any[]): void
onSuccess?(response?, file?, fileList?: any[]): void
onError?(err?, response?, file?): void
onChange?(file?, fileList?: any[]): void
className?: string
}
export class Upload extends ElementReactLibs.Component<UploadProps, {}> { }
// Tag
interface TagProps extends ElementReactLibs.ComponentProps<{}> {
closable?: boolean
type?: 'primary' | 'gray' | 'success' | 'warning' | 'danger'
hit?: boolean,
color?: string,
closeTransition?: boolean
onClose?(): void
}
export class Tag extends ElementReactLibs.Component<TagProps, {}> { }
// Select
interface SelectProps extends ElementReactLibs.ComponentProps<{}> {
value?: any
size?: string
disabled?: boolean
clearable?: boolean
filterable?: boolean
loading?: boolean
remote?: boolean
remoteMethod?(): void
filterMethod?(): void
multiple?: boolean
placeholder?: string
onChange?(value?): void
}
interface SelectOptionProps extends ElementReactLibs.ComponentProps<{}> {
value: any
label?: string | number
selected?: boolean
disabled?: boolean
}
interface SelectOptionGroupProps extends ElementReactLibs.ComponentProps<{}> {
// disabled?: boolean
label?: string
}
class SelectOption extends ElementReactLibs.Component<SelectOptionProps, {}> { }
class SelectOptionGroup extends ElementReactLibs.Component<SelectOptionGroupProps, {}> { }
export class Select extends ElementReactLibs.Component<SelectProps, {}> {
static Option: typeof SelectOption
static OptionGroup: typeof SelectOptionGroup
}
// Dropdown
interface DropdownProps extends ElementReactLibs.ComponentProps<{}> {
menu: React.ReactElement<any>
type?: typeColor | 'danger' | 'primary' | 'text'
size?: 'large' | 'small' | 'mini'
trigger?: 'hover' | 'click'
menuAlign?: 'start' | 'end'
splitButton?: boolean
hideOnClick?: boolean
onClick?(): void
onCommand?(command?: string, instance?): void
}
interface DropdownMenuProps extends ElementReactLibs.ComponentProps<{}> { }
interface DropdownItemProps extends ElementReactLibs.ComponentProps<{}> {
command?: string
disabled?: boolean
divided?: boolean
}
class DropdownMenu extends ElementReactLibs.Component<DropdownMenuProps, {}> { }
class DropdownItem extends ElementReactLibs.Component<DropdownItemProps, {}> { }
export class Dropdown extends ElementReactLibs.Component<DropdownProps, {}> {
static Menu: typeof DropdownMenu
static Item: typeof DropdownItem
}
// Popover
interface PopoverProps extends ElementReactLibs.ComponentProps<{}> {
width?: number | string
placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'
trigger?: 'click' | 'focus' | 'hover'
title?: string
content?: React.ReactElement<any> | string
popperClass?: string
transition?: string
visible?: boolean
visibleArrow?: boolean
}
export class Popover extends ElementReactLibs.Component<PopoverProps, {}> { }
// Pagination
interface PaginationProps extends ElementReactLibs.ComponentProps<{}> {
pageSize?: number
small?: boolean
total?: number
pageCount?: number
currentPage?: number
layout?: string,
pageSizes?: number[]
onCurrentChange?(currentPage?: number): void
onSizeChange?(size?: number): void
}
export class Pagination extends ElementReactLibs.Component<PaginationProps, {}> { }
// AutoComplete
interface AutoCompleteProps extends ElementReactLibs.ComponentProps<{}> {
popperClass?: string
placeholder?: string
disabled?: boolean
name?: string
size?: 'large' | 'small' | 'mini'
value?: string
triggerOnFocus?: boolean
fetchSuggestions?(queryString?: string, callback?: (data?: any[]) => void): void
onSelect?(item?): void
onIconClick?(): void
icon?: React.ReactElement<any> | string
append?: React.ReactElement<any>
prepend?: React.ReactElement<any>
}
export class AutoComplete extends ElementReactLibs.Component<AutoCompleteProps, {}> { }
// TimeSelect
interface TimeSelectProps extends ElementReactLibs.DatePickerBaseProps {
start?: string
end?: string
step?: string
minTime?: ElementReactLibs.dateType
maxTime?: ElementReactLibs.dateType
value?: ElementReactLibs.dateType
}
export class TimeSelect extends ElementReactLibs.DatePickerBaseComponet<TimeSelectProps, {}> { }
// TimePicker
interface TimePickerProps extends ElementReactLibs.DatePickerBaseProps {
selectableRange?: string | string[]
value?: ElementReactLibs.dateType
}
export class TimePicker extends ElementReactLibs.DatePickerBaseComponet<TimePickerProps, {}> { }
// TimeRangePicker
interface TimeRangePickerProps extends ElementReactLibs.DatePickerBaseProps {
selectableRange?: string | string[]
value?: ElementReactLibs.dateType[]
rangeSeparator?: string
}
export class TimeRangePicker extends ElementReactLibs.DatePickerBaseComponet<TimeRangePickerProps, {}> { }
// DatePicker
interface DatePickerProps extends ElementReactLibs.DatePanelProps {
value?: ElementReactLibs.dateType
}
export class DatePicker extends ElementReactLibs.DatePickerBaseComponet<DatePickerProps, {}> { }
// DateRangePicker
interface DateRangePickerProps extends ElementReactLibs.DatePanelProps {
value?: ElementReactLibs.dateType[]
rangeSeparator?: string,
}
export class DateRangePicker extends ElementReactLibs.DatePickerBaseComponet<DateRangePickerProps, {}> { }
// Carousel
interface CarouselProps extends ElementReactLibs.ComponentProps<{}> {
initialIndex?: number
height?: string
trigger?: 'click'
autoplay?: boolean
interval?: number | string
indicatorPosition?: 'outside' | 'none'
indicator?: boolean
arrow?: 'always' | 'hover' | 'never'
type?: 'card'
onChange?(current?: number, prev?: number): void
}
interface CarouselItemProps extends ElementReactLibs.ComponentProps<{}> {
name?: string
}
class CarouselItem extends ElementReactLibs.Component<CarouselItemProps, {}> { }
export class Carousel extends ElementReactLibs.Component<CarouselProps, {}> {
static Item: typeof CarouselItem
setActiveItem(index: number): void
prev(): void
next(): void
}
// Collapse
interface CollapseProps extends ElementReactLibs.ComponentProps<{}> {
accordion?: boolean
value?: string | any[]
onChange?(activeNames?: string | any[]): void
}
interface CollapseItemProps extends ElementReactLibs.ComponentProps<{}> {
onClick?(item?): void
isActive?: boolean
title?: string | React.ReactElement<any>
name?: string | number
}
class CollapseItem extends ElementReactLibs.Component<CollapseItemProps, {}> { }
export class Collapse extends ElementReactLibs.Component<CollapseProps, {}> {
static Item: typeof CollapseItem
}
// ColorPicker
interface ColorPickerProps extends ElementReactLibs.ComponentProps<{}> {
value?: string
showAlpha?: boolean
colorFormat?: 'hsl' | 'hsv' | 'hex' | 'rgb'
onChange?(color?: string): void
}
export class ColorPicker extends ElementReactLibs.Component<ColorPickerProps, {}> { }
// Cascader
interface CascaderProps extends ElementReactLibs.ComponentProps<{}> {
options: any[]
props?: {
value?: string
label?: string
children?: string
disabled?: string
}
value?: any[]
placeholder?: string
disabled?: boolean
clearable?: boolean
changeOnSelect?: boolean
popperClass?: string
expandTrigger?: 'click' | 'hover'
filterable?: boolean
size?: 'large' | 'small' | 'mini'
showAllLevels?: boolean
debounce?: number
activeItemChange?(param?: any[]): void
onChange?(value?): void
}
export class Cascader extends ElementReactLibs.Component<CascaderProps, {}> { }
// Transfer
interface TransferProps extends ElementReactLibs.ComponentProps<{}> {
data?: { key: string, label: string, disabled: boolean }[]
titles?: string[]
buttonTexts?: string[]
filterPlaceholder?: string
filterMethod?(): void
leftDefaultChecked?: any[]
rightDefaultChecked?: any[]
renderContent?(h?, option?): void
value?: any[]
footerFormat?: {
noChecked?: string
hasChecked?: string
}
filterable?: boolean
propsAlias?: {
key?: string
label?: string
disabled?: boolean
}
onChange?(value?, drection?: string, movedKeys?: any[]): void
leftFooter?: React.ReactElement<any>
rightFooter?: React.ReactElement<any>
}
export class Transfer extends ElementReactLibs.Component<TransferProps, {}> { }
}
declare namespace ElementReactLibs {
type dateType = Date | string | null
type SelectionMode = 'year' | 'month' | 'week' | 'day'
interface ComponentProps<T> {
className?: string
style?: React.CSSProperties
}
class Component<P, S> extends React.Component<P, S> {
classNames?(...args): any
className?(...args): any
style?(agrs?): any
}
interface DatePickerBaseProps extends ComponentProps<{}> {
align?: 'left' | 'center' | 'right'
format?: string
isShowTrigger?: boolean
isReadOnly?: boolean
isDisabled?: boolean
placeholder?: string
onFocus?(self?: any): void
onBlur?(self?: any): void
onChange?(value?): void
value?: dateType | dateType[]
}
interface DatePanelProps extends DatePickerBaseProps {
value?: dateType | dateType[]
onPick?: (date: Date) => void
isShowTime?: boolean
showWeekNumber?: boolean
format?: string
shortcuts?: any[]
selectionMode?: SelectionMode
disabledDate?(date?: Date, type?: SelectionMode): boolean
firstDayOfWeek?: number
getPopperRefElement?: any
popperMixinOption?: any