Files
DefinitelyTyped/material-ui/material-ui-tests.tsx
Kirill Chaban c0bc8907bd material-ui: fix misprint in time-picker
Renamed textFieldStye to textFieldStyle
2016-01-11 22:09:57 +03:00

535 lines
21 KiB
TypeScript

///<reference path='../react/react.d.ts' />
///<reference path='../react/react-addons-linked-state-mixin.d.ts' />
///<reference path='material-ui.d.ts' />
import * as React from "react";
import * as LinkedStateMixin from "react-addons-linked-state-mixin";
import Checkbox = require("material-ui/lib/checkbox");
import Colors = require("material-ui/lib/styles/colors");
import Spacing = require("material-ui/lib/styles/spacing");
import AppBar = require("material-ui/lib/app-bar");
import Badge = require("material-ui/lib/badge");
import IconButton = require("material-ui/lib/icon-button");
import FlatButton = require("material-ui/lib/flat-button");
import Avatar = require("material-ui/lib/avatar");
import FontIcon = require("material-ui/lib/font-icon");
import Typography = require("material-ui/lib/styles/typography");
import RaisedButton = require("material-ui/lib/raised-button");
import FloatingActionButton = require("material-ui/lib/floating-action-button");
import Card = require("material-ui/lib/card/card");
import CardHeader = require("material-ui/lib/card/card-header");
import CardText = require("material-ui/lib/card/card-text");
import CardActions = require("material-ui/lib/card/card-actions");
import Dialog = require("material-ui/lib/dialog");
import DropDownMenu = require("material-ui/lib/drop-down-menu");
import DatePicker = require("material-ui/lib/date-picker/date-picker");
import TimePicker = require("material-ui/lib/time-picker");
import RadioButtonGroup = require("material-ui/lib/radio-button-group");
import RadioButton = require("material-ui/lib/radio-button");
import Toggle = require("material-ui/lib/toggle");
import TextField = require("material-ui/lib/text-field");
import SelectField = require("material-ui/lib/select-field");
import IconMenu = require("material-ui/lib/menus/icon-menu");
import Menu = require('material-ui/lib/menus/menu');
import MenuItem = require('material-ui/lib/menus/menu-item');
import MenuDivider = require('material-ui/lib/menus/menu-divider');
import ThemeManager = require('material-ui/lib/styles/theme-manager');
import GridList = require('material-ui/lib/grid-list/grid-list');
import GridTile = require('material-ui/lib/grid-list/grid-tile');
import NavigationClose = require("material-ui/lib/svg-icon"); // TODO: Should actually import the actual "material-ui/lib/svg-icons/navigation/close", but they aren't defined yet.
import FileFolder = require("material-ui/lib/svg-icon"); // TODO: Should actually import the actual "material-ui/lib/svg-icons/file/folder", but they aren't defined yet.
import ToggleStar = require("material-ui/lib/svg-icon"); // TODO: Should actually import the actual "material-ui/lib/svg-icons/toggle/star", but they aren't defined yet.
import ActionGrade = require("material-ui/lib/svg-icon"); // TODO: Should actually import the actual "material-ui/lib/svg-icons/action/grade", but they aren't defined yet.
import ToggleStarBorder = require("material-ui/lib/svg-icon"); // TODO: Should actually import the actual "material-ui/lib/svg-icons/toggle/star-border", but they aren't defined yet.
import ArrowDropRight = require("material-ui/lib/svg-icon"); // TODO: Should actually import the actual "material-ui/lib/svg-icons/toggle/star-border", but they aren't defined yet.
type CheckboxProps = __MaterialUI.CheckboxProps;
type MuiTheme = __MaterialUI.Styles.MuiTheme;
type TouchTapEvent = __MaterialUI.TouchTapEvent;
interface MaterialUiTestsState {
showDialogStandardActions: boolean;
showDialogCustomActions: boolean;
showDialogScrollable: boolean;
}
class MaterialUiTests extends React.Component<{}, MaterialUiTestsState> implements React.LinkedStateMixin {
// injected with mixin
linkState: <T>(key: string) => React.ReactLink<T>;
dialog: Dialog;
private touchTapEventHandler(e: TouchTapEvent) {
this.dialog.show();
}
private formEventHandler(e: React.FormEvent) {
}
private selectFieldChangeHandler(e: TouchTapEvent, si: number, mi: any) {
}
private handleRequestClose(buttonClicked: boolean) {
}
render() {
// "http://material-ui.com/#/customization/themes"
let muiTheme: MuiTheme = ThemeManager.getMuiTheme({
palette: {
accent1Color: Colors.cyan100
},
spacing: {
}
});
// "http://material-ui.com/#/customization/inline-styles"
let element: React.ReactElement<any>;
element = <Checkbox
id="checkboxId1"
name="checkboxName1"
value="checkboxValue1"
label="went for a run today"
style={{
width: '50%',
margin: '0 auto'
}}
iconStyle={{
fill: '#FF4081'
}}/>
element = React.createElement<CheckboxProps>(Checkbox, {
id: "checkboxId1", name: "checkboxName1", value: "checkboxValue1", label: "went for a run today", style: {
width: '50%',
margin: '0 auto'
}, iconStyle: {
fill: '#FF4081'
}
});
// "http://material-ui.com/#/components/appbar"
element = <AppBar
title="Title"
iconClassNameRight="muidocs-icon-navigation-expand-more" />
element = <AppBar
title="Title"
iconElementLeft={<IconButton><NavigationClose /></IconButton>}
iconElementRight={<FlatButton label="Save" />} />;
// "http://material-ui.com/#/components/avatars"
//image avatar
element = <Avatar src="images/uxceo-128.jpg" />;
//SvgIcon avatar
element = <Avatar icon={<FileFolder />} />;
//SvgIcon avatar with custom colors
element = <Avatar
icon={<FileFolder />}
color={Colors.orange200}
backgroundColor={Colors.pink400} />;
//FontIcon avatar
element = <Avatar
icon={
<FontIcon className="muidocs-icon-communication-voicemail" />
} />;
//FontIcon avatar with custom colors
element = <Avatar
icon={<FontIcon className="muidocs-icon-communication-voicemail" />}
color={Colors.blue300}
backgroundColor={Colors.indigo900} />;
//Letter avatar
element = <Avatar>A</Avatar>;
//Letter avatar with custom colors
element = <Avatar
color={Colors.deepOrange300}
backgroundColor={Colors.purple500}>
</Avatar>
// "http://material-ui.com/#/components/badge"
element = <Badge badgeContent={<span>Hello</span>}>
<Avatar color={Colors.deepOrange300} />
</Badge>;
element = <Badge
primary
badgeContent={<span>Hello</span>}
badgeStyle={{height: '24px', width: '24px'}}
>
This text has a badge!
</Badge>;
// "http://material-ui.com/#/components/buttons"
element = <FlatButton linkButton={true} href="https://github.com/callemall/material-ui" secondary={true} label="GitHub">
<FontIcon style={{ color: Typography.textFullWhite }} className="muidocs-icon-custom-github"/>
</FlatButton>;
element = <RaisedButton linkButton={true} href="https://github.com/callemall/material-ui" secondary={true} label="GitHub">
<FontIcon style={{ color: Typography.textFullWhite }} className="muidocs-icon-custom-github"/>
</RaisedButton>;
element = <FloatingActionButton secondary={true} mini={true} linkButton={true}
href="https://github.com/callemall/material-ui" >
<ToggleStar />
</FloatingActionButton>;
// "http://material-ui.com/#/components/cards"
element = <Card initiallyExpanded={true}>
<CardHeader
title="Title"
subtitle="Subtitle"
avatar={<Avatar style={{ color: 'red' }}>A</Avatar>}
showExpandableButton={true}>
</CardHeader>
<CardText expandable={true}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</CardText>
<CardActions expandable={true}>
<FlatButton label="Action1"/>
<FlatButton label="Action2"/>
</CardActions>
<CardText expandable={true}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</CardText>
</Card>;
// "http://material-ui.com/#/components/date-picker"
element = <DatePicker style={{ color: 'red' }} />;
element = <DatePicker
floatingLabelText="Floating Label Text" />;
element = <DatePicker
hintText="Hint Text" />;
// "http://material-ui.com/#/components/time-picker"
element = <TimePicker textFieldStyle={{width: '24px'}} />
// "http://material-ui.com/#/components/dialog"
let standardActions = [
{ text: 'Cancel' },
{ text: 'Submit', onTouchTap: this.touchTapEventHandler, ref: 'submit' }
];
element = <Dialog
title="Dialog With Standard Actions"
actions={standardActions}
actionFocus="submit"
open={this.state.showDialogStandardActions}
onRequestClose={this.handleRequestClose}>
The actions in this window are created from the json that's passed in.
</Dialog>;
//Custom Actions
let customActions = [
<FlatButton
label="Cancel"
secondary={true}
onTouchTap={this.touchTapEventHandler} />,
<FlatButton
label="Submit"
primary={true}
onTouchTap={this.touchTapEventHandler} />
];
element = <Dialog
title="Dialog With Custom Actions"
actions={customActions}
open={this.state.showDialogCustomActions}
onRequestClose={this.handleRequestClose}>
The actions in this window were passed in as an array of react objects.
</Dialog>;
element = <Dialog
title="Dialog With Scrollable Content"
actions={customActions}
autoDetectWindowHeight={true}
autoScrollBodyContent={true}
open={this.state.showDialogScrollable}
onRequestClose={this.handleRequestClose}>
<div style={{ height: '1000px' }}>
Really long content
</div>
</Dialog>;
// "http://material-ui.com/#/components/dropdown-menu"
let menuItems = [
{ payload: '1', text: 'Never' },
{ payload: '2', text: 'Every Night' },
{ payload: '3', text: 'Weeknights' },
{ payload: '4', text: 'Weekends' },
{ payload: '5', text: 'Weekly' },
];
element = <DropDownMenu menuItems={menuItems} />;
// "http://material-ui.com/#/components/icons"
element = <FontIcon className= "material-icons" color= { Colors.red500 } > home</FontIcon>;
// "http://material-ui.com/#/components/icon-buttons"
//Method 1: muidocs-icon-github is defined in a style sheet.
element = <IconButton iconClassName="muidocs-icon-custom-github" tooltip="GitHub"/>;
//Method 2: ActionGrade is a component created using mui.SvgIcon.
element = <IconButton tooltip= "Star" touch= { true}>
<ActionGrade/>
</IconButton >;
//Method 3: Manually creating a mui.FontIcon component within IconButton
element = <IconButton tooltip= "Sort" disabled= {true}>
<FontIcon className="muidocs-icon-custom-sort"/>
</IconButton>;
//Method 4: Using Google material-icons
element = <IconButton iconClassName="material-icons" tooltipPosition="bottom-center"
tooltip="Sky">settings_system_daydream</IconButton>;
// "http://material-ui.com/#/components/icon-menus"
element = <IconMenu iconButtonElement={<IconButton />}>
<MenuItem primaryText="Refresh" />
<MenuItem primaryText="Send feedback" />
<MenuItem primaryText="Settings" />
<MenuItem primaryText="Help" />
<MenuItem primaryText="Sign out" />
</IconMenu>;
// "http://material-ui.com/#/components/left-nav"
// "http://material-ui.com/#/components/lists"
// "http://material-ui.com/#/components/menus"
element = <Menu>
<MenuItem primaryText="Maps" />
<MenuItem primaryText="Books" />
<MenuItem primaryText="Flights" />
<MenuItem primaryText="Apps" />
</Menu>;
element = <Menu desktop={true} width={320}>
<MenuItem primaryText="Bold" secondaryText="&#8984;B" />
<MenuItem primaryText="Italic" secondaryText="&#8984;I" />
<MenuItem primaryText="Underline" secondaryText="&#8984;U" />
<MenuItem primaryText="Strikethrough" secondaryText="Alt+Shift+5" />
<MenuItem primaryText="Superscript" secondaryText="&#8984;." />
<MenuItem primaryText="Subscript" secondaryText="&#8984;," />
<MenuDivider />
<MenuItem primaryText="Paragraph styles" rightIcon={<ArrowDropRight />} />
<MenuItem primaryText="Align" rightIcon={<ArrowDropRight />} />
<MenuItem primaryText="Line spacing" rightIcon={<ArrowDropRight />} />
<MenuItem primaryText="Numbered list" rightIcon={<ArrowDropRight />} />
<MenuItem primaryText="List options" rightIcon={<ArrowDropRight />} />
<MenuDivider />
<MenuItem primaryText="Clear formatting" secondaryText="&#8984;/" />
</Menu>;
// "http://material-ui.com/#/components/paper"
// "http://material-ui.com/#/components/progress"
// "http://material-ui.com/#/components/refresh-indicator"
// "http://material-ui.com/#/components/sliders"
// "http://material-ui.com/#/components/switches"
element = <Checkbox
name="checkboxName2"
value="checkboxValue2"
label="fed the dog"
defaultChecked={true}/>;
element = <Checkbox
name = "checkboxName3"
value = "checkboxValue3"
label = "built a house on the moon"
disabled = {true}/>;
element = <Checkbox
name="checkboxName4"
value="checkboxValue4"
checkedIcon={<ToggleStar />}
unCheckedIcon={<ToggleStarBorder />}
label="custom icon" />;
element = <RadioButtonGroup name="shipSpeed" defaultSelected="not_light">
<RadioButton
value="light"
label="prepare for light speed"
style={{ marginBottom: 16 }} />;
<RadioButton
value="not_light"
label="light speed too slow"
style={{ marginBottom: 16 }}/>;
<RadioButton
value="ludicrous"
label="go to ludicrous speed"
style={{ marginBottom: 16 }}
disabled={true}/>
</RadioButtonGroup>;
element = <Toggle
name="toggleName1"
value="toggleValue1"
label="activate thrusters"/>;
element = <Toggle
name = "toggleName2"
value = "toggleValue2"
label = "auto-pilot"
defaultToggled = { true}/>;
element = <Toggle
name="toggleName3"
value="toggleValue3"
label="initiate self-destruct sequence"
disabled={true}/>;
// "http://material-ui.com/#/components/snackbar"
// "http://material-ui.com/#/components/table"
// "http://material-ui.com/#/components/tabs"
// "http://material-ui.com/#/components/text-fields"
element = <TextField
hintText="Hint Text" />;
element = <TextField
hintText="Hint Text"
defaultValue="Default Value" />;
element = <TextField
hintText = "Hint Text"
value = { "value" }
underlineStyle = {{ borderColor: Colors.green500 }}
onChange = { this.formEventHandler } />;
element = <TextField
hintText="Custom Underline Focus Color"
underlineFocusStyle={{ borderColor: Colors.amber900 }} />;
element = <TextField
hintText = "Hint Text"
valueLink = { this.linkState<string>('valueLinkValue') } />;
element = <TextField
hintText="Hint Text (MultiLine)"
multiLine={true} />;
element = <TextField
hintText = "The hint text can be as long as you want, it will wrap."
multiLine = { true} />;
element = <TextField
hintText="Hint Text"
errorText="The error text can be as long as you want, it will wrap." />;
element = <TextField
hintText = "Hint Text"
errorText = { "error text" }
onChange = { this.formEventHandler } />;
element = <TextField
hintText="Hint Text (custom error color)"
errorText={"error text"}
errorStyle={{ color: 'orange' }}
onChange={ this.formEventHandler }
defaultValue="Custom error color" />;
element = <TextField
hintText = "Disabled Hint Text"
disabled = { true} />;
element = <TextField
hintText="Disabled Hint Text"
disabled={true}
defaultValue="Disabled With Value" />;
//Select Fields
let arbitraryArrayMenuItems = [
{
id: 0,
name: "zero",
},
];
element = <SelectField
value = { 0 }
onChange = { this.selectFieldChangeHandler }
hintText = "Hint Text"
menuItems = { menuItems } />;
element = <SelectField
valueLink={this.linkState('selectValueLinkValue') }
floatingLabelText="Float Label Text"
valueMember="id"
displayMember="name"
menuItems={arbitraryArrayMenuItems} />;
element = <SelectField
valueLink = { this.linkState('selectValueLinkValue2') }
floatingLabelText = "Float Custom Label Text"
floatingLabelStyle = {{ color: "red" }}
valueMember = "id"
displayMember = "name"
menuItems = { arbitraryArrayMenuItems } />;
element = <SelectField
value={0}
onChange={ this.selectFieldChangeHandler }
menuItems={arbitraryArrayMenuItems} />;
//Floating Hint Text Labels
element = <TextField
hintText = "Hint Text"
floatingLabelText = "Floating Label Text" />;
element = <TextField
hintText="Hint Text"
defaultValue="Default Value"
floatingLabelText="Floating Label Text" />;
element = <TextField
hintText = "Hint Text"
floatingLabelText = "Floating Label Text"
value = { "value" }
onChange = { this.formEventHandler } />;
element = <TextField
hintText="Hint Text"
floatingLabelText="Floating Label Text"
valueLink={this.linkState<string>('floatingValueLinkValue') } />;
element = <TextField
hintText = "Hint Text (MultiLine)"
floatingLabelText = "Floating Label Text"
multiLine = { true} />;
element = <TextField
hintText="Hint Text"
errorText={"floating text"}
floatingLabelText="Floating Label Text"
onChange={this.formEventHandler } />;
element = <TextField
hintText = "Hint Text"
errorText = { "error text" }
defaultValue = "abc"
floatingLabelText = "Floating Label Text"
onChange = { this.formEventHandler } />;
element = <TextField
hintText="Disabled Hint Text"
disabled={true}
floatingLabelText="Floating Label Text" />;
element = <TextField
hintText = "Disabled Hint Text"
disabled = { true}
defaultValue = "Disabled With Value"
floatingLabelText = "Floating Label Text" />;
element = <TextField
hintText="Password Field"
floatingLabelText="Password"
type="password" />;
// "http://material-ui.com/#/components/time-picker"
// "http://material-ui.com/#/components/toolbars"
// "http://material-ui.com/#/components/grid-list"
element = <GridList
cols={3}
padding={50}
cellHeight={200}
style={{ color: 'red' }} />;
element = <GridTile
title="GridTileTitle"
actionIcon={<h1>GridTile</h1>}
actionPosition="left"
titlePosition="top"
titleBackground="rgba(0, 0, 0, 0.4)"
cols={2}
rows={1}
style={{ color: 'red' }}>
<h1>Children are Required!</h1>
</GridTile>;
return element;
}
}