Merge pull request #7741 from DeividasBakanas/typing/rc-select

Add rc-select
This commit is contained in:
Horiuchi_H
2016-01-25 10:55:30 +09:00
2 changed files with 151 additions and 0 deletions
+84
View File
@@ -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;
}
}
+67
View File
@@ -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
};
}