mirror of
https://github.com/ant-design/ant-design.git
synced 2025-08-06 07:56:28 +08:00
Merge pull request #1292 from waywardmonkeys/static-members
Use static class members for propTypes and friends.
This commit is contained in:
commit
55f23c9d34
@ -7,6 +7,24 @@ function getNumberArray(num) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default class ScrollNumber extends React.Component {
|
export default class ScrollNumber extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-scroll-number',
|
||||||
|
count: null,
|
||||||
|
component: 'sup',
|
||||||
|
onAnimated() {},
|
||||||
|
height: 18,
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
count: React.PropTypes.oneOfType([
|
||||||
|
React.PropTypes.string,
|
||||||
|
React.PropTypes.number
|
||||||
|
]),
|
||||||
|
component: React.PropTypes.string,
|
||||||
|
onAnimated: React.PropTypes.func,
|
||||||
|
height: React.PropTypes.number,
|
||||||
|
}
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
@ -112,21 +130,3 @@ export default class ScrollNumber extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollNumber.defaultProps = {
|
|
||||||
prefixCls: 'ant-scroll-number',
|
|
||||||
count: null,
|
|
||||||
component: 'sup',
|
|
||||||
onAnimated() {},
|
|
||||||
height: 18,
|
|
||||||
};
|
|
||||||
|
|
||||||
ScrollNumber.propTypes = {
|
|
||||||
count: React.PropTypes.oneOfType([
|
|
||||||
React.PropTypes.string,
|
|
||||||
React.PropTypes.number
|
|
||||||
]),
|
|
||||||
component: React.PropTypes.string,
|
|
||||||
onAnimated: React.PropTypes.func,
|
|
||||||
height: React.PropTypes.number,
|
|
||||||
};
|
|
||||||
|
@ -4,6 +4,22 @@ import ScrollNumber from './ScrollNumber';
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
export default class Badge extends React.Component {
|
export default class Badge extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-badge',
|
||||||
|
count: null,
|
||||||
|
dot: false,
|
||||||
|
overflowCount: 99,
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
count: React.PropTypes.oneOfType([
|
||||||
|
React.PropTypes.string,
|
||||||
|
React.PropTypes.number
|
||||||
|
]),
|
||||||
|
dot: React.PropTypes.bool,
|
||||||
|
overflowCount: React.PropTypes.number,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let { count, prefixCls, overflowCount, className, style, children } = this.props;
|
let { count, prefixCls, overflowCount, className, style, children } = this.props;
|
||||||
const dot = this.props.dot;
|
const dot = this.props.dot;
|
||||||
@ -41,19 +57,3 @@ export default class Badge extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Badge.defaultProps = {
|
|
||||||
prefixCls: 'ant-badge',
|
|
||||||
count: null,
|
|
||||||
dot: false,
|
|
||||||
overflowCount: 99,
|
|
||||||
};
|
|
||||||
|
|
||||||
Badge.propTypes = {
|
|
||||||
count: React.PropTypes.oneOfType([
|
|
||||||
React.PropTypes.string,
|
|
||||||
React.PropTypes.number
|
|
||||||
]),
|
|
||||||
dot: React.PropTypes.bool,
|
|
||||||
overflowCount: React.PropTypes.number,
|
|
||||||
};
|
|
||||||
|
@ -2,6 +2,20 @@ import React, { cloneElement } from 'react';
|
|||||||
|
|
||||||
/* Exported as Breadcrumb.Item */
|
/* Exported as Breadcrumb.Item */
|
||||||
class BreadcrumbItem extends React.Component {
|
class BreadcrumbItem extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-breadcrumb',
|
||||||
|
separator: '/',
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
prefixCls: React.PropTypes.string,
|
||||||
|
separator: React.PropTypes.oneOfType([
|
||||||
|
React.PropTypes.string,
|
||||||
|
React.PropTypes.element,
|
||||||
|
]),
|
||||||
|
href: React.PropTypes.string,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { prefixCls, separator, children } = this.props;
|
const { prefixCls, separator, children } = this.props;
|
||||||
let link = <a className={`${prefixCls}-link`} {...this.props}>{children}</a>;
|
let link = <a className={`${prefixCls}-link`} {...this.props}>{children}</a>;
|
||||||
@ -17,21 +31,25 @@ class BreadcrumbItem extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BreadcrumbItem.defaultProps = {
|
|
||||||
prefixCls: 'ant-breadcrumb',
|
|
||||||
separator: '/',
|
|
||||||
};
|
|
||||||
|
|
||||||
BreadcrumbItem.propTypes = {
|
|
||||||
prefixCls: React.PropTypes.string,
|
|
||||||
separator: React.PropTypes.oneOfType([
|
|
||||||
React.PropTypes.string,
|
|
||||||
React.PropTypes.element,
|
|
||||||
]),
|
|
||||||
href: React.PropTypes.string,
|
|
||||||
};
|
|
||||||
|
|
||||||
export default class Breadcrumb extends React.Component {
|
export default class Breadcrumb extends React.Component {
|
||||||
|
static Item = BreadcrumbItem;
|
||||||
|
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-breadcrumb',
|
||||||
|
separator: '/',
|
||||||
|
linkRender: (href, name) => <a href={`#${href}`}>{name}</a>,
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
prefixCls: React.PropTypes.string,
|
||||||
|
separator: React.PropTypes.oneOfType([
|
||||||
|
React.PropTypes.string,
|
||||||
|
React.PropTypes.element,
|
||||||
|
]),
|
||||||
|
routes: React.PropTypes.array,
|
||||||
|
params: React.PropTypes.object,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let crumbs;
|
let crumbs;
|
||||||
const { separator, prefixCls, routes, params, children, linkRender } = this.props;
|
const { separator, prefixCls, routes, params, children, linkRender } = this.props;
|
||||||
@ -76,21 +94,3 @@ export default class Breadcrumb extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Breadcrumb.defaultProps = {
|
|
||||||
prefixCls: 'ant-breadcrumb',
|
|
||||||
separator: '/',
|
|
||||||
linkRender: (href, name) => <a href={`#${href}`}>{name}</a>,
|
|
||||||
};
|
|
||||||
|
|
||||||
Breadcrumb.propTypes = {
|
|
||||||
prefixCls: React.PropTypes.string,
|
|
||||||
separator: React.PropTypes.oneOfType([
|
|
||||||
React.PropTypes.string,
|
|
||||||
React.PropTypes.element,
|
|
||||||
]),
|
|
||||||
routes: React.PropTypes.array,
|
|
||||||
params: React.PropTypes.object,
|
|
||||||
};
|
|
||||||
|
|
||||||
Breadcrumb.Item = BreadcrumbItem;
|
|
||||||
|
@ -4,6 +4,10 @@ import classNames from 'classnames';
|
|||||||
const prefix = 'ant-btn-group-';
|
const prefix = 'ant-btn-group-';
|
||||||
|
|
||||||
export default class ButtonGroup extends React.Component {
|
export default class ButtonGroup extends React.Component {
|
||||||
|
static propTypes = {
|
||||||
|
size: React.PropTypes.oneOf(['large', 'small']),
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { size, className, ...others } = this.props;
|
const { size, className, ...others } = this.props;
|
||||||
|
|
||||||
@ -23,6 +27,3 @@ export default class ButtonGroup extends React.Component {
|
|||||||
return <div {...others} className={classes} />;
|
return <div {...others} className={classes} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ButtonGroup.propTypes = {
|
|
||||||
size: React.PropTypes.oneOf(['large', 'small']),
|
|
||||||
};
|
|
||||||
|
@ -30,6 +30,21 @@ function clearButton(button) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default class Button extends React.Component {
|
export default class Button extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
onClick() {},
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
type: React.PropTypes.oneOf(['primary', 'ghost', 'dashed']),
|
||||||
|
shape: React.PropTypes.oneOf(['circle', 'circle-outline']),
|
||||||
|
size: React.PropTypes.oneOf(['large', 'small']),
|
||||||
|
htmlType: React.PropTypes.oneOf(['submit', 'button', 'reset']),
|
||||||
|
onClick: React.PropTypes.func,
|
||||||
|
loading: React.PropTypes.bool,
|
||||||
|
className: React.PropTypes.string,
|
||||||
|
icon: React.PropTypes.string,
|
||||||
|
}
|
||||||
|
|
||||||
handleClick = (...args) => {
|
handleClick = (...args) => {
|
||||||
// Add click effect
|
// Add click effect
|
||||||
const buttonNode = findDOMNode(this);
|
const buttonNode = findDOMNode(this);
|
||||||
@ -40,6 +55,7 @@ export default class Button extends React.Component {
|
|||||||
|
|
||||||
this.props.onClick(...args);
|
this.props.onClick(...args);
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const props = this.props;
|
const props = this.props;
|
||||||
const { type, shape, size, className, htmlType, children, icon, ...others } = props;
|
const { type, shape, size, className, htmlType, children, icon, ...others } = props;
|
||||||
@ -72,18 +88,3 @@ export default class Button extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Button.propTypes = {
|
|
||||||
type: React.PropTypes.oneOf(['primary', 'ghost', 'dashed']),
|
|
||||||
shape: React.PropTypes.oneOf(['circle', 'circle-outline']),
|
|
||||||
size: React.PropTypes.oneOf(['large', 'small']),
|
|
||||||
htmlType: React.PropTypes.oneOf(['submit', 'button', 'reset']),
|
|
||||||
onClick: React.PropTypes.func,
|
|
||||||
loading: React.PropTypes.bool,
|
|
||||||
className: React.PropTypes.string,
|
|
||||||
icon: React.PropTypes.string,
|
|
||||||
};
|
|
||||||
|
|
||||||
Button.defaultProps = {
|
|
||||||
onClick() {},
|
|
||||||
};
|
|
||||||
|
@ -6,6 +6,26 @@ import { Group, Button } from '../radio';
|
|||||||
function noop() {}
|
function noop() {}
|
||||||
|
|
||||||
export default class Header extends React.Component {
|
export default class Header extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: `${PREFIX_CLS}-header`,
|
||||||
|
yearSelectOffset: 10,
|
||||||
|
yearSelectTotal: 20,
|
||||||
|
onValueChange: noop,
|
||||||
|
onTypeChange: noop,
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
value: PropTypes.object,
|
||||||
|
locale: PropTypes.object,
|
||||||
|
yearSelectOffset: PropTypes.number,
|
||||||
|
yearSelectTotal: PropTypes.number,
|
||||||
|
onValueChange: PropTypes.func,
|
||||||
|
onTypeChange: PropTypes.func,
|
||||||
|
prefixCls: PropTypes.string,
|
||||||
|
selectPrefixCls: PropTypes.string,
|
||||||
|
type: PropTypes.string,
|
||||||
|
}
|
||||||
|
|
||||||
getYearSelectElement(year) {
|
getYearSelectElement(year) {
|
||||||
const { yearSelectOffset, yearSelectTotal, locale, prefixCls, fullscreen } = this.props;
|
const { yearSelectOffset, yearSelectTotal, locale, prefixCls, fullscreen } = this.props;
|
||||||
const start = year - yearSelectOffset;
|
const start = year - yearSelectOffset;
|
||||||
@ -29,6 +49,7 @@ export default class Header extends React.Component {
|
|||||||
</Select>
|
</Select>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getMonthSelectElement(month) {
|
getMonthSelectElement(month) {
|
||||||
const props = this.props;
|
const props = this.props;
|
||||||
const months = props.locale.format.months;
|
const months = props.locale.format.months;
|
||||||
@ -52,6 +73,7 @@ export default class Header extends React.Component {
|
|||||||
</Select>
|
</Select>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
onYearChange = (year) => {
|
onYearChange = (year) => {
|
||||||
const newValue = this.props.value.clone();
|
const newValue = this.props.value.clone();
|
||||||
newValue.setYear(parseInt(year, 10));
|
newValue.setYear(parseInt(year, 10));
|
||||||
@ -63,9 +85,11 @@ export default class Header extends React.Component {
|
|||||||
newValue.setMonth(parseInt(month, 10));
|
newValue.setMonth(parseInt(month, 10));
|
||||||
this.props.onValueChange(newValue);
|
this.props.onValueChange(newValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
onTypeChange = (e) => {
|
onTypeChange = (e) => {
|
||||||
this.props.onTypeChange(e.target.value);
|
this.props.onTypeChange(e.target.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { type, value, prefixCls, locale } = this.props;
|
const { type, value, prefixCls, locale } = this.props;
|
||||||
const yearSelect = this.getYearSelectElement(value.getYear());
|
const yearSelect = this.getYearSelectElement(value.getYear());
|
||||||
@ -86,23 +110,3 @@ export default class Header extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Header.propTypes = {
|
|
||||||
value: PropTypes.object,
|
|
||||||
locale: PropTypes.object,
|
|
||||||
yearSelectOffset: PropTypes.number,
|
|
||||||
yearSelectTotal: PropTypes.number,
|
|
||||||
onValueChange: PropTypes.func,
|
|
||||||
onTypeChange: PropTypes.func,
|
|
||||||
prefixCls: PropTypes.string,
|
|
||||||
selectPrefixCls: PropTypes.string,
|
|
||||||
type: PropTypes.string,
|
|
||||||
};
|
|
||||||
|
|
||||||
Header.defaultProps = {
|
|
||||||
prefixCls: `${PREFIX_CLS}-header`,
|
|
||||||
yearSelectOffset: 10,
|
|
||||||
yearSelectTotal: 20,
|
|
||||||
onValueChange: noop,
|
|
||||||
onTypeChange: noop,
|
|
||||||
};
|
|
||||||
|
@ -13,6 +13,28 @@ function zerofixed(v) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default class Calendar extends React.Component {
|
export default class Calendar extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
monthCellRender: noop,
|
||||||
|
dateCellRender: noop,
|
||||||
|
locale: zhCN,
|
||||||
|
fullscreen: true,
|
||||||
|
prefixCls: PREFIX_CLS,
|
||||||
|
onPanelChange: noop,
|
||||||
|
mode: 'month',
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
monthCellRender: PropTypes.func,
|
||||||
|
dateCellRender: PropTypes.func,
|
||||||
|
fullscreen: PropTypes.bool,
|
||||||
|
locale: PropTypes.object,
|
||||||
|
prefixCls: PropTypes.string,
|
||||||
|
className: PropTypes.string,
|
||||||
|
style: PropTypes.object,
|
||||||
|
onPanelChange: PropTypes.func,
|
||||||
|
value: PropTypes.instanceOf(Date),
|
||||||
|
}
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
@ -20,11 +42,13 @@ export default class Calendar extends React.Component {
|
|||||||
mode: props.mode,
|
mode: props.mode,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
parseDateFromValue(value) {
|
parseDateFromValue(value) {
|
||||||
const date = new GregorianCalendar(this.props.locale);
|
const date = new GregorianCalendar(this.props.locale);
|
||||||
date.setTime(+value);
|
date.setTime(+value);
|
||||||
return date;
|
return date;
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
componentWillReceiveProps(nextProps) {
|
||||||
if ('value' in nextProps) {
|
if ('value' in nextProps) {
|
||||||
this.setState({
|
this.setState({
|
||||||
@ -32,6 +56,7 @@ export default class Calendar extends React.Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
monthCellRender = (value, locale) => {
|
monthCellRender = (value, locale) => {
|
||||||
const prefixCls = this.props.prefixCls;
|
const prefixCls = this.props.prefixCls;
|
||||||
const month = value.getMonth();
|
const month = value.getMonth();
|
||||||
@ -46,6 +71,7 @@ export default class Calendar extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
dateCellRender = (value) => {
|
dateCellRender = (value) => {
|
||||||
const prefixCls = this.props.prefixCls;
|
const prefixCls = this.props.prefixCls;
|
||||||
return (
|
return (
|
||||||
@ -59,12 +85,14 @@ export default class Calendar extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
setValue = (value) => {
|
setValue = (value) => {
|
||||||
if (!('value' in this.props) && this.state.value !== value) {
|
if (!('value' in this.props) && this.state.value !== value) {
|
||||||
this.setState({ value });
|
this.setState({ value });
|
||||||
}
|
}
|
||||||
this.props.onPanelChange(value, this.state.mode);
|
this.props.onPanelChange(value, this.state.mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
setType = (type) => {
|
setType = (type) => {
|
||||||
const mode = (type === 'date') ? 'month' : 'year';
|
const mode = (type === 'date') ? 'month' : 'year';
|
||||||
if (this.state.mode !== mode) {
|
if (this.state.mode !== mode) {
|
||||||
@ -72,6 +100,7 @@ export default class Calendar extends React.Component {
|
|||||||
this.props.onPanelChange(this.state.value, mode);
|
this.props.onPanelChange(this.state.value, mode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const props = this.props;
|
const props = this.props;
|
||||||
const { value, mode } = this.state;
|
const { value, mode } = this.state;
|
||||||
@ -107,25 +136,3 @@ export default class Calendar extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Calendar.propTypes = {
|
|
||||||
monthCellRender: PropTypes.func,
|
|
||||||
dateCellRender: PropTypes.func,
|
|
||||||
fullscreen: PropTypes.bool,
|
|
||||||
locale: PropTypes.object,
|
|
||||||
prefixCls: PropTypes.string,
|
|
||||||
className: PropTypes.string,
|
|
||||||
style: PropTypes.object,
|
|
||||||
onPanelChange: PropTypes.func,
|
|
||||||
value: PropTypes.instanceOf(Date),
|
|
||||||
};
|
|
||||||
|
|
||||||
Calendar.defaultProps = {
|
|
||||||
monthCellRender: noop,
|
|
||||||
dateCellRender: noop,
|
|
||||||
locale: zhCN,
|
|
||||||
fullscreen: true,
|
|
||||||
prefixCls: PREFIX_CLS,
|
|
||||||
onPanelChange: noop,
|
|
||||||
mode: 'month',
|
|
||||||
};
|
|
||||||
|
@ -17,6 +17,11 @@ import SlickCarousel from 'react-slick';
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
export default class Carousel extends React.Component {
|
export default class Carousel extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
dots: true,
|
||||||
|
arrows: false,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let props = { ...this.props };
|
let props = { ...this.props };
|
||||||
|
|
||||||
@ -37,8 +42,3 @@ export default class Carousel extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Carousel.defaultProps = {
|
|
||||||
dots: true,
|
|
||||||
arrows: false,
|
|
||||||
};
|
|
||||||
|
@ -6,6 +6,21 @@ import arrayTreeFilter from 'array-tree-filter';
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
export default class Cascader extends React.Component {
|
export default class Cascader extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-cascader',
|
||||||
|
placeholder: '请选择',
|
||||||
|
transitionName: 'slide-up',
|
||||||
|
popupPlacement: 'bottomLeft',
|
||||||
|
onChange() {},
|
||||||
|
options: [],
|
||||||
|
displayRender(label) {
|
||||||
|
return label.join(' / ');
|
||||||
|
},
|
||||||
|
disabled: false,
|
||||||
|
allowClear: true,
|
||||||
|
onPopupVisibleChange() {},
|
||||||
|
}
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
@ -13,36 +28,43 @@ export default class Cascader extends React.Component {
|
|||||||
popupVisible: false,
|
popupVisible: false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
componentWillReceiveProps(nextProps) {
|
||||||
if ('value' in nextProps) {
|
if ('value' in nextProps) {
|
||||||
this.setState({ value: nextProps.value || [] });
|
this.setState({ value: nextProps.value || [] });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handleChange = (value, selectedOptions) => {
|
handleChange = (value, selectedOptions) => {
|
||||||
this.setValue(value, selectedOptions);
|
this.setValue(value, selectedOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
handlePopupVisibleChange = (popupVisible) => {
|
handlePopupVisibleChange = (popupVisible) => {
|
||||||
this.setState({ popupVisible });
|
this.setState({ popupVisible });
|
||||||
this.props.onPopupVisibleChange(popupVisible);
|
this.props.onPopupVisibleChange(popupVisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
setValue = (value, selectedOptions = []) => {
|
setValue = (value, selectedOptions = []) => {
|
||||||
if (!('value' in this.props)) {
|
if (!('value' in this.props)) {
|
||||||
this.setState({ value });
|
this.setState({ value });
|
||||||
}
|
}
|
||||||
this.props.onChange(value, selectedOptions);
|
this.props.onChange(value, selectedOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
getLabel() {
|
getLabel() {
|
||||||
const { options, displayRender } = this.props;
|
const { options, displayRender } = this.props;
|
||||||
const label = arrayTreeFilter(options, (o, level) => o.value === this.state.value[level])
|
const label = arrayTreeFilter(options, (o, level) => o.value === this.state.value[level])
|
||||||
.map(o => o.label);
|
.map(o => o.label);
|
||||||
return displayRender(label);
|
return displayRender(label);
|
||||||
}
|
}
|
||||||
|
|
||||||
clearSelection = (e) => {
|
clearSelection = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
this.setValue([]);
|
this.setValue([]);
|
||||||
this.setState({ popupVisible: false });
|
this.setState({ popupVisible: false });
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { prefixCls, children, placeholder, size, disabled,
|
const { prefixCls, children, placeholder, size, disabled,
|
||||||
className, style, allowClear, ...otherProps } = this.props;
|
className, style, allowClear, ...otherProps } = this.props;
|
||||||
@ -92,18 +114,3 @@ export default class Cascader extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Cascader.defaultProps = {
|
|
||||||
prefixCls: 'ant-cascader',
|
|
||||||
placeholder: '请选择',
|
|
||||||
transitionName: 'slide-up',
|
|
||||||
popupPlacement: 'bottomLeft',
|
|
||||||
onChange() {},
|
|
||||||
options: [],
|
|
||||||
displayRender(label) {
|
|
||||||
return label.join(' / ');
|
|
||||||
},
|
|
||||||
disabled: false,
|
|
||||||
allowClear: true,
|
|
||||||
onPopupVisibleChange() {},
|
|
||||||
};
|
|
||||||
|
@ -2,13 +2,13 @@ import RcCollapse from 'rc-collapse';
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
export default class Collapse extends React.Component {
|
export default class Collapse extends React.Component {
|
||||||
|
static Panel = RcCollapse.Panel;
|
||||||
|
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-collapse',
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return <RcCollapse {...this.props} />;
|
return <RcCollapse {...this.props} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Collapse.defaultProps = {
|
|
||||||
prefixCls: 'ant-collapse',
|
|
||||||
};
|
|
||||||
|
|
||||||
Collapse.Panel = RcCollapse.Panel;
|
|
||||||
|
@ -6,6 +6,19 @@ const ButtonGroup = Button.Group;
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
export default class DropdownButton extends React.Component {
|
export default class DropdownButton extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
align: {
|
||||||
|
points: ['tr', 'br'],
|
||||||
|
overlay: {
|
||||||
|
adjustX: 1,
|
||||||
|
adjustY: 1,
|
||||||
|
},
|
||||||
|
offset: [0, 4],
|
||||||
|
targetOffset: [0, 0],
|
||||||
|
},
|
||||||
|
type: 'default',
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { type, overlay, trigger, align, children, className, ...restProps } = this.props;
|
const { type, overlay, trigger, align, children, className, ...restProps } = this.props;
|
||||||
const cls = classNames({
|
const cls = classNames({
|
||||||
@ -24,16 +37,3 @@ export default class DropdownButton extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DropdownButton.defaultProps = {
|
|
||||||
align: {
|
|
||||||
points: ['tr', 'br'],
|
|
||||||
overlay: {
|
|
||||||
adjustX: 1,
|
|
||||||
adjustY: 1,
|
|
||||||
},
|
|
||||||
offset: [0, 4],
|
|
||||||
targetOffset: [0, 0],
|
|
||||||
},
|
|
||||||
type: 'default',
|
|
||||||
};
|
|
||||||
|
@ -2,6 +2,13 @@ import React from 'react';
|
|||||||
import RcDropdown from 'rc-dropdown';
|
import RcDropdown from 'rc-dropdown';
|
||||||
|
|
||||||
export default class Dropdown extends React.Component {
|
export default class Dropdown extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
transitionName: 'slide-up',
|
||||||
|
prefixCls: 'ant-dropdown',
|
||||||
|
mouseEnterDelay: 0.15,
|
||||||
|
mouseLeaveDelay: 0.1,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { overlay, ...otherProps } = this.props;
|
const { overlay, ...otherProps } = this.props;
|
||||||
const menu = React.cloneElement(overlay, {
|
const menu = React.cloneElement(overlay, {
|
||||||
@ -12,10 +19,3 @@ export default class Dropdown extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Dropdown.defaultProps = {
|
|
||||||
transitionName: 'slide-up',
|
|
||||||
prefixCls: 'ant-dropdown',
|
|
||||||
mouseEnterDelay: 0.15,
|
|
||||||
mouseLeaveDelay: 0.1,
|
|
||||||
};
|
|
||||||
|
@ -2,6 +2,26 @@ import React from 'react';
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
export default class Form extends React.Component {
|
export default class Form extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-form',
|
||||||
|
onSubmit(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
prefixCls: React.PropTypes.string,
|
||||||
|
horizontal: React.PropTypes.bool,
|
||||||
|
inline: React.PropTypes.bool,
|
||||||
|
form: React.PropTypes.object,
|
||||||
|
children: React.PropTypes.any,
|
||||||
|
onSubmit: React.PropTypes.func,
|
||||||
|
}
|
||||||
|
|
||||||
|
static childContextTypes = {
|
||||||
|
form: React.PropTypes.object,
|
||||||
|
}
|
||||||
|
|
||||||
getChildContext() {
|
getChildContext() {
|
||||||
return {
|
return {
|
||||||
form: this.props.form,
|
form: this.props.form,
|
||||||
@ -23,23 +43,3 @@ export default class Form extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Form.propTypes = {
|
|
||||||
prefixCls: React.PropTypes.string,
|
|
||||||
horizontal: React.PropTypes.bool,
|
|
||||||
inline: React.PropTypes.bool,
|
|
||||||
form: React.PropTypes.object,
|
|
||||||
children: React.PropTypes.any,
|
|
||||||
onSubmit: React.PropTypes.func,
|
|
||||||
};
|
|
||||||
|
|
||||||
Form.defaultProps = {
|
|
||||||
prefixCls: 'ant-form',
|
|
||||||
onSubmit(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
Form.childContextTypes = {
|
|
||||||
form: React.PropTypes.object,
|
|
||||||
};
|
|
||||||
|
@ -8,6 +8,28 @@ function prefixClsFn(prefixCls, ...args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default class FormItem extends React.Component {
|
export default class FormItem extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
hasFeedback: false,
|
||||||
|
prefixCls: 'ant-form',
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
prefixCls: React.PropTypes.string,
|
||||||
|
label: React.PropTypes.node,
|
||||||
|
labelCol: React.PropTypes.object,
|
||||||
|
help: React.PropTypes.oneOfType([React.PropTypes.node, React.PropTypes.bool]),
|
||||||
|
validateStatus: React.PropTypes.oneOf(['', 'success', 'warning', 'error', 'validating']),
|
||||||
|
hasFeedback: React.PropTypes.bool,
|
||||||
|
wrapperCol: React.PropTypes.object,
|
||||||
|
className: React.PropTypes.string,
|
||||||
|
id: React.PropTypes.string,
|
||||||
|
children: React.PropTypes.node,
|
||||||
|
}
|
||||||
|
|
||||||
|
static contextTypes = {
|
||||||
|
form: React.PropTypes.object,
|
||||||
|
}
|
||||||
|
|
||||||
_getLayoutClass(colDef) {
|
_getLayoutClass(colDef) {
|
||||||
if (!colDef) {
|
if (!colDef) {
|
||||||
return '';
|
return '';
|
||||||
@ -183,25 +205,3 @@ export default class FormItem extends React.Component {
|
|||||||
return this.renderFormItem(children);
|
return this.renderFormItem(children);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FormItem.propTypes = {
|
|
||||||
prefixCls: React.PropTypes.string,
|
|
||||||
label: React.PropTypes.node,
|
|
||||||
labelCol: React.PropTypes.object,
|
|
||||||
help: React.PropTypes.oneOfType([React.PropTypes.node, React.PropTypes.bool]),
|
|
||||||
validateStatus: React.PropTypes.oneOf(['', 'success', 'warning', 'error', 'validating']),
|
|
||||||
hasFeedback: React.PropTypes.bool,
|
|
||||||
wrapperCol: React.PropTypes.object,
|
|
||||||
className: React.PropTypes.string,
|
|
||||||
id: React.PropTypes.string,
|
|
||||||
children: React.PropTypes.node,
|
|
||||||
};
|
|
||||||
|
|
||||||
FormItem.defaultProps = {
|
|
||||||
hasFeedback: false,
|
|
||||||
prefixCls: 'ant-form',
|
|
||||||
};
|
|
||||||
|
|
||||||
FormItem.contextTypes = {
|
|
||||||
form: React.PropTypes.object,
|
|
||||||
};
|
|
||||||
|
@ -3,6 +3,11 @@ import classNames from 'classnames';
|
|||||||
import RcInputNumber from 'rc-input-number';
|
import RcInputNumber from 'rc-input-number';
|
||||||
|
|
||||||
export default class InputNumber extends React.Component {
|
export default class InputNumber extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-input-number',
|
||||||
|
step: 1,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { className, size, ...other } = this.props;
|
const { className, size, ...other } = this.props;
|
||||||
const inputNumberClass = classNames({
|
const inputNumberClass = classNames({
|
||||||
@ -14,8 +19,3 @@ export default class InputNumber extends React.Component {
|
|||||||
return <RcInputNumber className={inputNumberClass} {...other} />;
|
return <RcInputNumber className={inputNumberClass} {...other} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
InputNumber.defaultProps = {
|
|
||||||
prefixCls: 'ant-input-number',
|
|
||||||
step: 1,
|
|
||||||
};
|
|
||||||
|
@ -17,6 +17,10 @@ function fixControlledValue(value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class Group extends React.Component {
|
class Group extends React.Component {
|
||||||
|
static propTypes = {
|
||||||
|
children: React.PropTypes.any,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const className = classNames({
|
const className = classNames({
|
||||||
'ant-input-group': true,
|
'ant-input-group': true,
|
||||||
@ -30,11 +34,32 @@ class Group extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Group.propTypes = {
|
export default class Input extends React.Component {
|
||||||
children: React.PropTypes.any,
|
static Group = Group;
|
||||||
};
|
|
||||||
|
static defaultProps = {
|
||||||
|
defaultValue: '',
|
||||||
|
disabled: false,
|
||||||
|
prefixCls: 'ant-input',
|
||||||
|
type: 'text',
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
type: React.PropTypes.string,
|
||||||
|
id: React.PropTypes.oneOfType([
|
||||||
|
React.PropTypes.string,
|
||||||
|
React.PropTypes.number,
|
||||||
|
]),
|
||||||
|
size: React.PropTypes.oneOf(['small', 'default', 'large']),
|
||||||
|
disabled: React.PropTypes.bool,
|
||||||
|
value: React.PropTypes.any,
|
||||||
|
defaultValue: React.PropTypes.any,
|
||||||
|
className: React.PropTypes.string,
|
||||||
|
addonBefore: React.PropTypes.node,
|
||||||
|
addonAfter: React.PropTypes.node,
|
||||||
|
prefixCls: React.PropTypes.string,
|
||||||
|
}
|
||||||
|
|
||||||
class Input extends React.Component {
|
|
||||||
renderLabledInput(children) {
|
renderLabledInput(children) {
|
||||||
const props = this.props;
|
const props = this.props;
|
||||||
const wrapperClassName = `${props.prefixCls}-group`;
|
const wrapperClassName = `${props.prefixCls}-group`;
|
||||||
@ -98,29 +123,3 @@ class Input extends React.Component {
|
|||||||
return this.renderLabledInput(this.renderInput());
|
return this.renderLabledInput(this.renderInput());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Input.propTypes = {
|
|
||||||
type: React.PropTypes.string,
|
|
||||||
id: React.PropTypes.oneOfType([
|
|
||||||
React.PropTypes.string,
|
|
||||||
React.PropTypes.number,
|
|
||||||
]),
|
|
||||||
size: React.PropTypes.oneOf(['small', 'default', 'large']),
|
|
||||||
disabled: React.PropTypes.bool,
|
|
||||||
value: React.PropTypes.any,
|
|
||||||
defaultValue: React.PropTypes.any,
|
|
||||||
className: React.PropTypes.string,
|
|
||||||
addonBefore: React.PropTypes.node,
|
|
||||||
addonAfter: React.PropTypes.node,
|
|
||||||
prefixCls: React.PropTypes.string,
|
|
||||||
};
|
|
||||||
|
|
||||||
Input.defaultProps = {
|
|
||||||
defaultValue: '',
|
|
||||||
disabled: false,
|
|
||||||
prefixCls: 'ant-input',
|
|
||||||
type: 'text',
|
|
||||||
};
|
|
||||||
|
|
||||||
Input.Group = Group;
|
|
||||||
export default Input;
|
|
||||||
|
@ -2,30 +2,34 @@ import React from 'react';
|
|||||||
import { changeConfirmLocale } from '../modal/confirm';
|
import { changeConfirmLocale } from '../modal/confirm';
|
||||||
|
|
||||||
export default class LocaleProvider extends React.Component {
|
export default class LocaleProvider extends React.Component {
|
||||||
|
static propTypes = {
|
||||||
|
locale: React.PropTypes.object,
|
||||||
|
}
|
||||||
|
|
||||||
|
static childContextTypes = {
|
||||||
|
antLocale: React.PropTypes.object,
|
||||||
|
}
|
||||||
|
|
||||||
getChildContext() {
|
getChildContext() {
|
||||||
return {
|
return {
|
||||||
antLocale: this.props.locale,
|
antLocale: this.props.locale,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.componentDidUpdate();
|
this.componentDidUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidUpdate() {
|
componentDidUpdate() {
|
||||||
const { locale } = this.props;
|
const { locale } = this.props;
|
||||||
changeConfirmLocale(locale && locale.Modal);
|
changeConfirmLocale(locale && locale.Modal);
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnMount() {
|
componentWillUnMount() {
|
||||||
changeConfirmLocale();
|
changeConfirmLocale();
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return React.Children.only(this.props.children);
|
return React.Children.only(this.props.children);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LocaleProvider.childContextTypes = {
|
|
||||||
antLocale: React.PropTypes.object,
|
|
||||||
};
|
|
||||||
|
|
||||||
LocaleProvider.propTypes = {
|
|
||||||
locale: React.PropTypes.object,
|
|
||||||
};
|
|
||||||
|
@ -4,14 +4,24 @@ import Select from '../select';
|
|||||||
import zhCN from './locale/zh_CN';
|
import zhCN from './locale/zh_CN';
|
||||||
|
|
||||||
class MiniSelect extends React.Component {
|
class MiniSelect extends React.Component {
|
||||||
|
static Option = Select.Option;
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return <Select size="small" {...this.props} />;
|
return <Select size="small" {...this.props} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MiniSelect.Option = Select.Option;
|
|
||||||
|
|
||||||
export default class Pagination extends React.Component {
|
export default class Pagination extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
locale: zhCN,
|
||||||
|
className: '',
|
||||||
|
prefixCls: 'ant-pagination',
|
||||||
|
}
|
||||||
|
|
||||||
|
static contextTypes = {
|
||||||
|
antLocale: React.PropTypes.object,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let className = this.props.className;
|
let className = this.props.className;
|
||||||
let selectComponentClass = Select;
|
let selectComponentClass = Select;
|
||||||
@ -37,13 +47,3 @@ export default class Pagination extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Pagination.defaultProps = {
|
|
||||||
locale: zhCN,
|
|
||||||
className: '',
|
|
||||||
prefixCls: 'ant-pagination',
|
|
||||||
};
|
|
||||||
|
|
||||||
Pagination.contextTypes = {
|
|
||||||
antLocale: React.PropTypes.object,
|
|
||||||
};
|
|
||||||
|
@ -6,6 +6,15 @@ const placements = getPlacements();
|
|||||||
const prefixCls = 'ant-popover';
|
const prefixCls = 'ant-popover';
|
||||||
|
|
||||||
export default class Popover extends React.Component {
|
export default class Popover extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls,
|
||||||
|
placement: 'top',
|
||||||
|
trigger: 'hover',
|
||||||
|
mouseEnterDelay: 0.1,
|
||||||
|
mouseLeaveDelay: 0.1,
|
||||||
|
overlayStyle: {}
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const transitionName = ({
|
const transitionName = ({
|
||||||
top: 'zoom-down',
|
top: 'zoom-down',
|
||||||
@ -48,12 +57,3 @@ export default class Popover extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Popover.defaultProps = {
|
|
||||||
prefixCls,
|
|
||||||
placement: 'top',
|
|
||||||
trigger: 'hover',
|
|
||||||
mouseEnterDelay: 0.1,
|
|
||||||
mouseLeaveDelay: 0.1,
|
|
||||||
overlayStyle: {}
|
|
||||||
};
|
|
||||||
|
@ -3,6 +3,17 @@ import RcSelect, { Option, OptGroup } from 'rc-select';
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
export default class Select extends React.Component {
|
export default class Select extends React.Component {
|
||||||
|
static Option = Option;
|
||||||
|
static OptGroup = OptGroup;
|
||||||
|
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-select',
|
||||||
|
transitionName: 'slide-up',
|
||||||
|
optionLabelProp: 'children',
|
||||||
|
choiceTransitionName: 'zoom',
|
||||||
|
showSearch: false,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let {
|
let {
|
||||||
size, className, combobox, notFoundContent
|
size, className, combobox, notFoundContent
|
||||||
@ -25,14 +36,3 @@ export default class Select extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Select.defaultProps = {
|
|
||||||
prefixCls: 'ant-select',
|
|
||||||
transitionName: 'slide-up',
|
|
||||||
optionLabelProp: 'children',
|
|
||||||
choiceTransitionName: 'zoom',
|
|
||||||
showSearch: false,
|
|
||||||
};
|
|
||||||
|
|
||||||
Select.Option = Option;
|
|
||||||
Select.OptGroup = OptGroup;
|
|
||||||
|
@ -2,6 +2,11 @@ import React from 'react';
|
|||||||
import RcSlider from 'rc-slider';
|
import RcSlider from 'rc-slider';
|
||||||
|
|
||||||
export default class Slider extends React.Component {
|
export default class Slider extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-slider',
|
||||||
|
tipTransitionName: 'zoom-down'
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { isIncluded, marks, index, defaultIndex, ...rest } = this.props;
|
const { isIncluded, marks, index, defaultIndex, ...rest } = this.props;
|
||||||
|
|
||||||
@ -34,8 +39,3 @@ export default class Slider extends React.Component {
|
|||||||
return <RcSlider {...rest} />;
|
return <RcSlider {...rest} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Slider.defaultProps = {
|
|
||||||
prefixCls: 'ant-slider',
|
|
||||||
tipTransitionName: 'zoom-down'
|
|
||||||
};
|
|
||||||
|
@ -3,6 +3,16 @@ import classNames from 'classnames';
|
|||||||
import { isCssAnimationSupported } from 'css-animation';
|
import { isCssAnimationSupported } from 'css-animation';
|
||||||
|
|
||||||
export default class Spin extends React.Component {
|
export default class Spin extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-spin',
|
||||||
|
spining: true,
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
className: React.PropTypes.string,
|
||||||
|
size: React.PropTypes.oneOf(['small', 'default', 'large']),
|
||||||
|
}
|
||||||
|
|
||||||
isNestedPattern() {
|
isNestedPattern() {
|
||||||
return !!(this.props && this.props.children);
|
return !!(this.props && this.props.children);
|
||||||
}
|
}
|
||||||
@ -45,13 +55,3 @@ export default class Spin extends React.Component {
|
|||||||
return spinElement;
|
return spinElement;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Spin.defaultProps = {
|
|
||||||
prefixCls: 'ant-spin',
|
|
||||||
spining: true,
|
|
||||||
};
|
|
||||||
|
|
||||||
Spin.propTypes = {
|
|
||||||
className: React.PropTypes.string,
|
|
||||||
size: React.PropTypes.oneOf(['small', 'default', 'large']),
|
|
||||||
};
|
|
||||||
|
@ -2,6 +2,15 @@ import React from 'react';
|
|||||||
import RcSteps from 'rc-steps';
|
import RcSteps from 'rc-steps';
|
||||||
|
|
||||||
export default class Steps extends React.Component {
|
export default class Steps extends React.Component {
|
||||||
|
static Step = RcSteps.Step;
|
||||||
|
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-steps',
|
||||||
|
iconPrefix: 'ant',
|
||||||
|
maxDescriptionWidth: 100,
|
||||||
|
current: 0
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let maxDescriptionWidth = this.props.maxDescriptionWidth;
|
let maxDescriptionWidth = this.props.maxDescriptionWidth;
|
||||||
if (this.props.direction === 'vertical') {
|
if (this.props.direction === 'vertical') {
|
||||||
@ -19,12 +28,3 @@ export default class Steps extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Steps.defaultProps = {
|
|
||||||
prefixCls: 'ant-steps',
|
|
||||||
iconPrefix: 'ant',
|
|
||||||
maxDescriptionWidth: 100,
|
|
||||||
current: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
Steps.Step = RcSteps.Step;
|
|
||||||
|
@ -3,6 +3,10 @@ import React from 'react';
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
export default class Switch extends React.Component {
|
export default class Switch extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-switch',
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { prefixCls, size, className } = this.props;
|
const { prefixCls, size, className } = this.props;
|
||||||
const cls = classNames({
|
const cls = classNames({
|
||||||
@ -12,7 +16,3 @@ export default class Switch extends React.Component {
|
|||||||
return <RcSwitch className={cls} {...this.props} />;
|
return <RcSwitch className={cls} {...this.props} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Switch.defaultProps = {
|
|
||||||
prefixCls: 'ant-switch',
|
|
||||||
};
|
|
||||||
|
@ -4,9 +4,20 @@ import classNames from 'classnames';
|
|||||||
import Icon from '../icon';
|
import Icon from '../icon';
|
||||||
|
|
||||||
export default class Tabs extends React.Component {
|
export default class Tabs extends React.Component {
|
||||||
|
static TabPane = RcTabs.TabPane;
|
||||||
|
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-tabs',
|
||||||
|
animation: 'slide-horizontal',
|
||||||
|
type: 'line', // or 'card' 'editable-card'
|
||||||
|
onChange() {},
|
||||||
|
onEdit() {},
|
||||||
|
}
|
||||||
|
|
||||||
createNewTab = (targetKey) => {
|
createNewTab = (targetKey) => {
|
||||||
this.props.onEdit(targetKey, 'add');
|
this.props.onEdit(targetKey, 'add');
|
||||||
}
|
}
|
||||||
|
|
||||||
removeTab = (targetKey, e) => {
|
removeTab = (targetKey, e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
if (!targetKey) {
|
if (!targetKey) {
|
||||||
@ -14,9 +25,11 @@ export default class Tabs extends React.Component {
|
|||||||
}
|
}
|
||||||
this.props.onEdit(targetKey, 'remove');
|
this.props.onEdit(targetKey, 'remove');
|
||||||
}
|
}
|
||||||
|
|
||||||
handleChange = (activeKey) => {
|
handleChange = (activeKey) => {
|
||||||
this.props.onChange(activeKey);
|
this.props.onChange(activeKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let { prefixCls, size, tabPosition, animation, type,
|
let { prefixCls, size, tabPosition, animation, type,
|
||||||
children, tabBarExtraContent } = this.props;
|
children, tabBarExtraContent } = this.props;
|
||||||
@ -65,13 +78,3 @@ export default class Tabs extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Tabs.defaultProps = {
|
|
||||||
prefixCls: 'ant-tabs',
|
|
||||||
animation: 'slide-horizontal',
|
|
||||||
type: 'line', // or 'card' 'editable-card'
|
|
||||||
onChange() {},
|
|
||||||
onEdit() {},
|
|
||||||
};
|
|
||||||
|
|
||||||
Tabs.TabPane = RcTabs.TabPane;
|
|
||||||
|
@ -5,6 +5,13 @@ import Icon from '../icon';
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
export default class Tag extends React.Component {
|
export default class Tag extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-tag',
|
||||||
|
closable: false,
|
||||||
|
onClose() {},
|
||||||
|
afterClose() {},
|
||||||
|
}
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
|
|
||||||
@ -61,10 +68,3 @@ export default class Tag extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Tag.defaultProps = {
|
|
||||||
prefixCls: 'ant-tag',
|
|
||||||
closable: false,
|
|
||||||
onClose() {},
|
|
||||||
afterClose() {},
|
|
||||||
};
|
|
||||||
|
@ -3,6 +3,13 @@ import classNames from 'classnames';
|
|||||||
|
|
||||||
/* Exported as Timeline.Item */
|
/* Exported as Timeline.Item */
|
||||||
class TimelineItem extends React.Component {
|
class TimelineItem extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-timeline',
|
||||||
|
color: 'blue',
|
||||||
|
last: false,
|
||||||
|
pending: false,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { prefixCls, color, last, children, pending } = this.props;
|
const { prefixCls, color, last, children, pending } = this.props;
|
||||||
const itemClassName = classNames({
|
const itemClassName = classNames({
|
||||||
@ -20,14 +27,13 @@ class TimelineItem extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TimelineItem.defaultProps = {
|
|
||||||
prefixCls: 'ant-timeline',
|
|
||||||
color: 'blue',
|
|
||||||
last: false,
|
|
||||||
pending: false,
|
|
||||||
};
|
|
||||||
|
|
||||||
export default class Timeline extends React.Component {
|
export default class Timeline extends React.Component {
|
||||||
|
static Item = TimelineItem;
|
||||||
|
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-timeline',
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { prefixCls, children, pending } = this.props;
|
const { prefixCls, children, pending } = this.props;
|
||||||
const pendingNode = typeof pending === 'boolean' ? null : pending;
|
const pendingNode = typeof pending === 'boolean' ? null : pending;
|
||||||
@ -51,9 +57,3 @@ export default class Timeline extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Timeline.defaultProps = {
|
|
||||||
prefixCls: 'ant-timeline',
|
|
||||||
};
|
|
||||||
|
|
||||||
Timeline.Item = TimelineItem;
|
|
||||||
|
@ -8,6 +8,40 @@ function noop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default class Transfer extends React.Component {
|
export default class Transfer extends React.Component {
|
||||||
|
static List = List;
|
||||||
|
static Operation = Operation;
|
||||||
|
static Search = Search;
|
||||||
|
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-transfer',
|
||||||
|
dataSource: [],
|
||||||
|
render: noop,
|
||||||
|
targetKeys: [],
|
||||||
|
onChange: noop,
|
||||||
|
titles: ['源列表', '目的列表'],
|
||||||
|
operations: [],
|
||||||
|
showSearch: false,
|
||||||
|
body: noop,
|
||||||
|
footer: noop,
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
prefixCls: PropTypes.string,
|
||||||
|
dataSource: PropTypes.array,
|
||||||
|
render: PropTypes.func,
|
||||||
|
targetKeys: PropTypes.array,
|
||||||
|
onChange: PropTypes.func,
|
||||||
|
height: PropTypes.number,
|
||||||
|
listStyle: PropTypes.object,
|
||||||
|
className: PropTypes.string,
|
||||||
|
titles: PropTypes.array,
|
||||||
|
operations: PropTypes.array,
|
||||||
|
showSearch: PropTypes.bool,
|
||||||
|
searchPlaceholder: PropTypes.string,
|
||||||
|
notFoundContent: PropTypes.node,
|
||||||
|
body: PropTypes.func,
|
||||||
|
footer: PropTypes.func,
|
||||||
|
}
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
@ -213,38 +247,3 @@ export default class Transfer extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Transfer.defaultProps = {
|
|
||||||
prefixCls: 'ant-transfer',
|
|
||||||
dataSource: [],
|
|
||||||
render: noop,
|
|
||||||
targetKeys: [],
|
|
||||||
onChange: noop,
|
|
||||||
titles: ['源列表', '目的列表'],
|
|
||||||
operations: [],
|
|
||||||
showSearch: false,
|
|
||||||
body: noop,
|
|
||||||
footer: noop,
|
|
||||||
};
|
|
||||||
|
|
||||||
Transfer.propTypes = {
|
|
||||||
prefixCls: PropTypes.string,
|
|
||||||
dataSource: PropTypes.array,
|
|
||||||
render: PropTypes.func,
|
|
||||||
targetKeys: PropTypes.array,
|
|
||||||
onChange: PropTypes.func,
|
|
||||||
height: PropTypes.number,
|
|
||||||
listStyle: PropTypes.object,
|
|
||||||
className: PropTypes.string,
|
|
||||||
titles: PropTypes.array,
|
|
||||||
operations: PropTypes.array,
|
|
||||||
showSearch: PropTypes.bool,
|
|
||||||
searchPlaceholder: PropTypes.string,
|
|
||||||
notFoundContent: PropTypes.node,
|
|
||||||
body: PropTypes.func,
|
|
||||||
footer: PropTypes.func,
|
|
||||||
};
|
|
||||||
|
|
||||||
Transfer.List = List;
|
|
||||||
Transfer.Operation = Operation;
|
|
||||||
Transfer.Search = Search;
|
|
||||||
|
@ -8,6 +8,37 @@ function noop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default class TransferList extends React.Component {
|
export default class TransferList extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
dataSource: [],
|
||||||
|
titleText: '',
|
||||||
|
showSearch: false,
|
||||||
|
handleFilter: noop,
|
||||||
|
handleSelect: noop,
|
||||||
|
handleSelectAll: noop,
|
||||||
|
render: noop,
|
||||||
|
// advanced
|
||||||
|
body: noop,
|
||||||
|
footer: noop,
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
prefixCls: PropTypes.string,
|
||||||
|
dataSource: PropTypes.array,
|
||||||
|
showSearch: PropTypes.bool,
|
||||||
|
searchPlaceholder: PropTypes.string,
|
||||||
|
titleText: PropTypes.string,
|
||||||
|
style: PropTypes.object,
|
||||||
|
handleFilter: PropTypes.func,
|
||||||
|
handleSelect: PropTypes.func,
|
||||||
|
handleSelectAll: PropTypes.func,
|
||||||
|
render: PropTypes.func,
|
||||||
|
body: PropTypes.func,
|
||||||
|
footer: PropTypes.func,
|
||||||
|
}
|
||||||
|
|
||||||
|
static contextTypes = {
|
||||||
|
antLocale: React.PropTypes.object,
|
||||||
|
}
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
@ -151,35 +182,3 @@ export default class TransferList extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TransferList.defaultProps = {
|
|
||||||
dataSource: [],
|
|
||||||
titleText: '',
|
|
||||||
showSearch: false,
|
|
||||||
handleFilter: noop,
|
|
||||||
handleSelect: noop,
|
|
||||||
handleSelectAll: noop,
|
|
||||||
render: noop,
|
|
||||||
// advanced
|
|
||||||
body: noop,
|
|
||||||
footer: noop,
|
|
||||||
};
|
|
||||||
|
|
||||||
TransferList.propTypes = {
|
|
||||||
prefixCls: PropTypes.string,
|
|
||||||
dataSource: PropTypes.array,
|
|
||||||
showSearch: PropTypes.bool,
|
|
||||||
searchPlaceholder: PropTypes.string,
|
|
||||||
titleText: PropTypes.string,
|
|
||||||
style: PropTypes.object,
|
|
||||||
handleFilter: PropTypes.func,
|
|
||||||
handleSelect: PropTypes.func,
|
|
||||||
handleSelectAll: PropTypes.func,
|
|
||||||
render: PropTypes.func,
|
|
||||||
body: PropTypes.func,
|
|
||||||
footer: PropTypes.func,
|
|
||||||
};
|
|
||||||
|
|
||||||
TransferList.contextTypes = {
|
|
||||||
antLocale: React.PropTypes.object,
|
|
||||||
};
|
|
||||||
|
@ -6,6 +6,21 @@ function noop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default class TransferOperation extends React.Component {
|
export default class TransferOperation extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
leftArrowText: '',
|
||||||
|
rightArrowText: '',
|
||||||
|
moveToLeft: noop,
|
||||||
|
moveToRight: noop,
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
className: PropTypes.string,
|
||||||
|
leftArrowText: PropTypes.string,
|
||||||
|
rightArrowText: PropTypes.string,
|
||||||
|
moveToLeft: PropTypes.func,
|
||||||
|
moveToRight: PropTypes.func,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const {
|
const {
|
||||||
moveToLeft,
|
moveToLeft,
|
||||||
@ -35,18 +50,3 @@ export default class TransferOperation extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TransferOperation.defaultProps = {
|
|
||||||
leftArrowText: '',
|
|
||||||
rightArrowText: '',
|
|
||||||
moveToLeft: noop,
|
|
||||||
moveToRight: noop,
|
|
||||||
};
|
|
||||||
|
|
||||||
TransferOperation.propTypes = {
|
|
||||||
className: PropTypes.string,
|
|
||||||
leftArrowText: PropTypes.string,
|
|
||||||
rightArrowText: PropTypes.string,
|
|
||||||
moveToLeft: PropTypes.func,
|
|
||||||
moveToRight: PropTypes.func,
|
|
||||||
};
|
|
||||||
|
@ -4,6 +4,19 @@ function noop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default class Search extends React.Component {
|
export default class Search extends React.Component {
|
||||||
|
static defaultProps = {
|
||||||
|
placeholder: '',
|
||||||
|
onChange: noop,
|
||||||
|
handleClear: noop,
|
||||||
|
}
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
prefixCls: PropTypes.string,
|
||||||
|
placeholder: PropTypes.string,
|
||||||
|
onChange: PropTypes.func,
|
||||||
|
handleClear: PropTypes.func,
|
||||||
|
}
|
||||||
|
|
||||||
handleChange = (e) => {
|
handleChange = (e) => {
|
||||||
this.props.onChange(e);
|
this.props.onChange(e);
|
||||||
}
|
}
|
||||||
@ -29,16 +42,3 @@ export default class Search extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Search.defaultProps = {
|
|
||||||
placeholder: '',
|
|
||||||
onChange: noop,
|
|
||||||
handleClear: noop,
|
|
||||||
};
|
|
||||||
|
|
||||||
Search.propTypes = {
|
|
||||||
prefixCls: PropTypes.string,
|
|
||||||
placeholder: PropTypes.string,
|
|
||||||
onChange: PropTypes.func,
|
|
||||||
handleClear: PropTypes.func,
|
|
||||||
};
|
|
||||||
|
@ -3,6 +3,18 @@ import RcTreeSelect, { TreeNode, SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from 'rc-tr
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
export default class TreeSelect extends React.Component {
|
export default class TreeSelect extends React.Component {
|
||||||
|
static TreeNode = TreeNode;
|
||||||
|
static SHOW_ALL = SHOW_ALL;
|
||||||
|
static SHOW_PARENT = SHOW_PARENT;
|
||||||
|
static SHOW_CHILD = SHOW_CHILD;
|
||||||
|
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-select',
|
||||||
|
transitionName: 'slide-up',
|
||||||
|
choiceTransitionName: 'zoom',
|
||||||
|
showSearch: false,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const props = this.props;
|
const props = this.props;
|
||||||
let {
|
let {
|
||||||
@ -32,15 +44,3 @@ export default class TreeSelect extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TreeSelect.defaultProps = {
|
|
||||||
prefixCls: 'ant-select',
|
|
||||||
transitionName: 'slide-up',
|
|
||||||
choiceTransitionName: 'zoom',
|
|
||||||
showSearch: false,
|
|
||||||
};
|
|
||||||
|
|
||||||
TreeSelect.TreeNode = TreeNode;
|
|
||||||
TreeSelect.SHOW_ALL = SHOW_ALL;
|
|
||||||
TreeSelect.SHOW_PARENT = SHOW_PARENT;
|
|
||||||
TreeSelect.SHOW_CHILD = SHOW_CHILD;
|
|
||||||
|
@ -3,6 +3,15 @@ import RcTree from 'rc-tree';
|
|||||||
import animation from '../common/openAnimation';
|
import animation from '../common/openAnimation';
|
||||||
|
|
||||||
export default class Tree extends React.Component {
|
export default class Tree extends React.Component {
|
||||||
|
static TreeNode = RcTree.TreeNode;
|
||||||
|
|
||||||
|
static defaultProps = {
|
||||||
|
prefixCls: 'ant-tree',
|
||||||
|
checkable: false,
|
||||||
|
showIcon: false,
|
||||||
|
openAnimation: animation,
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const props = this.props;
|
const props = this.props;
|
||||||
let checkable = props.checkable;
|
let checkable = props.checkable;
|
||||||
@ -16,12 +25,3 @@ export default class Tree extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Tree.defaultProps = {
|
|
||||||
prefixCls: 'ant-tree',
|
|
||||||
checkable: false,
|
|
||||||
showIcon: false,
|
|
||||||
openAnimation: animation,
|
|
||||||
};
|
|
||||||
|
|
||||||
Tree.TreeNode = RcTree.TreeNode;
|
|
||||||
|
Loading…
Reference in New Issue
Block a user