mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
Merge pull request #7741 from DeividasBakanas/typing/rc-select
Add rc-select
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
/// <reference path="rc-select.d.ts" />
|
||||
/// <reference path="../react/react.d.ts" />
|
||||
|
||||
import React = require('react');
|
||||
import Select = require('rc-select');
|
||||
|
||||
class Component extends React.Component<any, any> {
|
||||
|
||||
private onChange(value: any) {
|
||||
console.log('selected', value);
|
||||
}
|
||||
|
||||
private onSelect(value: string, option: RcSelect.Option) {
|
||||
console.log('selected value', value);
|
||||
console.log('selected option', option);
|
||||
}
|
||||
|
||||
private onSearch() {
|
||||
console.log('input changed');
|
||||
}
|
||||
|
||||
private defaultSelectProps: RcSelect.SelectProps = {
|
||||
className: "my-select",
|
||||
prefixCls: "prefix",
|
||||
animation: "slide-up",
|
||||
transitionName: "my-animation",
|
||||
choiceTransitionName: "multiple-animation",
|
||||
dropdownMatchSelectWidth: true,
|
||||
dropdownClassName: "my-dropdown",
|
||||
dropdownStyle: { backgroundColor: "green" },
|
||||
dropdownMenuStyle: { backgroundColor: "red" },
|
||||
notFoundContent: "Something went wrong...",
|
||||
showSearch: true,
|
||||
allowClear: true,
|
||||
tags: false,
|
||||
maxTagTextLength: 30,
|
||||
combobox: false,
|
||||
multiple: true,
|
||||
disabled: false,
|
||||
filterOption: false,
|
||||
defaultValue: "Option2",
|
||||
value: "Option2",
|
||||
defaultLabel: "Option2",
|
||||
defaultActiveFirstOption: false
|
||||
};
|
||||
|
||||
private defaultOptGroupProps: RcSelect.OptGroupProps = {
|
||||
label: "Option group",
|
||||
key: "option-group-0",
|
||||
value: "option-group-0"
|
||||
};
|
||||
|
||||
private defaultOptionProps: RcSelect.OptionProps = {
|
||||
className: "option",
|
||||
disabled: true,
|
||||
key: "option-0",
|
||||
value: "option-0"
|
||||
};
|
||||
|
||||
private createOptions(count: number): React.ReactElement<RcSelect.OptionProps>[] {
|
||||
let options: React.ReactElement<RcSelect.OptionProps>[] = [];
|
||||
|
||||
for (let i = 0; i < count; i++) {
|
||||
let props = this.defaultOptionProps;
|
||||
props.key = `option-${i}`;
|
||||
props.value = `option-${i}`;
|
||||
|
||||
options.push(React.createElement(Select.Option, props));
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
render() {
|
||||
|
||||
let options: React.ReactElement<RcSelect.OptionProps>[] = this.createOptions(10);
|
||||
|
||||
let optionGroup: React.ReactElement<RcSelect.OptGroupProps> = React.createElement(Select.OptGroup, this.defaultOptGroupProps, options);
|
||||
|
||||
let select: React.ReactElement<RcSelect.SelectProps> = React.createElement(Select.default, this.defaultSelectProps, optionGroup);
|
||||
|
||||
return select;
|
||||
}
|
||||
}
|
||||
Vendored
+67
@@ -0,0 +1,67 @@
|
||||
// Type definitions for React Select v5.9.0
|
||||
// Project: https://github.com/react-component/select
|
||||
// Definitions by: Denis Tirilis <https://github.com/DenisTirilis>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
/// <reference path="../react/react.d.ts" />
|
||||
|
||||
declare namespace RcSelect {
|
||||
import React = __React;
|
||||
interface SelectProps {
|
||||
className?: string;
|
||||
prefixCls?: string;
|
||||
animation?: string;
|
||||
transitionName?: string;
|
||||
choiceTransitionName?: string;
|
||||
dropdownMatchSelectWidth?: boolean;
|
||||
dropdownClassName?: string;
|
||||
dropdownStyle?: { [key: string]: string };
|
||||
dropdownMenuStyle?: { [key: string]: string };
|
||||
notFoundContent?: string;
|
||||
showSearch?: boolean;
|
||||
allowClear?: boolean;
|
||||
tags?: boolean;
|
||||
maxTagTextLength?: number;
|
||||
combobox?: boolean;
|
||||
multiple?: boolean;
|
||||
disabled?: boolean;
|
||||
filterOption?: boolean;
|
||||
optionFilterProp?: string;
|
||||
optionLabelProp?: string;
|
||||
defaultValue?: string | Array<string>;
|
||||
value?: string | Array<string>;
|
||||
onChange?: (value: string, label: string) => void;
|
||||
onSearch?: Function;
|
||||
onSelect?: (value: string, ontion: Option) => void;
|
||||
onDeselect?: Function;
|
||||
defaultLabel?: string | Array<string>;
|
||||
defaultActiveFirstOption?: boolean;
|
||||
getPopupContainer?: (trigger: Node) => Node;
|
||||
}
|
||||
export class Select extends React.Component<SelectProps, any> { }
|
||||
interface OptionProps {
|
||||
className?: string;
|
||||
disabled?: boolean;
|
||||
key?: string;
|
||||
value?: string;
|
||||
}
|
||||
export class Option extends React.Component<OptionProps, any> { }
|
||||
|
||||
interface OptGroupProps {
|
||||
label?: string | React.ReactElement<any>;
|
||||
key?: string;
|
||||
value?: string;
|
||||
}
|
||||
export class OptGroup extends React.Component<OptGroupProps, any> { }
|
||||
}
|
||||
declare module 'rc-select' {
|
||||
import Select = RcSelect.Select;
|
||||
import Option = RcSelect.Option;
|
||||
import OptGroup = RcSelect.OptGroup;
|
||||
|
||||
export default Select;
|
||||
export {
|
||||
Option,
|
||||
OptGroup
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user