+
+ );
+
+ let labelPositionExist = this.props.labelPosition;
+
+ // Position is left if not defined or invalid.
+ let elementsInOrder = (labelPositionExist &&
+ (this.props.labelPosition.toUpperCase() === 'RIGHT')) ? (
+
+ {switchElement}
+ {labelElement}
+
+ ) : (
+
+ {labelElement}
+ {switchElement}
+
+ );
+
+ return (
+
+ {inputElement}
+ {elementsInOrder}
+
+ );
+ },
+
+});
+
+export default EnhancedSwitch;
diff --git a/node_modules/material-ui/src/enhanced-textarea.jsx b/node_modules/material-ui/src/enhanced-textarea.jsx
new file mode 100644
index 0000000..eabf273
--- /dev/null
+++ b/node_modules/material-ui/src/enhanced-textarea.jsx
@@ -0,0 +1,189 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from './mixins/style-propable';
+import getMuiTheme from './styles/getMuiTheme';
+
+const rowsHeight = 24;
+
+const styles = {
+ textarea: {
+ width: '100%',
+ resize: 'none',
+ font: 'inherit',
+ padding: 0,
+ },
+ shadow: {
+ width: '100%',
+ resize: 'none',
+ // Overflow also needed to here to remove the extra row
+ // added to textareas in Firefox.
+ overflow: 'hidden',
+ // Visibility needed to hide the extra text area on ipads
+ visibility: 'hidden',
+ font: 'inherit',
+ padding: 0,
+ position: 'absolute',
+ },
+};
+
+const EnhancedTextarea = React.createClass({
+
+ propTypes: {
+ defaultValue: React.PropTypes.any,
+ disabled: React.PropTypes.bool,
+ onChange: React.PropTypes.func,
+ onHeightChange: React.PropTypes.func,
+ rows: React.PropTypes.number,
+ rowsMax: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ textareaStyle: React.PropTypes.object,
+ value: React.PropTypes.string,
+ valueLink: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ rows: 1,
+ };
+ },
+
+ getInitialState() {
+ return {
+ height: this.props.rows * rowsHeight,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ this._syncHeightWithShadow();
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ if (nextProps.value !== this.props.value) {
+ this._syncHeightWithShadow(nextProps.value);
+ }
+ let newState = {};
+ newState.muiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ },
+
+ getInputNode() {
+ return ReactDOM.findDOMNode(this.refs.input);
+ },
+
+ setValue(value) {
+ this.getInputNode().value = value;
+ this._syncHeightWithShadow(value);
+ },
+
+ _syncHeightWithShadow(newValue, e) {
+ let shadow = ReactDOM.findDOMNode(this.refs.shadow);
+
+ if (newValue !== undefined) {
+ shadow.value = newValue;
+ }
+
+ let newHeight = shadow.scrollHeight;
+
+ if (this.props.rowsMax >= this.props.rows) {
+ newHeight = Math.min(this.props.rowsMax * rowsHeight, newHeight);
+ }
+
+ newHeight = Math.max(newHeight, rowsHeight);
+
+ if (this.state.height !== newHeight) {
+ this.setState({
+ height: newHeight,
+ });
+
+ if (this.props.onHeightChange) {
+ this.props.onHeightChange(e, newHeight);
+ }
+ }
+ },
+
+ _handleChange(e) {
+ this._syncHeightWithShadow(e.target.value);
+
+ if (this.props.hasOwnProperty('valueLink')) {
+ this.props.valueLink.requestChange(e.target.value);
+ }
+
+ if (this.props.onChange) {
+ this.props.onChange(e);
+ }
+ },
+
+ render() {
+ let {
+ onChange,
+ onHeightChange,
+ rows,
+ style,
+ textareaStyle,
+ valueLink,
+ ...other,
+ } = this.props;
+
+ const textareaStyles = this.mergeStyles(styles.textarea, textareaStyle, {
+ height: this.state.height,
+ });
+
+ const shadowStyles = styles.shadow;
+
+ if (this.props.hasOwnProperty('valueLink')) {
+ other.value = this.props.valueLink.value;
+ }
+
+ if (this.props.disabled) {
+ style.cursor = 'default';
+ }
+
+ return (
+
+
+
+
+ );
+ },
+
+});
+
+export default EnhancedTextarea;
diff --git a/node_modules/material-ui/src/flat-button.jsx b/node_modules/material-ui/src/flat-button.jsx
new file mode 100644
index 0000000..04cca17
--- /dev/null
+++ b/node_modules/material-ui/src/flat-button.jsx
@@ -0,0 +1,338 @@
+import React from 'react';
+import ContextPure from './mixins/context-pure';
+import Transitions from './styles/transitions';
+import Children from './utils/children';
+import ColorManipulator from './utils/color-manipulator';
+import {mergeStyles} from './utils/styles';
+import Typography from './styles/typography';
+import EnhancedButton from './enhanced-button';
+import FlatButtonLabel from './buttons/flat-button-label';
+import getMuiTheme from './styles/getMuiTheme';
+
+function validateLabel(props, propName, componentName) {
+ if (!props.children && !props.label) {
+ return new Error('Required prop label or children was not ' +
+ 'specified in ' + componentName + '.');
+ }
+}
+
+const FlatButton = React.createClass({
+
+ propTypes: {
+ /**
+ * Color of button when mouse is not hovering over it.
+ */
+ backgroundColor: React.PropTypes.string,
+
+ /**
+ * This is what will be displayed inside the button.
+ * If a label is specified, the text within the label prop will
+ * be displayed. Otherwise, the component will expect children
+ * which will then be displayed. (In our example,
+ * we are nesting an `
` and a `span`
+ * that acts as our label to be displayed.) This only
+ * applies to flat and raised buttons.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * Disables the button if set to true.
+ */
+ disabled: React.PropTypes.bool,
+
+ /**
+ * Color of button when mouse hovers over.
+ */
+ hoverColor: React.PropTypes.string,
+
+ /**
+ * URL to link to when button clicked if `linkButton` is set to true.
+ */
+ href: React.PropTypes.string,
+
+ /**
+ * Use this property to display an icon.
+ */
+ icon: React.PropTypes.node,
+
+ /**
+ * Label for the button.
+ */
+ label: validateLabel,
+
+ /**
+ * Place label before or after the passed children.
+ */
+ labelPosition: React.PropTypes.oneOf([
+ 'before',
+ 'after',
+ ]),
+
+ /**
+ * Override the inline-styles of the button's label element.
+ */
+ labelStyle: React.PropTypes.object,
+
+ /**
+ * Enables use of `href` property to provide a URL to link to if set to true.
+ */
+ linkButton: React.PropTypes.bool,
+
+ /**
+ * Called when element is focused by the keyboard.
+ */
+ onKeyboardFocus: React.PropTypes.func,
+
+ /**
+ * Called when the mouse enters the element.
+ */
+ onMouseEnter: React.PropTypes.func,
+
+ /**
+ * Called when the mouse leaves the element.
+ */
+ onMouseLeave: React.PropTypes.func,
+
+ /**
+ * Called when a touch event is started inside the element.
+ */
+ onTouchStart: React.PropTypes.func,
+
+ /**
+ * If true, colors button according to
+ * primaryTextColor from the Theme.
+ */
+ primary: React.PropTypes.bool,
+
+ /**
+ * Color for the ripple after button is clicked.
+ */
+ rippleColor: React.PropTypes.string,
+
+ /**
+ * If true, colors button according to secondaryTextColor from the theme.
+ * The primary prop has precendent if set to true.
+ */
+ secondary: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ ContextPure,
+ ],
+
+ statics: {
+ getRelevantContextKeys(muiTheme) {
+ const buttonTheme = muiTheme.button;
+ const flatButtonTheme = muiTheme.flatButton;
+
+ return {
+ buttonColor: flatButtonTheme.color,
+ buttonFilterColor: flatButtonTheme.buttonFilterColor,
+ buttonHeight: buttonTheme.height,
+ buttonMinWidth: buttonTheme.minWidth,
+ disabledTextColor: flatButtonTheme.disabledTextColor,
+ primaryTextColor: flatButtonTheme.primaryTextColor,
+ secondaryTextColor: flatButtonTheme.secondaryTextColor,
+ textColor: flatButtonTheme.textColor,
+ textTransform: flatButtonTheme.textTransform ? flatButtonTheme.textTransform :
+ (buttonTheme.textTransform ? buttonTheme.textTransform : 'uppercase'),
+ };
+ },
+ getChildrenClasses() {
+ return [
+ EnhancedButton,
+ FlatButtonLabel,
+ ];
+ },
+ },
+
+ getDefaultProps() {
+ return {
+ disabled: false,
+ labelStyle: {},
+ labelPosition: 'after',
+ onKeyboardFocus: () => {},
+ onMouseEnter: () => {},
+ onMouseLeave: () => {},
+ onTouchStart: () => {},
+ primary: false,
+ secondary: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ hovered: false,
+ isKeyboardFocused: false,
+ touch: false,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ _handleKeyboardFocus(e, isKeyboardFocused) {
+ this.setState({isKeyboardFocused: isKeyboardFocused});
+ this.props.onKeyboardFocus(e, isKeyboardFocused);
+ },
+
+ _handleMouseEnter(e) {
+ //Cancel hover styles for touch devices
+ if (!this.state.touch) this.setState({hovered: true});
+ this.props.onMouseEnter(e);
+ },
+
+ _handleMouseLeave(e) {
+ this.setState({hovered: false});
+ this.props.onMouseLeave(e);
+ },
+
+ _handleTouchStart(e) {
+ this.setState({touch: true});
+ this.props.onTouchStart(e);
+ },
+
+ render() {
+ const {
+ children,
+ disabled,
+ hoverColor,
+ backgroundColor,
+ icon,
+ label,
+ labelStyle,
+ labelPosition,
+ primary,
+ rippleColor,
+ secondary,
+ style,
+ ...other,
+ } = this.props;
+
+ const {
+ buttonColor,
+ buttonHeight,
+ buttonMinWidth,
+ disabledTextColor,
+ buttonFilterColor,
+ primaryTextColor,
+ secondaryTextColor,
+ textColor,
+ textTransform,
+ } = this.constructor.getRelevantContextKeys(this.state.muiTheme);
+
+ const defaultTextColor = disabled ? disabledTextColor :
+ primary ? primaryTextColor :
+ secondary ? secondaryTextColor :
+ textColor;
+
+ const defaultHoverColor = ColorManipulator.fade(buttonFilterColor, 0.2);
+ const defaultRippleColor = buttonFilterColor;
+ const buttonHoverColor = hoverColor || defaultHoverColor;
+ const buttonRippleColor = rippleColor || defaultRippleColor;
+ const buttonBackgroundColor = backgroundColor || buttonColor;
+ const hovered = (this.state.hovered || this.state.isKeyboardFocused) && !disabled;
+
+ const mergedRootStyles = mergeStyles({
+ color: defaultTextColor,
+ transition: Transitions.easeOut(),
+ fontSize: Typography.fontStyleButtonFontSize,
+ letterSpacing: 0,
+ textTransform: textTransform,
+ fontWeight: Typography.fontWeightMedium,
+ borderRadius: 2,
+ userSelect: 'none',
+ position: 'relative',
+ overflow: 'hidden',
+ backgroundColor: hovered ? buttonHoverColor : buttonBackgroundColor,
+ lineHeight: buttonHeight + 'px',
+ minWidth: buttonMinWidth,
+ padding: 0,
+ margin: 0,
+ }, style);
+
+ let iconCloned;
+ const labelStyleIcon = {};
+
+ if (icon) {
+ iconCloned = React.cloneElement(icon, {
+ color: mergedRootStyles.color,
+ style: {
+ verticalAlign: 'middle',
+ marginLeft: labelPosition === 'before' ? 0 : 12,
+ marginRight: labelPosition === 'before' ? 12 : 0,
+ },
+ });
+
+ if (labelPosition === 'before') {
+ labelStyleIcon.paddingRight = 8;
+ } else {
+ labelStyleIcon.paddingLeft = 8;
+ }
+ }
+
+ const labelElement = label ? (
+
+ ) : undefined;
+
+ // Place label before or after children.
+ const childrenFragment = labelPosition === 'before' ?
+ {
+ labelElement,
+ iconCloned,
+ children,
+ }
+ :
+ {
+ children,
+ iconCloned,
+ labelElement,
+ };
+ const enhancedButtonChildren = Children.create(childrenFragment);
+
+ return (
+
+ {enhancedButtonChildren}
+
+ );
+ },
+});
+
+export default FlatButton;
diff --git a/node_modules/material-ui/src/floating-action-button.jsx b/node_modules/material-ui/src/floating-action-button.jsx
new file mode 100644
index 0000000..633ab0b
--- /dev/null
+++ b/node_modules/material-ui/src/floating-action-button.jsx
@@ -0,0 +1,358 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from './mixins/style-propable';
+import Transitions from './styles/transitions';
+import Colors from './styles/colors';
+import ColorManipulator from './utils/color-manipulator';
+import EnhancedButton from './enhanced-button';
+import FontIcon from './font-icon';
+import Paper from './paper';
+import Children from './utils/children';
+import getMuiTheme from './styles/getMuiTheme';
+import warning from 'warning';
+
+const FloatingActionButton = React.createClass({
+
+ propTypes: {
+ /**
+ * This value will override the default background color for the button.
+ * However it will not override the default disabled background color.
+ * This has to be set separately using the disabledColor attribute.
+ */
+ backgroundColor: React.PropTypes.string,
+
+ /**
+ * This is what displayed inside the floating action button; for example, a SVG Icon.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * Disables the button if set to true.
+ */
+ disabled: React.PropTypes.bool,
+
+ /**
+ * This value will override the default background color for the button when it is disabled.
+ */
+ disabledColor: React.PropTypes.string,
+
+ /**
+ * URL to link to when button clicked if `linkButton` is set to true.
+ */
+ href: React.PropTypes.string,
+
+ /**
+ * The icon within the FloatingActionButton is a FontIcon component.
+ * This property is the classname of the icon to be displayed inside the button.
+ * An alternative to adding an iconClassName would be to manually insert a
+ * FontIcon component or custom SvgIcon component or as a child of FloatingActionButton.
+ */
+ iconClassName: React.PropTypes.string,
+
+ /**
+ * This is the equivalent to iconClassName except that it is used for
+ * overriding the inline-styles of the FontIcon component.
+ */
+ iconStyle: React.PropTypes.object,
+
+ /**
+ * Enables use of `href` property to provide a URL to link to if set to true.
+ */
+ linkButton: React.PropTypes.bool,
+
+ /**
+ * If true, the button will be a small floating action button.
+ */
+ mini: React.PropTypes.bool,
+
+ /**
+ * Called when mouse down event occurs on the button.
+ */
+ onMouseDown: React.PropTypes.func,
+
+ /**
+ * Called when mouse enter event occurs on the button.
+ */
+ onMouseEnter: React.PropTypes.func,
+
+ /**
+ * Called when mouse leave event occurs on the button.
+ */
+ onMouseLeave: React.PropTypes.func,
+
+ /**
+ * Called when mouse up event occurs on the button.
+ */
+ onMouseUp: React.PropTypes.func,
+
+ /**
+ * Called when touch end event occurs on the button.
+ */
+ onTouchEnd: React.PropTypes.func,
+
+ /**
+ * Called when touch start event occurs on the button.
+ */
+ onTouchStart: React.PropTypes.func,
+
+ /**
+ * If true, the button will use the secondary button colors.
+ */
+ secondary: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ disabled: false,
+ disabledColor: Colors.grey300,
+ mini: false,
+ secondary: false,
+ };
+ },
+
+ getInitialState() {
+ const zDepth = this.props.disabled ? 0 : 2;
+
+ return {
+ hovered: false,
+ initialZDepth: zDepth,
+ touch: false,
+ zDepth: zDepth,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ warning(!this.props.iconClassName || !this.props.children,
+ 'You have set both an iconClassName and a child icon. ' +
+ 'It is recommended you use only one method when adding ' +
+ 'icons to FloatingActionButtons.');
+ },
+
+ componentWillReceiveProps(newProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+
+ if (newProps.disabled !== this.props.disabled) {
+ const zDepth = newProps.disabled ? 0 : 2;
+
+ this.setState({
+ zDepth: zDepth,
+ initialZDepth: zDepth,
+ });
+ }
+ },
+
+ _getBackgroundColor() {
+ return this.props.disabled ? ( this.props.disabledColor || this.getTheme().disabledColor) :
+ this.props.backgroundColor ? this.props.backgroundColor :
+ this.props.secondary ? this.getTheme().secondaryColor :
+ this.getTheme().color;
+ },
+
+
+ getTheme() {
+ return this.state.muiTheme.floatingActionButton;
+ },
+
+ _getIconColor() {
+ return this.props.disabled ? this.getTheme().disabledTextColor :
+ (this.props.secondary ? this.getTheme().secondaryIconColor :
+ this.getTheme().iconColor);
+ },
+
+ getStyles() {
+ let themeVariables = this.state.muiTheme.floatingActionButton;
+
+ let styles = {
+ root: {
+ transition: Transitions.easeOut(),
+ display: 'inline-block',
+ },
+ container: {
+ transition: Transitions.easeOut(),
+ position: 'relative',
+ height: themeVariables.buttonSize,
+ width: themeVariables.buttonSize,
+ padding: 0,
+ overflow: 'hidden',
+ backgroundColor: this._getBackgroundColor(),
+ borderRadius: '50%',
+ textAlign: 'center',
+ verticalAlign: 'bottom',
+ },
+ containerWhenMini: {
+ height: themeVariables.miniSize,
+ width: themeVariables.miniSize,
+ },
+ overlay: {
+ transition: Transitions.easeOut(),
+ top: 0,
+ },
+ overlayWhenHovered: {
+ backgroundColor: ColorManipulator.fade(this._getIconColor(), 0.4),
+ },
+ icon: {
+ height: themeVariables.buttonSize,
+ lineHeight: themeVariables.buttonSize + 'px',
+ fill: themeVariables.iconColor,
+ color: this._getIconColor(),
+ },
+ iconWhenMini: {
+ height: themeVariables.miniSize,
+ lineHeight: themeVariables.miniSize + 'px',
+ },
+ };
+ return styles;
+ },
+
+ _handleMouseDown(e) {
+ //only listen to left clicks
+ if (e.button === 0) {
+ this.setState({zDepth: this.state.initialZDepth + 1});
+ }
+ if (this.props.onMouseDown) this.props.onMouseDown(e);
+ },
+
+ _handleMouseUp(e) {
+ this.setState({zDepth: this.state.initialZDepth});
+ if (this.props.onMouseUp) this.props.onMouseUp(e);
+ },
+
+ _handleMouseLeave(e) {
+ if (!this.refs.container.isKeyboardFocused()) this.setState({zDepth: this.state.initialZDepth, hovered: false});
+ if (this.props.onMouseLeave) this.props.onMouseLeave(e);
+ },
+
+ _handleMouseEnter(e) {
+ if (!this.refs.container.isKeyboardFocused() && !this.state.touch) {
+ this.setState({hovered: true});
+ }
+ if (this.props.onMouseEnter) this.props.onMouseEnter(e);
+ },
+
+ _handleTouchStart(e) {
+ this.setState({
+ touch: true,
+ zDepth: this.state.initialZDepth + 1,
+ });
+ if (this.props.onTouchStart) this.props.onTouchStart(e);
+ },
+
+ _handleTouchEnd(e) {
+ this.setState({zDepth: this.state.initialZDepth});
+ if (this.props.onTouchEnd) this.props.onTouchEnd(e);
+ },
+
+ _handleKeyboardFocus(e, keyboardFocused) {
+ if (keyboardFocused && !this.props.disabled) {
+ this.setState({zDepth: this.state.initialZDepth + 1});
+ ReactDOM.findDOMNode(this.refs.overlay).style.backgroundColor =
+ ColorManipulator.fade(this.getStyles().icon.color, 0.4);
+ } else if (!this.state.hovered) {
+ this.setState({zDepth: this.state.initialZDepth});
+ ReactDOM.findDOMNode(this.refs.overlay).style.backgroundColor = 'transparent';
+ }
+ },
+
+ render() {
+ let {
+ disabled,
+ mini,
+ secondary,
+ iconStyle,
+ iconClassName,
+ ...other} = this.props;
+
+ let styles = this.getStyles();
+
+ let iconElement;
+ if (iconClassName) {
+ iconElement = (
+
+ );
+ }
+
+ let children = Children.extend(this.props.children, {
+ style: this.mergeStyles(
+ styles.icon,
+ mini && styles.iconWhenMini,
+ iconStyle),
+ });
+
+ let buttonEventHandlers = disabled ? null : {
+ onMouseDown: this._handleMouseDown,
+ onMouseUp: this._handleMouseUp,
+ onMouseLeave: this._handleMouseLeave,
+ onMouseEnter: this._handleMouseEnter,
+ onTouchStart: this._handleTouchStart,
+ onTouchEnd: this._handleTouchEnd,
+ onKeyboardFocus: this._handleKeyboardFocus,
+ };
+
+ return (
+
+
+
+ {iconElement}
+ {children}
+
+
+
+ );
+ },
+});
+
+export default FloatingActionButton;
diff --git a/node_modules/material-ui/src/font-icon.jsx b/node_modules/material-ui/src/font-icon.jsx
new file mode 100644
index 0000000..56de059
--- /dev/null
+++ b/node_modules/material-ui/src/font-icon.jsx
@@ -0,0 +1,131 @@
+import React from 'react';
+import StylePropable from './mixins/style-propable';
+import Transitions from './styles/transitions';
+import getMuiTheme from './styles/getMuiTheme';
+
+const FontIcon = React.createClass({
+
+ propTypes: {
+ /**
+ * This is the font color of the font icon. If not specified,
+ * this component will default to muiTheme.palette.textColor.
+ */
+ color: React.PropTypes.string,
+
+ /**
+ * This is the icon color when the mouse hovers over the icon.
+ */
+ hoverColor: React.PropTypes.string,
+
+ /**
+ * Function called when mouse enters this element.
+ */
+ onMouseEnter: React.PropTypes.func,
+
+ /**
+ * Function called when mouse leaves this element.
+ */
+ onMouseLeave: React.PropTypes.func,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ onMouseEnter: () => {},
+ onMouseLeave: () => {},
+ };
+ },
+
+ getInitialState() {
+ return {
+ hovered: false,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ _handleMouseLeave(e) {
+ // hover is needed only when a hoverColor is defined
+ if (this.props.hoverColor !== undefined)
+ this.setState({hovered: false});
+ if (this.props.onMouseLeave) {
+ this.props.onMouseLeave(e);
+ }
+ },
+
+ _handleMouseEnter(e) {
+ // hover is needed only when a hoverColor is defined
+ if (this.props.hoverColor !== undefined)
+ this.setState({hovered: true});
+ if (this.props.onMouseEnter) {
+ this.props.onMouseEnter(e);
+ }
+ },
+
+ render() {
+ let {
+ color,
+ hoverColor,
+ onMouseLeave,
+ onMouseEnter,
+ style,
+ ...other,
+ } = this.props;
+
+ let spacing = this.state.muiTheme.rawTheme.spacing;
+ let offColor = color ? color :
+ style && style.color ? style.color :
+ this.state.muiTheme.rawTheme.palette.textColor;
+ let onColor = hoverColor ? hoverColor : offColor;
+
+ let mergedStyles = this.mergeStyles({
+ position: 'relative',
+ fontSize: spacing.iconSize,
+ display: 'inline-block',
+ userSelect: 'none',
+ transition: Transitions.easeOut(),
+ }, style, {
+ color: this.state.hovered ? onColor : offColor,
+ });
+
+ return (
+
+ );
+ },
+});
+
+export default FontIcon;
diff --git a/node_modules/material-ui/src/grid-list/grid-list.jsx b/node_modules/material-ui/src/grid-list/grid-list.jsx
new file mode 100644
index 0000000..cde1f0c
--- /dev/null
+++ b/node_modules/material-ui/src/grid-list/grid-list.jsx
@@ -0,0 +1,119 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const GridList = React.createClass({
+
+ propTypes: {
+ /**
+ * Number of px for one cell height.
+ */
+ cellHeight: React.PropTypes.number,
+
+ /**
+ * Grid Tiles that will be in Grid List.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * Number of columns.
+ */
+ cols: React.PropTypes.number,
+
+ /**
+ * Number of px for the padding/spacing between items.
+ */
+ padding: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ cols: 2,
+ padding: 4,
+ cellHeight: 180,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getStyles() {
+ return {
+ root: {
+ display: 'flex',
+ flexWrap: 'wrap',
+ margin: -this.props.padding / 2,
+ },
+ item: {
+ boxSizing: 'border-box',
+ padding: this.props.padding / 2,
+ },
+ };
+ },
+
+ render() {
+ const {
+ cols,
+ padding,
+ cellHeight,
+ children,
+ style,
+ ...other,
+ } = this.props;
+
+ const styles = this.getStyles();
+
+ const mergedRootStyles = this.mergeStyles(styles.root, style);
+
+ const wrappedChildren = React.Children.map(children, (currentChild) => {
+ const childCols = currentChild.props.cols || 1;
+ const childRows = currentChild.props.rows || 1;
+ const itemStyle = this.mergeStyles(styles.item, {
+ width: (100 / cols * childCols) + '%',
+ height: cellHeight * childRows + padding,
+ });
+
+ return
{currentChild}
;
+ });
+
+ return (
+
{wrappedChildren}
+ );
+ },
+});
+
+export default GridList;
diff --git a/node_modules/material-ui/src/grid-list/grid-tile.jsx b/node_modules/material-ui/src/grid-list/grid-tile.jsx
new file mode 100644
index 0000000..d9f37d1
--- /dev/null
+++ b/node_modules/material-ui/src/grid-list/grid-tile.jsx
@@ -0,0 +1,269 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const GridTile = React.createClass({
+
+ propTypes: {
+ /**
+ * An IconButton element to be used as secondary action target
+ * (primary action target is the tile itself).
+ */
+ actionIcon: React.PropTypes.element,
+
+ /**
+ * Position of secondary action IconButton.
+ */
+ actionPosition: React.PropTypes.oneOf(['left', 'right']),
+
+ /**
+ * Theoretically you can pass any node as children, but the main use case is to pass an img,
+ * in whichcase GridTile takes care of making the image "cover" available space
+ * (similar to background-size: cover or to object-fit:cover).
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * Width of the tile in number of grid cells.
+ */
+ cols: React.PropTypes.number,
+
+ /**
+ * Either a string used as tag name for the tile root element, or a ReactComponent.
+ * This is useful when you have, for example, a custom implementation of
+ * a navigation link (that knowsabout your routes) and you want to use it as primary tile action.
+ * In case you pass a ReactComponent, please make sure that it passes all props,
+ * accepts styles overrides and render it's children.
+ */
+ rootClass: React.PropTypes.oneOfType([
+ React.PropTypes.string,
+ React.PropTypes.object,
+ ]),
+
+ /**
+ * Height of the tile in number of grid cells.
+ */
+ rows: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * String or element serving as subtitle (support text).
+ */
+ subtitle: React.PropTypes.node,
+
+ /**
+ * Title to be displayed on tile.
+ */
+ title: React.PropTypes.node,
+
+ /**
+ * Style used for title bar background.
+ * Useful for setting custom gradients for example
+ */
+ titleBackground: React.PropTypes.string,
+
+ /**
+ * Position of the title bar (container of title, subtitle and action icon).
+ */
+ titlePosition: React.PropTypes.oneOf(['top', 'bottom']),
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ titlePosition: 'bottom',
+ titleBackground: 'rgba(0, 0, 0, 0.4)',
+ actionPosition: 'right',
+ cols: 1,
+ rows: 1,
+ rootClass: 'div',
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ this._ensureImageCover();
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getStyles() {
+ const spacing = this.state.muiTheme.rawTheme.spacing;
+ const themeVariables = this.state.muiTheme.gridTile;
+ const actionPos = this.props.actionIcon ? this.props.actionPosition : null;
+ const gutterLess = spacing.desktopGutterLess;
+
+ let styles = {
+ root: {
+ position: 'relative',
+ display: 'block',
+ height: '100%',
+ overflow: 'hidden',
+ },
+ titleBar: {
+ position: 'absolute',
+ left: 0,
+ right: 0,
+ [this.props.titlePosition]: 0,
+ height: this.props.subtitle ? 68 : 48,
+ background: this.props.titleBackground,
+ display: 'flex',
+ alignItems: 'center',
+ },
+ titleWrap: {
+ flexGrow: 1,
+ marginLeft: actionPos !== 'left' ? gutterLess : 0,
+ marginRight: actionPos === 'left' ? gutterLess : 0,
+ color: themeVariables.textColor,
+ overflow: 'hidden',
+ },
+ title: {
+ fontSize: '16px',
+ textOverflow: 'ellipsis',
+ overflow: 'hidden',
+ whiteSpace: 'nowrap',
+ },
+ subtitle: {
+ fontSize: '12px',
+ textOverflow: 'ellipsis',
+ overflow: 'hidden',
+ whiteSpace: 'nowrap',
+ },
+ actionIcon: {
+ order: actionPos === 'left' ? -1 : 1,
+ },
+ childImg: {
+ height: '100%',
+ transform: 'translateX(-50%)',
+ position: 'relative',
+ left: '50%',
+ },
+ };
+ return styles;
+ },
+
+ componeneDidUpdate() {
+ this._ensureImageCover();
+ },
+
+ _ensureImageCover() {
+ let imgEl = ReactDOM.findDOMNode(this.refs.img);
+
+ if (imgEl) {
+ let fit = () => {
+ if (imgEl.offsetWidth < imgEl.parentNode.offsetWidth) {
+ imgEl.style.height = 'auto';
+ imgEl.style.left = '0';
+ imgEl.style.width = '100%';
+ imgEl.style.top = '50%';
+ imgEl.style.transform = imgEl.style.WebkitTransform = 'translateY(-50%)';
+ }
+ imgEl.removeEventListener('load', fit);
+ imgEl = null; // prevent closure memory leak
+ };
+ if (imgEl.complete) {
+ fit();
+ } else {
+ imgEl.addEventListener('load', fit);
+ }
+ }
+ },
+
+
+ render() {
+ const {
+ title,
+ subtitle,
+ titlePosition,
+ titleBackground,
+ actionIcon,
+ actionPosition,
+ style,
+ children,
+ rootClass,
+ ...other,
+ } = this.props;
+
+ const styles = this.getStyles();
+
+ const mergedRootStyles = this.mergeStyles(styles.root, style);
+
+ let titleBar = null;
+
+ if (title) {
+ titleBar = (
+
+
+
{title}
+ {
+ subtitle ? (
{subtitle}
) : null
+ }
+
+ {
+ actionIcon ? (
{actionIcon}
) : null
+ }
+
+ );
+ }
+
+ let newChildren = children;
+
+ // if there is an image passed as children
+ // clone it an put our styles
+ if (React.Children.count(children) === 1) {
+ newChildren = React.Children.map(children, (child) => {
+ if (child.type === 'img') {
+ return React.cloneElement(child, {
+ ref: 'img',
+ style: this.prepareStyles(styles.childImg, child.props.style),
+ });
+ } else {
+ return child;
+ }
+ });
+ }
+
+ const RootTag = rootClass;
+ return (
+
+ {newChildren}
+ {titleBar}
+
+ );
+ },
+});
+
+export default GridTile;
diff --git a/node_modules/material-ui/src/grid-list/index.js b/node_modules/material-ui/src/grid-list/index.js
new file mode 100644
index 0000000..cb21a91
--- /dev/null
+++ b/node_modules/material-ui/src/grid-list/index.js
@@ -0,0 +1,10 @@
+import GridList from './grid-list';
+import GridTile from './grid-tile';
+
+export {GridList};
+export {GridTile};
+
+export default {
+ GridList,
+ GridTile,
+};
diff --git a/node_modules/material-ui/src/hoc/selectable-enhance.js b/node_modules/material-ui/src/hoc/selectable-enhance.js
new file mode 100644
index 0000000..c77512c
--- /dev/null
+++ b/node_modules/material-ui/src/hoc/selectable-enhance.js
@@ -0,0 +1,141 @@
+import React from 'react';
+import getMuiTheme from '../styles/getMuiTheme';
+import StylePropable from '../mixins/style-propable';
+import ColorManipulator from '../utils/color-manipulator';
+
+export const SelectableContainerEnhance = (Component) => {
+ const composed = React.createClass({
+
+ displayName: `Selectable${Component.displayName}`,
+
+ propTypes: {
+ children: React.PropTypes.node,
+ selectedItemStyle: React.PropTypes.object,
+ valueLink: React.PropTypes.shape({
+ value: React.PropTypes.any,
+ requestChange: React.PropTypes.func,
+ }).isRequired,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getValueLink: function(props) {
+ return props.valueLink || {
+ value: props.value,
+ requestChange: props.onChange,
+ };
+ },
+
+ extendChild(child, styles, selectedItemStyle) {
+ if (child && child.type && child.type.displayName === 'ListItem') {
+ let selected = this.isChildSelected(child, this.props);
+ let selectedChildrenStyles = {};
+ if (selected) {
+ selectedChildrenStyles = this.mergeStyles(styles, selectedItemStyle);
+ }
+
+ let mergedChildrenStyles = this.mergeStyles(child.props.style || {}, selectedChildrenStyles);
+
+ this.keyIndex += 1;
+
+ return React.cloneElement(child, {
+ onTouchTap: (e) => {
+ this.handleItemTouchTap(e, child);
+ if (child.props.onTouchTap) {
+ child.props.onTouchTap(e);
+ }
+ },
+ key: this.keyIndex,
+ style: mergedChildrenStyles,
+ nestedItems: child.props.nestedItems.map((child) => this.extendChild(child, styles, selectedItemStyle)),
+ initiallyOpen: this.isInitiallyOpen(child),
+ });
+ } else {
+ return child;
+ }
+ },
+
+ isInitiallyOpen(child) {
+ if (child.props.initiallyOpen) {
+ return child.props.initiallyOpen;
+ }
+ return this.hasSelectedDescendant(false, child);
+ },
+
+ hasSelectedDescendant(previousValue, child) {
+ if (React.isValidElement(child) && child.props.nestedItems && child.props.nestedItems.length > 0) {
+ return child.props.nestedItems.reduce(this.hasSelectedDescendant, previousValue);
+ }
+ return previousValue || this.isChildSelected(child, this.props);
+ },
+
+ isChildSelected(child, props) {
+ let itemValue = this.getValueLink(props).value;
+ let childValue = child.props.value;
+
+ return (itemValue === childValue);
+ },
+
+ handleItemTouchTap(e, item) {
+ let valueLink = this.getValueLink(this.props);
+ let itemValue = item.props.value;
+ let menuValue = valueLink.value;
+ if ( itemValue !== menuValue) {
+ valueLink.requestChange(e, itemValue);
+ }
+ },
+
+ render() {
+ const {children, selectedItemStyle} = this.props;
+ this.keyIndex = 0;
+ let styles = {};
+
+ if (!selectedItemStyle) {
+ let textColor = this.state.muiTheme.rawTheme.palette.textColor;
+ let selectedColor = ColorManipulator.fade(textColor, 0.2);
+ styles = {
+ backgroundColor: selectedColor,
+ };
+ }
+
+ let newChildren = React.Children.map(children, (child) => this.extendChild(child, styles, selectedItemStyle));
+
+ return (
+
+ {newChildren}
+
+ );
+ },
+ });
+
+ return composed;
+};
+
+export default SelectableContainerEnhance;
diff --git a/node_modules/material-ui/src/icon-button.jsx b/node_modules/material-ui/src/icon-button.jsx
new file mode 100644
index 0000000..70eeaaf
--- /dev/null
+++ b/node_modules/material-ui/src/icon-button.jsx
@@ -0,0 +1,318 @@
+import React from 'react';
+import StylePropable from './mixins/style-propable';
+import ContextPure from './mixins/context-pure';
+import Transitions from './styles/transitions';
+import PropTypes from './utils/prop-types';
+import EnhancedButton from './enhanced-button';
+import FontIcon from './font-icon';
+import Tooltip from './tooltip';
+import Children from './utils/children';
+import getMuiTheme from './styles/getMuiTheme';
+
+const IconButton = React.createClass({
+
+ propTypes: {
+ /**
+ * Can be used to pass a font icon as the icon for the button.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Disables the icon button.
+ */
+ disabled: React.PropTypes.bool,
+
+ /**
+ * If you are using a stylesheet for your
+ * icons, enter the class name for the icon to be used here.
+ */
+ iconClassName: React.PropTypes.string,
+
+ /**
+ * Overrides the inline-styles of the icon element.
+ */
+ iconStyle: React.PropTypes.object,
+
+ /**
+ * Callback function for when the component loses focus.
+ */
+ onBlur: React.PropTypes.func,
+
+ /**
+ * Callback function for when the component gains focus.
+ */
+ onFocus: React.PropTypes.func,
+
+ /**
+ * Callback function for when the component
+ * receives keyboard focus.
+ */
+ onKeyboardFocus: React.PropTypes.func,
+
+ /**
+ * Callback function for when mouse enters element.
+ */
+ onMouseEnter: React.PropTypes.func,
+
+ /**
+ * Callback function for when mouse leaves element.
+ */
+ onMouseLeave: React.PropTypes.func,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The tooltip text to show.
+ */
+ tooltip: React.PropTypes.node,
+
+ /**
+ * Allows the tooltip to be viewed with different
+ * alignments: "bottom-center", "top-center",
+ * "bottom-right", "top-right", "bottom-left" and "top-left".
+ */
+ tooltipPosition: PropTypes.cornersAndCenter,
+
+ /**
+ * Styles prop passed down to the tooltip.
+ */
+ tooltipStyles: React.PropTypes.object,
+
+ /**
+ * Prop for tooltip to make it larger for mobile.
+ */
+ touch: React.PropTypes.bool,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ContextPure,
+ ],
+
+ statics: {
+ getRelevantContextKeys(muiTheme) {
+ const spacing = muiTheme.rawTheme.spacing;
+ const palette = muiTheme.rawTheme.palette;
+
+ return {
+ iconSize: spacing.iconSize,
+ textColor: palette.textColor,
+ disabledColor: palette.disabledColor,
+ };
+ },
+
+ getChildrenClasses() {
+ return [
+ EnhancedButton,
+ FontIcon,
+ Tooltip,
+ ];
+ },
+ },
+
+ getDefaultProps() {
+ return {
+ disabled: false,
+ iconStyle: {},
+ tooltipPosition: 'bottom-center',
+ touch: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ tooltipShown: false,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getStyles() {
+ const {
+ iconSize,
+ textColor,
+ disabledColor,
+ } = this.constructor.getRelevantContextKeys(this.state.muiTheme);
+
+ let styles = {
+ root: {
+ position: 'relative',
+ boxSizing: 'border-box',
+ transition: Transitions.easeOut(),
+ padding: iconSize / 2,
+ width: iconSize * 2,
+ height: iconSize * 2,
+ fontSize: 0,
+ },
+ tooltip: {
+ boxSizing: 'border-box',
+ },
+ icon: {
+ color: textColor,
+ fill: textColor,
+ },
+ overlay: {
+ position: 'relative',
+ top: 0,
+ width: '100%',
+ height: '100%',
+ background: disabledColor,
+ },
+ disabled: {
+ color: disabledColor,
+ fill: disabledColor,
+ },
+ };
+
+ return styles;
+ },
+
+ setKeyboardFocus() {
+ this.refs.button.setKeyboardFocus();
+ },
+
+ _showTooltip() {
+ if (this.props.tooltip) {
+ this.setState({tooltipShown: true});
+ }
+ },
+
+ _hideTooltip() {
+ if (this.props.tooltip) this.setState({tooltipShown: false});
+ },
+
+ _handleBlur(e) {
+ this._hideTooltip();
+ if (this.props.onBlur) this.props.onBlur(e);
+ },
+
+ _handleFocus(e) {
+ this._showTooltip();
+ if (this.props.onFocus) this.props.onFocus(e);
+ },
+
+ _handleMouseLeave(e) {
+ if (!this.refs.button.isKeyboardFocused()) this._hideTooltip();
+ if (this.props.onMouseLeave) this.props.onMouseLeave(e);
+ },
+
+ _handleMouseEnter(e) {
+ this._showTooltip();
+ if (this.props.onMouseEnter) this.props.onMouseEnter(e);
+ },
+
+ _handleKeyboardFocus(e, keyboardFocused) {
+ if (keyboardFocused && !this.props.disabled) {
+ this._showTooltip();
+ if (this.props.onFocus) this.props.onFocus(e);
+ } else if (!this.state.hovered) {
+ this._hideTooltip();
+ if (this.props.onBlur) this.props.onBlur(e);
+ }
+
+ if (this.props.onKeyboardFocus) this.props.onKeyboardFocus(e, keyboardFocused);
+ },
+
+ render() {
+ let {
+ disabled,
+ iconClassName,
+ tooltip,
+ touch,
+ iconStyle,
+ ...other,
+ } = this.props;
+ let fonticon;
+
+ let styles = this.getStyles();
+ let tooltipPosition = this.props.tooltipPosition.split('-');
+
+ let tooltipElement = tooltip ? (
+
+ ) : null;
+
+ if (iconClassName) {
+ let {
+ iconHoverColor,
+ ...iconStyleFontIcon,
+ } = iconStyle;
+
+ fonticon = (
+
+ {this.props.children}
+
+ );
+ }
+
+ let childrenStyle = disabled ? this.mergeStyles(iconStyle, styles.disabled) : iconStyle;
+
+ return (
+
+ {tooltipElement}
+ {fonticon}
+ {Children.extend(this.props.children, {
+ style: childrenStyle,
+ })}
+
+ );
+ },
+
+});
+
+export default IconButton;
diff --git a/node_modules/material-ui/src/index.js b/node_modules/material-ui/src/index.js
new file mode 100644
index 0000000..1eb2a48
--- /dev/null
+++ b/node_modules/material-ui/src/index.js
@@ -0,0 +1,227 @@
+import AppBar from './app-bar';
+import AppCanvas from './app-canvas';
+import AutoComplete from './auto-complete';
+import Avatar from './avatar';
+import Badge from './badge';
+import BeforeAfterWrapper from './before-after-wrapper';
+import Card from './card/card';
+import CardActions from './card/card-actions';
+import CardExpandable from './card/card-expandable';
+import CardHeader from './card/card-header';
+import CardMedia from './card/card-media';
+import CardText from './card/card-text';
+import CardTitle from './card/card-title';
+import Checkbox from './checkbox';
+import CircularProgress from './circular-progress';
+import ClearFix from './clearfix';
+import DatePicker from './date-picker/date-picker';
+import DatePickerDialog from './date-picker/date-picker-dialog';
+import Dialog from './dialog';
+import Divider from './divider';
+import DropDownIcon from './drop-down-icon';
+import DropDownMenu from './drop-down-menu';
+import EnhancedButton from './enhanced-button';
+import FlatButton from './flat-button';
+import FloatingActionButton from './floating-action-button';
+import FontIcon from './font-icon';
+import GridList from './grid-list/grid-list';
+import GridTile from './grid-list/grid-tile';
+import IconButton from './icon-button';
+import IconMenu from './menus/icon-menu';
+import LeftNav from './left-nav';
+import LinearProgress from './linear-progress';
+import List from './lists/list';
+import ListDivider from './lists/list-divider';
+import ListItem from './lists/list-item';
+import Menu from './menus/menu';
+import MenuItem from './menus/menu-item';
+import Mixins from './mixins';
+import Overlay from './overlay';
+import Paper from './paper';
+import Popover from './popover/popover';
+import RadioButton from './radio-button';
+import RadioButtonGroup from './radio-button-group';
+import RaisedButton from './raised-button';
+import RefreshIndicator from './refresh-indicator';
+import Ripples from './ripples';
+import SelectField from './select-field';
+import SelectableContainerEnhance from './hoc/selectable-enhance';
+import Slider from './slider';
+import SvgIcon from './svg-icon';
+import Styles from './styles';
+import Snackbar from './snackbar';
+import Tab from './tabs/tab';
+import Tabs from './tabs/tabs';
+import Table from './table/table';
+import TableBody from './table/table-body';
+import TableFooter from './table/table-footer';
+import TableHeader from './table/table-header';
+import TableHeaderColumn from './table/table-header-column';
+import TableRow from './table/table-row';
+import TableRowColumn from './table/table-row-column';
+import Toggle from './toggle';
+import ThemeWrapper from './theme-wrapper';
+import TimePicker from './time-picker';
+import TextField from './TextField';
+import Toolbar from './toolbar/toolbar';
+import ToolbarGroup from './toolbar/toolbar-group';
+import ToolbarSeparator from './toolbar/toolbar-separator';
+import ToolbarTitle from './toolbar/toolbar-title';
+import Tooltip from './tooltip';
+import Utils from './utils';
+
+export {AppBar};
+export {AppCanvas};
+export {AutoComplete};
+export {Avatar};
+export {Badge};
+export {BeforeAfterWrapper};
+export {Card};
+export {CardActions};
+export {CardExpandable};
+export {CardHeader};
+export {CardMedia};
+export {CardText};
+export {CardTitle};
+export {Checkbox};
+export {CircularProgress};
+export {ClearFix};
+export {DatePicker};
+export {DatePickerDialog};
+export {Dialog};
+export {Divider};
+export {DropDownIcon};
+export {DropDownMenu};
+export {EnhancedButton};
+export {FlatButton};
+export {FloatingActionButton};
+export {FontIcon};
+export {GridList};
+export {GridTile};
+export {IconButton};
+export {IconMenu};
+export {LeftNav};
+export {LinearProgress};
+export {List};
+export {ListDivider};
+export {ListItem};
+export {Menu};
+export {MenuItem};
+export {Mixins};
+export {Overlay};
+export {Paper};
+export {Popover};
+export {RadioButton};
+export {RadioButtonGroup};
+export {RaisedButton};
+export {RefreshIndicator};
+export {Ripples};
+export {SelectField};
+export {SelectableContainerEnhance};
+export {Slider};
+export {SvgIcon};
+export {Styles};
+export {Snackbar};
+export {Tab};
+export {Tabs};
+export {Table};
+export {TableBody};
+export {TableFooter};
+export {TableHeader};
+export {TableHeaderColumn};
+export {TableRow};
+export {TableRowColumn};
+export {Toggle};
+export {ThemeWrapper};
+export {TimePicker};
+export {TextField};
+export {Toolbar};
+export {ToolbarGroup};
+export {ToolbarSeparator};
+export {ToolbarTitle};
+export {Tooltip};
+export {Utils};
+
+import NavigationMenu from './svg-icons/navigation/menu';
+import NavigationChevronLeft from './svg-icons/navigation/chevron-left';
+import NavigationChevronRight from './svg-icons/navigation/chevron-right';
+
+export const Icons = {
+ NavigationMenu,
+ NavigationChevronLeft,
+ NavigationChevronRight,
+};
+
+export default {
+ AppBar,
+ AppCanvas,
+ AutoComplete,
+ Avatar,
+ Badge,
+ BeforeAfterWrapper,
+ Card,
+ CardActions,
+ CardExpandable,
+ CardHeader,
+ CardMedia,
+ CardText,
+ CardTitle,
+ Checkbox,
+ CircularProgress,
+ ClearFix,
+ DatePicker,
+ DatePickerDialog,
+ Dialog,
+ Divider,
+ DropDownIcon,
+ DropDownMenu,
+ EnhancedButton,
+ FlatButton,
+ FloatingActionButton,
+ FontIcon,
+ GridList,
+ GridTile,
+ IconButton,
+ IconMenu,
+ LeftNav,
+ LinearProgress,
+ List,
+ ListDivider,
+ ListItem,
+ Menu,
+ MenuItem,
+ Mixins,
+ Overlay,
+ Paper,
+ Popover,
+ RadioButton,
+ RadioButtonGroup,
+ RaisedButton,
+ RefreshIndicator,
+ Ripples,
+ SelectField,
+ SelectableContainerEnhance,
+ Slider,
+ SvgIcon,
+ Styles,
+ Snackbar,
+ Tab,
+ Tabs,
+ Table,
+ TableBody,
+ TableFooter,
+ TableHeader,
+ TableHeaderColumn,
+ TableRow,
+ TableRowColumn,
+ Toggle,
+ ThemeWrapper,
+ TimePicker,
+ TextField,
+ Toolbar,
+ ToolbarGroup,
+ ToolbarSeparator,
+ ToolbarTitle,
+ Tooltip,
+ Utils,
+};
diff --git a/node_modules/material-ui/src/ink-bar.jsx b/node_modules/material-ui/src/ink-bar.jsx
new file mode 100644
index 0000000..03bf61c
--- /dev/null
+++ b/node_modules/material-ui/src/ink-bar.jsx
@@ -0,0 +1,82 @@
+import React from 'react';
+import Transitions from './styles/transitions';
+import StylePropable from './mixins/style-propable';
+import getMuiTheme from './styles/getMuiTheme';
+
+const InkBar = React.createClass({
+
+ propTypes: {
+ color: React.PropTypes.string,
+ left: React.PropTypes.string.isRequired,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ width: React.PropTypes.string.isRequired,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ render() {
+ let {
+ color,
+ left,
+ width,
+ style,
+ ...other,
+ } = this.props;
+
+ let colorStyle = color ? {backgroundColor: color} : undefined;
+ let styles = this.mergeStyles({
+ left: left,
+ width: width,
+ bottom: 0,
+ display: 'block',
+ backgroundColor: this.state.muiTheme.inkBar.backgroundColor,
+ height: 2,
+ marginTop: -2,
+ position: 'relative',
+ transition: Transitions.easeOut('1s', 'left'),
+ }, this.props.style, colorStyle);
+
+ return (
+
+
+
+ );
+ },
+
+});
+
+export default InkBar;
diff --git a/node_modules/material-ui/src/left-nav.jsx b/node_modules/material-ui/src/left-nav.jsx
new file mode 100644
index 0000000..f130eea
--- /dev/null
+++ b/node_modules/material-ui/src/left-nav.jsx
@@ -0,0 +1,564 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import KeyCode from './utils/key-code';
+import StylePropable from './mixins/style-propable';
+import autoPrefix from './styles/auto-prefix';
+import Transitions from './styles/transitions';
+import WindowListenable from './mixins/window-listenable';
+import Overlay from './overlay';
+import Paper from './paper';
+import Menu from './menu/menu';
+import getMuiTheme from './styles/getMuiTheme';
+import warning from 'warning';
+import deprecated from './utils/deprecatedPropType';
+
+let openNavEventHandler = null;
+
+const LeftNav = React.createClass({
+
+ propTypes: {
+ /**
+ * The contents of the `LeftNav`
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Indicates whether swiping sideways when the `LeftNav` is closed should open it.
+ */
+ disableSwipeToOpen: React.PropTypes.bool,
+
+ /**
+ * Indicates that the `LeftNav` should be docked. In this state, the overlay won't
+ * show and clicking on a menu item will not close the `LeftNav`.
+ */
+ docked: React.PropTypes.bool,
+
+ /**
+ * A react component that will be displayed above all the menu items.
+ * Usually, this is used for a logo or a profile image.
+ */
+ header: deprecated(React.PropTypes.element,
+ 'Instead, use composability.'),
+
+ /**
+ * Class name for the menuItem.
+ */
+ menuItemClassName: deprecated(React.PropTypes.string,
+ 'It will be removed with menuItems.'),
+
+ /**
+ * Class name for the link menuItem.
+ */
+ menuItemClassNameLink: deprecated(React.PropTypes.string,
+ 'It will be removed with menuItems.'),
+
+ /**
+ * Class name for the subheader menuItem.
+ */
+ menuItemClassNameSubheader: deprecated(React.PropTypes.string,
+ 'It will be removed with menuItems.'),
+
+ /**
+ * JSON data representing all menu items to render.
+ */
+ menuItems: deprecated(React.PropTypes.array,
+ 'Instead, use composability.'),
+
+ /**
+ * Fired when a menu item is clicked that is not the
+ * one currently selected. Note that this requires the `injectTapEventPlugin`
+ * component. See the "Get Started" section for more detail.
+ */
+ onChange: deprecated(React.PropTypes.func,
+ 'It will be removed with menuItems.'),
+
+ /**
+ * Fired when the component is opened.
+ */
+ onNavClose: deprecated(React.PropTypes.func,
+ 'Instead, use onRequestChange.'),
+
+ /**
+ * Fired when the component is closed.
+ */
+ onNavOpen: deprecated(React.PropTypes.func,
+ 'Instead, use onRequestChange.'),
+
+ /**
+ * Callback function that is fired when the open state of the `LeftNav` is
+ * requested to be changed. The provided open argument determines whether
+ * the `LeftNav` is requested to be opened or closed. Also, the reason
+ * argument states why the `LeftNav` got closed or opend. It can be either
+ * `'clickaway'` for menuItem and overlay clicks, `'escape'` for pressing the
+ * escape key and 'swipe' for swiping. For opening the reason is always `'swipe'`.
+ */
+ onRequestChange: React.PropTypes.func,
+
+ /**
+ * Indicates that the `LeftNav` should be opened, closed or uncontrolled.
+ * Providing a boolean will turn the `LeftNav` into a controlled component.
+ */
+ open: React.PropTypes.bool,
+
+ /**
+ * Positions the `LeftNav` to open from the right side.
+ */
+ openRight: React.PropTypes.bool,
+
+ /**
+ * The `className` to add to the `Overlay` component that is rendered behind the `LeftNav`.
+ */
+ overlayClassName: React.PropTypes.string,
+
+ /**
+ * Overrides the inline-styles of the `Overlay` component that is rendered behind the `LeftNav`.
+ */
+ overlayStyle: React.PropTypes.object,
+
+ /**
+ * Indicates the particular item in the menuItems array that is currently selected.
+ */
+ selectedIndex: deprecated(React.PropTypes.number,
+ 'It will be removed with menuItems.'),
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The width of the left most (or right most) area in pixels where the `LeftNav` can be
+ * swiped open from. Setting this to `null` spans that area to the entire page
+ * (**CAUTION!** Setting this property to `null` might cause issues with sliders and
+ * swipeable `Tabs`, use at your own risk).
+ */
+ swipeAreaWidth: React.PropTypes.number,
+
+ /**
+ * The width of the `LeftNav` in pixels. Defaults to using the values from theme.
+ */
+ width: React.PropTypes.number,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ WindowListenable,
+ ],
+
+ getDefaultProps() {
+ return {
+ disableSwipeToOpen: false,
+ docked: true,
+ open: null,
+ openRight: false,
+ swipeAreaWidth: 30,
+ width: null,
+ };
+ },
+
+ getInitialState() {
+ this._maybeSwiping = false;
+ this._touchStartX = null;
+ this._touchStartY = null;
+ this._swipeStartX = null;
+
+ return {
+ open: (this.props.open !== null ) ? this.props.open : this.props.docked,
+ swiping: null,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ this._updateMenuHeight();
+ this._enableSwipeHandling();
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ const newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ const newState = {muiTheme: newMuiTheme};
+
+ // If docked is changed, change the open state for when uncontrolled.
+ if (this.props.docked !== nextProps.docked) newState.open = nextProps.docked;
+
+ // If controlled then the open prop takes precedence.
+ if (nextProps.open !== null) newState.open = nextProps.open;
+
+ this.setState(newState);
+ },
+
+ componentDidUpdate() {
+ this._updateMenuHeight();
+ this._enableSwipeHandling();
+ },
+
+ componentWillUnmount() {
+ this._disableSwipeHandling();
+ },
+
+ windowListeners: {
+ keyup: '_onWindowKeyUp',
+ resize: '_onWindowResize',
+ },
+
+ toggle() {
+ warning(false, 'using methods on left nav has been deprecated. Please refer to documentations.');
+ if (this.state.open) this.close();
+ else this.open();
+ return this;
+ },
+
+ close() {
+ warning(false, 'using methods on left nav has been deprecated. Please refer to documentations.');
+ this.setState({open: false});
+ if (this.props.onNavClose) this.props.onNavClose();
+ return this;
+ },
+
+ open() {
+ warning(false, 'using methods on left nav has been deprecated. Please refer to documentations.');
+ this.setState({open: true});
+ if (this.props.onNavOpen) this.props.onNavOpen();
+ return this;
+ },
+
+ getStyles() {
+ const muiTheme = this.state.muiTheme;
+ const theme = muiTheme.leftNav;
+ const rawTheme = muiTheme.rawTheme;
+
+ const x = this._getTranslateMultiplier() * (this.state.open ? 0 : this._getMaxTranslateX());
+
+ const styles = {
+ root: {
+ height: '100%',
+ width: this.props.width || theme.width,
+ position: 'fixed',
+ zIndex: muiTheme.zIndex.leftNav,
+ left: 0,
+ top: 0,
+ transform: `translate3d(${x}px, 0, 0)`,
+ transition: !this.state.swiping && Transitions.easeOut(null, 'transform', null),
+ backgroundColor: theme.color,
+ overflow: 'auto',
+ },
+ menu: {
+ overflowY: 'auto',
+ overflowX: 'hidden',
+ height: '100%',
+ borderRadius: '0',
+ },
+ overlay: {
+ zIndex: muiTheme.zIndex.leftNavOverlay,
+ pointerEvents: this.state.open ? 'auto' : 'none', // Bypass mouse events when left nav is closing.
+ },
+ menuItem: {
+ height: rawTheme.spacing.desktopLeftNavMenuItemHeight,
+ lineHeight: `${rawTheme.spacing.desktopLeftNavMenuItemHeight}px`,
+ },
+ rootWhenOpenRight: {
+ left: 'auto',
+ right: 0,
+ },
+ };
+
+ styles.menuItemLink = this.mergeStyles(styles.menuItem, {
+ display: 'block',
+ textDecoration: 'none',
+ color: rawTheme.palette.textColor,
+ });
+ styles.menuItemSubheader = this.mergeStyles(styles.menuItem, {
+ overflow: 'hidden',
+ });
+
+ return styles;
+ },
+
+ _shouldShow() {
+ return this.state.open || !!this.state.swiping; // component is swiping
+ },
+
+ _close(reason) {
+ if (this.props.open === null) this.setState({open: false});
+ if (this.props.onRequestChange) this.props.onRequestChange(false, reason);
+ return this;
+ },
+
+ _open(reason) {
+ if (this.props.open === null) this.setState({open: true});
+ if (this.props.onRequestChange) this.props.onRequestChange(true, reason);
+ return this;
+ },
+
+ _updateMenuHeight() {
+ if (this.props.header) {
+ const menu = ReactDOM.findDOMNode(this.refs.menuItems);
+ if (menu) {
+ const container = ReactDOM.findDOMNode(this.refs.clickAwayableElement);
+ const menuHeight = container.clientHeight - menu.offsetTop;
+ menu.style.height = menuHeight + 'px';
+ }
+ }
+ },
+
+ _onMenuItemClick(e, key, payload) {
+ if (this.props.onChange && this.props.selectedIndex !== key) {
+ this.props.onChange(e, key, payload);
+ }
+ if (!this.props.docked) this._close('clickaway');
+ },
+
+ _onOverlayTouchTap(event) {
+ event.preventDefault();
+ this._close('clickaway');
+ },
+
+ _onWindowKeyUp(e) {
+ if (e.keyCode === KeyCode.ESC &&
+ !this.props.docked &&
+ this.state.open) {
+ this._close('escape');
+ }
+ },
+
+ _onWindowResize() {
+ this._updateMenuHeight();
+ },
+
+ _getMaxTranslateX() {
+ const width = this.props.width || this.state.muiTheme.leftNav.width;
+ return width + 10;
+ },
+
+ _getTranslateMultiplier() {
+ return this.props.openRight ? 1 : -1;
+ },
+
+ _enableSwipeHandling() {
+ if (!this.props.docked) {
+ document.body.addEventListener('touchstart', this._onBodyTouchStart);
+ if (!openNavEventHandler) {
+ openNavEventHandler = this._onBodyTouchStart;
+ }
+ } else {
+ this._disableSwipeHandling();
+ }
+ },
+
+ _disableSwipeHandling() {
+ document.body.removeEventListener('touchstart', this._onBodyTouchStart);
+ if (openNavEventHandler === this._onBodyTouchStart) {
+ openNavEventHandler = null;
+ }
+ },
+
+ _onBodyTouchStart(e) {
+
+ const swipeAreaWidth = this.props.swipeAreaWidth;
+
+ const touchStartX = e.touches[0].pageX;
+ const touchStartY = e.touches[0].pageY;
+
+ // Open only if swiping from far left (or right) while closed
+ if (swipeAreaWidth !== null && !this.state.open) {
+ if (this.props.openRight) {
+ // If openRight is true calculate from the far right
+ if (touchStartX < document.body.offsetWidth - swipeAreaWidth) return;
+ } else {
+ // If openRight is false calculate from the far left
+ if (touchStartX > swipeAreaWidth) return;
+ }
+ }
+
+ if (!this.state.open &&
+ (openNavEventHandler !== this._onBodyTouchStart ||
+ this.props.disableSwipeToOpen)
+ ) {
+ return;
+ }
+
+ this._maybeSwiping = true;
+ this._touchStartX = touchStartX;
+ this._touchStartY = touchStartY;
+
+ document.body.addEventListener('touchmove', this._onBodyTouchMove);
+ document.body.addEventListener('touchend', this._onBodyTouchEnd);
+ document.body.addEventListener('touchcancel', this._onBodyTouchEnd);
+ },
+
+ _setPosition(translateX) {
+ const leftNav = ReactDOM.findDOMNode(this.refs.clickAwayableElement);
+ const transformCSS = 'translate3d(' + (this._getTranslateMultiplier() * translateX) + 'px, 0, 0)';
+ this.refs.overlay.setOpacity(1 - translateX / this._getMaxTranslateX());
+ autoPrefix.set(leftNav.style, 'transform', transformCSS, this.state.muiTheme);
+ },
+
+ _getTranslateX(currentX) {
+ return Math.min(
+ Math.max(
+ this.state.swiping === 'closing' ?
+ this._getTranslateMultiplier() * (currentX - this._swipeStartX) :
+ this._getMaxTranslateX() - this._getTranslateMultiplier() * (this._swipeStartX - currentX),
+ 0
+ ),
+ this._getMaxTranslateX()
+ );
+ },
+
+ _onBodyTouchMove(e) {
+ const currentX = e.touches[0].pageX;
+ const currentY = e.touches[0].pageY;
+
+ if (this.state.swiping) {
+ e.preventDefault();
+ this._setPosition(this._getTranslateX(currentX));
+ } else if (this._maybeSwiping) {
+ const dXAbs = Math.abs(currentX - this._touchStartX);
+ const dYAbs = Math.abs(currentY - this._touchStartY);
+ // If the user has moved his thumb ten pixels in either direction,
+ // we can safely make an assumption about whether he was intending
+ // to swipe or scroll.
+ const threshold = 10;
+
+ if (dXAbs > threshold && dYAbs <= threshold) {
+ this._swipeStartX = currentX;
+ this.setState({
+ swiping: this.state.open ? 'closing' : 'opening',
+ });
+ this._setPosition(this._getTranslateX(currentX));
+ } else if (dXAbs <= threshold && dYAbs > threshold) {
+ this._onBodyTouchEnd();
+ }
+ }
+ },
+
+ _onBodyTouchEnd(e) {
+ if (this.state.swiping) {
+ const currentX = e.changedTouches[0].pageX;
+ const translateRatio = this._getTranslateX(currentX) / this._getMaxTranslateX();
+
+ this._maybeSwiping = false;
+ const swiping = this.state.swiping;
+ this.setState({
+ swiping: null,
+ });
+
+ // We have to open or close after setting swiping to null,
+ // because only then CSS transition is enabled.
+ if (translateRatio > 0.5) {
+ if (swiping === 'opening') {
+ this._setPosition(this._getMaxTranslateX());
+ } else {
+ this._close('swipe');
+ }
+ } else {
+ if (swiping === 'opening') {
+ this._open('swipe');
+ } else {
+ this._setPosition(0);
+ }
+ }
+ } else {
+ this._maybeSwiping = false;
+ }
+
+ document.body.removeEventListener('touchmove', this._onBodyTouchMove);
+ document.body.removeEventListener('touchend', this._onBodyTouchEnd);
+ document.body.removeEventListener('touchcancel', this._onBodyTouchEnd);
+ },
+
+ render() {
+ const {
+ className,
+ docked,
+ header,
+ menuItemClassName,
+ menuItemClassNameSubheader,
+ menuItemClassNameLink,
+ menuItems,
+ openRight,
+ overlayClassName,
+ overlayStyle,
+ selectedIndex,
+ style,
+ } = this.props;
+
+ const styles = this.getStyles();
+
+ let overlay;
+ if (!docked) {
+ overlay = (
+
+ );
+ }
+ let children;
+ if (menuItems === undefined) {
+ children = this.props.children;
+ } else {
+ children = (
+
+ );
+ }
+
+ return (
+
+ {overlay}
+
+ {header}
+ {children}
+
+
+ );
+ },
+});
+
+export default LeftNav;
diff --git a/node_modules/material-ui/src/linear-progress.jsx b/node_modules/material-ui/src/linear-progress.jsx
new file mode 100644
index 0000000..8ee439c
--- /dev/null
+++ b/node_modules/material-ui/src/linear-progress.jsx
@@ -0,0 +1,213 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from './mixins/style-propable';
+import Transitions from './styles/transitions';
+import getMuiTheme from './styles/getMuiTheme';
+
+const LinearProgress = React.createClass({
+ propTypes: {
+ /**
+ * The mode of show your progress, indeterminate for
+ * when there is no value for progress.
+ */
+ color: React.PropTypes.string,
+
+ /**
+ * The max value of progress, only works in determinate mode.
+ */
+ max: React.PropTypes.number,
+
+ /**
+ * The min value of progress, only works in determinate mode.
+ */
+ min: React.PropTypes.number,
+
+ /**
+ * The mode of show your progress, indeterminate for when
+ * there is no value for progress.
+ */
+ mode: React.PropTypes.oneOf(['determinate', 'indeterminate']),
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The value of progress, only works in determinate mode.
+ */
+ value: React.PropTypes.number,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ mode: 'indeterminate',
+ value: 0,
+ min: 0,
+ max: 100,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ let bar1 = ReactDOM.findDOMNode(this.refs.bar1);
+ let bar2 = ReactDOM.findDOMNode(this.refs.bar2);
+
+ this.timers.bar1 = this._barUpdate('bar1', 0, bar1, [
+ [-35, 100],
+ [100, -90],
+ ]);
+
+ this.timers.bar2 = setTimeout(() => {
+ this._barUpdate('bar2', 0, bar2, [
+ [-200, 100],
+ [107, -8],
+ ]);
+ }, 850);
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ componentWillUnmount() {
+ clearTimeout(this.timers.bar1);
+ clearTimeout(this.timers.bar2);
+ },
+
+ timers: {
+ bar1: undefined,
+ bar2: undefined,
+ },
+
+ _barUpdate(id, step, barElement, stepValues) {
+ if (this.props.mode !== 'indeterminate') return;
+
+ step = step || 0;
+ step %= 4;
+
+ const right = this.state.muiTheme.isRtl ? 'left' : 'right';
+ const left = this.state.muiTheme.isRtl ? 'right' : 'left';
+
+ if (step === 0) {
+ barElement.style[left] = stepValues[0][0] + '%';
+ barElement.style[right] = stepValues[0][1] + '%';
+ } else if (step === 1) {
+ barElement.style.transitionDuration = '840ms';
+ } else if (step === 2) {
+ barElement.style[left] = stepValues[1][0] + '%';
+ barElement.style[right] = stepValues[1][1] + '%';
+ } else if (step === 3) {
+ barElement.style.transitionDuration = '0ms';
+ }
+ this.timers[id] = setTimeout(() => this._barUpdate(id, step + 1, barElement, stepValues), 420);
+ },
+
+ getTheme() {
+ return this.state.muiTheme.rawTheme.palette;
+ },
+
+ getStyles() {
+ let styles = {
+ root: {
+ position: 'relative',
+ height: 4,
+ display: 'block',
+ width: '100%',
+ backgroundColor: this.getTheme().primary3Color,
+ borderRadius: 2,
+ margin: 0,
+ overflow: 'hidden',
+ },
+ bar: {
+ height: '100%',
+ },
+ barFragment1: {},
+ barFragment2: {},
+ };
+
+ if (this.props.mode === 'indeterminate') {
+ styles.barFragment1 = {
+ position: 'absolute',
+ backgroundColor: this.props.color || this.getTheme().primary1Color,
+ top: 0,
+ left: 0,
+ bottom: 0,
+ transition: Transitions.create('all', '840ms', null, 'cubic-bezier(0.650, 0.815, 0.735, 0.395)'),
+ };
+
+ styles.barFragment2 = {
+ position: 'absolute',
+ backgroundColor: this.props.color || this.getTheme().primary1Color,
+ top: 0,
+ left: 0,
+ bottom: 0,
+ transition: Transitions.create('all', '840ms', null, 'cubic-bezier(0.165, 0.840, 0.440, 1.000)'),
+ };
+ } else {
+ styles.bar.backgroundColor = this.props.color || this.getTheme().primary1Color;
+ styles.bar.transition = Transitions.create('width', '.3s', null, 'linear');
+ styles.bar.width = this._getRelativeValue() + '%';
+ }
+
+ return styles;
+ },
+
+ _getRelativeValue() {
+ let value = this.props.value;
+ let min = this.props.min;
+ let max = this.props.max;
+
+ let clampedValue = Math.min(Math.max(min, value), max);
+ let rangeValue = max - min;
+ let relValue = Math.round(clampedValue / rangeValue * 10000) / 10000;
+ return relValue * 100;
+ },
+
+ render() {
+ let {
+ style,
+ ...other,
+ } = this.props;
+
+ let styles = this.getStyles();
+
+ return (
+
+ );
+ },
+});
+
+export default LinearProgress;
diff --git a/node_modules/material-ui/src/lists/index.js b/node_modules/material-ui/src/lists/index.js
new file mode 100644
index 0000000..1e39d14
--- /dev/null
+++ b/node_modules/material-ui/src/lists/index.js
@@ -0,0 +1,13 @@
+import List from './list';
+import ListDivider from './list-divider';
+import ListItem from './list-item';
+
+export {List};
+export {ListDivider};
+export {ListItem};
+
+export default {
+ List,
+ ListDivider,
+ ListItem,
+};
diff --git a/node_modules/material-ui/src/lists/list-divider.jsx b/node_modules/material-ui/src/lists/list-divider.jsx
new file mode 100644
index 0000000..acb2b09
--- /dev/null
+++ b/node_modules/material-ui/src/lists/list-divider.jsx
@@ -0,0 +1,17 @@
+import React from 'react';
+import Divider from '../divider';
+import warning from 'warning';
+
+const ListDivider = React.createClass({
+
+ getInitialState() {
+ warning(false, '
has been deprecated. Please use the
component.');
+ return null;
+ },
+
+ render() {
+ return
;
+ },
+});
+
+export default ListDivider;
diff --git a/node_modules/material-ui/src/lists/list-item.jsx b/node_modules/material-ui/src/lists/list-item.jsx
new file mode 100644
index 0000000..5959c0a
--- /dev/null
+++ b/node_modules/material-ui/src/lists/list-item.jsx
@@ -0,0 +1,682 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import ColorManipulator from '../utils/color-manipulator';
+import StylePropable from '../mixins/style-propable';
+import Colors from '../styles/colors';
+import Transitions from '../styles/transitions';
+import Typography from '../styles/typography';
+import EnhancedButton from '../enhanced-button';
+import IconButton from '../icon-button';
+import OpenIcon from '../svg-icons/navigation/arrow-drop-up';
+import CloseIcon from '../svg-icons/navigation/arrow-drop-down';
+import NestedList from './nested-list';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const ListItem = React.createClass({
+
+ propTypes: {
+ /**
+ * Generate a nested list indicator icon when
+ * nested list items are detected. Set to false
+ * if you do not want an indicator auto-generated.
+ * Note that an indicator will not be created if a
+ * rightIcon/Button has been specified.
+ */
+ autoGenerateNestedIndicator: React.PropTypes.bool,
+
+ /**
+ * Children passed into the ListItem.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * Does not allow the element to be focused by the keyboard.
+ */
+ disableKeyboardFocus: React.PropTypes.bool,
+
+ /**
+ * If true, the list-item will not be clickable
+ * and will not display hover affects.
+ * This is automatically disabled if leftCheckbox
+ * or rightToggle is set.
+ */
+ disabled: React.PropTypes.bool,
+
+ /**
+ * Controls whether or not the child ListItems are initially displayed.
+ */
+ initiallyOpen: React.PropTypes.bool,
+
+ /**
+ * Style prop for the innder div element.
+ */
+ innerDivStyle: React.PropTypes.object,
+
+ /**
+ * If true, the children will be indented by 72px.
+ * Only needed if there is no left avatar or left icon.
+ */
+ insetChildren: React.PropTypes.bool,
+
+ /**
+ * This is the Avatar element to be displayed on the left side.
+ */
+ leftAvatar: React.PropTypes.element,
+
+ /**
+ * This is the Checkbox element to be displayed on the left side.
+ */
+ leftCheckbox: React.PropTypes.element,
+
+ /**
+ * This is the SvgIcon or FontIcon to be displayed on the left side.
+ */
+ leftIcon: React.PropTypes.element,
+
+ /**
+ * An array of ListItems to nest underneath the current ListItem.
+ */
+ nestedItems: React.PropTypes.arrayOf(React.PropTypes.element),
+
+ /**
+ * Controls how deep a ListItem appears.
+ * This property is automatically managed so modify at your own risk.
+ */
+ nestedLevel: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the nestedItems NestedList.
+ */
+ nestedListStyle: React.PropTypes.object,
+
+ /**
+ * Called when the ListItem has keyboard focus.
+ */
+ onKeyboardFocus: React.PropTypes.func,
+
+ /**
+ * Called when the mouse is over the ListItem.
+ */
+ onMouseEnter: React.PropTypes.func,
+
+ /**
+ * Called when the mouse is no longer over the ListItem.
+ */
+ onMouseLeave: React.PropTypes.func,
+
+ /**
+ * Called when the ListItem toggles its nested ListItems.
+ */
+ onNestedListToggle: React.PropTypes.func,
+
+ /**
+ * Called when touches start.
+ */
+ onTouchStart: React.PropTypes.func,
+
+ /**
+ * Called when a touch tap event occures on the component.
+ */
+ onTouchTap: React.PropTypes.func,
+
+ /**
+ * This is the block element that contains the primary text.
+ * If a string is passed in, a div tag will be rendered.
+ */
+ primaryText: React.PropTypes.node,
+
+ /**
+ * If provided, tapping on the primary text
+ * of the item toggles the nested list.
+ */
+ primaryTogglesNestedList: React.PropTypes.bool,
+
+ /**
+ * This is the avatar element to be displayed on the right side.
+ */
+ rightAvatar: React.PropTypes.element,
+
+ /**
+ * This is the SvgIcon or FontIcon to be displayed on the right side.
+ */
+ rightIcon: React.PropTypes.element,
+
+ /**
+ * This is the IconButton to be displayed on the right side.
+ * Hovering over this button will remove the ListItem hover.
+ * Also, clicking on this button will not trigger a
+ * ListItem ripple. The event will be stopped and prevented
+ * from bubbling up to cause a ListItem click.
+ */
+ rightIconButton: React.PropTypes.element,
+
+ /**
+ * This is the Toggle element to display on the right side.
+ */
+ rightToggle: React.PropTypes.element,
+
+ /**
+ * This is the block element that contains the secondary text.
+ * If a string is passed in, a div tag will be rendered.
+ */
+ secondaryText: React.PropTypes.node,
+
+ /**
+ * Can be 1 or 2. This is the number of secondary
+ * text lines before ellipsis will show.
+ */
+ secondaryTextLines: React.PropTypes.oneOf([1, 2]),
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ PureRenderMixin,
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ autoGenerateNestedIndicator: true,
+ disableKeyboardFocus: false,
+ disabled: false,
+ initiallyOpen: false,
+ insetChildren: false,
+ nestedItems: [],
+ nestedLevel: 0,
+ onKeyboardFocus: () => {},
+ onMouseEnter: () => {},
+ onMouseLeave: () => {},
+ onNestedListToggle: () => {},
+ onTouchStart: () => {},
+ primaryTogglesNestedList: false,
+ secondaryTextLines: 1,
+ };
+ },
+
+ getInitialState() {
+ return {
+ hovered: false,
+ isKeyboardFocused: false,
+ open: this.props.initiallyOpen,
+ rightIconButtonHovered: false,
+ rightIconButtonKeyboardFocused: false,
+ touch: false,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ applyFocusState(focusState) {
+ const button = this.refs.enhancedButton;
+ const buttonEl = ReactDOM.findDOMNode(button);
+
+ if (button) {
+ switch (focusState) {
+ case 'none':
+ buttonEl.blur();
+ break;
+ case 'focused':
+ buttonEl.focus();
+ break;
+ case 'keyboard-focused':
+ button.setKeyboardFocus();
+ buttonEl.focus();
+ break;
+ }
+ }
+ },
+
+ _createDisabledElement(styles, contentChildren, additionalProps) {
+ const {
+ innerDivStyle,
+ style,
+ } = this.props;
+
+ const mergedDivStyles = this.mergeStyles(
+ styles.root,
+ styles.innerDiv,
+ innerDivStyle,
+ style
+ );
+
+ return (
+
+ {contentChildren}
+
+ );
+ },
+
+ _createLabelElement(styles, contentChildren, additionalProps) {
+ const {
+ innerDivStyle,
+ style,
+ } = this.props;
+
+ const mergedLabelStyles = this.mergeStyles(
+ styles.root,
+ styles.innerDiv,
+ innerDivStyle,
+ styles.label,
+ style
+ );
+
+ return (
+
+ {contentChildren}
+
+ );
+ },
+
+ _createTextElement(styles, data, key) {
+ const isAnElement = React.isValidElement(data);
+ const mergedStyles = isAnElement ?
+ this.mergeStyles(styles, data.props.style) : null;
+
+ return isAnElement ? (
+ React.cloneElement(data, {
+ key: key,
+ style: this.prepareStyles(mergedStyles),
+ })
+ ) : (
+
+ {data}
+
+ );
+ },
+
+ _handleKeyboardFocus(e, isKeyboardFocused) {
+ this.setState({isKeyboardFocused: isKeyboardFocused});
+ this.props.onKeyboardFocus(e, isKeyboardFocused);
+ },
+
+ _handleMouseEnter(e) {
+ if (!this.state.touch) this.setState({hovered: true});
+ this.props.onMouseEnter(e);
+ },
+
+ _handleMouseLeave(e) {
+ this.setState({hovered: false});
+ this.props.onMouseLeave(e);
+ },
+
+ _handleNestedListToggle(e) {
+ e.stopPropagation();
+ this.setState({open: !this.state.open});
+ this.props.onNestedListToggle(this);
+ },
+
+ _handleRightIconButtonKeyboardFocus(e, isKeyboardFocused) {
+ const iconButton = this.props.rightIconButton;
+ let newState = {};
+
+ newState.rightIconButtonKeyboardFocused = isKeyboardFocused;
+ if (isKeyboardFocused) newState.isKeyboardFocused = false;
+ this.setState(newState);
+
+ if (iconButton && iconButton.props.onKeyboardFocus) iconButton.props.onKeyboardFocus(e, isKeyboardFocused);
+ },
+
+ _handleRightIconButtonMouseDown(e) {
+ const iconButton = this.props.rightIconButton;
+ e.stopPropagation();
+ if (iconButton && iconButton.props.onMouseDown) iconButton.props.onMouseDown(e);
+ },
+
+ _handleRightIconButtonMouseLeave(e) {
+ const iconButton = this.props.rightIconButton;
+ this.setState({rightIconButtonHovered: false});
+ if (iconButton && iconButton.props.onMouseLeave) iconButton.props.onMouseLeave(e);
+ },
+
+ _handleRightIconButtonMouseEnter(e) {
+ const iconButton = this.props.rightIconButton;
+ this.setState({rightIconButtonHovered: true});
+ if (iconButton && iconButton.props.onMouseEnter) iconButton.props.onMouseEnter(e);
+ },
+
+ _handleRightIconButtonMouseUp(e) {
+ const iconButton = this.props.rightIconButton;
+ e.stopPropagation();
+ if (iconButton && iconButton.props.onMouseUp) iconButton.props.onMouseUp(e);
+ },
+
+ _handleRightIconButtonTouchTap(e) {
+ const iconButton = this.props.rightIconButton;
+
+ //Stop the event from bubbling up to the list-item
+ e.stopPropagation();
+ if (iconButton && iconButton.props.onTouchTap) iconButton.props.onTouchTap(e);
+ },
+
+ _handleTouchStart(e) {
+ this.setState({touch: true});
+ this.props.onTouchStart(e);
+ },
+
+ _pushElement(children, element, baseStyles, additionalProps) {
+ if (element) {
+ const styles = this.mergeStyles(baseStyles, element.props.style);
+ children.push(
+ React.cloneElement(element, {
+ key: children.length,
+ style: styles,
+ ...additionalProps,
+ })
+ );
+ }
+ },
+
+ render() {
+ const {
+ autoGenerateNestedIndicator,
+ children,
+ disabled,
+ disableKeyboardFocus,
+ innerDivStyle,
+ insetChildren,
+ leftAvatar,
+ leftCheckbox,
+ leftIcon,
+ nestedItems,
+ nestedLevel,
+ nestedListStyle,
+ onKeyboardFocus,
+ onMouseLeave,
+ onMouseEnter,
+ onTouchStart,
+ onTouchTap,
+ rightAvatar,
+ rightIcon,
+ rightIconButton,
+ rightToggle,
+ primaryText,
+ primaryTogglesNestedList,
+ secondaryText,
+ secondaryTextLines,
+ style,
+ ...other,
+ } = this.props;
+
+ const textColor = this.state.muiTheme.rawTheme.palette.textColor;
+ const hoverColor = ColorManipulator.fade(textColor, 0.1);
+ const singleAvatar = !secondaryText && (leftAvatar || rightAvatar);
+ const singleNoAvatar = !secondaryText && !(leftAvatar || rightAvatar);
+ const twoLine = secondaryText && secondaryTextLines === 1;
+ const threeLine = secondaryText && secondaryTextLines > 1;
+ const hasCheckbox = leftCheckbox || rightToggle;
+
+ const styles = {
+ root: {
+ backgroundColor: (this.state.isKeyboardFocused || this.state.hovered) &&
+ !this.state.rightIconButtonHovered &&
+ !this.state.rightIconButtonKeyboardFocused ? hoverColor : null,
+ color: textColor,
+ display: 'block',
+ fontSize: 16,
+ lineHeight: '16px',
+ position: 'relative',
+ transition: Transitions.easeOut(),
+ },
+
+ //This inner div is needed so that ripples will span the entire container
+ innerDiv: {
+ marginLeft: nestedLevel * this.state.muiTheme.listItem.nestedLevelDepth,
+ paddingLeft: leftIcon || leftAvatar || leftCheckbox || insetChildren ? 72 : 16,
+ paddingRight: rightIcon || rightAvatar || rightIconButton ? 56 : rightToggle ? 72 : 16,
+ paddingBottom: singleAvatar ? 20 : 16,
+ paddingTop: singleNoAvatar || threeLine ? 16 : 20,
+ position: 'relative',
+ },
+
+ icons: {
+ height: 24,
+ width: 24,
+ display: 'block',
+ position: 'absolute',
+ top: twoLine ? 12 : singleAvatar ? 4 : 0,
+ margin: 12,
+ },
+
+ leftIcon: {
+ color: Colors.grey600,
+ fill: Colors.grey600,
+ left: 4,
+ },
+
+ rightIcon: {
+ color: Colors.grey400,
+ fill: Colors.grey400,
+ right: 4,
+ },
+
+ avatars: {
+ position: 'absolute',
+ top: singleAvatar ? 8 : 16,
+ },
+
+ label: {
+ cursor: 'pointer',
+ },
+
+ leftAvatar: {
+ left: 16,
+ },
+
+ rightAvatar: {
+ right: 16,
+ },
+
+ leftCheckbox: {
+ position: 'absolute',
+ display: 'block',
+ width: 24,
+ top: twoLine ? 24 : singleAvatar ? 16 : 12,
+ left: 16,
+ },
+
+ primaryText: {
+ },
+
+ rightIconButton: {
+ position: 'absolute',
+ display: 'block',
+ top: twoLine ? 12 : singleAvatar ? 4 : 0,
+ right: 4,
+ },
+
+ rightToggle: {
+ position: 'absolute',
+ display: 'block',
+ width: 54,
+ top: twoLine ? 25 : singleAvatar ? 17 : 13,
+ right: 8,
+ },
+
+ secondaryText: {
+ fontSize: 14,
+ lineHeight: threeLine ? '18px' : '16px',
+ height: threeLine ? 36 : 16,
+ margin: 0,
+ marginTop: 4,
+ color: Typography.textLightBlack,
+
+ //needed for 2 and 3 line ellipsis
+ overflow: 'hidden',
+ textOverflow: 'ellipsis',
+ whiteSpace: threeLine ? null : 'nowrap',
+ display: threeLine ? '-webkit-box' : null,
+ WebkitLineClamp: threeLine ? 2 : null,
+ WebkitBoxOrient: threeLine ? 'vertical' : null,
+ },
+ };
+
+ let contentChildren = [children];
+
+ if (leftIcon) {
+ this._pushElement(
+ contentChildren,
+ leftIcon,
+ this.mergeStyles(styles.icons, styles.leftIcon)
+ );
+ }
+
+ if (rightIcon) {
+ this._pushElement(
+ contentChildren,
+ rightIcon,
+ this.mergeStyles(styles.icons, styles.rightIcon)
+ );
+ }
+
+ if (leftAvatar) {
+ this._pushElement(
+ contentChildren,
+ leftAvatar,
+ this.mergeStyles(styles.avatars, styles.leftAvatar)
+ );
+ }
+
+ if (rightAvatar) {
+ this._pushElement(
+ contentChildren,
+ rightAvatar,
+ this.mergeStyles(styles.avatars, styles.rightAvatar)
+ );
+ }
+
+ if (leftCheckbox) {
+ this._pushElement(
+ contentChildren,
+ leftCheckbox,
+ this.mergeStyles(styles.leftCheckbox)
+ );
+ }
+
+ //RightIconButtonElement
+ const hasNestListItems = nestedItems.length;
+ const hasRightElement = rightAvatar || rightIcon || rightIconButton || rightToggle;
+ const needsNestedIndicator = hasNestListItems && autoGenerateNestedIndicator && !hasRightElement;
+
+ if (rightIconButton || needsNestedIndicator) {
+ let rightIconButtonElement = rightIconButton;
+ let rightIconButtonHandlers = {
+ onKeyboardFocus: this._handleRightIconButtonKeyboardFocus,
+ onMouseEnter: this._handleRightIconButtonMouseEnter,
+ onMouseLeave: this._handleRightIconButtonMouseLeave,
+ onTouchTap: this._handleRightIconButtonTouchTap,
+ onMouseDown: this._handleRightIconButtonMouseUp,
+ onMouseUp: this._handleRightIconButtonMouseUp,
+ };
+
+ // Create a nested list indicator icon if we don't have an icon on the right
+ if (needsNestedIndicator) {
+ rightIconButtonElement = this.state.open ?
+
:
+
;
+ rightIconButtonHandlers.onTouchTap = this._handleNestedListToggle;
+ }
+
+ this._pushElement(
+ contentChildren,
+ rightIconButtonElement,
+ this.mergeStyles(styles.rightIconButton),
+ rightIconButtonHandlers
+ );
+ }
+
+ if (rightToggle) {
+ this._pushElement(
+ contentChildren,
+ rightToggle,
+ this.mergeStyles(styles.rightToggle)
+ );
+ }
+
+ if (primaryText) {
+ const secondaryTextElement = this._createTextElement(
+ styles.primaryText,
+ primaryText,
+ 'primaryText'
+ );
+ contentChildren.push(secondaryTextElement);
+ }
+
+ if (secondaryText) {
+ const secondaryTextElement = this._createTextElement(
+ styles.secondaryText,
+ secondaryText,
+ 'secondaryText'
+ );
+ contentChildren.push(secondaryTextElement);
+ }
+
+ const nestedList = nestedItems.length ? (
+
+ {nestedItems}
+
+ ) : undefined;
+
+ return (
+
+ {
+ hasCheckbox ? this._createLabelElement(styles, contentChildren, other) :
+ disabled ? this._createDisabledElement(styles, contentChildren, other) : (
+
+
+ {contentChildren}
+
+
+ )
+ }
+ {nestedList}
+
+ );
+ },
+
+});
+
+export default ListItem;
diff --git a/node_modules/material-ui/src/lists/list.jsx b/node_modules/material-ui/src/lists/list.jsx
new file mode 100644
index 0000000..d522c2e
--- /dev/null
+++ b/node_modules/material-ui/src/lists/list.jsx
@@ -0,0 +1,130 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import PropTypes from '../utils/prop-types';
+import StylePropable from '../mixins/style-propable';
+import Typography from '../styles/typography';
+import Paper from '../paper';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const List = React.createClass({
+
+ propTypes: {
+ /**
+ * These are usually ListItems that are passed to
+ * be part of the list.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * If true, the subheader will be indented by 72px.
+ */
+ insetSubheader: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The subheader string that will be displayed at the top of the list.
+ */
+ subheader: React.PropTypes.node,
+
+ /**
+ * The style object to override subheader styles.
+ */
+ subheaderStyle: React.PropTypes.object,
+
+ /**
+ * The zDepth prop passed to the Paper element inside list.
+ */
+ zDepth: PropTypes.zDepth,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ PureRenderMixin,
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ insetSubheader: false,
+ zDepth: 0,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ render() {
+ const {
+ children,
+ insetSubheader,
+ style,
+ subheader,
+ subheaderStyle,
+ zDepth,
+ ...other,
+ } = this.props;
+
+ const styles = {
+ root: {
+ padding: 0,
+ paddingBottom: 8,
+ paddingTop: subheader ? 0 : 8,
+ },
+
+ subheader: {
+ color: Typography.textLightBlack,
+ fontSize: 14,
+ fontWeight: Typography.fontWeightMedium,
+ lineHeight: '48px',
+ paddingLeft: insetSubheader ? 72 : 16,
+ },
+ };
+
+ let subheaderElement;
+ if (subheader) {
+ const mergedSubheaderStyles = this.mergeStyles(styles.subheader, subheaderStyle);
+ subheaderElement =
{subheader}
;
+ }
+
+ return (
+
+ {subheaderElement}
+ {children}
+
+ );
+ },
+});
+
+export default List;
diff --git a/node_modules/material-ui/src/lists/nested-list.jsx b/node_modules/material-ui/src/lists/nested-list.jsx
new file mode 100644
index 0000000..0d4388a
--- /dev/null
+++ b/node_modules/material-ui/src/lists/nested-list.jsx
@@ -0,0 +1,53 @@
+import React from 'react';
+import {mergeStyles} from '../utils/styles';
+import List from './list';
+
+class NestedList extends React.Component {
+ static propTypes = {
+ children: React.PropTypes.node,
+ nestedLevel: React.PropTypes.number,
+ open: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ };
+
+ static defaultProps = {
+ nestedLevel: 1,
+ open: false,
+ };
+
+ render() {
+
+ const {
+ children,
+ open,
+ nestedLevel,
+ style,
+ } = this.props;
+
+ const styles = {
+ root: {
+ display: open ? null : 'none',
+ },
+ };
+
+ return (
+
+ {
+ React.Children.map(children, (child) => {
+ return React.isValidElement(child) ? (
+ React.cloneElement(child, {
+ nestedLevel: nestedLevel + 1,
+ })
+ ) : child;
+ })
+ }
+
+ );
+ }
+}
+
+export default NestedList;
diff --git a/node_modules/material-ui/src/menu/index.js b/node_modules/material-ui/src/menu/index.js
new file mode 100644
index 0000000..2bb8e6f
--- /dev/null
+++ b/node_modules/material-ui/src/menu/index.js
@@ -0,0 +1,6 @@
+export default {
+ Menu: require('./menu'),
+ MenuItem: require('./menu-item'),
+ LinkMenuItem: require('./link-menu-item'),
+ SubheaderMenuItem: require('./subheader-menu-item'),
+};
diff --git a/node_modules/material-ui/src/menu/link-menu-item.jsx b/node_modules/material-ui/src/menu/link-menu-item.jsx
new file mode 100644
index 0000000..0bd3da2
--- /dev/null
+++ b/node_modules/material-ui/src/menu/link-menu-item.jsx
@@ -0,0 +1,138 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+/*eslint-disable */
+
+const LinkMenuItem = React.createClass({
+
+ propTypes: {
+ active: React.PropTypes.bool,
+ className: React.PropTypes.string,
+ disabled: React.PropTypes.bool,
+ index: React.PropTypes.number.isRequired,
+ onMouseEnter: React.PropTypes.func,
+ onMouseLeave: React.PropTypes.func,
+ payload: React.PropTypes.string.isRequired,
+ selected: React.PropTypes.bool,
+ style: React.PropTypes.object,
+ target: React.PropTypes.string,
+ text: React.PropTypes.string.isRequired,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ active: false,
+ disabled: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ hovered: false,
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.menuItem;
+ },
+
+ getStyles() {
+ let style = {
+ root: {
+ userSelect: 'none',
+ cursor: 'pointer',
+ display: 'block',
+ lineHeight: this.getTheme().height + 'px',
+ paddingLeft: this.getTheme().padding,
+ paddingRight: this.getTheme().padding,
+ },
+ rootWhenHovered: {
+ backgroundColor: this.getTheme().hoverColor,
+ },
+ rootWhenSelected: {
+ color: this.getTheme().selectedTextColor,
+ },
+ rootWhenDisabled: {
+ cursor: 'default',
+ color: this.state.muiTheme.rawTheme.palette.disabledColor,
+ },
+ };
+
+ return style;
+ },
+
+ _stopLink(event) {
+ event.preventDefault();
+ },
+
+ _handleMouseEnter(e) {
+ this.setState({hovered: true});
+ if (!this.props.disabled && this.props.onMouseEnter) this.props.onMouseEnter(e);
+ },
+
+ _handleMouseLeave(e) {
+ this.setState({hovered: false});
+ if (!this.props.disabled && this.props.onMouseLeave) this.props.onMouseLeave(e);
+ },
+
+ render() {
+ let onClickHandler = (this.props.disabled) ? this._stopLink : undefined;
+ // Prevent context menu 'Open In New Tab/Window'
+ let linkAttribute = (this.props.disabled) ? 'data-href' : 'href';
+ let link = {};
+ link[linkAttribute] = this.props.payload;
+
+ let styles = this.getStyles();
+
+ let linkStyles =
+ this.prepareStyles(
+ styles.root,
+ this.props.selected && styles.rootWhenSelected,
+ this.props.selected && styles.rootWhenSelected,
+ (this.props.active && !this.props.disabled) && styles.rootWhenHovered,
+ this.props.style,
+ this.props.disabled && styles.rootWhenDisabled);
+
+ return (
+
+ {this.props.text}
+
+ );
+ },
+
+});
+
+export default LinkMenuItem;
diff --git a/node_modules/material-ui/src/menu/menu-item.jsx b/node_modules/material-ui/src/menu/menu-item.jsx
new file mode 100644
index 0000000..7796ddf
--- /dev/null
+++ b/node_modules/material-ui/src/menu/menu-item.jsx
@@ -0,0 +1,248 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import FontIcon from '../font-icon';
+import Toggle from '../toggle';
+import getMuiTheme from '../styles/getMuiTheme';
+import warning from 'warning';
+
+/*eslint-disable */
+
+const Types = {
+ LINK: 'LINK',
+ SUBHEADER: 'SUBHEADER',
+ NESTED: 'NESTED',
+};
+
+
+const MenuItem = React.createClass({
+
+ propTypes: {
+ active: React.PropTypes.bool,
+ attribute: React.PropTypes.string,
+ children: React.PropTypes.node,
+ className: React.PropTypes.string,
+ data: React.PropTypes.string,
+ disabled: React.PropTypes.bool,
+ icon: React.PropTypes.node,
+ iconClassName: React.PropTypes.string,
+ iconRightClassName: React.PropTypes.string,
+ iconRightStyle: React.PropTypes.object,
+ iconStyle: React.PropTypes.object,
+ index: React.PropTypes.number.isRequired,
+ number: React.PropTypes.string,
+ onMouseEnter: React.PropTypes.func,
+ onMouseLeave: React.PropTypes.func,
+ onToggle: React.PropTypes.func,
+ onTouchTap: React.PropTypes.func,
+ selected: React.PropTypes.bool,
+ style: React.PropTypes.object,
+ toggle: React.PropTypes.bool,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ statics: {
+ Types: Types,
+ },
+
+ getDefaultProps() {
+ return {
+ toggle: false,
+ disabled: false,
+ active: false,
+ };
+ },
+
+ getInitialState() {
+ warning(false, 'This menu item component is deprecated use menus/menu-item instead.');
+
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.menuItem;
+ },
+
+ getSpacing() {
+ return this.state.muiTheme.rawTheme.spacing;
+ },
+
+ getStyles() {
+ const isRtl = this.context.muiTheme.isRtl;
+
+ const right = isRtl ? 'left' : 'right';
+ const left = isRtl ? 'right' : 'left';
+
+ const marginRight = isRtl ? 'marginLeft' : 'marginRight';
+ const paddingLeft = isRtl ? 'paddingRight' : 'paddingLeft';
+
+ let styles = {
+ root: {
+ userSelect: 'none',
+ cursor: 'pointer',
+ lineHeight: this.getTheme().height + 'px',
+ paddingLeft: this.getTheme().padding,
+ paddingRight: this.getTheme().padding,
+ color: this.state.muiTheme.rawTheme.palette.textColor,
+ },
+ number: {
+ float: right,
+ width: 24,
+ textAlign: 'center',
+ },
+ attribute: {
+ float: right,
+ },
+ iconRight: {
+ lineHeight: this.getTheme().height + 'px',
+ float: right,
+ },
+ icon: {
+ float: left,
+ lineHeight: this.getTheme().height + 'px',
+ [marginRight]: this.getSpacing().desktopGutter,
+ },
+ data: {
+ display: 'block',
+ [paddingLeft]: this.getSpacing().desktopGutter * 2,
+ lineHeight: this.getTheme().dataHeight + 'px',
+ height: this.getTheme().dataHeight + 'px',
+ verticalAlign: 'top',
+ top: -12,
+ position: 'relative',
+ fontWeight: 300,
+ color: this.state.muiTheme.rawTheme.palette.textColor,
+ },
+ toggle: {
+ marginTop: ((this.getTheme().height - this.state.muiTheme.radioButton.size) / 2),
+ float: right,
+ width: 42,
+ },
+ rootWhenHovered: {
+ backgroundColor: this.getTheme().hoverColor,
+ },
+ rootWhenSelected: {
+ color: this.getTheme().selectedTextColor,
+ },
+ rootWhenDisabled: {
+ cursor: 'default',
+ color: this.state.muiTheme.rawTheme.palette.disabledColor,
+ },
+ };
+
+ return styles;
+ },
+
+ _handleTouchTap(e) {
+ if (!this.props.disabled && this.props.onTouchTap) this.props.onTouchTap(e, this.props.index);
+ },
+
+ _handleToggle(e, toggled) {
+ if (!this.props.disabled && this.props.onToggle) this.props.onToggle(e, this.props.index, toggled);
+ },
+
+ _handleMouseEnter(e) {
+ if (!this.props.disabled && this.props.onMouseEnter) this.props.onMouseEnter(e, this.props.index);
+ },
+
+ _handleMouseLeave(e) {
+ if (!this.props.disabled && this.props.onMouseLeave) this.props.onMouseLeave(e, this.props.index);
+ },
+
+ render() {
+ let icon;
+ let data;
+ let iconRight;
+ let attribute;
+ let number;
+ let toggleElement;
+ let styles = this.getStyles();
+
+ if (this.props.iconClassName) {
+ icon = (
+
+ );
+ }
+ if (this.props.iconRightClassName) {
+ iconRight = (
+
+ );
+ }
+ if (this.props.data) data =
{this.props.data} ;
+ if (this.props.number !== undefined) {
+ number =
{this.props.number} ;
+ }
+ if (this.props.attribute !== undefined) {
+ attribute =
{this.props.attribute} ;
+ }
+ if (this.props.icon) icon = this.props.icon;
+
+ if (this.props.toggle) {
+ let {
+ toggle,
+ onTouchTap,
+ onToggle,
+ onMouseEnter,
+ onMouseLeave,
+ children,
+ style,
+ ...other,
+ } = this.props;
+ toggleElement =
;
+ }
+
+ return (
+
+
+ {icon}
+ {this.props.children}
+ {number}
+ {attribute}
+ {data}
+ {toggleElement}
+ {iconRight}
+
+
+ );
+ },
+});
+
+export default MenuItem;
diff --git a/node_modules/material-ui/src/menu/menu.jsx b/node_modules/material-ui/src/menu/menu.jsx
new file mode 100644
index 0000000..7ee7640
--- /dev/null
+++ b/node_modules/material-ui/src/menu/menu.jsx
@@ -0,0 +1,656 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import CssEvent from '../utils/css-event';
+import KeyLine from '../utils/key-line';
+import KeyCode from '../utils/key-code';
+import StylePropable from '../mixins/style-propable';
+import Transitions from '../styles/transitions';
+import ClickAwayable from '../mixins/click-awayable';
+import Paper from '../paper';
+import MenuItem from './menu-item';
+import LinkMenuItem from './link-menu-item';
+import SubheaderMenuItem from './subheader-menu-item';
+import getMuiTheme from '../styles/getMuiTheme';
+import warning from 'warning';
+
+/*eslint-disable */
+
+/***********************
+* Nested Menu Component
+***********************/
+const NestedMenuItem = React.createClass({
+
+ propTypes: {
+ active: React.PropTypes.bool,
+ disabled: React.PropTypes.bool,
+ index: React.PropTypes.number.isRequired,
+ menuItemStyle: React.PropTypes.object,
+ menuItems: React.PropTypes.array.isRequired,
+ onItemTap: React.PropTypes.func,
+ onMouseOut: React.PropTypes.func,
+ onMouseOver: React.PropTypes.func,
+ style: React.PropTypes.object,
+ text: React.PropTypes.string,
+ zDepth: React.PropTypes.number,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [ClickAwayable, StylePropable],
+
+ getDefaultProps() {
+ return {
+ disabled: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ open: false,
+ activeIndex: 0,
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ this._positionNestedMenu();
+ ReactDOM.findDOMNode(this).focus();
+ },
+
+ componentDidUpdate() {
+ this._positionNestedMenu();
+ },
+
+ componentClickAway() {
+ this._closeNestedMenu();
+ },
+
+ getSpacing() {
+ return this.state.muiTheme.rawTheme.spacing;
+ },
+
+ getStyles() {
+ let styles = {
+ root: {
+ userSelect: 'none',
+ cursor: 'pointer',
+ lineHeight: this.getTheme().height + 'px',
+ color: this.state.muiTheme.rawTheme.palette.textColor,
+ },
+ icon: {
+ float: 'left',
+ lineHeight: this.getTheme().height + 'px',
+ marginRight: this.getSpacing().desktopGutter,
+ },
+ toggle: {
+ marginTop: ((this.getTheme().height - this.state.muiTheme.radioButton.size) / 2),
+ float: 'right',
+ width: 42,
+ },
+ rootWhenHovered: {
+ backgroundColor: this.getTheme().hoverColor,
+ },
+ rootWhenSelected: {
+ color: this.getTheme().selectedTextColor,
+ },
+ rootWhenDisabled: {
+ cursor: 'default',
+ color: this.state.muiTheme.rawTheme.palette.disabledColor,
+ },
+ };
+
+ return styles;
+ },
+
+ getTheme() {
+ return this.state.muiTheme.menuItem;
+ },
+
+ toggleNestedMenu() {
+ if (!this.props.disabled) this.setState({open: !this.state.open});
+ },
+
+ isOpen() {
+ return this.state.open;
+ },
+
+ _positionNestedMenu() {
+ let el = ReactDOM.findDOMNode(this);
+ let nestedMenu = ReactDOM.findDOMNode(this.refs.nestedMenu);
+ nestedMenu.style.left = el.offsetWidth + 'px';
+ },
+
+ _openNestedMenu() {
+ if (!this.props.disabled) this.setState({open: true});
+ },
+
+ _closeNestedMenu() {
+ this.setState({open: false});
+ ReactDOM.findDOMNode(this).focus();
+ },
+
+ _onParentItemTap() {
+ this.toggleNestedMenu();
+ },
+
+ _onMenuItemTap(e, index, menuItem) {
+ if (this.props.onItemTap) this.props.onItemTap(e, index, menuItem);
+ this._closeNestedMenu();
+ },
+ _handleMouseOver(e) {
+ if (!this.props.disabled && this.props.onMouseOver) this.props.onMouseOver(e, this.props.index);
+ },
+
+ _handleMouseOut(e) {
+ if (!this.props.disabled && this.props.onMouseOut) this.props.onMouseOut(e, this.props.index);
+ },
+
+ render() {
+ let styles = this.getStyles();
+ styles = this.mergeStyles(styles.root,
+ (this.props.active && !this.props.disabled) && styles.rootWhenHovered, {
+ position: 'relative',
+ }, this.props.style);
+
+ let iconCustomArrowDropRight = {
+ marginRight: this.getSpacing().desktopGutterMini * -1,
+ color: this.state.muiTheme.dropDownMenu.accentColor,
+ };
+
+ let {
+ index,
+ menuItemStyle,
+ ...other,
+ } = this.props;
+
+ return (
+
+
+ {this.props.text}
+
+
+
+ );
+ },
+
+});
+
+
+/****************
+* Menu Component
+****************/
+const Menu = React.createClass({
+
+ propTypes: {
+ autoWidth: React.PropTypes.bool,
+ hideable: React.PropTypes.bool,
+ menuItemClassName: React.PropTypes.string,
+ menuItemClassNameLink: React.PropTypes.string,
+ menuItemClassNameSubheader: React.PropTypes.string,
+ menuItemStyle: React.PropTypes.object,
+ menuItemStyleLink: React.PropTypes.object,
+ menuItemStyleSubheader: React.PropTypes.object,
+ menuItems: React.PropTypes.array.isRequired,
+ onItemTap: React.PropTypes.func,
+ onItemToggle: React.PropTypes.func,
+ onRequestClose: React.PropTypes.func,
+ onToggle: React.PropTypes.func,
+ selectedIndex: React.PropTypes.number,
+ style: React.PropTypes.object,
+ visible: React.PropTypes.bool,
+ zDepth: React.PropTypes.number,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ autoWidth: true,
+ hideable: false,
+ visible: true,
+ zDepth: 1,
+ onRequestClose: () => {},
+ };
+ },
+
+ getInitialState() {
+ warning(false, 'This menu component is deprecated use menus/menu instead.');
+
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ nestedMenuShown: false,
+ activeIndex: 0,
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ let el = ReactDOM.findDOMNode(this);
+
+ //Set the menu width
+ this._setKeyWidth(el);
+
+ //Show or Hide the menu according to visibility
+ this._renderVisibility();
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+
+ //Set the menu width
+ this._setKeyWidth(ReactDOM.findDOMNode(this));
+ },
+
+ componentDidUpdate(prevProps) {
+ if (this.props.visible !== prevProps.visible || this.props.menuItems.length !== prevProps.menuItems.length) {
+ this._renderVisibility();
+ }
+ },
+
+ getTheme() {
+ return this.state.muiTheme.menu;
+ },
+
+ getSpacing() {
+ return this.state.muiTheme.rawTheme.spacing;
+ },
+
+ getStyles() {
+ let styles = {
+ root: {
+ backgroundColor: this.getTheme().containerBackgroundColor,
+ paddingTop: this.getSpacing().desktopGutterMini,
+ paddingBottom: this.getSpacing().desktopGutterMini,
+ transition: Transitions.easeOut(null, 'height'),
+ outline: 'none !important',
+ },
+ subheader: {
+ paddingLeft: this.state.muiTheme.menuSubheader.padding,
+ paddingRight: this.state.muiTheme.menuSubheader.padding,
+ },
+ hideable: {
+ overflow: 'hidden',
+ position: 'absolute',
+ top: 0,
+ zIndex: 1,
+ },
+ item: {
+ height: 34,
+ },
+ };
+
+ return styles;
+ },
+
+
+ _getChildren() {
+ let menuItem;
+ let itemComponent;
+ let isDisabled;
+
+ let styles = this.getStyles();
+
+ this._children = [];
+ //This array is used to keep track of all nested menu refs
+ this._nestedChildren = [];
+
+ for (let i = 0; i < this.props.menuItems.length; i++) {
+ menuItem = this.props.menuItems[i];
+ isDisabled = (menuItem.disabled === undefined) ? false : menuItem.disabled;
+
+ let {
+ icon,
+ data,
+ attribute,
+ number,
+ toggle,
+ onTouchTap,
+ ...other,
+ } = menuItem;
+
+ switch (menuItem.type) {
+
+ case MenuItem.Types.LINK:
+ itemComponent = (
+
+ );
+ break;
+
+ case MenuItem.Types.SUBHEADER:
+ itemComponent = (
+
+ );
+ break;
+
+ case MenuItem.Types.NESTED:
+ let {
+ zDepth,
+ ...other,
+ } = this.props;
+
+ itemComponent = (
+
+ );
+ this._nestedChildren.push(i);
+ break;
+
+ default:
+ itemComponent = (
+
+ {menuItem.text}
+
+ );
+ }
+ this._children.push(itemComponent);
+ }
+
+ return this._children;
+ },
+
+ _setKeyWidth(el) {
+ //Update the menu width
+ let menuWidth = '100%';
+
+ if (this.props.autoWidth) {
+ el.style.width = 'auto';
+ menuWidth = KeyLine.getIncrementalDim(el.offsetWidth) + 'px';
+ }
+
+ el.style.width = menuWidth;
+ },
+
+ _renderVisibility() {
+ if (this.props.hideable) {
+ if (this.props.visible) this._expandHideableMenu();
+ else this._collapseHideableMenu();
+ }
+ },
+
+ _expandHideableMenu() {
+ let el = ReactDOM.findDOMNode(this);
+ let container = ReactDOM.findDOMNode(this.refs.paperContainer);
+ let padding = this.getSpacing().desktopGutterMini;
+ let height = this._getHiddenMenuHeight(el, padding);
+
+ //Add transition
+ if (!el.style.transition) {
+ el.style.transition = Transitions.easeOut();
+ }
+
+ this._nextAnimationFrame(() => {
+ container.style.overflow = 'hidden';
+
+ // Yeild to the DOM, then apply height and padding. This makes the transition smoother.
+ el.style.paddingTop = padding + 'px';
+ el.style.paddingBottom = padding + 'px';
+ el.style.height = height + 'px';
+ el.style.opacity = 1;
+
+ //Set the overflow to visible after the animation is done so
+ //that other nested menus can be shown
+ CssEvent.onTransitionEnd(el, () => {
+ //Make sure the menu is open before setting the overflow.
+ //This is to accout for fast clicks
+ if (this.props.visible) container.style.overflow = 'visible';
+ el.style.transition = null;
+ el.focus();
+ });
+ });
+ },
+
+ _getHiddenMenuHeight(el, padding) {
+ //Add padding to the offset height, because it is not yet set in the style.
+ let height = padding * 2;
+
+ //Hide the element and allow the browser to automatically resize it.
+ el.style.visibility = 'hidden';
+ el.style.height = 'auto';
+
+ //Determine the height of the menu.
+ height += el.offsetHeight;
+
+ //Unhide the menu with the height set back to zero.
+ el.style.height = '0px';
+ el.style.visibility = 'visible';
+
+ return height;
+ },
+
+ _collapseHideableMenu() {
+ let el = ReactDOM.findDOMNode(this);
+ let container = ReactDOM.findDOMNode(this.refs.paperContainer);
+ let originalOpacity = el.style.opacity;
+
+ //Add transition
+ if (!el.style.transition && originalOpacity !== '') {
+ el.style.transition = Transitions.easeOut();
+ }
+
+ this._nextAnimationFrame(function() {
+ //Set the overflow to hidden so that animation works properly
+ container.style.overflow = 'hidden';
+
+ //Close the menu
+ el.style.opacity = 0;
+ el.style.height = '0px';
+ el.style.paddingTop = '0px';
+ el.style.paddingBottom = '0px';
+
+ let end = () => {
+ el.style.transition = null;
+ };
+
+ if (originalOpacity === '') end();
+ else CssEvent.onTransitionEnd(el, end);
+ });
+ },
+
+ _nextAnimationFrame(func) {
+ if (window.requestAnimationFrame) {
+ return window.requestAnimationFrame(func);
+ }
+ return setTimeout(func, 16);
+ },
+
+ _onNestedItemTap(e, index, menuItem) {
+ if (this.props.onItemTap) this.props.onItemTap(e, index, menuItem);
+ },
+
+ _onItemTap(e, index) {
+ if (this.props.onItemTap) this.props.onItemTap(e, index, this.props.menuItems[index]);
+ },
+
+ _onItemToggle(e, index, toggled) {
+ if (this.props.onItemToggle) this.props.onItemToggle(e, index, this.props.menuItems[index], toggled);
+ },
+ _onItemActivated(e, index) {
+ this.setState({activeIndex: index});
+ },
+ _onItemDeactivated(e, index) {
+ if (this.state.activeKey === index)
+ this.setState({activeIndex: 0});
+ },
+
+ _onKeyDown(e) {
+ if (!(this.state.open || this.props.visible))
+ return;
+
+ let nested = this._children[this.state.activeIndex];
+ if (nested && nested.props.nested && this.refs[this.state.activeIndex].isOpen())
+ return;
+
+ switch (e.which) {
+ case KeyCode.UP:
+ this._activatePreviousItem();
+ break;
+ case KeyCode.DOWN:
+ this._activateNextItem();
+ break;
+ case KeyCode.RIGHT:
+ this._tryToggleNested(this.state.activeIndex);
+ break;
+ case KeyCode.LEFT:
+ this._close();
+ break;
+ case KeyCode.ESC:
+ this._close();
+ break;
+ case KeyCode.TAB:
+ this._close();
+ return; // so the tab key can propagate
+ case KeyCode.ENTER:
+ case KeyCode.SPACE:
+ e.stopPropagation(); // needs called before the close
+ this._triggerSelection(e);
+ break;
+ default:
+ return; //important
+ }
+ e.preventDefault();
+ e.stopPropagation();
+ },
+
+ _activatePreviousItem() {
+ let active = this.state.activeIndex || 0;
+ active = Math.max(active - 1, 0);
+ this.setState({activeIndex: active});
+ },
+
+ _activateNextItem() {
+ let active = this.state.activeIndex || 0;
+ active = Math.min(active + 1, this._children.length - 1);
+ this.setState({activeIndex: active});
+ },
+
+ _triggerSelection(e) {
+ let index = this.state.activeIndex || 0;
+ this._onItemTap(e, index);
+ },
+
+ _close() {
+ this.props.onRequestClose();
+ },
+
+ _tryToggleNested(index) {
+ let item = this.refs[index];
+ if (item && item.toggleNestedMenu)
+ item.toggleNestedMenu();
+ },
+
+ render() {
+ let styles = this.getStyles();
+ return (
+
+ {this._getChildren()}
+
+ );
+ },
+
+});
+
+export default Menu;
diff --git a/node_modules/material-ui/src/menu/subheader-menu-item.jsx b/node_modules/material-ui/src/menu/subheader-menu-item.jsx
new file mode 100644
index 0000000..409b88a
--- /dev/null
+++ b/node_modules/material-ui/src/menu/subheader-menu-item.jsx
@@ -0,0 +1,102 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import Typography from '../styles/typography';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const SubheaderMenuItem = React.createClass({
+
+ propTypes: {
+ className: React.PropTypes.string,
+ firstChild: React.PropTypes.bool,
+ index: React.PropTypes.number.isRequired,
+ style: React.PropTypes.object,
+ text: React.PropTypes.string.isRequired,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.menuSubheader;
+ },
+
+ getSpacing() {
+ return this.state.muiTheme.rawTheme.spacing;
+ },
+
+ getStyles() {
+ let gutterMini = this.getSpacing().desktopGutterMini;
+ let subheaderHeight = this.getSpacing().desktopSubheaderHeight;
+ let styles = {
+ root: {
+ boxSizing: 'border-box',
+ fontSize: '13px',
+ letterSpacing: 0,
+ fontWeight: Typography.fontWeightMedium,
+ margin: 0,
+ height: subheaderHeight + gutterMini,
+ lineHeight: subheaderHeight + 'px',
+ color: this.getTheme().textColor,
+ borderTop: 'solid 1px ' + this.getTheme().borderColor,
+ paddingTop: gutterMini,
+ marginTop: gutterMini,
+ },
+ rootWhenFirstChild: {
+ height: subheaderHeight,
+ borderTop: 'none',
+ paddingTop: 0,
+ marginTop: 0,
+ },
+ };
+
+ return styles;
+ },
+
+ render() {
+ return (
+
+ {this.props.text}
+
+ );
+ },
+
+});
+
+export default SubheaderMenuItem;
diff --git a/node_modules/material-ui/src/menus/icon-menu.jsx b/node_modules/material-ui/src/menus/icon-menu.jsx
new file mode 100644
index 0000000..c511221
--- /dev/null
+++ b/node_modules/material-ui/src/menus/icon-menu.jsx
@@ -0,0 +1,357 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from '../mixins/style-propable';
+import Events from '../utils/events';
+import PropTypes from '../utils/prop-types';
+import Menu from '../menus/menu';
+import getMuiTheme from '../styles/getMuiTheme';
+import Popover from '../popover/popover';
+import warning from 'warning';
+
+const IconMenu = React.createClass({
+
+ propTypes: {
+ /**
+ * This is the point on the icon where the menu
+ * targetOrigin will stick to.
+ * Options:
+ * vertical: [top, middle, bottom]
+ * horizontal: [left, center, right].
+ */
+ anchorOrigin: PropTypes.origin,
+
+ /**
+ * Should be used to pass `MenuItem` components.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * If true, menu will close after an item is touchTapped.
+ */
+ closeOnItemTouchTap: React.PropTypes.bool,
+
+ /**
+ * This is the IconButton to render. This button will open the menu.
+ */
+ iconButtonElement: React.PropTypes.element.isRequired,
+
+ /**
+ * The style object to use to override underlying icon style.
+ */
+ iconStyle: React.PropTypes.object,
+
+ /**
+ * The style object to use to override underlying menu style.
+ */
+ menuStyle: React.PropTypes.object,
+
+ /**
+ * Fired when a menu item is touchTapped.
+ */
+ onItemTouchTap: React.PropTypes.func,
+
+ /**
+ * Fired when keyobard focuses on element.
+ */
+ onKeyboardFocus: React.PropTypes.func,
+
+ /**
+ * Fired when mouse is pressed on element.
+ */
+ onMouseDown: React.PropTypes.func,
+
+ /**
+ * Fired when mouse enters the element.
+ */
+ onMouseEnter: React.PropTypes.func,
+
+ /**
+ * Fired when mouse leaves the element.
+ */
+ onMouseLeave: React.PropTypes.func,
+
+ /**
+ * Fired when mouse is lifted inside the element.
+ */
+ onMouseUp: React.PropTypes.func,
+
+ /**
+ * Callback function that is fired when the open state
+ * of the menu is requested to be changed. The provided
+ * open argument determines whether the menu is requested
+ * to be opened or closed. Also, the reason argument states
+ * why the menu got closed or opened. It can be 'keyboard',
+ * 'iconTap' for open action and 'enter', 'escape', 'itemTap',
+ * 'clickAway' for close action.
+ */
+ onRequestChange: React.PropTypes.func,
+
+ /**
+ * Fired when element is touch tapped.
+ */
+ onTouchTap: React.PropTypes.func,
+
+ /**
+ * Controls whether the IconMenu is opened or not.
+ */
+ open: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * This is the point on the menu which will stick to the menu
+ * origin.
+ * Options:
+ * vertical: [top, middle, bottom]
+ * horizontal: [left, center, right].
+ */
+ targetOrigin: PropTypes.origin,
+
+ /**
+ * Sets the delay in milliseconds before closing the
+ * menu when an item is clicked.
+ */
+ touchTapCloseDelay: React.PropTypes.number,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ closeOnItemTouchTap: true,
+ open: null,
+ onItemTouchTap: () => {},
+ onKeyboardFocus: () => {},
+ onMouseDown: () => {},
+ onMouseLeave: () => {},
+ onMouseEnter: () => {},
+ onMouseUp: () => {},
+ onTouchTap: () => {},
+ onRequestChange: () => {},
+ anchorOrigin: {
+ vertical: 'top',
+ horizontal: 'left',
+ },
+ targetOrigin: {
+ vertical: 'top',
+ horizontal: 'left',
+ },
+ touchTapCloseDelay: 200,
+ };
+ },
+
+ getInitialState() {
+ if (process.env.NODE_ENV !== 'production') {
+ this._warningIfNeeded();
+ }
+
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ iconButtonRef: this.props.iconButtonElement.props.ref || 'iconButton',
+ menuInitiallyKeyboardFocused: false,
+ open: false,
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ if (process.env.NODE_ENV !== 'production') {
+ this._warningIfNeeded();
+ }
+
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+
+ if (nextProps.open === true || nextProps.open === false) {
+ this.setState({open: nextProps.open});
+ }
+ },
+
+ componentWillUnmount() {
+ if (this._timeout) clearTimeout(this._timeout);
+ },
+
+ _warningIfNeeded() {
+ if (this.props.hasOwnProperty('open')) {
+ warning(this.props.hasOwnProperty('closeOnItemTouchTap'),
+ 'closeOnItemTouchTap has been deprecated in favor of open, onRequestChange');
+ }
+ },
+
+ isOpen() {
+ return this.state.open;
+ },
+
+ close(reason, isKeyboard) {
+ if (!this.state.open) {
+ return;
+ }
+
+ if (this.props.open !== null) {
+ this.props.onRequestChange(false, reason);
+ }
+
+ this.setState({open: false}, () => {
+ //Set focus on the icon button when the menu close
+ if (isKeyboard) {
+ let iconButton = this.refs[this.state.iconButtonRef];
+ ReactDOM.findDOMNode(iconButton).focus();
+ iconButton.setKeyboardFocus();
+ }
+ });
+ },
+
+ open(reason, event) {
+ if (this.props.open !== null) {
+ this.props.onRequestChange(true, reason);
+
+ return this.setState({
+ menuInitiallyKeyboardFocused: Events.isKeyboard(event),
+ anchorEl: event.currentTarget,
+ });
+ }
+
+ this.setState({
+ open: true,
+ menuInitiallyKeyboardFocused: Events.isKeyboard(event),
+ anchorEl: event.currentTarget,
+ });
+
+ event.preventDefault();
+ },
+
+ _handleItemTouchTap(event, child) {
+ if (this.props.closeOnItemTouchTap) {
+ const isKeyboard = Events.isKeyboard(event);
+ this._timeout = setTimeout(() => {
+ if (!this.isMounted()) {
+ return;
+ }
+
+ this.close(isKeyboard ? 'enter' : 'itemTap', isKeyboard);
+ }, this.props.touchTapCloseDelay);
+ }
+
+ this.props.onItemTouchTap(event, child);
+ },
+
+ _handleMenuEscKeyDown(event) {
+ this.close('escape', event);
+ },
+
+ render() {
+ let {
+ anchorOrigin,
+ className,
+ closeOnItemTouchTap,
+ iconButtonElement,
+ iconStyle,
+ onItemTouchTap,
+ onKeyboardFocus,
+ onMouseDown,
+ onMouseLeave,
+ onMouseEnter,
+ onMouseUp,
+ onTouchTap,
+ menuStyle,
+ style,
+ targetOrigin,
+ ...other,
+ } = this.props;
+
+ const {open, anchorEl} = this.state;
+
+ let styles = {
+ root: {
+ display: 'inline-block',
+ position: 'relative',
+ },
+
+ menu: {
+ position: 'relative',
+ },
+ };
+
+ let mergedRootStyles = this.mergeStyles(styles.root, style);
+ let mergedMenuStyles = this.mergeStyles(styles.menu, menuStyle);
+
+ let iconButton = React.cloneElement(iconButtonElement, {
+ onKeyboardFocus: this.props.onKeyboardFocus,
+ iconStyle: this.mergeStyles(iconStyle, iconButtonElement.props.iconStyle),
+ onTouchTap: (e) => {
+ this.open(Events.isKeyboard(e) ? 'keyboard' : 'iconTap', e);
+ if (iconButtonElement.props.onTouchTap) iconButtonElement.props.onTouchTap(e);
+ },
+ ref: this.state.iconButtonRef,
+ });
+
+ let menu = (
+
+ {this.props.children}
+
+ );
+
+ return (
+
+ {iconButton}
+
+ {menu}
+
+
+ );
+ },
+
+});
+
+export default IconMenu;
diff --git a/node_modules/material-ui/src/menus/menu-divider.jsx b/node_modules/material-ui/src/menus/menu-divider.jsx
new file mode 100644
index 0000000..c6669c9
--- /dev/null
+++ b/node_modules/material-ui/src/menus/menu-divider.jsx
@@ -0,0 +1,41 @@
+import React from 'react';
+import Divider from '../divider';
+import {mergeStyles} from '../utils/styles';
+import warning from 'warning';
+
+const MenuDivider = React.createClass({
+
+ propTypes: {
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ getInitialState() {
+ warning(false, ' has been deprecated. Please use the component.');
+ return null;
+ },
+
+ getStyles() {
+ return {
+ root: {
+ marginTop: 7,
+ marginBottom: 8,
+ },
+ };
+ },
+
+ render() {
+ const {
+ style,
+ ...other,
+ } = this.props;
+
+ const styles = this.getStyles();
+
+ return ;
+ },
+});
+
+export default MenuDivider;
diff --git a/node_modules/material-ui/src/menus/menu-item.jsx b/node_modules/material-ui/src/menus/menu-item.jsx
new file mode 100644
index 0000000..e6df611
--- /dev/null
+++ b/node_modules/material-ui/src/menus/menu-item.jsx
@@ -0,0 +1,322 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import StylePropable from '../mixins/style-propable';
+import Colors from '../styles/colors';
+import Popover from '../popover/popover';
+import CheckIcon from '../svg-icons/navigation/check';
+import ListItem from '../lists/list-item';
+import getMuiTheme from '../styles/getMuiTheme';
+import Menu from './menu';
+
+const nestedMenuStyle = {
+ position: 'relative',
+};
+
+const MenuItem = React.createClass({
+
+ propTypes: {
+ /**
+ * If true, a left check mark will be rendered.
+ */
+ checked: React.PropTypes.bool,
+
+ /**
+ * Elements passed as children to inner ListItem.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * Indicates if the menu should render with compact desktop styles.
+ */
+ desktop: React.PropTypes.bool,
+
+ /**
+ * Disables a menu item.
+ */
+ disabled: React.PropTypes.bool,
+
+ /**
+ * Prop passed down to ListItem that tells it what kind of focus it has.
+ */
+ focusState: React.PropTypes.oneOf([
+ 'none',
+ 'focused',
+ 'keyboard-focused',
+ ]),
+
+ /**
+ * Style overrides for the inner div.
+ */
+ innerDivStyle: React.PropTypes.object,
+
+ /**
+ * If true, the children will be indented.
+ * Only needed when there is no leftIcon.
+ */
+ insetChildren: React.PropTypes.bool,
+
+ /**
+ * This is the SvgIcon or FontIcon to be displayed on the left side.
+ */
+ leftIcon: React.PropTypes.element,
+
+ /**
+ * Nested MenuItems for this MenuItem. Used to make nested menus.
+ */
+ menuItems: React.PropTypes.node,
+
+ /**
+ * Fired when the element is touchTapped.
+ */
+ onTouchTap: React.PropTypes.func,
+
+ /**
+ * This is the SvgIcon or FontIcon to be displayed on the right side.
+ */
+ rightIcon: React.PropTypes.element,
+
+ /**
+ * This is the block element that contains the secondary text.
+ * If a string is passed in, a div tag will be rendered.
+ */
+ secondaryText: React.PropTypes.node,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The value of the menu item.
+ */
+ value: React.PropTypes.any,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ PureRenderMixin,
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ checked: false,
+ desktop: false,
+ disabled: false,
+ focusState: 'none',
+ insetChildren: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ open: false,
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ this._applyFocusState();
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+
+ if (this.state.open && nextProps.focusState === 'none') {
+ this._onRequestClose();
+ }
+ },
+
+ componentDidUpdate() {
+ this._applyFocusState();
+ },
+
+ componentWillUnmount() {
+ if (this.state.open) {
+ this.setState({
+ open: false,
+ });
+ }
+ },
+
+ _applyFocusState() {
+ this.refs.listItem.applyFocusState(this.props.focusState);
+ },
+
+ _cloneMenuItem(item) {
+ return React.cloneElement(item, {
+ onTouchTap: (event) => {
+ if (!item.props.menuItems) {
+ this._onRequestClose();
+ }
+
+ if (item.props.onTouchTap) {
+ item.props.onTouchTap(event);
+ }
+ },
+ onRequestClose: this._onRequestClose,
+ });
+ },
+
+ _onTouchTap(event) {
+ event.preventDefault();
+
+ this.setState({
+ open: true,
+ anchorEl: ReactDOM.findDOMNode(this),
+ });
+
+ if (this.props.onTouchTap) {
+ this.props.onTouchTap(event);
+ }
+ },
+
+ _onRequestClose() {
+ this.setState({
+ open: false,
+ anchorEl: null,
+ });
+ },
+
+ render() {
+ const {
+ checked,
+ children,
+ desktop,
+ disabled,
+ focusState,
+ innerDivStyle,
+ insetChildren,
+ leftIcon,
+ menuItems,
+ rightIcon,
+ secondaryText,
+ style,
+ value,
+ ...other,
+ } = this.props;
+
+ const disabledColor = this.state.muiTheme.rawTheme.palette.disabledColor;
+ const textColor = this.state.muiTheme.rawTheme.palette.textColor;
+ const leftIndent = desktop ? 64 : 72;
+ const sidePadding = desktop ? 24 : 16;
+
+ const styles = {
+ root: {
+ color: disabled ? disabledColor : textColor,
+ lineHeight: desktop ? '32px' : '48px',
+ fontSize: desktop ? 15 : 16,
+ whiteSpace: 'nowrap',
+ },
+
+ innerDivStyle: {
+ paddingLeft: leftIcon || insetChildren || checked ? leftIndent : sidePadding,
+ paddingRight: sidePadding,
+ paddingBottom: 0,
+ paddingTop: 0,
+ },
+
+ secondaryText: {
+ float: 'right',
+ },
+
+ leftIconDesktop: {
+ margin: 0,
+ left: 24,
+ top: 4,
+ },
+
+ rightIconDesktop: {
+ margin: 0,
+ right: 24,
+ top: 4,
+ fill: Colors.grey600,
+ },
+ };
+
+ let mergedRootStyles = this.mergeStyles(styles.root, style);
+ let mergedInnerDivStyles = this.mergeStyles(styles.innerDivStyle, innerDivStyle);
+
+ //Left Icon
+ let leftIconElement = leftIcon ? leftIcon : checked ? : null;
+ if (leftIconElement && desktop) {
+ const mergedLeftIconStyles = this.mergeStyles(styles.leftIconDesktop, leftIconElement.props.style);
+ leftIconElement = React.cloneElement(leftIconElement, {style: mergedLeftIconStyles});
+ }
+
+ //Right Icon
+ let rightIconElement;
+ if (rightIcon) {
+ const mergedRightIconStyles = desktop ?
+ this.mergeStyles(styles.rightIconDesktop, rightIcon.props.style) : rightIcon.props.style;
+ rightIconElement = React.cloneElement(rightIcon, {style: mergedRightIconStyles});
+ }
+
+ //Secondary Text
+ let secondaryTextElement;
+ if (secondaryText) {
+ const secondaryTextIsAnElement = React.isValidElement(secondaryText);
+ const mergedSecondaryTextStyles = secondaryTextIsAnElement ?
+ this.mergeStyles(styles.secondaryText, secondaryText.props.style) : null;
+
+ secondaryTextElement = secondaryTextIsAnElement ?
+ React.cloneElement(secondaryText, {style: mergedSecondaryTextStyles}) :
+ {secondaryText}
;
+ }
+ let childMenuPopover;
+ if (menuItems) {
+ childMenuPopover = (
+
+
+ {React.Children.map(menuItems, this._cloneMenuItem)}
+
+
+ );
+ other.onTouchTap = this._onTouchTap;
+ }
+
+ return (
+
+ {children}
+ {secondaryTextElement}
+ {childMenuPopover}
+
+ );
+ },
+
+});
+
+export default MenuItem;
diff --git a/node_modules/material-ui/src/menus/menu.jsx b/node_modules/material-ui/src/menus/menu.jsx
new file mode 100644
index 0000000..98f5ff2
--- /dev/null
+++ b/node_modules/material-ui/src/menus/menu.jsx
@@ -0,0 +1,591 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import update from 'react-addons-update';
+import StylePropable from '../mixins/style-propable';
+import ClickAwayable from '../mixins/click-awayable';
+import autoPrefix from '../styles/auto-prefix';
+import Transitions from '../styles/transitions';
+import KeyCode from '../utils/key-code';
+import PropTypes from '../utils/prop-types';
+import List from '../lists/list';
+import Paper from '../paper';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const Menu = React.createClass({
+
+ propTypes: {
+ /**
+ * If true, the menu will apply transitions when added it
+ * gets added to the DOM. In order for transitions to
+ * work, wrap the menu inside a ReactTransitionGroup.
+ */
+ animated: React.PropTypes.bool,
+
+ /**
+ * If true, the width will automatically be
+ * set according to the items inside the menu
+ * using the proper keyline increment.
+ */
+ autoWidth: React.PropTypes.bool,
+
+ /**
+ * Children for the Menu. Usually MenuItems.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * Indicates if the menu should render with compact desktop styles.
+ */
+ desktop: React.PropTypes.bool,
+
+ /**
+ * True if this item should be focused by the keyboard initially.
+ */
+ initiallyKeyboardFocused: React.PropTypes.bool,
+
+ /**
+ * The style object to use to override underlying list style.
+ */
+ listStyle: React.PropTypes.object,
+
+ /**
+ * The maxHeight of the menu in pixels. If
+ * specified, the menu will scroll if larger than the maxHeight.
+ */
+ maxHeight: React.PropTypes.number,
+
+ /**
+ * If true, the value can an array and allow the menu to be a multi-select.
+ */
+ multiple: React.PropTypes.bool,
+
+ /**
+ * Fired when a menu item is touchTapped and the menu item
+ * value is not equal to the current menu value.
+ */
+ onChange: React.PropTypes.func,
+
+ /**
+ * Fired when an Esc key is keyed down.
+ */
+ onEscKeyDown: React.PropTypes.func,
+
+ /**
+ * Fired when a menu item is touchTapped.
+ */
+ onItemTouchTap: React.PropTypes.func,
+
+ /**
+ * Fired when a key is pressed.
+ */
+ onKeyDown: React.PropTypes.func,
+
+ /**
+ * This is the placement of the menu relative to the IconButton.
+ */
+ openDirection: PropTypes.corners,
+
+ /**
+ * Style for the selected Menu Item.
+ */
+ selectedMenuItemStyle: React.PropTypes.object,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The value of the selected menu item. If passed in,
+ * this will make the menu a controlled component.
+ * This component also supports valueLink.
+ */
+ value: React.PropTypes.any,
+
+ /**
+ * ValueLink for this component when controlled.
+ */
+ valueLink: React.PropTypes.object,
+
+ /**
+ * Sets the width of the menu. If not specified, the menu
+ * width will be dictated by its children. The rendered
+ * width will always be a keyline increment
+ * (64px for desktop, 56px otherwise).
+ */
+ width: PropTypes.stringOrNumber,
+
+ /**
+ * Sets the width of the menu. If not specified,
+ * the menu width will be dictated by its children.
+ * The rendered width will always be a keyline increment
+ * (64px for desktop, 56px otherwise).
+ */
+ zDepth: PropTypes.zDepth,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ClickAwayable,
+ ],
+
+ getDefaultProps() {
+ return {
+ animated: false,
+ autoWidth: true,
+ desktop: false,
+ initiallyKeyboardFocused: false,
+ maxHeight: null,
+ multiple: false,
+ onChange: () => {},
+ onEscKeyDown: () => {},
+ onItemTouchTap: () => {},
+ onKeyDown: () => {},
+ openDirection: 'bottom-left',
+ zDepth: 1,
+ };
+ },
+
+ getInitialState() {
+ const filteredChildren = this._getFilteredChildren(this.props.children);
+ let selectedIndex = this._getSelectedIndex(this.props, filteredChildren);
+
+ return {
+ focusIndex: selectedIndex >= 0 ? selectedIndex : 0,
+ isKeyboardFocused: this.props.initiallyKeyboardFocused,
+ keyWidth: this.props.desktop ? 64 : 56,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ if (this.props.autoWidth) this._setWidth();
+ if (!this.props.animated) this._animateOpen();
+ this._setScollPosition();
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ const filteredChildren = this._getFilteredChildren(nextProps.children);
+ let selectedIndex = this._getSelectedIndex(nextProps, filteredChildren);
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+
+ this.setState({
+ focusIndex: selectedIndex >= 0 ? selectedIndex : 0,
+ keyWidth: nextProps.desktop ? 64 : 56,
+ muiTheme: newMuiTheme,
+ });
+ },
+
+ componentDidUpdate() {
+ if (this.props.autoWidth) this._setWidth();
+ },
+
+ componentClickAway(e) {
+ if (e.defaultPrevented)
+ return;
+ this._setFocusIndex(-1, false);
+ },
+
+ // Do not use outside of this component, it will be removed once valueLink is deprecated
+ getValueLink(props) {
+ return props.valueLink || {
+ value: props.value,
+ requestChange: props.onChange,
+ };
+ },
+
+ setKeyboardFocused(keyboardFocused) {
+ this.setState({
+ isKeyboardFocused: keyboardFocused,
+ });
+ },
+
+ _getFilteredChildren(children) {
+ const filteredChildren = [];
+ React.Children.forEach(children, child => {
+ if (child) {
+ filteredChildren.push(child);
+ }
+ });
+ return filteredChildren;
+ },
+
+ _animateOpen() {
+ let rootStyle = ReactDOM.findDOMNode(this).style;
+ let scrollContainerStyle = ReactDOM.findDOMNode(this.refs.scrollContainer).style;
+ let menuContainers = ReactDOM.findDOMNode(this.refs.list).childNodes;
+
+ autoPrefix.set(rootStyle, 'transform', 'scaleX(1)', this.state.muiTheme);
+ autoPrefix.set(scrollContainerStyle, 'transform', 'scaleY(1)', this.state.muiTheme);
+ scrollContainerStyle.opacity = 1;
+
+ for (let i = 0; i < menuContainers.length; ++i) {
+ menuContainers[i].style.opacity = 1;
+ }
+ },
+
+ _cloneMenuItem(child, childIndex, styles) {
+ let {
+ desktop,
+ selectedMenuItemStyle,
+ } = this.props;
+
+ let selected = this._isChildSelected(child, this.props);
+ let selectedChildrenStyles = {};
+
+ if (selected) {
+ selectedChildrenStyles = this.mergeStyles(styles.selectedMenuItem, selectedMenuItemStyle);
+ }
+
+ let mergedChildrenStyles = this.mergeStyles(
+ child.props.style || {},
+ selectedChildrenStyles
+ );
+
+ let isFocused = childIndex === this.state.focusIndex;
+ let focusState = 'none';
+ if (isFocused) {
+ focusState = this.state.isKeyboardFocused ?
+ 'keyboard-focused' : 'focused';
+ }
+
+ return React.cloneElement(child, {
+ desktop: desktop,
+ focusState: focusState,
+ onTouchTap: (e) => {
+ this._handleMenuItemTouchTap(e, child);
+ if (child.props.onTouchTap) child.props.onTouchTap(e);
+ },
+ ref: isFocused ? 'focusedMenuItem' : null,
+ style: mergedChildrenStyles,
+ });
+ },
+
+ _decrementKeyboardFocusIndex() {
+ let index = this.state.focusIndex;
+
+ index--;
+ if (index < 0) index = 0;
+
+ this._setFocusIndex(index, true);
+ },
+
+ _getCascadeChildrenCount(filteredChildren) {
+ let {
+ desktop,
+ maxHeight,
+ } = this.props;
+ let count = 1;
+ let currentHeight = desktop ? 16 : 8;
+ let menuItemHeight = desktop ? 32 : 48;
+
+ //MaxHeight isn't set - cascade all of the children
+ if (!maxHeight) return filteredChildren.length;
+
+ //Count all the children that will fit inside the
+ //max menu height
+ filteredChildren.forEach(child => {
+ if (currentHeight < maxHeight) {
+ let childIsADivider = child.type && child.type.displayName === 'Divider';
+
+ currentHeight += childIsADivider ? 16 : menuItemHeight;
+ count++;
+ }
+ });
+
+ return count;
+ },
+
+ _getMenuItemCount(filteredChildren) {
+ let menuItemCount = 0;
+ filteredChildren.forEach(child => {
+ let childIsADivider = child.type && child.type.displayName === 'Divider';
+ let childIsDisabled = child.props.disabled;
+ if (!childIsADivider && !childIsDisabled) menuItemCount++;
+ });
+ return menuItemCount;
+ },
+
+ _getSelectedIndex(props, filteredChildren) {
+ let selectedIndex = -1;
+ let menuItemIndex = 0;
+
+ filteredChildren.forEach(child => {
+ let childIsADivider = child.type && child.type.displayName === 'Divider';
+
+ if (this._isChildSelected(child, props)) selectedIndex = menuItemIndex;
+ if (!childIsADivider) menuItemIndex++;
+ });
+
+ return selectedIndex;
+ },
+
+ _handleKeyDown(e) {
+ const filteredChildren = this._getFilteredChildren(this.props.children);
+ switch (e.keyCode) {
+ case KeyCode.DOWN:
+ e.preventDefault();
+ this._incrementKeyboardFocusIndex(filteredChildren);
+ break;
+ case KeyCode.ESC:
+ this.props.onEscKeyDown(e);
+ break;
+ case KeyCode.TAB:
+ e.preventDefault();
+ if (e.shiftKey) {
+ this._decrementKeyboardFocusIndex();
+ } else {
+ this._incrementKeyboardFocusIndex(filteredChildren);
+ }
+ break;
+ case KeyCode.UP:
+ e.preventDefault();
+ this._decrementKeyboardFocusIndex();
+ break;
+ }
+ this.props.onKeyDown(e);
+ },
+
+ _handleMenuItemTouchTap(e, item) {
+ let children = this.props.children;
+ let multiple = this.props.multiple;
+ let valueLink = this.getValueLink(this.props);
+ let menuValue = valueLink.value;
+ let itemValue = item.props.value;
+ let focusIndex = React.isValidElement(children) ? 0 : children.indexOf(item);
+
+ this._setFocusIndex(focusIndex, false);
+
+ if (multiple) {
+ let index = menuValue.indexOf(itemValue);
+ let newMenuValue = index === -1 ?
+ update(menuValue, {$push: [itemValue]}) :
+ update(menuValue, {$splice: [[index, 1]]});
+
+ valueLink.requestChange(e, newMenuValue);
+ } else if (!multiple && itemValue !== menuValue) {
+ valueLink.requestChange(e, itemValue);
+ }
+
+ this.props.onItemTouchTap(e, item);
+ },
+
+ _incrementKeyboardFocusIndex(filteredChildren) {
+ let index = this.state.focusIndex;
+ let maxIndex = this._getMenuItemCount(filteredChildren) - 1;
+
+ index++;
+ if (index > maxIndex) index = maxIndex;
+
+ this._setFocusIndex(index, true);
+ },
+
+ _isChildSelected(child, props) {
+ let multiple = props.multiple;
+ let menuValue = this.getValueLink(props).value;
+ let childValue = child.props.value;
+
+ return (multiple && menuValue.length && menuValue.indexOf(childValue) !== -1) ||
+ (!multiple && menuValue && menuValue === childValue);
+ },
+
+ _setFocusIndex(newIndex, isKeyboardFocused) {
+ this.setState({
+ focusIndex: newIndex,
+ isKeyboardFocused: isKeyboardFocused,
+ });
+ },
+
+ _setScollPosition() {
+ let desktop = this.props.desktop;
+ let focusedMenuItem = this.refs.focusedMenuItem;
+ let menuItemHeight = desktop ? 32 : 48;
+
+ if (focusedMenuItem) {
+ let selectedOffSet = ReactDOM.findDOMNode(focusedMenuItem).offsetTop;
+
+ //Make the focused item be the 2nd item in the list the
+ //user sees
+ let scrollTop = selectedOffSet - menuItemHeight;
+ if (scrollTop < menuItemHeight) scrollTop = 0;
+
+ ReactDOM.findDOMNode(this.refs.scrollContainer).scrollTop = scrollTop;
+ }
+ },
+
+ _setWidth() {
+ let el = ReactDOM.findDOMNode(this);
+ let listEl = ReactDOM.findDOMNode(this.refs.list);
+ let elWidth = el.offsetWidth;
+ let keyWidth = this.state.keyWidth;
+ let minWidth = keyWidth * 1.5;
+ let keyIncrements = elWidth / keyWidth;
+ let newWidth;
+
+ keyIncrements = keyIncrements <= 1.5 ? 1.5 : Math.ceil(keyIncrements);
+ newWidth = keyIncrements * keyWidth;
+
+ if (newWidth < minWidth) newWidth = minWidth;
+
+ el.style.width = newWidth + 'px';
+ listEl.style.width = newWidth + 'px';
+ },
+
+ render() {
+ let {
+ animated,
+ autoWidth,
+ children,
+ desktop,
+ initiallyKeyboardFocused,
+ listStyle,
+ maxHeight,
+ multiple,
+ openDirection,
+ selectedMenuItemStyle,
+ style,
+ value,
+ valueLink,
+ width,
+ zDepth,
+ ...other,
+ } = this.props;
+
+ let openDown = openDirection.split('-')[0] === 'bottom';
+ let openLeft = openDirection.split('-')[1] === 'left';
+
+ const muiTheme = this.state.muiTheme;
+ const rawTheme = muiTheme.rawTheme;
+
+ let styles = {
+ root: {
+ //Nested div bacause the List scales x faster than
+ //it scales y
+ transition: animated ? Transitions.easeOut('250ms', 'transform') : null,
+ zIndex: muiTheme.zIndex.menu,
+ top: openDown ? 0 : null,
+ bottom: !openDown ? 0 : null,
+ left: !openLeft ? 0 : null,
+ right: openLeft ? 0 : null,
+ transform: 'scaleX(0)',
+ transformOrigin: openLeft ? 'right' : 'left',
+ },
+
+ divider: {
+ marginTop: 7,
+ marginBottom: 8,
+ },
+
+ list: {
+ display: 'table-cell',
+ paddingBottom: desktop ? 16 : 8,
+ paddingTop: desktop ? 16 : 8,
+ userSelect: 'none',
+ width: width,
+ },
+
+ menuItemContainer: {
+ transition: animated ? Transitions.easeOut(null, 'opacity') : null,
+ opacity: 0,
+ },
+
+ paper: {
+ transition: animated ? Transitions.easeOut('500ms', ['transform', 'opacity']) : null,
+ transform: 'scaleY(0)',
+ transformOrigin: openDown ? 'top' : 'bottom',
+ opacity: 0,
+ maxHeight: maxHeight,
+ overflowY: maxHeight ? 'auto' : null,
+ },
+
+ selectedMenuItem: {
+ color: rawTheme.palette.accent1Color,
+ },
+ };
+
+ let mergedRootStyles = this.mergeStyles(styles.root, style);
+ let mergedListStyles = this.mergeStyles(styles.list, listStyle);
+
+ const filteredChildren = this._getFilteredChildren(children);
+
+ //Cascade children opacity
+ let cumulativeDelay = openDown ? 175 : 325;
+ let cascadeChildrenCount = this._getCascadeChildrenCount(filteredChildren);
+ let cumulativeDelayIncrement = Math.ceil(150 / cascadeChildrenCount);
+
+ let menuItemIndex = 0;
+ let newChildren = React.Children.map(filteredChildren, child => {
+ let childIsADivider = child.type && child.type.displayName === 'Divider';
+ let childIsDisabled = child.props.disabled;
+ let childrenContainerStyles = {};
+
+ if (animated) {
+ let focusIndex = this.state.focusIndex;
+ let transitionDelay = 0;
+
+ //Only cascade the visible menu items
+ if ((menuItemIndex >= focusIndex - 1) &&
+ (menuItemIndex <= focusIndex + cascadeChildrenCount - 1)) {
+ cumulativeDelay = openDown ?
+ cumulativeDelay + cumulativeDelayIncrement :
+ cumulativeDelay - cumulativeDelayIncrement;
+ transitionDelay = cumulativeDelay;
+ }
+
+ childrenContainerStyles = this.mergeStyles(styles.menuItemContainer, {
+ transitionDelay: transitionDelay + 'ms',
+ });
+ }
+
+ let clonedChild = childIsADivider ? React.cloneElement(child, {style: styles.divider}) :
+ childIsDisabled ? React.cloneElement(child, {desktop: desktop}) :
+ this._cloneMenuItem(child, menuItemIndex, styles);
+
+ if (!childIsADivider && !childIsDisabled) menuItemIndex++;
+
+ return animated ? (
+ {clonedChild}
+ ) : clonedChild;
+
+ });
+
+ return (
+
+
+
+ {newChildren}
+
+
+
+ );
+ },
+
+});
+
+export default Menu;
diff --git a/node_modules/material-ui/src/mixins/click-awayable.js b/node_modules/material-ui/src/mixins/click-awayable.js
new file mode 100644
index 0000000..6fad865
--- /dev/null
+++ b/node_modules/material-ui/src/mixins/click-awayable.js
@@ -0,0 +1,43 @@
+import ReactDOM from 'react-dom';
+import Events from '../utils/events';
+import Dom from '../utils/dom';
+
+export default {
+
+ //When the component mounts, listen to click events and check if we need to
+ //Call the componentClickAway function.
+ componentDidMount() {
+ if (!this.manuallyBindClickAway) this._bindClickAway();
+ },
+
+ componentWillUnmount() {
+ this._unbindClickAway();
+ },
+
+ _checkClickAway(event) {
+ if (this.isMounted()) {
+ let el = ReactDOM.findDOMNode(this);
+
+ // Check if the target is inside the current component
+ if (event.target !== el &&
+ !Dom.isDescendant(el, event.target) &&
+ document.documentElement.contains(event.target)) {
+ if (this.componentClickAway) this.componentClickAway(event);
+ }
+ }
+ },
+
+ _bindClickAway() {
+ // On touch-enabled devices, both events fire, and the handler is called twice,
+ // but it's fine since all operations for which the mixin is used
+ // are idempotent.
+ Events.on(document, 'mouseup', this._checkClickAway);
+ Events.on(document, 'touchend', this._checkClickAway);
+ },
+
+ _unbindClickAway() {
+ Events.off(document, 'mouseup', this._checkClickAway);
+ Events.off(document, 'touchend', this._checkClickAway);
+ },
+
+};
diff --git a/node_modules/material-ui/src/mixins/context-pure.js b/node_modules/material-ui/src/mixins/context-pure.js
new file mode 100644
index 0000000..6799a59
--- /dev/null
+++ b/node_modules/material-ui/src/mixins/context-pure.js
@@ -0,0 +1,55 @@
+import shallowEqual from '../utils/shallow-equal';
+
+function relevantContextKeysEqual(classObject, currentContext, nextContext) {
+
+ //Get those keys from current object's context that we care
+ //about and check whether those keys have changed or not
+ if (classObject.getRelevantContextKeys) {
+ const currentContextKeys = classObject.getRelevantContextKeys(currentContext);
+ const nextContextKeys = classObject.getRelevantContextKeys(nextContext);
+
+ if (!shallowEqual(currentContextKeys, nextContextKeys)) {
+ return false;
+ }
+ }
+
+ //Check if children context keys changed
+ if (classObject.getChildrenClasses) {
+ const childrenArray = classObject.getChildrenClasses();
+ for (let i = 0; i < childrenArray.length; i++) {
+ if (!relevantContextKeysEqual(childrenArray[i], currentContext, nextContext)) {
+ return false;
+ }
+ }
+ }
+
+ //context keys are equal
+ return true;
+}
+
+export default {
+
+ //Don't update if state, prop, and context are equal
+ shouldComponentUpdate(nextProps, nextState, nextContext) {
+
+ //If either the props or state have changed, component should update
+ if (!shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState)) {
+ return true;
+ }
+
+ //If current theme and next theme are both undefined, do not update
+ if (!this.context.muiTheme && !nextContext.muiTheme) {
+ return false;
+ }
+
+ //If both themes exist, compare keys only if current theme is not static
+ if (this.context.muiTheme && nextContext.muiTheme) {
+ return !this.context.muiTheme.static &&
+ !relevantContextKeysEqual(this.constructor, this.context.muiTheme, nextContext.muiTheme);
+ }
+
+ //At this point it is guaranteed that exactly one theme is undefined so simply update
+ return true;
+ },
+
+};
diff --git a/node_modules/material-ui/src/mixins/index.js b/node_modules/material-ui/src/mixins/index.js
new file mode 100644
index 0000000..2802fb9
--- /dev/null
+++ b/node_modules/material-ui/src/mixins/index.js
@@ -0,0 +1,16 @@
+import ClickAwayable from './click-awayable';
+import WindowListenable from './window-listenable';
+import StylePropable from './style-propable';
+import StyleResizable from './style-resizable';
+
+export {ClickAwayable};
+export {WindowListenable};
+export {StylePropable};
+export {StyleResizable};
+
+export default {
+ ClickAwayable,
+ WindowListenable,
+ StylePropable,
+ StyleResizable,
+};
diff --git a/node_modules/material-ui/src/mixins/style-propable.js b/node_modules/material-ui/src/mixins/style-propable.js
new file mode 100644
index 0000000..3bcdcf7
--- /dev/null
+++ b/node_modules/material-ui/src/mixins/style-propable.js
@@ -0,0 +1,32 @@
+import React from 'react';
+import {mergeStyles, mergeAndPrefix} from '../utils/styles';
+
+/**
+ * This mixin isn't necessary and will be removed soon. DO NOT USE!
+ *
+ * All internal components that use this mixin should be switched to the
+ * `styleUtils` that this mixin now wraps. Notice the method signature of
+ * the `prepareStyles()` function of this mixin is different than the method
+ * signature of the `prepareStyles()` function in `styleUtils`.
+ *
+ * See `../utils/styles.js` for more details.
+ */
+export default {
+
+ propTypes: {
+ style: React.PropTypes.object,
+ },
+
+ mergeStyles,
+
+ mergeAndPrefix,
+
+ prepareStyles(...args) {
+ const {
+ prepareStyles = (style) => (style),
+ } = (this.state && this.state.muiTheme) || (this.context && this.context.muiTheme) ||
+ (this.props && this.props.muiTheme) || {};
+
+ return prepareStyles(mergeStyles({}, ...args));
+ },
+};
diff --git a/node_modules/material-ui/src/mixins/style-resizable.js b/node_modules/material-ui/src/mixins/style-resizable.js
new file mode 100644
index 0000000..8cbb120
--- /dev/null
+++ b/node_modules/material-ui/src/mixins/style-resizable.js
@@ -0,0 +1,53 @@
+import Events from '../utils/events';
+
+const Sizes = {
+ SMALL: 1,
+ MEDIUM: 2,
+ LARGE: 3,
+};
+
+export default {
+
+ statics: {
+ Sizes: Sizes,
+ },
+
+ getInitialState() {
+ return {
+ deviceSize: Sizes.SMALL,
+ };
+ },
+
+ componentDidMount() {
+ this._updateDeviceSize();
+ if (!this.manuallyBindResize) this._bindResize();
+ },
+
+ componentWillUnmount() {
+ this._unbindResize();
+ },
+
+ isDeviceSize(desiredSize) {
+ return this.state.deviceSize >= desiredSize;
+ },
+
+ _updateDeviceSize() {
+ const width = window.innerWidth;
+
+ if (width >= 992) {
+ this.setState({deviceSize: Sizes.LARGE});
+ } else if (width >= 768) {
+ this.setState({deviceSize: Sizes.MEDIUM});
+ } else { // width < 768
+ this.setState({deviceSize: Sizes.SMALL});
+ }
+ },
+
+ _bindResize() {
+ Events.on(window, 'resize', this._updateDeviceSize);
+ },
+
+ _unbindResize() {
+ Events.off(window, 'resize', this._updateDeviceSize);
+ },
+};
diff --git a/node_modules/material-ui/src/mixins/window-listenable.js b/node_modules/material-ui/src/mixins/window-listenable.js
new file mode 100644
index 0000000..88cb13c
--- /dev/null
+++ b/node_modules/material-ui/src/mixins/window-listenable.js
@@ -0,0 +1,24 @@
+import Events from '../utils/events';
+
+
+export default {
+
+ componentDidMount() {
+ let listeners = this.windowListeners;
+
+ for (let eventName in listeners) {
+ let callbackName = listeners[eventName];
+ Events.on(window, eventName, this[callbackName]);
+ }
+ },
+
+ componentWillUnmount() {
+ let listeners = this.windowListeners;
+
+ for (let eventName in listeners) {
+ let callbackName = listeners[eventName];
+ Events.off(window, eventName, this[callbackName]);
+ }
+ },
+
+};
diff --git a/node_modules/material-ui/src/muiThemeable.js b/node_modules/material-ui/src/muiThemeable.js
new file mode 100644
index 0000000..8b7ca9c
--- /dev/null
+++ b/node_modules/material-ui/src/muiThemeable.js
@@ -0,0 +1,22 @@
+import React from 'react';
+import getMuiTheme from './styles/getMuiTheme';
+
+function getDisplayName(WrappedComponent) {
+ return WrappedComponent.displayName || WrappedComponent.name || 'Component';
+}
+
+export default function muiThemeable(WrappedComponent) {
+ const MuiComponent = (props, {muiTheme = getMuiTheme()}) => {
+ return ;
+ };
+
+ MuiComponent.displayName = getDisplayName(WrappedComponent);
+ MuiComponent.contextTypes = {
+ muiTheme: React.PropTypes.object,
+ };
+ MuiComponent.childContextTypes = {
+ muiTheme: React.PropTypes.object,
+ };
+
+ return MuiComponent;
+}
diff --git a/node_modules/material-ui/src/overlay.jsx b/node_modules/material-ui/src/overlay.jsx
new file mode 100644
index 0000000..74f3e20
--- /dev/null
+++ b/node_modules/material-ui/src/overlay.jsx
@@ -0,0 +1,131 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from './mixins/style-propable';
+import Transitions from './styles/transitions';
+import Colors from './styles/colors';
+
+const Overlay = React.createClass({
+
+ propTypes: {
+ autoLockScrolling: React.PropTypes.bool,
+ show: React.PropTypes.bool.isRequired,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ transitionEnabled: React.PropTypes.bool,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ autoLockScrolling: true,
+ transitionEnabled: true,
+ style: {},
+ };
+ },
+
+ componentDidMount() {
+ if (this.props.show) {
+ this._applyAutoLockScrolling(this.props);
+ }
+ },
+
+ componentWillReceiveProps(nextProps) {
+ if (this.props.show !== nextProps.show) {
+ this._applyAutoLockScrolling(nextProps);
+ }
+ },
+
+ componentWillUnmount() {
+ if (this.props.show === true) {
+ this._allowScrolling();
+ }
+ },
+
+ _originalBodyOverflow: '',
+
+ setOpacity(opacity) {
+ let overlay = ReactDOM.findDOMNode(this);
+ overlay.style.opacity = opacity;
+ },
+
+ getStyles() {
+ return {
+ root: {
+ position: 'fixed',
+ height: '100%',
+ width: '100%',
+ top: 0,
+ left: '-100%',
+ opacity: 0,
+ backgroundColor: Colors.lightBlack,
+ WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',
+
+ // Two ways to promote overlay to its own render layer
+ willChange: 'opacity',
+ transform: 'translateZ(0)',
+
+ transition:
+ this.props.transitionEnabled &&
+ Transitions.easeOut('0ms', 'left', '400ms') + ',' +
+ Transitions.easeOut('400ms', 'opacity'),
+ },
+ rootWhenShown: {
+ left: '0',
+ opacity: 1,
+ transition:
+ this.props.transitionEnabled &&
+ Transitions.easeOut('0ms', 'left') + ',' +
+ Transitions.easeOut('400ms', 'opacity'),
+ },
+ };
+ },
+
+ _applyAutoLockScrolling(props) {
+ if (props.autoLockScrolling) {
+ if (props.show) {
+ this._preventScrolling();
+ } else {
+ this._allowScrolling();
+ }
+ }
+ },
+
+ _preventScrolling() {
+ const body = document.getElementsByTagName('body')[0];
+ this._originalBodyOverflow = body.style.overflow;
+
+ body.style.overflow = 'hidden';
+ },
+
+ _allowScrolling() {
+ const body = document.getElementsByTagName('body')[0];
+ body.style.overflow = this._originalBodyOverflow || '';
+ },
+
+ render() {
+ const {
+ show,
+ style,
+ ...other,
+ } = this.props;
+
+ const styles = this.mergeStyles(this.getStyles().root, style, show && this.getStyles().rootWhenShown);
+
+ return (
+
+ );
+ },
+
+});
+
+export default Overlay;
diff --git a/node_modules/material-ui/src/paper.jsx b/node_modules/material-ui/src/paper.jsx
new file mode 100644
index 0000000..c5db326
--- /dev/null
+++ b/node_modules/material-ui/src/paper.jsx
@@ -0,0 +1,115 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import StylePropable from './mixins/style-propable';
+import PropTypes from './utils/prop-types';
+import Transitions from './styles/transitions';
+import getMuiTheme from './styles/getMuiTheme';
+
+const Paper = React.createClass({
+
+ propTypes: {
+ /**
+ * Children passed into the paper element.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * Set to true to generate a circlular paper container.
+ */
+ circle: React.PropTypes.bool,
+
+ /**
+ * By default, the paper container will have a border radius.
+ * Set this to false to generate a container with sharp corners.
+ */
+ rounded: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * Set to false to disable CSS transitions for the paper element.
+ */
+ transitionEnabled: React.PropTypes.bool,
+
+ /**
+ * This number represents the zDepth of the paper shadow.
+ */
+ zDepth: PropTypes.zDepth,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ PureRenderMixin,
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ circle: false,
+ rounded: true,
+ transitionEnabled: true,
+ zDepth: 1,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ const newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ render() {
+ const {
+ children,
+ circle,
+ rounded,
+ style,
+ transitionEnabled,
+ zDepth,
+ ...other,
+ } = this.props;
+
+ const styles = {
+ backgroundColor: this.state.muiTheme.paper.backgroundColor,
+ transition: transitionEnabled && Transitions.easeOut(),
+ boxSizing: 'border-box',
+ fontFamily: this.state.muiTheme.rawTheme.fontFamily,
+ WebkitTapHighlightColor: 'rgba(0,0,0,0)',
+ boxShadow: this.state.muiTheme.paper.zDepthShadows[zDepth - 1], // No shadow for 0 depth papers
+ borderRadius: circle ? '50%' : rounded ? '2px' : '0px',
+ };
+
+ return (
+
+ {children}
+
+ );
+ },
+
+});
+
+export default Paper;
diff --git a/node_modules/material-ui/src/popover/popover-animation-from-top.jsx b/node_modules/material-ui/src/popover/popover-animation-from-top.jsx
new file mode 100644
index 0000000..3fc2301
--- /dev/null
+++ b/node_modules/material-ui/src/popover/popover-animation-from-top.jsx
@@ -0,0 +1,120 @@
+import Transitions from '../styles/transitions';
+import React from 'react';
+import PropTypes from '../utils/prop-types';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+import Paper from '../paper';
+
+const PopoverAnimationFromTop = React.createClass({
+
+ propTypes: {
+ children: React.PropTypes.node,
+ className: React.PropTypes.string,
+ open: React.PropTypes.bool.isRequired,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ targetOrigin: PropTypes.origin,
+ zDepth: PropTypes.zDepth,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ style: {},
+ zDepth: 1,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ open: false,
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ this.setState({open: true}); //eslint-disable-line react/no-did-mount-set-state
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+
+ this.setState({
+ open: nextProps.open,
+ muiTheme: newMuiTheme,
+ });
+ },
+
+ getStyles() {
+ let {targetOrigin} = this.props;
+ let horizontal = targetOrigin.horizontal.replace('middle', 'vertical');
+
+ return {
+ base: {
+ opacity: 0,
+ transform: 'scaleY(0)',
+ transformOrigin: `${horizontal} ${targetOrigin.vertical}`,
+ position: 'fixed',
+ zIndex: this.state.muiTheme.zIndex.popover,
+ transition: Transitions.easeOut('450ms', ['transform', 'opacity']),
+ maxHeight: '100%',
+ },
+
+ };
+ },
+
+ getOpenStyles() {
+ return {
+ base: {
+ opacity: 1,
+ transform: 'scaleY(1)',
+ },
+ };
+ },
+
+ render() {
+ let {
+ className,
+ style,
+ zDepth,
+ } = this.props;
+
+ let styles = this.getStyles();
+ let openStyles = {};
+ if (this.state.open)
+ openStyles = this.getOpenStyles();
+
+ return (
+
+ {this.props.children}
+
+ );
+ },
+});
+
+export default PopoverAnimationFromTop;
diff --git a/node_modules/material-ui/src/popover/popover-default-animation.jsx b/node_modules/material-ui/src/popover/popover-default-animation.jsx
new file mode 100644
index 0000000..4d5b3ea
--- /dev/null
+++ b/node_modules/material-ui/src/popover/popover-default-animation.jsx
@@ -0,0 +1,151 @@
+import Transitions from '../styles/transitions';
+import React from 'react';
+import PropTypes from '../utils/prop-types';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+import Paper from '../paper';
+
+const PopoverDefaultAnimation = React.createClass({
+
+ propTypes: {
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+ open: React.PropTypes.bool.isRequired,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ targetOrigin: PropTypes.origin,
+ zDepth: PropTypes.zDepth,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ style: {},
+ zDepth: 1,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ open: false,
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ this.setState({open: true}); //eslint-disable-line react/no-did-mount-set-state
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+
+ this.setState({
+ open: nextProps.open,
+ muiTheme: newMuiTheme,
+ });
+ },
+
+
+ getStyles() {
+ let {targetOrigin} = this.props;
+ let horizontal = targetOrigin.horizontal.replace('middle', 'vertical');
+
+ return {
+ base: {
+ opacity: 0,
+ transform: 'scale(0, 0)',
+ transformOrigin: `${horizontal} ${targetOrigin.vertical}`,
+ position: 'fixed',
+ zIndex: this.state.muiTheme.zIndex.popover,
+ transition: Transitions.easeOut('250ms', ['transform', 'opacity']),
+ maxHeight: '100%',
+
+ },
+ horizontal: {
+ maxHeight: '100%',
+ overflowY: 'auto',
+ transform: 'scaleX(0)',
+ opacity: 0,
+ transformOrigin: `${horizontal} ${targetOrigin.vertical}`,
+ transition: Transitions.easeOut('250ms', ['transform', 'opacity']),
+ },
+ vertical: {
+ opacity: 0,
+ transform: 'scaleY(0)',
+ transformOrigin: `${horizontal} ${targetOrigin.vertical}`,
+ transition: Transitions.easeOut('500ms', ['transform', 'opacity']),
+ },
+ };
+ },
+
+ getOpenStyles() {
+ return {
+ base: {
+ opacity: 1,
+ transform: 'scale(1, 1)',
+ },
+ horizontal: {
+ opacity: 1,
+ transform: 'scaleX(1)',
+ },
+ vertical: {
+ opacity: 1,
+ transform: 'scaleY(1)',
+ },
+ };
+ },
+
+ render() {
+ let {
+ className,
+ style,
+ zDepth,
+ } = this.props;
+
+ let styles = this.getStyles();
+ let openStyles = {};
+ if (this.state.open)
+ openStyles = this.getOpenStyles();
+
+ return (
+
+
+
+ {this.props.children}
+
+
+
+ );
+ },
+});
+
+export default PopoverDefaultAnimation;
diff --git a/node_modules/material-ui/src/popover/popover.jsx b/node_modules/material-ui/src/popover/popover.jsx
new file mode 100644
index 0000000..18dee25
--- /dev/null
+++ b/node_modules/material-ui/src/popover/popover.jsx
@@ -0,0 +1,406 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import WindowListenable from '../mixins/window-listenable';
+import RenderToLayer from '../render-to-layer';
+import StylePropable from '../mixins/style-propable';
+import PropTypes from '../utils/prop-types';
+import Paper from '../paper';
+import throttle from 'lodash.throttle';
+import getMuiTheme from '../styles/getMuiTheme';
+import PopoverDefaultAnimation from './popover-default-animation';
+
+const Popover = React.createClass({
+
+ propTypes: {
+ /**
+ * This is the DOM element that will be used to set the position of the
+ * component.
+ */
+ anchorEl: React.PropTypes.object,
+
+ /**
+ * This is the point on the anchor where the popover
+ * targetOrigin will stick to.
+ * Options:
+ * vertical: [top, middle, bottom]
+ * horizontal: [left, center, right]
+ */
+ anchorOrigin: PropTypes.origin,
+
+ /**
+ * If true, the popover will apply transitions when
+ * added it gets added to the DOM.
+ */
+ animated: React.PropTypes.bool,
+
+ /**
+ * Override the default animation component used.
+ */
+ animation: React.PropTypes.func,
+
+ /**
+ * If true, the popover will hide when the anchor scrolls off the screen
+ */
+ autoCloseWhenOffScreen: React.PropTypes.bool,
+
+ /**
+ * If true, the popover (potentially) ignores targetOrigin
+ * and anchorOrigin to make itself fit on screen,
+ * which is useful for mobile devices.
+ */
+ canAutoPosition: React.PropTypes.bool,
+
+ /**
+ * Use this property to render your component inside the `Popover`.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * This is a callback that fires when the popover
+ * thinks it should close. (e.g. clickAway or offScreen)
+ *
+ * @param {string} reason Determines what triggered this request.
+ */
+ onRequestClose: React.PropTypes.func,
+
+ /**
+ * Controls the visibility of the popover.
+ */
+ open: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * This is the point on the popover which will stick to
+ * the anchors origin.
+ * Options:
+ * vertical: [top, middle, bottom]
+ * horizontal: [left, center, right]
+ */
+ targetOrigin: PropTypes.origin,
+
+ /**
+ * If true, the popover will render on top of an invisible
+ * layer, which will prevent clicks to the underlying
+ * elements, and trigger an onRequestClose(clickAway) event.
+ */
+ useLayerForClickAway: React.PropTypes.bool,
+
+ /**
+ * This number represents the zDepth of the paper shadow.
+ */
+ zDepth: PropTypes.zDepth,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ WindowListenable,
+ ],
+
+ getDefaultProps() {
+ return {
+ anchorOrigin: {
+ vertical: 'bottom',
+ horizontal: 'left',
+ },
+ animated: true,
+ autoCloseWhenOffScreen: true,
+ canAutoPosition: true,
+ onRequestClose: () => {},
+ open: false,
+ style: {
+ overflowY: 'auto',
+ },
+ targetOrigin: {
+ vertical: 'top',
+ horizontal: 'left',
+ },
+ useLayerForClickAway: true,
+ zDepth: 1,
+ };
+ },
+
+ getInitialState() {
+ this.setPlacementThrottled = throttle(this.setPlacement, 100);
+ this.setPlacementThrottledScrolled = throttle(this.setPlacement.bind(this, true), 100);
+
+ return {
+ open: this.props.open,
+ closing: false,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+
+ if (nextProps.open !== this.state.open) {
+ if (nextProps.open) {
+ this.anchorEl = nextProps.anchorEl || this.props.anchorEl;
+ this.setState({
+ open: true,
+ closing: false,
+ muiTheme: newMuiTheme,
+ });
+ } else {
+ if (nextProps.animated) {
+ this.setState({closing: true});
+ this._timeout = setTimeout(() => {
+ if (this.isMounted()) {
+ this.setState({
+ open: false,
+ muiTheme: newMuiTheme,
+ });
+ }
+ }, 500);
+ } else {
+ this.setState({
+ open: false,
+ muiTheme: newMuiTheme,
+ });
+ }
+ }
+ }
+ },
+
+ componentDidUpdate() {
+ this.setPlacement();
+ },
+
+ windowListeners: {
+ resize: 'setPlacementThrottled',
+ scroll: 'setPlacementThrottledScrolled',
+ },
+
+ renderLayer() {
+ let {
+ animated,
+ animation,
+ children,
+ style,
+ ...other,
+ } = this.props;
+
+ let Animation = animation || PopoverDefaultAnimation;
+
+ if (!Animation) {
+ Animation = Paper;
+ style = {
+ position: 'fixed',
+ };
+ if (!this.state.open) {
+ return null;
+ }
+ }
+
+ return (
+
+ {children}
+
+ );
+ },
+
+ requestClose(reason) {
+ if (this.props.onRequestClose) {
+ this.props.onRequestClose(reason);
+ }
+ },
+
+ componentClickAway() {
+ this.requestClose('clickAway');
+ },
+
+ _resizeAutoPosition() {
+ this.setPlacement();
+ },
+
+ getAnchorPosition(el) {
+ if (!el) {
+ el = ReactDOM.findDOMNode(this);
+ }
+
+ const rect = el.getBoundingClientRect();
+ const a = {
+ top: rect.top,
+ left: rect.left,
+ width: el.offsetWidth,
+ height: el.offsetHeight,
+ };
+
+ a.right = rect.right || a.left + a.width;
+ a.bottom = rect.bottom || a.top + a.height;
+ a.middle = a.left + ((a.right - a.left) / 2);
+ a.center = a.top + ((a.bottom - a.top) / 2);
+
+ return a;
+ },
+
+ getTargetPosition(targetEl) {
+ return {
+ top: 0,
+ center: targetEl.offsetHeight / 2,
+ bottom: targetEl.offsetHeight,
+ left: 0,
+ middle: targetEl.offsetWidth / 2,
+ right: targetEl.offsetWidth,
+ };
+ },
+
+ setPlacement(scrolling) {
+ if (!this.state.open) {
+ return;
+ }
+
+ const anchorEl = this.props.anchorEl || this.anchorEl;
+
+ if (!this.refs.layer.getLayer()) {
+ return;
+ }
+
+ const targetEl = this.refs.layer.getLayer().children[0];
+ if (!targetEl) {
+ return;
+ }
+
+ let {targetOrigin, anchorOrigin} = this.props;
+
+ let anchor = this.getAnchorPosition(anchorEl);
+ let target = this.getTargetPosition(targetEl);
+
+ let targetPosition = {
+ top: anchor[anchorOrigin.vertical] - target[targetOrigin.vertical],
+ left: anchor[anchorOrigin.horizontal] - target[targetOrigin.horizontal],
+ };
+
+ if (scrolling && this.props.autoCloseWhenOffScreen) {
+ this.autoCloseWhenOffScreen(anchor);
+ }
+
+ if (this.props.canAutoPosition) {
+ target = this.getTargetPosition(targetEl); // update as height may have changed
+ targetPosition = this.applyAutoPositionIfNeeded(anchor, target, targetOrigin, anchorOrigin, targetPosition);
+ }
+
+
+ targetEl.style.top = Math.max(0, targetPosition.top) + 'px';
+ targetEl.style.left = Math.max(0, targetPosition.left) + 'px';
+ targetEl.style.maxHeight = window.innerHeight + 'px';
+ },
+
+ autoCloseWhenOffScreen(anchorPosition) {
+ if (anchorPosition.top < 0
+ || anchorPosition.top > window.innerHeight
+ || anchorPosition.left < 0
+ || anchorPosition.left > window.innerWith
+ ) {
+ this.requestClose('offScreen');
+ }
+ },
+
+ getOverlapMode(anchor, target, median) {
+ if ([anchor, target].indexOf(median) >= 0) return 'auto';
+ if (anchor === target) return 'inclusive';
+ return 'exclusive';
+ },
+
+ getPositions(anchor, target) {
+ let a = {...anchor};
+ let t = {...target};
+
+ let positions = {
+ x: ['left', 'right'].filter((p) => p !== t.horizontal),
+ y: ['top', 'bottom'].filter((p) => p !== t.vertical),
+ };
+
+ let overlap = {
+ x: this.getOverlapMode(a.horizontal, t.horizontal, 'middle'),
+ y: this.getOverlapMode(a.vertical, t.vertical, 'center'),
+ };
+
+ positions.x.splice(overlap.x === 'auto' ? 0 : 1, 0, 'middle');
+ positions.y.splice(overlap.y === 'auto' ? 0 : 1, 0, 'center');
+
+ if (overlap.y !== 'auto') {
+ a.vertical = a.vertical === 'top' ? 'bottom' : 'top';
+ if (overlap.y === 'inclusive') {
+ t.vertical = t.vertical;
+ }
+ }
+
+ if (overlap.x !== 'auto') {
+ a.horizontal = a.horizontal === 'left' ? 'right' : 'left';
+ if (overlap.y === 'inclusive') {
+ t.horizontal = t.horizontal;
+ }
+ }
+
+ return {
+ positions: positions,
+ anchorPos: a,
+ };
+ },
+
+ applyAutoPositionIfNeeded(anchor, target, targetOrigin, anchorOrigin, targetPosition) {
+ let {positions, anchorPos} = this.getPositions(anchorOrigin, targetOrigin);
+
+ if (targetPosition.top < 0 || targetPosition.top + target.bottom > window.innerHeight) {
+ let newTop = anchor[anchorPos.vertical] - target[positions.y[0]];
+ if (newTop + target.bottom <= window.innerHeight)
+ targetPosition.top = Math.max(0, newTop);
+ else {
+ newTop = anchor[anchorPos.vertical] - target[positions.y[1]];
+ if (newTop + target.bottom <= window.innerHeight)
+ targetPosition.top = Math.max(0, newTop);
+ }
+ }
+ if (targetPosition.left < 0 || targetPosition.left + target.right > window.innerWidth) {
+ let newLeft = anchor[anchorPos.horizontal] - target[positions.x[0]];
+ if (newLeft + target.right <= window.innerWidth)
+ targetPosition.left = Math.max(0, newLeft);
+ else {
+ newLeft = anchor[anchorPos.horizontal] - target[positions.x[1]];
+ if (newLeft + target.right <= window.innerWidth)
+ targetPosition.left = Math.max(0, newLeft);
+ }
+ }
+ return targetPosition;
+ },
+
+ render() {
+ return (
+
+ );
+ },
+
+});
+
+export default Popover;
diff --git a/node_modules/material-ui/src/radio-button-group.jsx b/node_modules/material-ui/src/radio-button-group.jsx
new file mode 100644
index 0000000..ca639f1
--- /dev/null
+++ b/node_modules/material-ui/src/radio-button-group.jsx
@@ -0,0 +1,184 @@
+import React from 'react';
+import RadioButton from './radio-button';
+import StylePropable from './mixins/style-propable';
+import getMuiTheme from './styles/getMuiTheme';
+import warning from 'warning';
+
+const RadioButtonGroup = React.createClass({
+
+ propTypes: {
+ /**
+ * Should be used to pass `RadioButton` components.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Sets the default radio button to be the one whose
+ * value matches defaultSelected (case-sensitive).
+ * This will override any individual radio button with
+ * the defaultChecked or checked property stated.
+ */
+ defaultSelected: React.PropTypes.string,
+
+ /**
+ * Where the label will be placed for all radio buttons.
+ * This will override any labelPosition properties defined
+ * for an individual radio button.
+ */
+ labelPosition: React.PropTypes.oneOf(['left', 'right']),
+
+ /**
+ * The name that will be applied to all radio buttons inside it.
+ */
+ name: React.PropTypes.string.isRequired,
+
+ /**
+ * Callback function that is fired when a radio button has
+ * been clicked. Returns the event and the value of the radio
+ * button that has been selected.
+ */
+ onChange: React.PropTypes.func,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The value of the currently selected radio button.
+ */
+ valueSelected: React.PropTypes.string,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ style: {},
+ };
+ },
+
+ getInitialState() {
+ return {
+ numberCheckedRadioButtons: 0,
+ selected: this.props.valueSelected || this.props.defaultSelected || '',
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentWillMount() {
+ let cnt = 0;
+
+ React.Children.forEach(this.props.children, (option) => {
+ if (this._hasCheckAttribute(option)) cnt++;
+ }, this);
+
+ this.setState({numberCheckedRadioButtons: cnt});
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ let newState = {muiTheme: newMuiTheme};
+
+ if (nextProps.hasOwnProperty('valueSelected')) {
+ newState.selected = nextProps.valueSelected;
+ }
+
+ this.setState(newState);
+ },
+
+ _hasCheckAttribute(radioButton) {
+ return radioButton.props.hasOwnProperty('checked') &&
+ radioButton.props.checked;
+ },
+
+ _updateRadioButtons(newSelection) {
+ if (this.state.numberCheckedRadioButtons === 0) {
+ this.setState({selected: newSelection});
+ } else {
+ warning(false, `Cannot select a different radio button while another radio button
+ has the 'checked' property set to true.`);
+ }
+ },
+
+ _onChange(e, newSelection) {
+ this._updateRadioButtons(newSelection);
+
+ // Successful update
+ if (this.state.numberCheckedRadioButtons === 0) {
+ if (this.props.onChange) this.props.onChange(e, newSelection);
+ }
+ },
+
+ getSelectedValue() {
+ return this.state.selected;
+ },
+
+ setSelectedValue(newSelectionValue) {
+ this._updateRadioButtons(newSelectionValue);
+ },
+
+ clearValue() {
+ this.setSelectedValue('');
+ },
+
+ render() {
+ let options = React.Children.map(this.props.children, (option) => {
+ let {
+ name,
+ value,
+ label,
+ onCheck,
+ ...other,
+ } = option.props;
+
+ return (
+
+ );
+ }, this);
+
+ return (
+
+ {options}
+
+ );
+ },
+
+});
+
+export default RadioButtonGroup;
diff --git a/node_modules/material-ui/src/radio-button.jsx b/node_modules/material-ui/src/radio-button.jsx
new file mode 100644
index 0000000..8aa0465
--- /dev/null
+++ b/node_modules/material-ui/src/radio-button.jsx
@@ -0,0 +1,224 @@
+import React from 'react';
+import StylePropable from './mixins/style-propable';
+import Transitions from './styles/transitions';
+import EnhancedSwitch from './enhanced-switch';
+import RadioButtonOff from './svg-icons/toggle/radio-button-unchecked';
+import RadioButtonOn from './svg-icons/toggle/radio-button-checked';
+import getMuiTheme from './styles/getMuiTheme';
+
+const RadioButton = React.createClass({
+
+ propTypes: {
+ /**
+ * Used internally by `RadioButtonGroup`.
+ */
+ /* Checked if true. */
+ checked: React.PropTypes.bool,
+
+ /**
+ * Disabled if true.
+ */
+ disabled: React.PropTypes.bool,
+
+ /**
+ * Overrides the inline-styles of the icon element.
+ */
+ iconStyle: React.PropTypes.object,
+
+ /**
+ * Used internally by `RadioButtonGroup`. Use the `labelPosition` property of `RadioButtonGroup` instead.
+ */
+ /* Where the label will be placed next to the radio button. */
+ labelPosition: React.PropTypes.oneOf(['left', 'right']),
+
+ /**
+ * Overrides the inline-styles of the RadioButton element label.
+ */
+ labelStyle: React.PropTypes.object,
+
+ /**
+ * Callback function for checked event.
+ */
+ onCheck: React.PropTypes.func,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The value of our radio button component.
+ */
+ value: React.PropTypes.string,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ checked: false,
+ disabled: false,
+ labelPosition: 'right',
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.radioButton;
+ },
+
+ getStyles() {
+ let styles = {
+ icon: {
+ height: this.getTheme().size,
+ width: this.getTheme().size,
+ },
+ target: {
+ transition: Transitions.easeOut(),
+ position: 'absolute',
+ opacity: 1,
+ transform: 'scale(1)',
+ fill: this.getTheme().borderColor,
+ },
+ fill: {
+ position: 'absolute',
+ opacity: 1,
+ transform: 'scale(0)',
+ transformOrigin: '50% 50%',
+ transition: Transitions.easeOut(),
+ fill: this.getTheme().checkedColor,
+ },
+ targetWhenChecked: {
+ opacity: 0,
+ transform: 'scale(0)',
+ },
+ fillWhenChecked: {
+ opacity: 1,
+ transform: 'scale(1)',
+ },
+ targetWhenDisabled: {
+ fill: this.getTheme().disabledColor,
+ },
+ fillWhenDisabled: {
+ fill: this.getTheme().disabledColor,
+ },
+ label: {
+ color: this.props.disabled ? this.getTheme().labelDisabledColor : this.getTheme().labelColor,
+ },
+ };
+
+ return styles;
+ },
+
+ // Only called when selected, not when unselected.
+ _handleCheck(e) {
+ if (this.props.onCheck) this.props.onCheck(e, this.props.value);
+ },
+
+ _handleStateChange() {
+ },
+
+ isChecked() {
+ return this.refs.enhancedSwitch.isSwitched();
+ },
+
+ // Use RadioButtonGroup.setSelectedValue(newSelectionValue) to set a
+ // RadioButton's checked value.
+ setChecked(newCheckedValue) {
+ this.refs.enhancedSwitch.setSwitched(newCheckedValue);
+ },
+
+ getValue() {
+ return this.refs.enhancedSwitch.getValue();
+ },
+
+ render() {
+ let {
+ onCheck,
+ ...other,
+ } = this.props;
+
+ let styles = this.getStyles();
+ let onStyles =
+ this.mergeStyles(
+ styles.target,
+ this.props.checked && styles.targetWhenChecked,
+ this.props.iconStyle,
+ this.props.disabled && styles.targetWhenDisabled);
+ let offStyles =
+ this.mergeStyles(
+ styles.fill,
+ this.props.checked && styles.fillWhenChecked,
+ this.props.iconStyle,
+ this.props.disabled && styles.fillWhenDisabled);
+
+ let radioButtonElement = (
+
+
+
+
+ );
+
+ let rippleColor = this.props.checked ? this.getTheme().checkedColor : this.getTheme().borderColor;
+
+ let iconStyle = this.mergeStyles(
+ styles.icon,
+ this.props.iconStyle
+ );
+
+ let labelStyle = this.mergeStyles(
+ styles.label,
+ this.props.labelStyle
+ );
+
+ let enhancedSwitchProps = {
+ ref: 'enhancedSwitch',
+ inputType: 'radio',
+ switched: this.props.checked,
+ switchElement: radioButtonElement,
+ rippleColor: rippleColor,
+ iconStyle: iconStyle,
+ labelStyle: labelStyle,
+ onSwitch: this._handleCheck,
+ onParentShouldUpdate: this._handleStateChange,
+ labelPosition: this.props.labelPosition,
+ };
+
+ return (
+
+ );
+ },
+
+});
+
+export default RadioButton;
diff --git a/node_modules/material-ui/src/raised-button.jsx b/node_modules/material-ui/src/raised-button.jsx
new file mode 100644
index 0000000..bde41f8
--- /dev/null
+++ b/node_modules/material-ui/src/raised-button.jsx
@@ -0,0 +1,441 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from './mixins/style-propable';
+import Transitions from './styles/transitions';
+import ColorManipulator from './utils/color-manipulator';
+import Children from './utils/children';
+import Typography from './styles/typography';
+import EnhancedButton from './enhanced-button';
+import Paper from './paper';
+import getMuiTheme from './styles/getMuiTheme';
+
+function validateLabel(props, propName, componentName) {
+ if (!props.children && !props.label) {
+ return new Error('Required prop label or children was not ' +
+ 'specified in ' + componentName + '.');
+ }
+}
+
+const RaisedButton = React.createClass({
+
+ propTypes: {
+ /**
+ * Override the background color. Always takes precedence unless the button is disabled.
+ */
+ backgroundColor: React.PropTypes.string,
+
+ /**
+ * This is what will be displayed inside the button.
+ * If a label is specified, the text within the label prop will
+ * be displayed. Otherwise, the component will expect children
+ * which will then be displayed. (In our example,
+ * we are nesting an ` ` and a `span`
+ * that acts as our label to be displayed.) This only
+ * applies to flat and raised buttons.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Disables the button if set to true.
+ */
+ disabled: React.PropTypes.bool,
+
+ /**
+ * Override the background color if the button is disabled.
+ */
+ disabledBackgroundColor: React.PropTypes.string,
+
+ /**
+ * Color of the label if disabled is true.
+ */
+ disabledLabelColor: React.PropTypes.string,
+
+ /**
+ * If true, then the button will take up the full
+ * width of its container.
+ */
+ fullWidth: React.PropTypes.bool,
+
+ /**
+ * URL to link to when button clicked if `linkButton` is set to true.
+ */
+ href: React.PropTypes.string,
+
+ /**
+ * Use this property to display an icon.
+ */
+ icon: React.PropTypes.node,
+
+ /**
+ * The label for the button.
+ */
+ label: validateLabel,
+
+ /**
+ * The color of the label for the button.
+ */
+ labelColor: React.PropTypes.string,
+
+ /**
+ * Place label before or after the passed children.
+ */
+ labelPosition: React.PropTypes.oneOf([
+ 'before',
+ 'after',
+ ]),
+
+ /**
+ * Override the inline-styles of the button's label element.
+ */
+ labelStyle: React.PropTypes.object,
+
+ /**
+ * Enables use of `href` property to provide a URL to link to if set to true.
+ */
+ linkButton: React.PropTypes.bool,
+
+ /**
+ * Callback function for when the mouse is pressed down inside this element.
+ */
+ onMouseDown: React.PropTypes.func,
+
+ /**
+ * Callback function for when the mouse enters this element.
+ */
+ onMouseEnter: React.PropTypes.func,
+
+ /**
+ * Callback function for when the mouse leaves this element.
+ */
+ onMouseLeave: React.PropTypes.func,
+
+ /**
+ * Callback function for when the mouse is realeased
+ * above this element.
+ */
+ onMouseUp: React.PropTypes.func,
+
+ /**
+ * Callback function for when a touchTap event ends.
+ */
+ onTouchEnd: React.PropTypes.func,
+
+ /**
+ * Callback function for when a touchTap event starts.
+ */
+ onTouchStart: React.PropTypes.func,
+
+ /**
+ * If true, colors button according to
+ * primaryTextColor from the Theme.
+ */
+ primary: React.PropTypes.bool,
+
+ /**
+ * If true, colors button according to secondaryTextColor from the theme.
+ * The primary prop has precendent if set to true.
+ */
+ secondary: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps: function() {
+ return {
+ disabled: false,
+ labelPosition: 'after',
+ fullWidth: false,
+ primary: false,
+ secondary: false,
+ };
+ },
+
+ getInitialState() {
+ let zDepth = this.props.disabled ? 0 : 1;
+ return {
+ hovered: false,
+ touched: false,
+ initialZDepth: zDepth,
+ zDepth: zDepth,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ let zDepth = nextProps.disabled ? 0 : 1;
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({
+ zDepth: zDepth,
+ initialZDepth: zDepth,
+ muiTheme: newMuiTheme,
+ });
+ },
+
+ _getBackgroundColor() {
+ let disabledColor = this.props.disabledBackgroundColor ? this.props.disabledBackgroundColor :
+ this.getTheme().disabledColor;
+
+ return this.props.disabled ? disabledColor :
+ this.props.backgroundColor ? this.props.backgroundColor :
+ this.props.primary ? this.getTheme().primaryColor :
+ this.props.secondary ? this.getTheme().secondaryColor :
+ this.getTheme().color;
+ },
+
+ _getLabelColor() {
+ let disabledColor = this.props.disabledLabelColor ? this.props.disabledLabelColor :
+ this.getTheme().disabledTextColor;
+
+ return this.props.disabled ? disabledColor :
+ this.props.labelColor ? this.props.labelColor :
+ this.props.primary ? this.getTheme().primaryTextColor :
+ this.props.secondary ? this.getTheme().secondaryTextColor :
+ this.getTheme().textColor;
+ },
+
+ getThemeButton() {
+ return this.state.muiTheme.button;
+ },
+
+ getTheme() {
+ return this.state.muiTheme.raisedButton;
+ },
+
+ getStyles() {
+ const {
+ icon,
+ labelPosition,
+ primary,
+ secondary,
+ } = this.props;
+
+ let amount = (primary || secondary) ? 0.4 : 0.08;
+ let styles = {
+ root: {
+ display: 'inline-block',
+ minWidth: this.props.fullWidth ? '100%' : this.getThemeButton().minWidth,
+ height: this.getThemeButton().height,
+ transition: Transitions.easeOut(),
+ },
+ container: {
+ position: 'relative',
+ height: '100%',
+ width: '100%',
+ padding: 0,
+ overflow: 'hidden',
+ borderRadius: 2,
+ transition: Transitions.easeOut(),
+ backgroundColor: this._getBackgroundColor(),
+ },
+ label: {
+ position: 'relative',
+ opacity: 1,
+ fontSize: '14px',
+ letterSpacing: 0,
+ textTransform: this.getTheme().textTransform ? this.getTheme().textTransform :
+ (this.getThemeButton().textTransform ? this.getThemeButton().textTransform : 'uppercase'),
+ fontWeight: Typography.fontWeightMedium,
+ margin: 0,
+ userSelect: 'none',
+ paddingLeft: this.state.muiTheme.rawTheme.spacing.desktopGutterLess,
+ paddingRight: this.state.muiTheme.rawTheme.spacing.desktopGutterLess,
+ lineHeight: (this.props.style && this.props.style.height) ?
+ this.props.style.height : this.getThemeButton().height + 'px',
+ color: this._getLabelColor(),
+ },
+ overlay: {
+ transition: Transitions.easeOut(),
+ top: 0,
+ },
+ overlayWhenHovered: {
+ backgroundColor: ColorManipulator.fade(this._getLabelColor(), amount),
+ },
+ };
+
+ if (icon) {
+ if (labelPosition === 'before') {
+ styles.label.paddingRight = 8;
+ } else {
+ styles.label.paddingLeft = 8;
+ }
+ }
+
+ return styles;
+ },
+
+
+ _handleMouseDown(e) {
+ //only listen to left clicks
+ if (e.button === 0) {
+ this.setState({zDepth: this.state.initialZDepth + 1});
+ }
+ if (this.props.onMouseDown) this.props.onMouseDown(e);
+ },
+
+ _handleMouseUp(e) {
+ this.setState({zDepth: this.state.initialZDepth});
+ if (this.props.onMouseUp) this.props.onMouseUp(e);
+ },
+
+ _handleMouseLeave(e) {
+ if (!this.refs.container.isKeyboardFocused()) this.setState({zDepth: this.state.initialZDepth, hovered: false});
+ if (this.props.onMouseLeave) this.props.onMouseLeave(e);
+ },
+
+ _handleMouseEnter(e) {
+ if (!this.refs.container.isKeyboardFocused() && !this.state.touch) {
+ this.setState({hovered: true});
+ }
+ if (this.props.onMouseEnter) this.props.onMouseEnter(e);
+ },
+
+ _handleTouchStart(e) {
+ this.setState({
+ touch: true,
+ zDepth: this.state.initialZDepth + 1,
+ });
+ if (this.props.onTouchStart) this.props.onTouchStart(e);
+ },
+
+ _handleTouchEnd(e) {
+ this.setState({zDepth: this.state.initialZDepth});
+ if (this.props.onTouchEnd) this.props.onTouchEnd(e);
+ },
+
+ _handleKeyboardFocus(e, keyboardFocused) {
+ if (keyboardFocused && !this.props.disabled) {
+ this.setState({zDepth: this.state.initialZDepth + 1});
+ let amount = (this.props.primary || this.props.secondary) ? 0.4 : 0.08;
+ ReactDOM.findDOMNode(this.refs.overlay).style.backgroundColor =
+ ColorManipulator.fade(this.prepareStyles(this.getStyles().label, this.props.labelStyle).color, amount);
+ } else if (!this.state.hovered) {
+ this.setState({zDepth: this.state.initialZDepth});
+ ReactDOM.findDOMNode(this.refs.overlay).style.backgroundColor = 'transparent';
+ }
+ },
+
+ render() {
+ let {
+ children,
+ disabled,
+ icon,
+ label,
+ labelPosition,
+ labelStyle,
+ primary,
+ secondary,
+ ...other,
+ } = this.props;
+
+ let styles = this.getStyles();
+
+ let labelElement;
+ if (label) {
+ labelElement = (
+
+ {label}
+
+ );
+ }
+
+ let rippleColor = styles.label.color;
+ let rippleOpacity = !(primary || secondary) ? 0.1 : 0.16;
+
+ let buttonEventHandlers = disabled ? null : {
+ onMouseDown: this._handleMouseDown,
+ onMouseUp: this._handleMouseUp,
+ onMouseLeave: this._handleMouseLeave,
+ onMouseEnter: this._handleMouseEnter,
+ onTouchStart: this._handleTouchStart,
+ onTouchEnd: this._handleTouchEnd,
+ onKeyboardFocus: this._handleKeyboardFocus,
+ };
+
+ let iconCloned;
+
+ if (icon) {
+ iconCloned = React.cloneElement(icon, {
+ color: styles.label.color,
+ style: {
+ verticalAlign: 'middle',
+ marginLeft: labelPosition === 'before' ? 0 : 12,
+ marginRight: labelPosition === 'before' ? 12 : 0,
+ },
+ });
+ }
+
+ // Place label before or after children.
+ const childrenFragment = labelPosition === 'before' ?
+ {
+ labelElement,
+ iconCloned,
+ children,
+ }
+ :
+ {
+ children,
+ iconCloned,
+ labelElement,
+ };
+ const enhancedButtonChildren = Children.create(childrenFragment);
+
+ return (
+
+
+
+ {enhancedButtonChildren}
+
+
+
+ );
+ },
+
+});
+
+export default RaisedButton;
diff --git a/node_modules/material-ui/src/refresh-indicator.jsx b/node_modules/material-ui/src/refresh-indicator.jsx
new file mode 100644
index 0000000..1c0d502
--- /dev/null
+++ b/node_modules/material-ui/src/refresh-indicator.jsx
@@ -0,0 +1,349 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from './mixins/style-propable';
+import autoPrefix from './styles/auto-prefix';
+import Transitions from './styles/transitions';
+import Paper from './paper';
+import getMuiTheme from './styles/getMuiTheme';
+
+const VIEWBOX_SIZE = 32;
+const RefreshIndicator = React.createClass({
+
+ propTypes: {
+ /**
+ * Override the theme's color of the indicator while it's status is
+ * "ready" and it's percentage is less than 100.
+ */
+ color: React.PropTypes.string,
+
+ /**
+ * The absolute left position of the indicator in pixels.
+ */
+ left: React.PropTypes.number.isRequired,
+
+ /**
+ * Override the theme's color of the indicator while
+ * it's status is "loading" or when it's percentage is 100.
+ */
+ loadingColor: React.PropTypes.string,
+
+ /**
+ * The confirmation progress to fetch data. Max value is 100.
+ */
+ percentage: React.PropTypes.number,
+
+ /**
+ * Size in pixels.
+ */
+ size: React.PropTypes.number,
+
+ /**
+ * The display status of the indicator. If the status is
+ * "ready", the indicator will display the ready state
+ * arrow. If the status is "loading", it will display
+ * the loading progress indicator. If the status is "hide",
+ * the indicator will be hidden.
+ */
+ status: React.PropTypes.oneOf(['ready', 'loading', 'hide']),
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The absolute top position of the indicator in pixels.
+ */
+ top: React.PropTypes.number.isRequired,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ percentage: 0,
+ size: 40,
+ status: 'hide',
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ this.componentDidUpdate();
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ componentDidUpdate() {
+ this._scalePath(ReactDOM.findDOMNode(this.refs.path), 0);
+ this._rotateWrapper(ReactDOM.findDOMNode(this.refs.wrapper));
+ },
+
+ componentWillUnmount() {
+ clearTimeout(this.scalePathTimer);
+ clearTimeout(this.rotateWrapperTimer);
+ clearTimeout(this.rotateWrapperSecondTimer);
+ },
+
+ scalePathTimer: undefined,
+ rotateWrapperTimer: undefined,
+ rotateWrapperSecondTimer: undefined,
+
+ _renderChildren() {
+ const paperSize = this._getPaperSize();
+ let childrenCmp = null;
+ if (this.props.status !== 'ready') {
+ const circleStyle = this._getCircleStyle(paperSize);
+ childrenCmp = (
+
+
+
+
+
+ );
+ } else {
+ const circleStyle = this._getCircleStyle(paperSize);
+ const polygonStyle = this._getPolygonStyle(paperSize);
+ childrenCmp = (
+
+
+
+
+
+ );
+ }
+
+ return childrenCmp;
+ },
+
+ _getTheme() {
+ return this.state.muiTheme.refreshIndicator;
+ },
+
+ _getPaddingSize() {
+ const padding = this.props.size * 0.1;
+ return padding;
+ },
+
+ _getPaperSize() {
+ return this.props.size - this._getPaddingSize() * 2;
+ },
+
+ _getCircleAttr() {
+ return {
+ radiu: VIEWBOX_SIZE / 2 - 5,
+ originX: VIEWBOX_SIZE / 2,
+ originY: VIEWBOX_SIZE / 2,
+ strokeWidth: 3,
+ };
+ },
+
+ _getArcDeg() {
+ const p = this.props.percentage / 100;
+
+ const beginDeg = p * 120;
+ const endDeg = p * 410;
+ return [beginDeg, endDeg];
+ },
+
+ _getFactor() {
+ const p = this.props.percentage / 100;
+ const p1 = Math.min(1, p / 0.4);
+
+ return p1;
+ },
+
+ _getRootStyle() {
+ const padding = this._getPaddingSize();
+ return {
+ position: 'absolute',
+ zIndex: 2,
+ width: this.props.size,
+ height: this.props.size,
+ padding: padding,
+ top: -10000,
+ left: -10000,
+ transform: `translate3d(${10000 + this.props.left}px, ${10000 + this.props.top}px, 0)`,
+ opacity: this.props.status === 'hide' ? 0 : 1,
+ transition: this.props.status === 'hide' ? Transitions.create('all', '.3s', 'ease-out') : 'none',
+ };
+ },
+
+ _getCircleStyle() {
+ const isLoading = this.props.status === 'loading';
+ const p1 = isLoading ? 1 : this._getFactor();
+ const circle = this._getCircleAttr();
+ const perimeter = Math.PI * 2 * circle.radiu;
+
+ const [beginDeg, endDeg] = this._getArcDeg();
+ const arcLen = (endDeg - beginDeg) * perimeter / 360;
+ const dashOffset = -beginDeg * perimeter / 360;
+
+ const theme = this._getTheme();
+ return {
+ style: {
+ strokeDasharray: arcLen + ', ' + (perimeter - arcLen),
+ strokeDashoffset: dashOffset,
+ stroke: (isLoading || this.props.percentage === 100) ?
+ (this.props.loadingColor || theme.loadingStrokeColor) :
+ (this.props.color || theme.strokeColor),
+ strokeLinecap: 'round',
+ opacity: p1,
+ strokeWidth: circle.strokeWidth * p1,
+ fill: 'none',
+ },
+ attr: {
+ cx: circle.originX,
+ cy: circle.originY,
+ r: circle.radiu,
+ },
+ };
+ },
+
+ _getPolygonStyle() {
+ const p1 = this._getFactor();
+ const circle = this._getCircleAttr();
+
+ const triangleCx = circle.originX + circle.radiu;
+ const triangleCy = circle.originY;
+ const dx = (circle.strokeWidth * 7 / 4) * p1;
+ const trianglePath = (triangleCx - dx) + ',' + triangleCy + ' ' + (triangleCx + dx) + ',' +
+ triangleCy + ' ' + triangleCx + ',' + (triangleCy + dx);
+
+ const [, endDeg] = this._getArcDeg();
+
+ const theme = this._getTheme();
+ return {
+ style: {
+ fill: this.props.percentage === 100 ?
+ (this.props.loadingColor || theme.loadingStrokeColor) :
+ (this.props.color || theme.strokeColor),
+ transform: `rotate(${endDeg}deg)`,
+ transformOrigin: `${circle.originX}px ${circle.originY}px`,
+ opacity: p1,
+ },
+ attr: {
+ points: trianglePath,
+ },
+ };
+ },
+
+ _scalePath(path, step) {
+ if (this.props.status !== 'loading') return;
+
+ const currStep = (step || 0) % 3;
+
+ const circle = this._getCircleAttr();
+ const perimeter = Math.PI * 2 * circle.radiu;
+ const arcLen = perimeter * 0.64;
+
+ let strokeDasharray;
+ let strokeDashoffset;
+ let transitionDuration;
+
+ if (currStep === 0) {
+ strokeDasharray = '1, 200';
+ strokeDashoffset = 0;
+ transitionDuration = '0ms';
+ } else if (currStep === 1) {
+ strokeDasharray = arcLen + ', 200';
+ strokeDashoffset = -15;
+ transitionDuration = '750ms';
+ } else {
+ strokeDasharray = arcLen + ',200';
+ strokeDashoffset = -(perimeter - 1);
+ transitionDuration = '850ms';
+ }
+
+ autoPrefix.set(path.style, 'strokeDasharray', strokeDasharray, this.state.muiTheme);
+ autoPrefix.set(path.style, 'strokeDashoffset', strokeDashoffset, this.state.muiTheme);
+ autoPrefix.set(path.style, 'transitionDuration', transitionDuration, this.state.muiTheme);
+
+ this.scalePathTimer = setTimeout(() => this._scalePath(path, currStep + 1), currStep ? 750 : 250);
+ },
+
+ _rotateWrapper(wrapper) {
+ if (this.props.status !== 'loading') return;
+
+ autoPrefix.set(wrapper.style, 'transform', null, this.state.muiTheme);
+ autoPrefix.set(wrapper.style, 'transform', 'rotate(0deg)', this.state.muiTheme);
+ autoPrefix.set(wrapper.style, 'transitionDuration', '0ms', this.state.muiTheme);
+
+ this.rotateWrapperSecondTimer = setTimeout(() => {
+ autoPrefix.set(wrapper.style, 'transform', 'rotate(1800deg)', this.state.muiTheme);
+ autoPrefix.set(wrapper.style, 'transitionDuration', '10s', this.state.muiTheme);
+ autoPrefix.set(wrapper.style, 'transitionTimingFunction', 'linear', this.state.muiTheme);
+ }, 50);
+
+ this.rotateWrapperTimer = setTimeout(() => this._rotateWrapper(wrapper), 10050);
+ },
+
+ render() {
+ const rootStyle = this._getRootStyle();
+ return (
+
+ {this._renderChildren()}
+
+ );
+ },
+
+});
+
+export default RefreshIndicator;
diff --git a/node_modules/material-ui/src/render-to-layer.jsx b/node_modules/material-ui/src/render-to-layer.jsx
new file mode 100644
index 0000000..460b510
--- /dev/null
+++ b/node_modules/material-ui/src/render-to-layer.jsx
@@ -0,0 +1,158 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import Dom from './utils/dom';
+import getMuiTheme from './styles/getMuiTheme';
+
+// heavily inspired by https://github.com/Khan/react-components/blob/master/js/layered-component-mixin.jsx
+const RenderToLayer = React.createClass({
+
+ propTypes: {
+ componentClickAway: React.PropTypes.func,
+ open: React.PropTypes.bool.isRequired,
+ render: React.PropTypes.func.isRequired,
+ useLayerForClickAway: React.PropTypes.bool,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ getDefaultProps() {
+ return {
+ useLayerForClickAway: true,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ this._renderLayer();
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ const newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({
+ muiTheme: newMuiTheme,
+ });
+ },
+
+ componentDidUpdate() {
+ this._renderLayer();
+ },
+
+ componentWillUnmount() {
+ this._unrenderLayer();
+ },
+
+ onClickAway(event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+
+ if (!this.props.componentClickAway) {
+ return;
+ }
+
+ if (!this.props.open) {
+ return;
+ }
+
+ const el = this._layer;
+ if (event.target !== el && (event.target === window)
+ || (document.documentElement.contains(event.target) && !Dom.isDescendant(el, event.target))) {
+ this.props.componentClickAway(event);
+ }
+ },
+
+ getLayer() {
+ return this._layer;
+ },
+
+ _unrenderLayer: function() {
+ if (!this._layer) {
+ return;
+ }
+
+ if (this.props.useLayerForClickAway) {
+ this._layer.style.position = 'relative';
+ this._layer.removeEventListener('touchstart', this.onClickAway);
+ this._layer.removeEventListener('click', this.onClickAway);
+ } else {
+ window.removeEventListener('touchstart', this.onClickAway);
+ window.removeEventListener('click', this.onClickAway);
+ }
+
+ ReactDOM.unmountComponentAtNode(this._layer);
+ document.body.removeChild(this._layer);
+ this._layer = null;
+ },
+
+ _renderLayer() {
+ const {
+ open,
+ render,
+ } = this.props;
+
+ if (open) {
+ if (!this._layer) {
+ this._layer = document.createElement('div');
+ document.body.appendChild(this._layer);
+
+ if (this.props.useLayerForClickAway) {
+ this._layer.addEventListener('touchstart', this.onClickAway);
+ this._layer.addEventListener('click', this.onClickAway);
+ this._layer.style.position = 'fixed';
+ this._layer.style.top = 0;
+ this._layer.style.bottom = 0;
+ this._layer.style.left = 0;
+ this._layer.style.right = 0;
+ this._layer.style.zIndex = this.state.muiTheme.zIndex.layer;
+ } else {
+ setTimeout(() => {
+ window.addEventListener('touchstart', this.onClickAway);
+ window.addEventListener('click', this.onClickAway);
+ }, 0);
+ }
+ }
+
+ // By calling this method in componentDidMount() and
+ // componentDidUpdate(), you're effectively creating a "wormhole" that
+ // funnels React's hierarchical updates through to a DOM node on an
+ // entirely different part of the page.
+
+ const layerElement = render();
+
+ if (layerElement === null) {
+ this.layerElement = ReactDOM.unstable_renderSubtreeIntoContainer(this, null, this._layer);
+ } else {
+ this.layerElement = ReactDOM.unstable_renderSubtreeIntoContainer(this, layerElement, this._layer);
+ }
+ } else {
+ this._unrenderLayer();
+ }
+ },
+
+ render() {
+ return null;
+ },
+
+});
+
+export default RenderToLayer;
diff --git a/node_modules/material-ui/src/ripples/circle-ripple.jsx b/node_modules/material-ui/src/ripples/circle-ripple.jsx
new file mode 100644
index 0000000..ac77072
--- /dev/null
+++ b/node_modules/material-ui/src/ripples/circle-ripple.jsx
@@ -0,0 +1,106 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import StylePropable from '../mixins/style-propable';
+import autoPrefix from '../styles/auto-prefix';
+import Transitions from '../styles/transitions';
+import Colors from '../styles/colors';
+
+const CircleRipple = React.createClass({
+
+ propTypes: {
+ color: React.PropTypes.string,
+
+ /**
+ * The material-ui theme applied to this component.
+ */
+ muiTheme: React.PropTypes.object.isRequired,
+
+ opacity: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ mixins: [
+ PureRenderMixin,
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ color: Colors.darkBlack,
+ opacity: 0.16,
+ };
+ },
+
+ componentWillAppear(callback) {
+ this._initializeAnimation(callback);
+ },
+
+ componentWillEnter(callback) {
+ this._initializeAnimation(callback);
+ },
+
+ componentDidAppear() {
+ this._animate();
+ },
+
+ componentDidEnter() {
+ this._animate();
+ },
+
+ componentWillLeave(callback) {
+ let style = ReactDOM.findDOMNode(this).style;
+ style.opacity = 0;
+ setTimeout(() => {
+ if (this.isMounted()) callback();
+ }, 2000);
+ },
+
+ _animate() {
+ let style = ReactDOM.findDOMNode(this).style;
+ const transitionValue = (
+ Transitions.easeOut('2s', 'opacity') + ',' +
+ Transitions.easeOut('1s', 'transform')
+ );
+ autoPrefix.set(style, 'transition', transitionValue, this.props.muiTheme);
+ autoPrefix.set(style, 'transform', 'scale(1)', this.props.muiTheme);
+ },
+
+ _initializeAnimation(callback) {
+ let style = ReactDOM.findDOMNode(this).style;
+ style.opacity = this.props.opacity;
+ autoPrefix.set(style, 'transform', 'scale(0)', this.props.muiTheme);
+ setTimeout(() => {
+ if (this.isMounted()) callback();
+ }, 0);
+ },
+
+ render() {
+ const {
+ color,
+ opacity,
+ style,
+ ...other,
+ } = this.props;
+
+ const mergedStyles = this.mergeStyles({
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ height: '100%',
+ width: '100%',
+ borderRadius: '50%',
+ backgroundColor: color,
+ }, style);
+
+ return (
+
+ );
+ },
+});
+
+export default CircleRipple;
diff --git a/node_modules/material-ui/src/ripples/focus-ripple.jsx b/node_modules/material-ui/src/ripples/focus-ripple.jsx
new file mode 100644
index 0000000..65989ee
--- /dev/null
+++ b/node_modules/material-ui/src/ripples/focus-ripple.jsx
@@ -0,0 +1,140 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import StylePropable from '../mixins/style-propable';
+import autoPrefix from '../styles/auto-prefix';
+import Colors from '../styles/colors';
+import Transitions from '../styles/transitions';
+import ScaleInTransitionGroup from '../transition-groups/scale-in';
+
+const pulsateDuration = 750;
+
+const FocusRipple = React.createClass({
+
+ propTypes: {
+ color: React.PropTypes.string,
+ innerStyle: React.PropTypes.object,
+
+ /**
+ * The material-ui theme applied to this component.
+ */
+ muiTheme: React.PropTypes.object.isRequired,
+
+ opacity: React.PropTypes.number,
+ show: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ mixins: [
+ PureRenderMixin,
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ color: Colors.darkBlack,
+ };
+ },
+
+ componentDidMount() {
+ if (this.props.show) {
+ this._setRippleSize();
+ this._pulsate();
+ }
+ },
+
+ componentDidUpdate() {
+ if (this.props.show) {
+ this._setRippleSize();
+ this._pulsate();
+ } else {
+ if (this._timeout) clearTimeout(this._timeout);
+ }
+ },
+
+ _getRippleElement(props) {
+ const {
+ color,
+ innerStyle,
+ opacity,
+ } = props;
+
+ const innerStyles = this.mergeStyles({
+ position: 'absolute',
+ height: '100%',
+ width: '100%',
+ borderRadius: '50%',
+ opacity: opacity ? opacity : 0.16,
+ backgroundColor: color,
+ transition: Transitions.easeOut(pulsateDuration + 'ms', 'transform', null, Transitions.easeInOutFunction),
+ }, innerStyle);
+
+ return
;
+ },
+
+ _pulsate() {
+ if (!this.isMounted()) return;
+
+ let innerCircle = ReactDOM.findDOMNode(this.refs.innerCircle);
+ if (!innerCircle) return;
+
+ const startScale = 'scale(1)';
+ const endScale = 'scale(0.85)';
+ let currentScale = innerCircle.style.transform;
+ let nextScale;
+
+ currentScale = currentScale || startScale;
+ nextScale = currentScale === startScale ?
+ endScale : startScale;
+
+ autoPrefix.set(innerCircle.style, 'transform', nextScale, this.props.muiTheme);
+ this._timeout = setTimeout(this._pulsate, pulsateDuration);
+ },
+
+ _setRippleSize() {
+ let el = ReactDOM.findDOMNode(this.refs.innerCircle);
+ const height = el.offsetHeight;
+ const width = el.offsetWidth;
+ const size = Math.max(height, width);
+
+ let oldTop = 0;
+ // For browsers that don't support endsWith()
+ if (el.style.top.indexOf('px', el.style.top.length - 2) !== -1) {
+ oldTop = parseInt(el.style.top);
+ }
+ el.style.height = size + 'px';
+ el.style.top = (height / 2) - (size / 2 ) + oldTop + 'px';
+ },
+
+ render() {
+ const {
+ show,
+ style,
+ } = this.props;
+
+ const mergedRootStyles = this.mergeStyles({
+ height: '100%',
+ width: '100%',
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ }, style);
+
+ const ripple = show ? this._getRippleElement(this.props) : null;
+
+ return (
+
+ {ripple}
+
+ );
+ },
+});
+
+export default FocusRipple;
diff --git a/node_modules/material-ui/src/ripples/index.js b/node_modules/material-ui/src/ripples/index.js
new file mode 100644
index 0000000..7911c33
--- /dev/null
+++ b/node_modules/material-ui/src/ripples/index.js
@@ -0,0 +1,13 @@
+import CircleRipple from './circle-ripple';
+import FocusRipple from './focus-ripple';
+import TouchRipple from './touch-ripple';
+
+export {CircleRipple};
+export {FocusRipple};
+export {TouchRipple};
+
+export default {
+ CircleRipple,
+ FocusRipple,
+ TouchRipple,
+};
diff --git a/node_modules/material-ui/src/ripples/touch-ripple.jsx b/node_modules/material-ui/src/ripples/touch-ripple.jsx
new file mode 100644
index 0000000..449c947
--- /dev/null
+++ b/node_modules/material-ui/src/ripples/touch-ripple.jsx
@@ -0,0 +1,197 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import ReactTransitionGroup from 'react-addons-transition-group';
+import StylePropable from '../mixins/style-propable';
+import Dom from '../utils/dom';
+import CircleRipple from './circle-ripple';
+import update from 'react-addons-update';
+
+function push(array, obj) {
+ const newObj = Array.isArray(obj) ? obj : [obj];
+ return update(array, {$push: newObj});
+}
+
+function shift(array) {
+ return update(array, {$splice: [[0, 1]]});
+}
+
+const TouchRipple = React.createClass({
+
+ propTypes: {
+ centerRipple: React.PropTypes.bool,
+ children: React.PropTypes.node,
+ color: React.PropTypes.string,
+
+ /**
+ * The material-ui theme applied to this component.
+ */
+ muiTheme: React.PropTypes.object.isRequired,
+
+ opacity: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ mixins: [
+ PureRenderMixin,
+ StylePropable,
+ ],
+
+ getInitialState() {
+ //Touch start produces a mouse down event for compat reasons. To avoid
+ //showing ripples twice we skip showing a ripple for the first mouse down
+ //after a touch start. Note we don't store ignoreNextMouseDown in this.state
+ //to avoid re-rendering when we change it
+ this._ignoreNextMouseDown = false;
+
+ return {
+ //This prop allows us to only render the ReactTransitionGroup
+ //on the first click of the component, making the inital
+ //render faster
+ hasRipples: false,
+ nextKey: 0,
+ ripples: [],
+ };
+ },
+
+ start(e, isRippleTouchGenerated) {
+ if (this._ignoreNextMouseDown && !isRippleTouchGenerated) {
+ this._ignoreNextMouseDown = false;
+ return;
+ }
+
+ let ripples = this.state.ripples;
+
+ //Add a ripple to the ripples array
+ ripples = push(ripples, (
+
+ ));
+
+ this._ignoreNextMouseDown = isRippleTouchGenerated;
+ this.setState({
+ hasRipples: true,
+ nextKey: this.state.nextKey + 1,
+ ripples: ripples,
+ });
+ },
+
+ end() {
+ const currentRipples = this.state.ripples;
+ this.setState({
+ ripples: shift(currentRipples),
+ });
+ },
+
+ _handleMouseDown(e) {
+ //only listen to left clicks
+ if (e.button === 0) this.start(e, false);
+ },
+
+ _handleMouseUp() {
+ this.end();
+ },
+
+ _handleMouseLeave() {
+ this.end();
+ },
+
+ _handleTouchStart(e) {
+ this.start(e, true);
+ },
+
+ _handleTouchEnd() {
+ this.end();
+ },
+
+ _getRippleStyle(e) {
+ let style = {};
+ const el = ReactDOM.findDOMNode(this);
+ const elHeight = el.offsetHeight;
+ const elWidth = el.offsetWidth;
+ const offset = Dom.offset(el);
+ const isTouchEvent = e.touches && e.touches.length;
+ const pageX = isTouchEvent ? e.touches[0].pageX : e.pageX;
+ const pageY = isTouchEvent ? e.touches[0].pageY : e.pageY;
+ const pointerX = pageX - offset.left;
+ const pointerY = pageY - offset.top;
+ const topLeftDiag = this._calcDiag(pointerX, pointerY);
+ const topRightDiag = this._calcDiag(elWidth - pointerX, pointerY);
+ const botRightDiag = this._calcDiag(elWidth - pointerX, elHeight - pointerY);
+ const botLeftDiag = this._calcDiag(pointerX, elHeight - pointerY);
+ const rippleRadius = Math.max(
+ topLeftDiag, topRightDiag, botRightDiag, botLeftDiag
+ );
+ const rippleSize = rippleRadius * 2;
+ const left = pointerX - rippleRadius;
+ const top = pointerY - rippleRadius;
+
+ style.height = rippleSize + 'px';
+ style.width = rippleSize + 'px';
+ style.top = top + 'px';
+ style.left = left + 'px';
+
+ return style;
+ },
+
+ _calcDiag(a, b) {
+ return Math.sqrt((a * a) + (b * b));
+ },
+
+
+ render() {
+ const {
+ children,
+ style,
+ } = this.props;
+
+ const {
+ hasRipples,
+ ripples,
+ } = this.state;
+
+ let rippleGroup;
+ if (hasRipples) {
+ const mergedStyles = this.mergeStyles({
+ height: '100%',
+ width: '100%',
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ overflow: 'hidden',
+ }, style);
+
+ rippleGroup = (
+
+ {ripples}
+
+ );
+ }
+
+ return (
+
+ {rippleGroup}
+ {children}
+
+ );
+ },
+
+});
+
+export default TouchRipple;
diff --git a/node_modules/material-ui/src/select-field.jsx b/node_modules/material-ui/src/select-field.jsx
new file mode 100644
index 0000000..098af5f
--- /dev/null
+++ b/node_modules/material-ui/src/select-field.jsx
@@ -0,0 +1,3 @@
+import SelectField from './SelectField';
+
+export default SelectField;
diff --git a/node_modules/material-ui/src/slider.jsx b/node_modules/material-ui/src/slider.jsx
new file mode 100644
index 0000000..79cd988
--- /dev/null
+++ b/node_modules/material-ui/src/slider.jsx
@@ -0,0 +1,584 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from './mixins/style-propable';
+import Transitions from './styles/transitions';
+import FocusRipple from './ripples/focus-ripple';
+import getMuiTheme from './styles/getMuiTheme';
+import autoPrefix from './styles/auto-prefix';
+
+/**
+ * Verifies min/max range.
+ * @param {Object} props Properties of the React component.
+ * @param {String} propName Name of the property to validate.
+ * @param {String} componentName Name of the component whose property is being validated.
+ * @returns {Object} Returns an Error if min >= max otherwise null.
+ */
+let minMaxPropType = (props, propName, componentName) => {
+ let error = React.PropTypes.number(props, propName, componentName);
+ if (error !== null) return error;
+
+ if (props.min >= props.max) {
+ let errorMsg = (propName === 'min') ? 'min should be less than max' : 'max should be greater than min';
+ return new Error(errorMsg);
+ }
+};
+
+/**
+ * Verifies value is within the min/max range.
+ * @param {Object} props Properties of the React component.
+ * @param {String} propName Name of the property to validate.
+ * @param {String} componentName Name of the component whose property is being validated.
+ * @returns {Object} Returns an Error if the value is not within the range otherwise null.
+ */
+let valueInRangePropType = (props, propName, componentName) => {
+ let error = React.PropTypes.number(props, propName, componentName);
+ if (error !== null) return error;
+
+ let value = props[propName];
+ if (value < props.min || props.max < value) {
+ return new Error(propName + ' should be within the range specified by min and max');
+ }
+};
+
+
+const Slider = React.createClass({
+
+ propTypes: {
+ /**
+ * The default value of the slider.
+ */
+ defaultValue: valueInRangePropType,
+
+ /**
+ * Describe the slider.
+ */
+ description: React.PropTypes.string,
+
+ /**
+ * Disables focus ripple if set to true.
+ */
+ disableFocusRipple: React.PropTypes.bool,
+
+ /**
+ * If true, the slider will not be interactable.
+ */
+ disabled: React.PropTypes.bool,
+
+ /**
+ * An error message for the slider.
+ */
+ error: React.PropTypes.string,
+
+ /**
+ * The maximum value the slider can slide to on
+ * a scale from 0 to 1 inclusive. Cannot be equal to min.
+ */
+ max: minMaxPropType,
+
+ /**
+ * The minimum value the slider can slide to on a scale
+ * from 0 to 1 inclusive. Cannot be equal to max.
+ */
+ min: minMaxPropType,
+
+ /**
+ * The name of the slider. Behaves like the name attribute
+ * of an input element.
+ */
+ name: React.PropTypes.string,
+
+ /**
+ * Callback function that is fired when the focus has left the slider.
+ */
+ onBlur: React.PropTypes.func,
+
+ /**
+ * Callback function that is fired when the user changes the slider's value.
+ */
+ onChange: React.PropTypes.func,
+
+ /**
+ * Callback function that is fired when the slider has begun to move.
+ */
+ onDragStart: React.PropTypes.func,
+
+ /**
+ * Callback function that is fried when the slide has stopped moving.
+ */
+ onDragStop: React.PropTypes.func,
+
+ /**
+ * Callback fired when the user has focused on the slider.
+ */
+ onFocus: React.PropTypes.func,
+
+ /**
+ * Whether or not the slider is required in a form.
+ */
+ required: React.PropTypes.bool,
+
+ /**
+ * The granularity the slider can step through values.
+ */
+ step: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The value of the slider.
+ */
+ value: valueInRangePropType,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ disabled: false,
+ disableFocusRipple: false,
+ max: 1,
+ min: 0,
+ required: true,
+ step: 0.01,
+ style: {},
+ };
+ },
+
+ getInitialState() {
+ let value = this.props.value;
+ if (value === undefined) {
+ value = this.props.defaultValue !== undefined ? this.props.defaultValue : this.props.min;
+ }
+ let percent = (value - this.props.min) / (this.props.max - this.props.min);
+ if (isNaN(percent)) percent = 0;
+
+ return {
+ active: false,
+ dragging: false,
+ focused: false,
+ hovered: false,
+ percent: percent,
+ value: value,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+
+ if (nextProps.value !== undefined && !this.state.dragging) {
+ this.setValue(nextProps.value);
+ }
+ },
+
+ getTheme() {
+ return this.state.muiTheme.slider;
+ },
+
+ getStyles() {
+ let fillGutter = this.getTheme().handleSize / 2;
+ let disabledGutter = this.getTheme().trackSize + this.getTheme().handleSizeDisabled / 2;
+ let calcDisabledSpacing = this.props.disabled ? ' - ' + disabledGutter + 'px' : '';
+ let styles = {
+ root: {
+ touchCallout: 'none',
+ userSelect: 'none',
+ cursor: 'default',
+ height: this.getTheme().handleSizeActive,
+ position: 'relative',
+ marginTop: 24,
+ marginBottom: 48,
+ },
+ track: {
+ position: 'absolute',
+ top: (this.getTheme().handleSizeActive - this.getTheme().trackSize) / 2,
+ left: 0,
+ width: '100%',
+ height: this.getTheme().trackSize,
+ },
+ filledAndRemaining: {
+ position: 'absolute',
+ top: 0,
+ height: '100%',
+ transition: Transitions.easeOut(null, 'margin'),
+ },
+ handle: {
+ boxSizing: 'border-box',
+ position: 'absolute',
+ cursor: 'pointer',
+ pointerEvents: 'inherit',
+ top: 0,
+ left: '0%',
+ zIndex: 1,
+ margin: (this.getTheme().trackSize / 2) + 'px 0 0 0',
+ width: this.getTheme().handleSize,
+ height: this.getTheme().handleSize,
+ backgroundColor: this.getTheme().selectionColor,
+ backgroundClip: 'padding-box',
+ border: '0px solid transparent',
+ borderRadius: '50%',
+ transform: 'translate(-50%, -50%)',
+ transition:
+ Transitions.easeOut('450ms', 'background') + ',' +
+ Transitions.easeOut('450ms', 'border-color') + ',' +
+ Transitions.easeOut('450ms', 'width') + ',' +
+ Transitions.easeOut('450ms', 'height'),
+ overflow: 'visible',
+ },
+ handleWhenDisabled: {
+ boxSizing: 'content-box',
+ cursor: 'not-allowed',
+ backgroundColor: this.getTheme().trackColor,
+ width: this.getTheme().handleSizeDisabled,
+ height: this.getTheme().handleSizeDisabled,
+ border: 'none',
+ },
+ handleWhenPercentZero: {
+ border: this.getTheme().trackSize + 'px solid ' + this.getTheme().handleColorZero,
+ backgroundColor: this.getTheme().handleFillColor,
+ boxShadow: 'none',
+ },
+ handleWhenPercentZeroAndDisabled: {
+ cursor: 'not-allowed',
+ width: this.getTheme().handleSizeDisabled,
+ height: this.getTheme().handleSizeDisabled,
+ },
+ handleWhenPercentZeroAndFocused: {
+ border: this.getTheme().trackSize + 'px solid ' +
+ this.getTheme().trackColorSelected,
+ },
+ handleWhenActive: {
+ width: this.getTheme().handleSizeActive,
+ height: this.getTheme().handleSizeActive,
+ },
+ ripple: {
+ height: this.getTheme().handleSize,
+ width: this.getTheme().handleSize,
+ overflow: 'visible',
+ },
+ rippleWhenPercentZero: {
+ top: -this.getTheme().trackSize,
+ left: -this.getTheme().trackSize,
+ },
+ rippleInner: {
+ height: '300%',
+ width: '300%',
+ top: -this.getTheme().handleSize,
+ left: -this.getTheme().handleSize,
+ },
+ };
+ styles.filled = this.mergeStyles(styles.filledAndRemaining, {
+ left: 0,
+ backgroundColor: (this.props.disabled) ?
+ this.getTheme().trackColor :
+ this.getTheme().selectionColor,
+ marginRight: fillGutter,
+ width: 'calc(' + (this.state.percent * 100) + '%' + calcDisabledSpacing + ')',
+ });
+ styles.remaining = this.mergeStyles(styles.filledAndRemaining, {
+ right: 0,
+ backgroundColor: this.getTheme().trackColor,
+ marginLeft: fillGutter,
+ width: 'calc(' + ((1 - this.state.percent) * 100) + '%' + calcDisabledSpacing + ')',
+ });
+
+ return styles;
+ },
+
+
+ // Needed to prevent text selection when dragging the slider handler.
+ // In the future, we should consider use to avoid
+ // similar issues.
+ _toggleSelection(value) {
+ let body = document.getElementsByTagName('body')[0];
+ autoPrefix.set(body.style, 'userSelect', value, this.state.muiTheme);
+ },
+
+ _onHandleTouchStart(e) {
+ if (document) {
+ document.addEventListener('touchmove', this._dragTouchHandler, false);
+ document.addEventListener('touchup', this._dragTouchEndHandler, false);
+ document.addEventListener('touchend', this._dragTouchEndHandler, false);
+ document.addEventListener('touchcancel', this._dragTouchEndHandler, false);
+ }
+ this._onDragStart(e);
+ },
+
+ _onHandleMouseDown(e) {
+ if (document) {
+ document.addEventListener('mousemove', this._dragHandler, false);
+ document.addEventListener('mouseup', this._dragEndHandler, false);
+ this._toggleSelection('none');
+ }
+ this._onDragStart(e);
+ },
+
+ _dragHandler(e) {
+ if (this._dragRunning) {
+ return;
+ }
+ this._dragRunning = true;
+ requestAnimationFrame(() => {
+ this._onDragUpdate(e, e.clientX - this._getTrackLeft());
+ this._dragRunning = false;
+ });
+ },
+
+ _dragTouchHandler(e) {
+ if (this._dragRunning) {
+ return;
+ }
+ this._dragRunning = true;
+ requestAnimationFrame(() => {
+ this._onDragUpdate(e, e.touches[0].clientX - this._getTrackLeft());
+ this._dragRunning = false;
+ });
+ },
+
+ _dragEndHandler(e) {
+ if (document) {
+ document.removeEventListener('mousemove', this._dragHandler, false);
+ document.removeEventListener('mouseup', this._dragEndHandler, false);
+ this._toggleSelection('');
+ }
+
+ this._onDragStop(e);
+ },
+
+ _dragTouchEndHandler(e) {
+ if (document) {
+ document.removeEventListener('touchmove', this._dragTouchHandler, false);
+ document.removeEventListener('touchup', this._dragTouchEndHandler, false);
+ document.removeEventListener('touchend', this._dragTouchEndHandler, false);
+ document.removeEventListener('touchcancel', this._dragTouchEndHandler, false);
+ }
+
+ this._onDragStop(e);
+ },
+
+ getValue() {
+ return this.state.value;
+ },
+
+ setValue(i) {
+ // calculate percentage
+ let percent = (i - this.props.min) / (this.props.max - this.props.min);
+ if (isNaN(percent)) percent = 0;
+ // update state
+ this.setState({
+ value: i,
+ percent: percent,
+ });
+ },
+
+ getPercent() {
+ return this.state.percent;
+ },
+
+ setPercent(percent, callback) {
+ let value = this._alignValue(this._percentToValue(percent));
+ let {min, max} = this.props;
+ let alignedPercent = (value - min) / (max - min);
+ if (this.state.value !== value) {
+ this.setState({value: value, percent: alignedPercent}, callback);
+ }
+ },
+
+ clearValue() {
+ this.setValue(this.props.min);
+ },
+
+ _alignValue(val) {
+ let {step, min} = this.props;
+ let alignValue = Math.round((val - min) / step) * step + min;
+ return parseFloat(alignValue.toFixed(5));
+ },
+
+ _onFocus(e) {
+ this.setState({focused: true});
+ if (this.props.onFocus) this.props.onFocus(e);
+ },
+
+ _onBlur(e) {
+ this.setState({focused: false, active: false});
+ if (this.props.onBlur) this.props.onBlur(e);
+ },
+
+ _onMouseDown(e) {
+ if (!this.props.disabled) this._pos = e.clientX;
+ },
+
+ _onMouseEnter() {
+ this.setState({hovered: true});
+ },
+
+ _onMouseLeave() {
+ this.setState({hovered: false});
+ },
+
+ _getTrackLeft() {
+ return ReactDOM.findDOMNode(this.refs.track).getBoundingClientRect().left;
+ },
+
+ _onMouseUp(e) {
+ if (!this.props.disabled) this.setState({active: false});
+ if (!this.state.dragging && Math.abs(this._pos - e.clientX) < 5) {
+ let pos = e.clientX - this._getTrackLeft();
+ this._dragX(e, pos);
+ }
+
+ this._pos = undefined;
+ },
+
+ _onDragStart(e) {
+ this.setState({
+ dragging: true,
+ active: true,
+ });
+ if (this.props.onDragStart) this.props.onDragStart(e);
+ },
+
+ _onDragStop(e) {
+ this.setState({
+ dragging: false,
+ active: false,
+ });
+ if (this.props.onDragStop) this.props.onDragStop(e);
+ },
+
+ _onDragUpdate(e, pos) {
+ if (!this.state.dragging) return;
+ if (!this.props.disabled) this._dragX(e, pos);
+ },
+
+ _dragX(e, pos) {
+ let max = ReactDOM.findDOMNode(this.refs.track).clientWidth;
+ if (pos < 0) pos = 0; else if (pos > max) pos = max;
+ this._updateWithChangeEvent(e, pos / max);
+ },
+
+ _updateWithChangeEvent(e, percent) {
+ this.setPercent(percent, () => {
+ if (this.props.onChange) this.props.onChange(e, this.state.value);
+ });
+ },
+
+ _percentToValue(percent) {
+ return percent * (this.props.max - this.props.min) + this.props.min;
+ },
+
+ render() {
+ let {...others} = this.props;
+ let percent = this.state.percent;
+ if (percent > 1) percent = 1; else if (percent < 0) percent = 0;
+
+ let styles = this.getStyles();
+ const sliderStyles = this.mergeStyles(styles.root, this.props.style);
+ const handleStyles = percent === 0 ? this.mergeStyles(
+ styles.handle,
+ styles.handleWhenPercentZero,
+ this.state.active && styles.handleWhenActive,
+ this.state.focused && {outline: 'none'},
+ (this.state.hovered || this.state.focused) && !this.props.disabled
+ && styles.handleWhenPercentZeroAndFocused,
+ this.props.disabled && styles.handleWhenPercentZeroAndDisabled
+ ) : this.mergeStyles(
+ styles.handle,
+ this.state.active && styles.handleWhenActive,
+ this.state.focused && {outline: 'none'},
+ this.props.disabled && styles.handleWhenDisabled,
+ {
+ left: (percent * 100) + '%',
+ }
+ );
+ let rippleStyle = this.mergeStyles(
+ styles.ripple,
+ percent === 0 && styles.rippleWhenPercentZero
+ );
+ let remainingStyles = styles.remaining;
+ if ((this.state.hovered || this.state.focused) && !this.props.disabled) {
+ remainingStyles.backgroundColor = this.getTheme().trackColorSelected;
+ }
+
+ let rippleShowCondition = (this.state.hovered || this.state.focused) && !this.state.active;
+ let rippleColor = this.state.percent === 0 ? this.getTheme().handleColorZero : this.getTheme().rippleColor;
+ let focusRipple;
+ if (!this.props.disabled && !this.props.disableFocusRipple) {
+ focusRipple = (
+
+ );
+ }
+
+ let handleDragProps = {};
+
+ if (!this.props.disabled) {
+ handleDragProps = {
+ onTouchStart: this._onHandleTouchStart,
+ onMouseDown: this._onHandleMouseDown,
+ };
+ }
+
+ return (
+
+
{this.props.description}
+
{this.props.error}
+
+
+
+
+
+ {focusRipple}
+
+
+
+
+
+ );
+ },
+});
+
+export default Slider;
diff --git a/node_modules/material-ui/src/snackbar.jsx b/node_modules/material-ui/src/snackbar.jsx
new file mode 100644
index 0000000..c088fbb
--- /dev/null
+++ b/node_modules/material-ui/src/snackbar.jsx
@@ -0,0 +1,382 @@
+import React from 'react';
+import StylePropable from './mixins/style-propable';
+import Transitions from './styles/transitions';
+import ClickAwayable from './mixins/click-awayable';
+import FlatButton from './flat-button';
+import getMuiTheme from './styles/getMuiTheme';
+import ContextPure from './mixins/context-pure';
+import StyleResizable from './mixins/style-resizable';
+import warning from 'warning';
+import deprecated from './utils/deprecatedPropType';
+
+const Snackbar = React.createClass({
+
+ propTypes: {
+ /**
+ * The label for the action on the snackbar.
+ */
+ action: React.PropTypes.string,
+
+ /**
+ * The number of milliseconds to wait before automatically dismissing.
+ * If no value is specified the snackbar will dismiss normally.
+ * If a value is provided the snackbar can still be dismissed normally.
+ * If a snackbar is dismissed before the timer expires, the timer will be cleared.
+ */
+ autoHideDuration: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the body element.
+ */
+ bodyStyle: React.PropTypes.object,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * The message to be displayed.
+ */
+ message: React.PropTypes.node.isRequired,
+
+ /**
+ * Fired when the action button is touchtapped.
+ *
+ * @param {object} event Action button event.
+ */
+ onActionTouchTap: React.PropTypes.func,
+
+ /**
+ * Fired when the `Snackbar` is dismissed.
+ */
+ onDismiss: deprecated(React.PropTypes.func,
+ 'Instead, use the open property to control the component.'),
+
+ /**
+ * Fired when the `Snackbar` is requested to be closed by a click outside the `Snackbar`, or after the
+ * `autoHideDuration` timer expires.
+ *
+ * Typically `onRequestClose` is used to set state in the parent component, which is used to control the `Snackbar`
+ * `open` prop.
+ *
+ * The `reason` parameter can optionally be used to control the response to `onRequestClose`,
+ * for example ignoring `clickaway`.
+ *
+ * @param {string} reason Can be:`"timeout"` (`autoHideDuration` expired) or: `"clickaway"`
+ */
+ onRequestClose: React.PropTypes.func.isRequired,
+
+ /**
+ * Fired when the `Snackbar` is shown.
+ */
+ onShow: deprecated(React.PropTypes.func,
+ 'Instead, use the open property to control the component.'),
+
+ /**
+ * Controls whether the `Snackbar` is opened or not.
+ */
+ open: React.PropTypes.bool.isRequired,
+
+ /**
+ * If true, the `Snackbar` will open once mounted.
+ */
+ openOnMount: deprecated(React.PropTypes.bool,
+ 'Instead, use the open property to control the component.'),
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ StyleResizable,
+ ClickAwayable,
+ ContextPure,
+ ],
+
+ statics: {
+ getRelevantContextKeys(muiTheme) {
+ const theme = muiTheme.snackbar;
+ const spacing = muiTheme.rawTheme.spacing;
+
+ return {
+ textColor: theme.textColor,
+ backgroundColor: theme.backgroundColor,
+ desktopGutter: spacing.desktopGutter,
+ desktopSubheaderHeight: spacing.desktopSubheaderHeight,
+ actionColor: theme.actionColor,
+ };
+ },
+ getChildrenClasses() {
+ return [
+ FlatButton,
+ ];
+ },
+ },
+
+ getInitialState() {
+ let open = this.props.open;
+
+ if (open === null) {
+ open = this.props.openOnMount;
+ }
+
+ return {
+ open: open,
+ message: this.props.message,
+ action: this.props.action,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ if (this.state.open) {
+ this._setAutoHideTimer();
+
+ //Only Bind clickaway after transition finishes
+ this.timerTransitionId = setTimeout(() => {
+ this._bindClickAway();
+ }, 400);
+ }
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ const newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({
+ muiTheme: newMuiTheme,
+ });
+
+ if (this.state.open && nextProps.open === this.props.open &&
+ (nextProps.message !== this.props.message || nextProps.action !== this.props.action)) {
+ this.setState({
+ open: false,
+ });
+
+ clearTimeout(this.timerOneAtTheTimeId);
+ this.timerOneAtTheTimeId = setTimeout(() => {
+ this.setState({
+ message: nextProps.message,
+ action: nextProps.action,
+ open: true,
+ });
+ }, 400);
+ } else {
+ const open = nextProps.open;
+
+ this.setState({
+ open: open !== null ? open : this.state.open,
+ message: nextProps.message,
+ action: nextProps.action,
+ });
+ }
+ },
+
+ componentDidUpdate(prevProps, prevState) {
+ if (prevState.open !== this.state.open) {
+ if (this.state.open) {
+ this._setAutoHideTimer();
+
+ //Only Bind clickaway after transition finishes
+ this.timerTransitionId = setTimeout(() => {
+ this._bindClickAway();
+ }, 400);
+ } else {
+ clearTimeout(this.timerAutoHideId);
+ this._unbindClickAway();
+ }
+ }
+ },
+
+ componentWillUnmount() {
+ clearTimeout(this.timerAutoHideId);
+ clearTimeout(this.timerTransitionId);
+ clearTimeout(this.timerOneAtTheTimeId);
+ this._unbindClickAway();
+ },
+
+ manuallyBindClickAway: true,
+
+ timerAutoHideId: undefined,
+ timerTransitionId: undefined,
+ timerOneAtTheTimeId: undefined,
+
+ componentClickAway() {
+ if (this.props.open !== null && this.props.onRequestClose) {
+ this.props.onRequestClose('clickaway');
+ } else {
+ this.setState({open: false});
+ }
+ },
+
+ getStyles() {
+ const {
+ textColor,
+ backgroundColor,
+ desktopGutter,
+ desktopSubheaderHeight,
+ actionColor,
+ } = this.constructor.getRelevantContextKeys(this.state.muiTheme);
+
+ const isSmall = this.state.deviceSize === this.constructor.Sizes.SMALL;
+
+ const styles = {
+ root: {
+ position: 'fixed',
+ left: 0,
+ display: 'flex',
+ right: 0,
+ bottom: 0,
+ zIndex: this.state.muiTheme.zIndex.snackbar,
+ visibility: 'hidden',
+ transform: 'translate3d(0, ' + desktopSubheaderHeight + 'px, 0)',
+ transition:
+ Transitions.easeOut('400ms', 'transform') + ',' +
+ Transitions.easeOut('400ms', 'visibility'),
+ },
+ rootWhenOpen: {
+ visibility: 'visible',
+ transform: 'translate3d(0, 0, 0)',
+ },
+ body: {
+ backgroundColor: backgroundColor,
+ padding: '0 ' + desktopGutter + 'px',
+ height: desktopSubheaderHeight,
+ lineHeight: desktopSubheaderHeight + 'px',
+ borderRadius: isSmall ? 0 : 2,
+ maxWidth: isSmall ? 'inherit' : 568,
+ minWidth: isSmall ? 'inherit' : 288,
+ flexGrow: isSmall ? 1 : 0,
+ margin: 'auto',
+ },
+ content: {
+ fontSize: 14,
+ color: textColor,
+ opacity: 0,
+ transition: Transitions.easeOut('400ms', 'opacity'),
+ },
+ contentWhenOpen: {
+ opacity: 1,
+ transition: Transitions.easeOut('500ms', 'opacity', '100ms'),
+ },
+ action: {
+ color: actionColor,
+ float: 'right',
+ marginTop: 6,
+ marginRight: -16,
+ marginLeft: desktopGutter,
+ backgroundColor: 'transparent',
+ },
+ };
+
+ return styles;
+ },
+
+ show() {
+ warning(false, 'show has been deprecated in favor of explicitly setting the open property.');
+
+ this.setState({
+ open: true,
+ });
+
+ if (this.props.onShow) {
+ this.props.onShow();
+ }
+ },
+
+ _onDismiss() {
+ if (this.props.onDismiss) {
+ this.props.onDismiss();
+ }
+ },
+
+ dismiss() {
+ warning(false, 'dismiss has been deprecated in favor of explicitly setting the open property.');
+
+ this.setState({
+ open: false,
+ }, this._onDismiss);
+ },
+
+ _setAutoHideTimer() {
+ const autoHideDuration = this.props.autoHideDuration;
+
+ if (autoHideDuration > 0) {
+ clearTimeout(this.timerAutoHideId);
+ this.timerAutoHideId = setTimeout(() => {
+ if (this.props.open !== null && this.props.onRequestClose) {
+ this.props.onRequestClose('timeout');
+ } else {
+ this.setState({open: false});
+ }
+ }, autoHideDuration);
+ }
+ },
+
+ render() {
+ const {
+ onActionTouchTap,
+ style,
+ bodyStyle,
+ ...others,
+ } = this.props;
+
+ const styles = this.getStyles();
+
+ const {
+ open,
+ action,
+ message,
+ } = this.state;
+
+ const rootStyles = open ?
+ this.mergeStyles(styles.root, styles.rootWhenOpen, style) :
+ this.mergeStyles(styles.root, style);
+
+ let actionButton;
+ if (action) {
+ actionButton = (
+
+ );
+ }
+
+ const mergedBodyStyle = this.mergeStyles(styles.body, bodyStyle);
+
+ const contentStyle = open ? this.mergeStyles(styles.content, styles.contentWhenOpen) : styles.content;
+
+ return (
+
+
+
+ {message}
+ {actionButton}
+
+
+
+ );
+ },
+
+});
+
+export default Snackbar;
diff --git a/node_modules/material-ui/src/styles/auto-prefix.js b/node_modules/material-ui/src/styles/auto-prefix.js
new file mode 100644
index 0000000..ec73321
--- /dev/null
+++ b/node_modules/material-ui/src/styles/auto-prefix.js
@@ -0,0 +1,110 @@
+import InlineStylePrefixer from 'inline-style-prefixer';
+import warning from 'warning';
+
+const prefixers = {};
+
+let hasWarnedAboutUserAgent = false;
+
+export default {
+
+ getTransform(userAgent) {
+ if (userAgent === undefined && typeof navigator !== 'undefined') {
+ userAgent = navigator.userAgent;
+ }
+
+ if (userAgent === undefined && !hasWarnedAboutUserAgent) {
+ warning(false, `Material-UI: userAgent should be supplied in the muiTheme context
+ for server-side rendering.`);
+
+ hasWarnedAboutUserAgent = true;
+ }
+
+ if (userAgent === false) { // Disabled autoprefixer
+ return (style) => style;
+ } else if (userAgent === 'all' || userAgent === undefined) { // Prefix for all user agent
+ return InlineStylePrefixer.prefixAll;
+ } else {
+ const prefixer = new InlineStylePrefixer({
+ userAgent: userAgent,
+ });
+
+ return (style) => prefixer.prefix(style);
+ }
+ },
+
+ getPrefixer() {
+ warning(false, `Material-UI: getPrefixer() is no longer used. Do not use it.`);
+
+ if (typeof navigator === 'undefined') {
+ warning(false, `Material-UI expects the global navigator.userAgent to be defined
+ for server-side rendering. Set this property when receiving the request headers.`);
+
+ return null;
+ }
+
+ const userAgent = navigator.userAgent;
+
+ // Get prefixing instance for this user agent
+ let prefixer = prefixers[userAgent];
+ // None found, create a new instance
+ if (!prefixer) {
+ prefixer = new InlineStylePrefixer({userAgent: userAgent});
+ prefixers[userAgent] = prefixer;
+ }
+
+ return prefixer;
+ },
+
+ all(style) {
+ if (!style) {
+ return {};
+ }
+
+ warning(false, `Material-UI: all() is no longer used, it will be removed. Do not use it`);
+
+ const prefixer = this.getPrefixer();
+
+ if (prefixer) {
+ return prefixer.prefix(style);
+ } else {
+ return InlineStylePrefixer.prefixAll(style);
+ }
+ },
+
+ set(style, key, value, muiTheme) {
+ style[key] = value;
+
+ if (muiTheme) {
+ style = muiTheme.prefix(style);
+ } else {
+ warning(false, `Material-UI: you need to provide the muiTheme to the autoPrefix.set()`);
+
+ const prefixer = this.getPrefixer();
+
+ if (prefixer) {
+ style = prefixer.prefix(style);
+ } else {
+ style = InlineStylePrefixer.prefixAll(style);
+ }
+ }
+ },
+
+ getPrefix(key) {
+ warning(false, `Material-UI: getPrefix() is no longer used, it will be removed. Do not use it`);
+
+ let style = {};
+ style[key] = true;
+
+ const prefixer = this.getPrefixer();
+ let prefixes;
+
+ if (prefixer) {
+ prefixes = Object.keys(prefixer.prefix(style));
+ } else {
+ prefixes = Object.keys(InlineStylePrefixer.prefixAll(style));
+ }
+
+ return prefixes ? prefixes[0] : key;
+ },
+
+};
diff --git a/node_modules/material-ui/src/styles/baseThemes/darkBaseTheme.js b/node_modules/material-ui/src/styles/baseThemes/darkBaseTheme.js
new file mode 100644
index 0000000..e140f55
--- /dev/null
+++ b/node_modules/material-ui/src/styles/baseThemes/darkBaseTheme.js
@@ -0,0 +1,23 @@
+import Colors from '../colors';
+import ColorManipulator from '../../utils/color-manipulator';
+import Spacing from '../spacing';
+
+export default {
+ spacing: Spacing,
+ fontFamily: 'Roboto, sans-serif',
+ palette: {
+ primary1Color: Colors.cyan700,
+ primary2Color: Colors.cyan700,
+ primary3Color: Colors.grey600,
+ accent1Color: Colors.pinkA200,
+ accent2Color: Colors.pinkA400,
+ accent3Color: Colors.pinkA100,
+ textColor: Colors.fullWhite,
+ alternateTextColor: '#303030',
+ canvasColor: '#303030',
+ borderColor: ColorManipulator.fade(Colors.fullWhite, 0.3),
+ disabledColor: ColorManipulator.fade(Colors.fullWhite, 0.3),
+ pickerHeaderColor: ColorManipulator.fade(Colors.fullWhite, 0.12),
+ clockCircleColor: ColorManipulator.fade(Colors.fullWhite, 0.12),
+ },
+};
diff --git a/node_modules/material-ui/src/styles/baseThemes/lightBaseTheme.js b/node_modules/material-ui/src/styles/baseThemes/lightBaseTheme.js
new file mode 100644
index 0000000..3d4e4f2
--- /dev/null
+++ b/node_modules/material-ui/src/styles/baseThemes/lightBaseTheme.js
@@ -0,0 +1,30 @@
+import Colors from '../colors';
+import ColorManipulator from '../../utils/color-manipulator';
+import Spacing from '../spacing';
+
+/*
+ * Light Theme is the default theme used in material-ui. It is guaranteed to
+ * have all theme variables needed for every component. Variables not defined
+ * in a custom theme will default to these values.
+ */
+
+export default {
+ spacing: Spacing,
+ fontFamily: 'Roboto, sans-serif',
+ palette: {
+ primary1Color: Colors.cyan500,
+ primary2Color: Colors.cyan700,
+ primary3Color: Colors.grey400,
+ accent1Color: Colors.pinkA200,
+ accent2Color: Colors.grey100,
+ accent3Color: Colors.grey500,
+ textColor: Colors.darkBlack,
+ alternateTextColor: Colors.white,
+ canvasColor: Colors.white,
+ borderColor: Colors.grey300,
+ disabledColor: ColorManipulator.fade(Colors.darkBlack, 0.3),
+ pickerHeaderColor: Colors.cyan500,
+ clockCircleColor: ColorManipulator.fade(Colors.darkBlack, 0.07),
+ shadowColor: Colors.fullBlack,
+ },
+};
diff --git a/node_modules/material-ui/src/styles/colors.js b/node_modules/material-ui/src/styles/colors.js
new file mode 100644
index 0000000..805b821
--- /dev/null
+++ b/node_modules/material-ui/src/styles/colors.js
@@ -0,0 +1,287 @@
+export default {
+ red50: '#ffebee',
+ red100: '#ffcdd2',
+ red200: '#ef9a9a',
+ red300: '#e57373',
+ red400: '#ef5350',
+ red500: '#f44336',
+ red600: '#e53935',
+ red700: '#d32f2f',
+ red800: '#c62828',
+ red900: '#b71c1c',
+ redA100: '#ff8a80',
+ redA200: '#ff5252',
+ redA400: '#ff1744',
+ redA700: '#d50000',
+
+ pink50: '#fce4ec',
+ pink100: '#f8bbd0',
+ pink200: '#f48fb1',
+ pink300: '#f06292',
+ pink400: '#ec407a',
+ pink500: '#e91e63',
+ pink600: '#d81b60',
+ pink700: '#c2185b',
+ pink800: '#ad1457',
+ pink900: '#880e4f',
+ pinkA100: '#ff80ab',
+ pinkA200: '#ff4081',
+ pinkA400: '#f50057',
+ pinkA700: '#c51162',
+
+ purple50: '#f3e5f5',
+ purple100: '#e1bee7',
+ purple200: '#ce93d8',
+ purple300: '#ba68c8',
+ purple400: '#ab47bc',
+ purple500: '#9c27b0',
+ purple600: '#8e24aa',
+ purple700: '#7b1fa2',
+ purple800: '#6a1b9a',
+ purple900: '#4a148c',
+ purpleA100: '#ea80fc',
+ purpleA200: '#e040fb',
+ purpleA400: '#d500f9',
+ purpleA700: '#aa00ff',
+
+ deepPurple50: '#ede7f6',
+ deepPurple100: '#d1c4e9',
+ deepPurple200: '#b39ddb',
+ deepPurple300: '#9575cd',
+ deepPurple400: '#7e57c2',
+ deepPurple500: '#673ab7',
+ deepPurple600: '#5e35b1',
+ deepPurple700: '#512da8',
+ deepPurple800: '#4527a0',
+ deepPurple900: '#311b92',
+ deepPurpleA100: '#b388ff',
+ deepPurpleA200: '#7c4dff',
+ deepPurpleA400: '#651fff',
+ deepPurpleA700: '#6200ea',
+
+ indigo50: '#e8eaf6',
+ indigo100: '#c5cae9',
+ indigo200: '#9fa8da',
+ indigo300: '#7986cb',
+ indigo400: '#5c6bc0',
+ indigo500: '#3f51b5',
+ indigo600: '#3949ab',
+ indigo700: '#303f9f',
+ indigo800: '#283593',
+ indigo900: '#1a237e',
+ indigoA100: '#8c9eff',
+ indigoA200: '#536dfe',
+ indigoA400: '#3d5afe',
+ indigoA700: '#304ffe',
+
+ blue50: '#e3f2fd',
+ blue100: '#bbdefb',
+ blue200: '#90caf9',
+ blue300: '#64b5f6',
+ blue400: '#42a5f5',
+ blue500: '#2196f3',
+ blue600: '#1e88e5',
+ blue700: '#1976d2',
+ blue800: '#1565c0',
+ blue900: '#0d47a1',
+ blueA100: '#82b1ff',
+ blueA200: '#448aff',
+ blueA400: '#2979ff',
+ blueA700: '#2962ff',
+
+ lightBlue50: '#e1f5fe',
+ lightBlue100: '#b3e5fc',
+ lightBlue200: '#81d4fa',
+ lightBlue300: '#4fc3f7',
+ lightBlue400: '#29b6f6',
+ lightBlue500: '#03a9f4',
+ lightBlue600: '#039be5',
+ lightBlue700: '#0288d1',
+ lightBlue800: '#0277bd',
+ lightBlue900: '#01579b',
+ lightBlueA100: '#80d8ff',
+ lightBlueA200: '#40c4ff',
+ lightBlueA400: '#00b0ff',
+ lightBlueA700: '#0091ea',
+
+ cyan50: '#e0f7fa',
+ cyan100: '#b2ebf2',
+ cyan200: '#80deea',
+ cyan300: '#4dd0e1',
+ cyan400: '#26c6da',
+ cyan500: '#00bcd4',
+ cyan600: '#00acc1',
+ cyan700: '#0097a7',
+ cyan800: '#00838f',
+ cyan900: '#006064',
+ cyanA100: '#84ffff',
+ cyanA200: '#18ffff',
+ cyanA400: '#00e5ff',
+ cyanA700: '#00b8d4',
+
+ teal50: '#e0f2f1',
+ teal100: '#b2dfdb',
+ teal200: '#80cbc4',
+ teal300: '#4db6ac',
+ teal400: '#26a69a',
+ teal500: '#009688',
+ teal600: '#00897b',
+ teal700: '#00796b',
+ teal800: '#00695c',
+ teal900: '#004d40',
+ tealA100: '#a7ffeb',
+ tealA200: '#64ffda',
+ tealA400: '#1de9b6',
+ tealA700: '#00bfa5',
+
+ green50: '#e8f5e9',
+ green100: '#c8e6c9',
+ green200: '#a5d6a7',
+ green300: '#81c784',
+ green400: '#66bb6a',
+ green500: '#4caf50',
+ green600: '#43a047',
+ green700: '#388e3c',
+ green800: '#2e7d32',
+ green900: '#1b5e20',
+ greenA100: '#b9f6ca',
+ greenA200: '#69f0ae',
+ greenA400: '#00e676',
+ greenA700: '#00c853',
+
+ lightGreen50: '#f1f8e9',
+ lightGreen100: '#dcedc8',
+ lightGreen200: '#c5e1a5',
+ lightGreen300: '#aed581',
+ lightGreen400: '#9ccc65',
+ lightGreen500: '#8bc34a',
+ lightGreen600: '#7cb342',
+ lightGreen700: '#689f38',
+ lightGreen800: '#558b2f',
+ lightGreen900: '#33691e',
+ lightGreenA100: '#ccff90',
+ lightGreenA200: '#b2ff59',
+ lightGreenA400: '#76ff03',
+ lightGreenA700: '#64dd17',
+
+ lime50: '#f9fbe7',
+ lime100: '#f0f4c3',
+ lime200: '#e6ee9c',
+ lime300: '#dce775',
+ lime400: '#d4e157',
+ lime500: '#cddc39',
+ lime600: '#c0ca33',
+ lime700: '#afb42b',
+ lime800: '#9e9d24',
+ lime900: '#827717',
+ limeA100: '#f4ff81',
+ limeA200: '#eeff41',
+ limeA400: '#c6ff00',
+ limeA700: '#aeea00',
+
+ yellow50: '#fffde7',
+ yellow100: '#fff9c4',
+ yellow200: '#fff59d',
+ yellow300: '#fff176',
+ yellow400: '#ffee58',
+ yellow500: '#ffeb3b',
+ yellow600: '#fdd835',
+ yellow700: '#fbc02d',
+ yellow800: '#f9a825',
+ yellow900: '#f57f17',
+ yellowA100: '#ffff8d',
+ yellowA200: '#ffff00',
+ yellowA400: '#ffea00',
+ yellowA700: '#ffd600',
+
+ amber50: '#fff8e1',
+ amber100: '#ffecb3',
+ amber200: '#ffe082',
+ amber300: '#ffd54f',
+ amber400: '#ffca28',
+ amber500: '#ffc107',
+ amber600: '#ffb300',
+ amber700: '#ffa000',
+ amber800: '#ff8f00',
+ amber900: '#ff6f00',
+ amberA100: '#ffe57f',
+ amberA200: '#ffd740',
+ amberA400: '#ffc400',
+ amberA700: '#ffab00',
+
+ orange50: '#fff3e0',
+ orange100: '#ffe0b2',
+ orange200: '#ffcc80',
+ orange300: '#ffb74d',
+ orange400: '#ffa726',
+ orange500: '#ff9800',
+ orange600: '#fb8c00',
+ orange700: '#f57c00',
+ orange800: '#ef6c00',
+ orange900: '#e65100',
+ orangeA100: '#ffd180',
+ orangeA200: '#ffab40',
+ orangeA400: '#ff9100',
+ orangeA700: '#ff6d00',
+
+ deepOrange50: '#fbe9e7',
+ deepOrange100: '#ffccbc',
+ deepOrange200: '#ffab91',
+ deepOrange300: '#ff8a65',
+ deepOrange400: '#ff7043',
+ deepOrange500: '#ff5722',
+ deepOrange600: '#f4511e',
+ deepOrange700: '#e64a19',
+ deepOrange800: '#d84315',
+ deepOrange900: '#bf360c',
+ deepOrangeA100: '#ff9e80',
+ deepOrangeA200: '#ff6e40',
+ deepOrangeA400: '#ff3d00',
+ deepOrangeA700: '#dd2c00',
+
+ brown50: '#efebe9',
+ brown100: '#d7ccc8',
+ brown200: '#bcaaa4',
+ brown300: '#a1887f',
+ brown400: '#8d6e63',
+ brown500: '#795548',
+ brown600: '#6d4c41',
+ brown700: '#5d4037',
+ brown800: '#4e342e',
+ brown900: '#3e2723',
+
+ blueGrey50: '#eceff1',
+ blueGrey100: '#cfd8dc',
+ blueGrey200: '#b0bec5',
+ blueGrey300: '#90a4ae',
+ blueGrey400: '#78909c',
+ blueGrey500: '#607d8b',
+ blueGrey600: '#546e7a',
+ blueGrey700: '#455a64',
+ blueGrey800: '#37474f',
+ blueGrey900: '#263238',
+
+ grey50: '#fafafa',
+ grey100: '#f5f5f5',
+ grey200: '#eeeeee',
+ grey300: '#e0e0e0',
+ grey400: '#bdbdbd',
+ grey500: '#9e9e9e',
+ grey600: '#757575',
+ grey700: '#616161',
+ grey800: '#424242',
+ grey900: '#212121',
+
+ black: '#000000',
+ white: '#ffffff',
+
+ transparent: 'rgba(0, 0, 0, 0)',
+ fullBlack: 'rgba(0, 0, 0, 1)',
+ darkBlack: 'rgba(0, 0, 0, 0.87)',
+ lightBlack: 'rgba(0, 0, 0, 0.54)',
+ minBlack: 'rgba(0, 0, 0, 0.26)',
+ faintBlack: 'rgba(0, 0, 0, 0.12)',
+ fullWhite: 'rgba(255, 255, 255, 1)',
+ darkWhite: 'rgba(255, 255, 255, 0.87)',
+ lightWhite: 'rgba(255, 255, 255, 0.54)',
+};
diff --git a/node_modules/material-ui/src/styles/getMuiTheme.js b/node_modules/material-ui/src/styles/getMuiTheme.js
new file mode 100644
index 0000000..fb51542
--- /dev/null
+++ b/node_modules/material-ui/src/styles/getMuiTheme.js
@@ -0,0 +1,250 @@
+import merge from 'lodash.merge';
+import Colors from './colors';
+import ColorManipulator from '../utils/color-manipulator';
+import autoPrefix from './auto-prefix';
+import lightBaseTheme from './baseThemes/lightBaseTheme';
+import zIndex from './zIndex';
+import {autoprefixer, callOnce, rtl} from './transformers';
+import compose from 'lodash.flowright';
+
+/**
+ * Get the MUI theme corresponding to a base theme.
+ * It's possible to override the computed theme values
+ * by providing a second argument. The calculated
+ * theme will be deeply merged with the second argument.
+ */
+export default function getMuiTheme(baseTheme, muiTheme) {
+ baseTheme = merge({}, lightBaseTheme, baseTheme);
+ const {
+ palette,
+ spacing,
+ } = baseTheme;
+
+ muiTheme = merge({
+ isRtl: false,
+ userAgent: undefined,
+ zIndex,
+ baseTheme,
+ rawTheme: baseTheme, // To provide backward compatibility.
+ appBar: {
+ color: palette.primary1Color,
+ textColor: palette.alternateTextColor,
+ height: spacing.desktopKeylineIncrement,
+ },
+ avatar: {
+ borderColor: 'rgba(0, 0, 0, 0.08)',
+ },
+ badge: {
+ color: palette.alternateTextColor,
+ textColor: palette.textColor,
+ primaryColor: palette.accent1Color,
+ primaryTextColor: palette.alternateTextColor,
+ secondaryColor: palette.primary1Color,
+ secondaryTextColor: palette.alternateTextColor,
+ },
+ button: {
+ height: 36,
+ minWidth: 88,
+ iconButtonSize: spacing.iconSize * 2,
+ },
+ cardText: {
+ textColor: palette.textColor,
+ },
+ checkbox: {
+ boxColor: palette.textColor,
+ checkedColor: palette.primary1Color,
+ requiredColor: palette.primary1Color,
+ disabledColor: palette.disabledColor,
+ labelColor: palette.textColor,
+ labelDisabledColor: palette.disabledColor,
+ },
+ datePicker: {
+ color: palette.primary1Color,
+ textColor: palette.alternateTextColor,
+ calendarTextColor: palette.textColor,
+ selectColor: palette.primary2Color,
+ selectTextColor: palette.alternateTextColor,
+ },
+ dropDownMenu: {
+ accentColor: palette.borderColor,
+ },
+ flatButton: {
+ color: Colors.transparent,
+ buttonFilterColor: '#999999',
+ disabledTextColor: ColorManipulator.fade(palette.textColor, 0.3),
+ textColor: palette.textColor,
+ primaryTextColor: palette.accent1Color,
+ secondaryTextColor: palette.primary1Color,
+ },
+ floatingActionButton: {
+ buttonSize: 56,
+ miniSize: 40,
+ color: palette.accent1Color,
+ iconColor: palette.alternateTextColor,
+ secondaryColor: palette.primary1Color,
+ secondaryIconColor: palette.alternateTextColor,
+ disabledTextColor: palette.disabledColor,
+ },
+ gridTile: {
+ textColor: Colors.white,
+ },
+ inkBar: {
+ backgroundColor: palette.accent1Color,
+ },
+ leftNav: {
+ width: spacing.desktopKeylineIncrement * 4,
+ color: palette.canvasColor,
+ },
+ listItem: {
+ nestedLevelDepth: 18,
+ },
+ menu: {
+ backgroundColor: palette.canvasColor,
+ containerBackgroundColor: palette.canvasColor,
+ },
+ menuItem: {
+ dataHeight: 32,
+ height: 48,
+ hoverColor: 'rgba(0, 0, 0, .035)',
+ padding: spacing.desktopGutter,
+ selectedTextColor: palette.accent1Color,
+ },
+ menuSubheader: {
+ padding: spacing.desktopGutter,
+ borderColor: palette.borderColor,
+ textColor: palette.primary1Color,
+ },
+ paper: {
+ backgroundColor: palette.canvasColor,
+ zDepthShadows: [
+ [1, 6, 0.12, 1, 4, 0.12],
+ [3, 10, 0.16, 3, 10, 0.23],
+ [10, 30, 0.19, 6, 10, 0.23],
+ [14, 45, 0.25, 10, 18, 0.22],
+ [19, 60, 0.30, 15, 20, 0.22],
+ ].map(d => (
+ `0 ${d[0]}px ${d[1]}px ${ColorManipulator.fade(palette.shadowColor, d[2])},
+ 0 ${d[3]}px ${d[4]}px ${ColorManipulator.fade(palette.shadowColor, d[5])}`
+ )),
+ },
+ radioButton: {
+ borderColor: palette.textColor,
+ backgroundColor: palette.alternateTextColor,
+ checkedColor: palette.primary1Color,
+ requiredColor: palette.primary1Color,
+ disabledColor: palette.disabledColor,
+ size: 24,
+ labelColor: palette.textColor,
+ labelDisabledColor: palette.disabledColor,
+ },
+ raisedButton: {
+ color: palette.alternateTextColor,
+ textColor: palette.textColor,
+ primaryColor: palette.accent1Color,
+ primaryTextColor: palette.alternateTextColor,
+ secondaryColor: palette.primary1Color,
+ secondaryTextColor: palette.alternateTextColor,
+ disabledColor: ColorManipulator.darken(palette.alternateTextColor, 0.1),
+ disabledTextColor: ColorManipulator.fade(palette.textColor, 0.3),
+ },
+ refreshIndicator: {
+ strokeColor: palette.borderColor,
+ loadingStrokeColor: palette.primary1Color,
+ },
+ slider: {
+ trackSize: 2,
+ trackColor: palette.primary3Color,
+ trackColorSelected: palette.accent3Color,
+ handleSize: 12,
+ handleSizeDisabled: 8,
+ handleSizeActive: 18,
+ handleColorZero: palette.primary3Color,
+ handleFillColor: palette.alternateTextColor,
+ selectionColor: palette.primary1Color,
+ rippleColor: palette.primary1Color,
+ },
+ snackbar: {
+ textColor: palette.alternateTextColor,
+ backgroundColor: palette.textColor,
+ actionColor: palette.accent1Color,
+ },
+ table: {
+ backgroundColor: palette.canvasColor,
+ },
+ tableHeader: {
+ borderColor: palette.borderColor,
+ },
+ tableHeaderColumn: {
+ textColor: palette.accent3Color,
+ height: 56,
+ spacing: 24,
+ },
+ tableFooter: {
+ borderColor: palette.borderColor,
+ textColor: palette.accent3Color,
+ },
+ tableRow: {
+ hoverColor: palette.accent2Color,
+ stripeColor: ColorManipulator.lighten(palette.primary1Color, 0.55),
+ selectedColor: palette.borderColor,
+ textColor: palette.textColor,
+ borderColor: palette.borderColor,
+ height: 48,
+ },
+ tableRowColumn: {
+ height: 48,
+ spacing: 24,
+ },
+ timePicker: {
+ color: palette.alternateTextColor,
+ textColor: palette.accent3Color,
+ accentColor: palette.primary1Color,
+ clockColor: palette.textColor,
+ clockCircleColor: palette.clockCircleColor,
+ headerColor: palette.pickerHeaderColor || palette.primary1Color,
+ selectColor: palette.primary2Color,
+ selectTextColor: palette.alternateTextColor,
+ },
+ toggle: {
+ thumbOnColor: palette.primary1Color,
+ thumbOffColor: palette.accent2Color,
+ thumbDisabledColor: palette.borderColor,
+ thumbRequiredColor: palette.primary1Color,
+ trackOnColor: ColorManipulator.fade(palette.primary1Color, 0.5),
+ trackOffColor: palette.primary3Color,
+ trackDisabledColor: palette.primary3Color,
+ labelColor: palette.textColor,
+ labelDisabledColor: palette.disabledColor,
+ trackRequiredColor: ColorManipulator.fade(palette.primary1Color, 0.5),
+ },
+ toolbar: {
+ backgroundColor: ColorManipulator.darken(palette.accent2Color, 0.05),
+ height: 56,
+ titleFontSize: 20,
+ iconColor: 'rgba(0, 0, 0, .40)',
+ separatorColor: 'rgba(0, 0, 0, .175)',
+ menuHoverColor: 'rgba(0, 0, 0, .10)',
+ },
+ tabs: {
+ backgroundColor: palette.primary1Color,
+ textColor: ColorManipulator.fade(palette.alternateTextColor, 0.7),
+ selectedTextColor: palette.alternateTextColor,
+ },
+ textField: {
+ textColor: palette.textColor,
+ hintColor: palette.disabledColor,
+ floatingLabelColor: palette.textColor,
+ disabledTextColor: palette.disabledColor,
+ errorColor: Colors.red500,
+ focusColor: palette.primary1Color,
+ backgroundColor: 'transparent',
+ borderColor: palette.borderColor,
+ },
+ }, muiTheme);
+
+ const transformers = [autoprefixer, rtl, callOnce].map(t => t(muiTheme)).filter(t => t);
+ muiTheme.prefix = autoPrefix.getTransform(muiTheme.userAgent);
+ muiTheme.prepareStyles = compose(...transformers);
+
+ return muiTheme;
+}
diff --git a/node_modules/material-ui/src/styles/index.js b/node_modules/material-ui/src/styles/index.js
new file mode 100644
index 0000000..b006fb7
--- /dev/null
+++ b/node_modules/material-ui/src/styles/index.js
@@ -0,0 +1,42 @@
+import AutoPrefix from './auto-prefix';
+import Colors from './colors';
+import Spacing from './spacing';
+import ThemeManager from './theme-manager';
+import Transitions from './transitions';
+import Typography from './typography';
+import LightRawTheme from './raw-themes/light-raw-theme';
+import lightBaseTheme from './baseThemes/lightBaseTheme';
+import DarkRawTheme from './raw-themes/dark-raw-theme';
+import darkBaseTheme from './baseThemes/darkBaseTheme';
+import ThemeDecorator from './theme-decorator';
+import getMuiTheme from './getMuiTheme';
+import ZIndex from './zIndex';
+
+export {AutoPrefix};
+export {Colors};
+export {Spacing};
+export {ThemeManager};
+export {Transitions};
+export {Typography};
+export {lightBaseTheme};
+export {LightRawTheme};
+export {DarkRawTheme};
+export {ThemeDecorator};
+export {getMuiTheme};
+export {ZIndex};
+
+export default {
+ AutoPrefix,
+ Colors,
+ Spacing,
+ ThemeManager,
+ Transitions,
+ Typography,
+ lightBaseTheme,
+ LightRawTheme,
+ darkBaseTheme,
+ DarkRawTheme,
+ ThemeDecorator,
+ getMuiTheme,
+ ZIndex,
+};
diff --git a/node_modules/material-ui/src/styles/raw-themes/dark-raw-theme.js b/node_modules/material-ui/src/styles/raw-themes/dark-raw-theme.js
new file mode 100644
index 0000000..03dcc65
--- /dev/null
+++ b/node_modules/material-ui/src/styles/raw-themes/dark-raw-theme.js
@@ -0,0 +1,11 @@
+import darkBaseTheme from '../baseThemes/darkBaseTheme';
+
+export default darkBaseTheme;
+
+// import deprecatedExport from '../../utils/deprecatedExport';
+
+// export default deprecatedExport(
+// darkBaseTheme,
+// 'material-ui/lib/styles/raw-themes/dark-raw-theme',
+// 'material-ui/lib/styles/baseThemes/darkBaseTheme'
+// );
diff --git a/node_modules/material-ui/src/styles/raw-themes/light-raw-theme.js b/node_modules/material-ui/src/styles/raw-themes/light-raw-theme.js
new file mode 100644
index 0000000..d023bb5
--- /dev/null
+++ b/node_modules/material-ui/src/styles/raw-themes/light-raw-theme.js
@@ -0,0 +1,11 @@
+import lightBaseTheme from '../baseThemes/lightBaseTheme';
+
+export default lightBaseTheme;
+
+// import deprecatedExport from '../../utils/deprecatedExport';
+
+// export default deprecatedExport(
+// lightBaseTheme,
+// 'material-ui/lib/styles/raw-themes/light-raw-theme',
+// 'material-ui/lib/styles/baseThemes/lightBaseTheme'
+// );
diff --git a/node_modules/material-ui/src/styles/spacing.js b/node_modules/material-ui/src/styles/spacing.js
new file mode 100644
index 0000000..4d59c0e
--- /dev/null
+++ b/node_modules/material-ui/src/styles/spacing.js
@@ -0,0 +1,14 @@
+export default {
+ iconSize: 24,
+
+ desktopGutter: 24,
+ desktopGutterMore: 32,
+ desktopGutterLess: 16,
+ desktopGutterMini: 8,
+ desktopKeylineIncrement: 64,
+ desktopDropDownMenuItemHeight: 32,
+ desktopDropDownMenuFontSize: 15,
+ desktopLeftNavMenuItemHeight: 48,
+ desktopSubheaderHeight: 48,
+ desktopToolbarHeight: 56,
+};
diff --git a/node_modules/material-ui/src/styles/theme-decorator.js b/node_modules/material-ui/src/styles/theme-decorator.js
new file mode 100644
index 0000000..dfa8b0e
--- /dev/null
+++ b/node_modules/material-ui/src/styles/theme-decorator.js
@@ -0,0 +1,25 @@
+import React from 'react';
+
+export default (customTheme) => {
+
+ return function(Component) {
+
+ return React.createClass({
+
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: customTheme,
+ };
+ },
+
+ render() {
+ return React.createElement(Component, this.props);
+ },
+ });
+
+ };
+};
diff --git a/node_modules/material-ui/src/styles/theme-manager.js b/node_modules/material-ui/src/styles/theme-manager.js
new file mode 100644
index 0000000..225d1b9
--- /dev/null
+++ b/node_modules/material-ui/src/styles/theme-manager.js
@@ -0,0 +1,22 @@
+import update from 'react-addons-update';
+import merge from 'lodash.merge';
+import getMuiTheme from './getMuiTheme';
+// import deprecatedExport from '../utils/deprecatedExport';
+
+export default// deprecatedExport(
+ {
+ getMuiTheme,
+ modifyRawThemeSpacing(muiTheme, spacing) {
+ return getMuiTheme(update(muiTheme.baseTheme, {spacing: {$set: spacing}}));
+ },
+ modifyRawThemePalette(muiTheme, palette) {
+ const newPalette = merge(muiTheme.baseTheme.palette, palette);
+ return getMuiTheme(update(muiTheme.baseTheme, {palette: {$set: newPalette}}));
+ },
+ modifyRawThemeFontFamily(muiTheme, fontFamily) {
+ return getMuiTheme(update(muiTheme.baseTheme, {fontFamily: {$set: fontFamily}}));
+ },
+ };// ,
+// 'material-ui/lib/styles/theme-manager',
+// 'material-ui/lib/styles/themeManager'
+//);
diff --git a/node_modules/material-ui/src/styles/transformers/autoprefixer.js b/node_modules/material-ui/src/styles/transformers/autoprefixer.js
new file mode 100644
index 0000000..731f527
--- /dev/null
+++ b/node_modules/material-ui/src/styles/transformers/autoprefixer.js
@@ -0,0 +1,5 @@
+export default function(muiTheme) {
+ if (muiTheme.userAgent !== false) {
+ return (style) => muiTheme.prefix(style);
+ }
+}
diff --git a/node_modules/material-ui/src/styles/transformers/callOnce.js b/node_modules/material-ui/src/styles/transformers/callOnce.js
new file mode 100644
index 0000000..bba6798
--- /dev/null
+++ b/node_modules/material-ui/src/styles/transformers/callOnce.js
@@ -0,0 +1,15 @@
+import warning from 'warning';
+
+const CALLED_ONCE = 'muiPrepared';
+
+export default function callOnce() {
+ if (process.env.NODE_ENV !== 'production') {
+ return (style) => {
+ if (style[CALLED_ONCE]) {
+ warning(false, 'You cannot call prepareStyles() on the same style object more than once.');
+ }
+ style[CALLED_ONCE] = true;
+ return style;
+ };
+ }
+}
diff --git a/node_modules/material-ui/src/styles/transformers/index.js b/node_modules/material-ui/src/styles/transformers/index.js
new file mode 100644
index 0000000..2cd9a61
--- /dev/null
+++ b/node_modules/material-ui/src/styles/transformers/index.js
@@ -0,0 +1,9 @@
+import autoprefixer from './autoprefixer';
+import callOnce from './callOnce';
+import rtl from './rtl';
+
+export {
+ autoprefixer,
+ callOnce,
+ rtl,
+};
diff --git a/node_modules/material-ui/src/styles/transformers/rtl.js b/node_modules/material-ui/src/styles/transformers/rtl.js
new file mode 100644
index 0000000..146cba5
--- /dev/null
+++ b/node_modules/material-ui/src/styles/transformers/rtl.js
@@ -0,0 +1,81 @@
+const reTranslate = /((^|\s)translate(3d|X)?\()(\-?[\d]+)/;
+const reSkew = /((^|\s)skew(x|y)?\()\s*(\-?[\d]+)(deg|rad|grad)(,\s*(\-?[\d]+)(deg|rad|grad))?/;
+
+/**
+ * This function ensures that `style` supports both ltr and rtl directions by
+ * checking `styleConstants` in `muiTheme` and replacing attribute keys if
+ * necessary.
+ */
+export default function rtl(muiTheme) {
+ if (muiTheme.isRtl) {
+ return (style) => {
+ const flippedAttributes = {
+ // Keys and their replacements.
+ right: 'left',
+ left: 'right',
+ marginRight: 'marginLeft',
+ marginLeft: 'marginRight',
+ paddingRight: 'paddingLeft',
+ paddingLeft: 'paddingRight',
+ borderRight: 'borderLeft',
+ borderLeft: 'borderRight',
+ };
+
+ let newStyle = {};
+
+ Object.keys(style).forEach(function(attribute) {
+ let value = style[attribute];
+ let key = attribute;
+
+ if (flippedAttributes.hasOwnProperty(attribute)) {
+ key = flippedAttributes[attribute];
+ }
+
+ switch (attribute) {
+ case 'float':
+ case 'textAlign':
+ if (value === 'right') {
+ value = 'left';
+ } else if (value === 'left') {
+ value = 'right';
+ }
+ break;
+
+ case 'direction':
+ if (value === 'ltr') {
+ value = 'rtl';
+ } else if (value === 'rtl') {
+ value = 'ltr';
+ }
+ break;
+
+ case 'transform':
+ let matches;
+ if ((matches = value.match(reTranslate))) {
+ value = value.replace(matches[0], matches[1] + (-parseFloat(matches[4])) );
+ }
+ if ((matches = value.match(reSkew))) {
+ value = value.replace(matches[0], matches[1] + (-parseFloat(matches[4])) + matches[5] +
+ matches[6] ? ',' + (-parseFloat(matches[7])) + matches[8] : ''
+ );
+ }
+ break;
+
+ case 'transformOrigin':
+ if (value.indexOf('right') > -1) {
+ value = value.replace('right', 'left');
+ } else if (value.indexOf('left') > -1) {
+ value = value.replace('left', 'right');
+ }
+ break;
+ }
+
+ newStyle[key] = value;
+ });
+
+ return newStyle;
+ };
+ }
+}
+
+
diff --git a/node_modules/material-ui/src/styles/transitions.js b/node_modules/material-ui/src/styles/transitions.js
new file mode 100644
index 0000000..eb8f732
--- /dev/null
+++ b/node_modules/material-ui/src/styles/transitions.js
@@ -0,0 +1,35 @@
+export default {
+
+ easeOutFunction: 'cubic-bezier(0.23, 1, 0.32, 1)',
+ easeInOutFunction: 'cubic-bezier(0.445, 0.05, 0.55, 0.95)',
+
+ easeOut(duration, property, delay, easeFunction) {
+ easeFunction = easeFunction || this.easeOutFunction;
+
+ if (property &&
+ Object.prototype.toString.call(property) === '[object Array]' ) {
+
+ let transitions = '';
+ for (let i = 0; i < property.length; i++) {
+ if (transitions) transitions += ',';
+ transitions += this.create(duration, property[i], delay, easeFunction);
+ }
+
+ return transitions;
+ } else {
+ return this.create(duration, property, delay, easeFunction);
+ }
+ },
+
+ create(duration, property, delay, easeFunction) {
+ duration = duration || '450ms';
+ property = property || 'all';
+ delay = delay || '0ms';
+ easeFunction = easeFunction || 'linear';
+
+ return property + ' ' +
+ duration + ' ' +
+ easeFunction + ' ' +
+ delay;
+ },
+};
diff --git a/node_modules/material-ui/src/styles/typography.js b/node_modules/material-ui/src/styles/typography.js
new file mode 100644
index 0000000..d2d451e
--- /dev/null
+++ b/node_modules/material-ui/src/styles/typography.js
@@ -0,0 +1,25 @@
+import Colors from './colors';
+
+
+class Typography {
+
+ constructor() {
+ // text colors
+ this.textFullBlack = Colors.fullBlack;
+ this.textDarkBlack = Colors.darkBlack;
+ this.textLightBlack = Colors.lightBlack;
+ this.textMinBlack = Colors.minBlack;
+ this.textFullWhite = Colors.fullWhite;
+ this.textDarkWhite = Colors.darkWhite;
+ this.textLightWhite = Colors.lightWhite;
+
+ // font weight
+ this.fontWeightLight = 300;
+ this.fontWeightNormal = 400;
+ this.fontWeightMedium = 500;
+
+ this.fontStyleButtonFontSize = 14;
+ }
+}
+
+export default new Typography();
diff --git a/node_modules/material-ui/src/styles/zIndex.js b/node_modules/material-ui/src/styles/zIndex.js
new file mode 100644
index 0000000..9615a76
--- /dev/null
+++ b/node_modules/material-ui/src/styles/zIndex.js
@@ -0,0 +1,12 @@
+export default {
+ menu: 1000,
+ appBar: 1100,
+ leftNavOverlay: 1200,
+ leftNav: 1300,
+ dialogOverlay: 1400,
+ dialog: 1500,
+ layer: 2000,
+ popover: 2100,
+ snackbar: 2900,
+ tooltip: 3000,
+};
diff --git a/node_modules/material-ui/src/svg-icon.jsx b/node_modules/material-ui/src/svg-icon.jsx
new file mode 100644
index 0000000..4889d5c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icon.jsx
@@ -0,0 +1,150 @@
+import React from 'react';
+import StylePropable from './mixins/style-propable';
+import Transitions from './styles/transitions';
+import getMuiTheme from './styles/getMuiTheme';
+
+const SvgIcon = React.createClass({
+
+ propTypes: {
+ /**
+ * Elements passed into the SVG Icon.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * This is the fill color of the svg icon.
+ * If not specified, this component will default
+ * to muiTheme.palette.textColor.
+ */
+ color: React.PropTypes.string,
+
+ /**
+ * This is the icon color when the mouse hovers over the icon.
+ */
+ hoverColor: React.PropTypes.string,
+
+ /**
+ * Function called when mouse enters this element.
+ */
+ onMouseEnter: React.PropTypes.func,
+
+ /**
+ * Function called when mouse leaves this element.
+ */
+ onMouseLeave: React.PropTypes.func,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * Allows you to redifine what the coordinates
+ * without units mean inside an svg element. For example,
+ * if the SVG element is 500 (width) by 200 (height), and you
+ * pass viewBox="0 0 50 20", this means that the coordinates inside
+ * the svg will go from the top left corner (0,0) to bottom right (50,20)
+ * and each unit will be worth 10px.
+ */
+ viewBox: React.PropTypes.string,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ onMouseEnter: () => {},
+ onMouseLeave: () => {},
+ viewBox: '0 0 24 24',
+ };
+ },
+
+ getInitialState() {
+ return {
+ hovered: false,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ _handleMouseLeave(e) {
+ this.setState({hovered: false});
+ this.props.onMouseLeave(e);
+ },
+
+ _handleMouseEnter(e) {
+ this.setState({hovered: true});
+ this.props.onMouseEnter(e);
+ },
+
+ render() {
+ const {
+ children,
+ color,
+ hoverColor,
+ onMouseEnter,
+ onMouseLeave,
+ style,
+ viewBox,
+ ...other,
+ } = this.props;
+
+ const offColor = color ? color :
+ style && style.fill ? style.fill :
+ this.state.muiTheme.rawTheme.palette.textColor;
+ const onColor = hoverColor ? hoverColor : offColor;
+
+ const mergedStyles = this.mergeStyles({
+ display: 'inline-block',
+ height: 24,
+ width: 24,
+ userSelect: 'none',
+ transition: Transitions.easeOut(),
+ }, style, {
+ // Make sure our fill color overrides fill provided in props.style
+ fill: this.state.hovered ? onColor : offColor,
+ });
+
+ const events = hoverColor ? {
+ onMouseEnter: this._handleMouseEnter,
+ onMouseLeave: this._handleMouseLeave,
+ } : {};
+
+ return (
+
+ {children}
+
+ );
+ },
+
+});
+
+export default SvgIcon;
diff --git a/node_modules/material-ui/src/svg-icons/action/accessibility.jsx b/node_modules/material-ui/src/svg-icons/action/accessibility.jsx
new file mode 100644
index 0000000..8fcbe13
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/accessibility.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAccessibility = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAccessibility;
diff --git a/node_modules/material-ui/src/svg-icons/action/accessible.jsx b/node_modules/material-ui/src/svg-icons/action/accessible.jsx
new file mode 100644
index 0000000..c546764
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/accessible.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAccessible = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAccessible;
diff --git a/node_modules/material-ui/src/svg-icons/action/account-balance-wallet.jsx b/node_modules/material-ui/src/svg-icons/action/account-balance-wallet.jsx
new file mode 100644
index 0000000..5a09c4a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/account-balance-wallet.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAccountBalanceWallet = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAccountBalanceWallet;
diff --git a/node_modules/material-ui/src/svg-icons/action/account-balance.jsx b/node_modules/material-ui/src/svg-icons/action/account-balance.jsx
new file mode 100644
index 0000000..70d205c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/account-balance.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAccountBalance = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAccountBalance;
diff --git a/node_modules/material-ui/src/svg-icons/action/account-box.jsx b/node_modules/material-ui/src/svg-icons/action/account-box.jsx
new file mode 100644
index 0000000..a1afc5a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/account-box.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAccountBox = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAccountBox;
diff --git a/node_modules/material-ui/src/svg-icons/action/account-circle.jsx b/node_modules/material-ui/src/svg-icons/action/account-circle.jsx
new file mode 100644
index 0000000..0908b07
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/account-circle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAccountCircle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAccountCircle;
diff --git a/node_modules/material-ui/src/svg-icons/action/add-shopping-cart.jsx b/node_modules/material-ui/src/svg-icons/action/add-shopping-cart.jsx
new file mode 100644
index 0000000..9072ad1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/add-shopping-cart.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAddShoppingCart = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAddShoppingCart;
diff --git a/node_modules/material-ui/src/svg-icons/action/alarm-add.jsx b/node_modules/material-ui/src/svg-icons/action/alarm-add.jsx
new file mode 100644
index 0000000..32f2ae0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/alarm-add.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAlarmAdd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAlarmAdd;
diff --git a/node_modules/material-ui/src/svg-icons/action/alarm-off.jsx b/node_modules/material-ui/src/svg-icons/action/alarm-off.jsx
new file mode 100644
index 0000000..842ccef
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/alarm-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAlarmOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAlarmOff;
diff --git a/node_modules/material-ui/src/svg-icons/action/alarm-on.jsx b/node_modules/material-ui/src/svg-icons/action/alarm-on.jsx
new file mode 100644
index 0000000..231e7c3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/alarm-on.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAlarmOn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAlarmOn;
diff --git a/node_modules/material-ui/src/svg-icons/action/alarm.jsx b/node_modules/material-ui/src/svg-icons/action/alarm.jsx
new file mode 100644
index 0000000..2179797
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/alarm.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAlarm = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAlarm;
diff --git a/node_modules/material-ui/src/svg-icons/action/all-out.jsx b/node_modules/material-ui/src/svg-icons/action/all-out.jsx
new file mode 100644
index 0000000..a83853f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/all-out.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAllOut = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAllOut;
diff --git a/node_modules/material-ui/src/svg-icons/action/android.jsx b/node_modules/material-ui/src/svg-icons/action/android.jsx
new file mode 100644
index 0000000..d632f44
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/android.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAndroid = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAndroid;
diff --git a/node_modules/material-ui/src/svg-icons/action/announcement.jsx b/node_modules/material-ui/src/svg-icons/action/announcement.jsx
new file mode 100644
index 0000000..9c60158
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/announcement.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAnnouncement = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAnnouncement;
diff --git a/node_modules/material-ui/src/svg-icons/action/aspect-ratio.jsx b/node_modules/material-ui/src/svg-icons/action/aspect-ratio.jsx
new file mode 100644
index 0000000..fc232d5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/aspect-ratio.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAspectRatio = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAspectRatio;
diff --git a/node_modules/material-ui/src/svg-icons/action/assessment.jsx b/node_modules/material-ui/src/svg-icons/action/assessment.jsx
new file mode 100644
index 0000000..f87f062
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/assessment.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAssessment = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAssessment;
diff --git a/node_modules/material-ui/src/svg-icons/action/assignment-ind.jsx b/node_modules/material-ui/src/svg-icons/action/assignment-ind.jsx
new file mode 100644
index 0000000..84a0e48
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/assignment-ind.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAssignmentInd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAssignmentInd;
diff --git a/node_modules/material-ui/src/svg-icons/action/assignment-late.jsx b/node_modules/material-ui/src/svg-icons/action/assignment-late.jsx
new file mode 100644
index 0000000..929d637
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/assignment-late.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAssignmentLate = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAssignmentLate;
diff --git a/node_modules/material-ui/src/svg-icons/action/assignment-return.jsx b/node_modules/material-ui/src/svg-icons/action/assignment-return.jsx
new file mode 100644
index 0000000..6c1c3e3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/assignment-return.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAssignmentReturn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAssignmentReturn;
diff --git a/node_modules/material-ui/src/svg-icons/action/assignment-returned.jsx b/node_modules/material-ui/src/svg-icons/action/assignment-returned.jsx
new file mode 100644
index 0000000..a4fbe70
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/assignment-returned.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAssignmentReturned = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAssignmentReturned;
diff --git a/node_modules/material-ui/src/svg-icons/action/assignment-turned-in.jsx b/node_modules/material-ui/src/svg-icons/action/assignment-turned-in.jsx
new file mode 100644
index 0000000..188f556
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/assignment-turned-in.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAssignmentTurnedIn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAssignmentTurnedIn;
diff --git a/node_modules/material-ui/src/svg-icons/action/assignment.jsx b/node_modules/material-ui/src/svg-icons/action/assignment.jsx
new file mode 100644
index 0000000..4bfea19
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/assignment.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAssignment = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAssignment;
diff --git a/node_modules/material-ui/src/svg-icons/action/autorenew.jsx b/node_modules/material-ui/src/svg-icons/action/autorenew.jsx
new file mode 100644
index 0000000..9831e50
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/autorenew.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionAutorenew = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionAutorenew;
diff --git a/node_modules/material-ui/src/svg-icons/action/backup.jsx b/node_modules/material-ui/src/svg-icons/action/backup.jsx
new file mode 100644
index 0000000..47c8076
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/backup.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionBackup = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionBackup;
diff --git a/node_modules/material-ui/src/svg-icons/action/book.jsx b/node_modules/material-ui/src/svg-icons/action/book.jsx
new file mode 100644
index 0000000..d9839fe
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/book.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionBook = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionBook;
diff --git a/node_modules/material-ui/src/svg-icons/action/bookmark-border.jsx b/node_modules/material-ui/src/svg-icons/action/bookmark-border.jsx
new file mode 100644
index 0000000..d4c72b1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/bookmark-border.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionBookmarkBorder = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionBookmarkBorder;
diff --git a/node_modules/material-ui/src/svg-icons/action/bookmark.jsx b/node_modules/material-ui/src/svg-icons/action/bookmark.jsx
new file mode 100644
index 0000000..8d02831
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/bookmark.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionBookmark = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionBookmark;
diff --git a/node_modules/material-ui/src/svg-icons/action/bug-report.jsx b/node_modules/material-ui/src/svg-icons/action/bug-report.jsx
new file mode 100644
index 0000000..c633fe3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/bug-report.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionBugReport = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionBugReport;
diff --git a/node_modules/material-ui/src/svg-icons/action/build.jsx b/node_modules/material-ui/src/svg-icons/action/build.jsx
new file mode 100644
index 0000000..8333aa3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/build.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionBuild = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionBuild;
diff --git a/node_modules/material-ui/src/svg-icons/action/cached.jsx b/node_modules/material-ui/src/svg-icons/action/cached.jsx
new file mode 100644
index 0000000..6cc0e23
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/cached.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionCached = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionCached;
diff --git a/node_modules/material-ui/src/svg-icons/action/camera-enhance.jsx b/node_modules/material-ui/src/svg-icons/action/camera-enhance.jsx
new file mode 100644
index 0000000..8fe5a6c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/camera-enhance.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionCameraEnhance = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionCameraEnhance;
diff --git a/node_modules/material-ui/src/svg-icons/action/card-giftcard.jsx b/node_modules/material-ui/src/svg-icons/action/card-giftcard.jsx
new file mode 100644
index 0000000..c9f8e58
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/card-giftcard.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionCardGiftcard = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionCardGiftcard;
diff --git a/node_modules/material-ui/src/svg-icons/action/card-membership.jsx b/node_modules/material-ui/src/svg-icons/action/card-membership.jsx
new file mode 100644
index 0000000..0357159
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/card-membership.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionCardMembership = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionCardMembership;
diff --git a/node_modules/material-ui/src/svg-icons/action/card-travel.jsx b/node_modules/material-ui/src/svg-icons/action/card-travel.jsx
new file mode 100644
index 0000000..e775515
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/card-travel.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionCardTravel = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionCardTravel;
diff --git a/node_modules/material-ui/src/svg-icons/action/change-history.jsx b/node_modules/material-ui/src/svg-icons/action/change-history.jsx
new file mode 100644
index 0000000..1d6c447
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/change-history.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionChangeHistory = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionChangeHistory;
diff --git a/node_modules/material-ui/src/svg-icons/action/check-circle.jsx b/node_modules/material-ui/src/svg-icons/action/check-circle.jsx
new file mode 100644
index 0000000..79d7e53
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/check-circle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionCheckCircle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionCheckCircle;
diff --git a/node_modules/material-ui/src/svg-icons/action/chrome-reader-mode.jsx b/node_modules/material-ui/src/svg-icons/action/chrome-reader-mode.jsx
new file mode 100644
index 0000000..94c869c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/chrome-reader-mode.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionChromeReaderMode = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionChromeReaderMode;
diff --git a/node_modules/material-ui/src/svg-icons/action/class.jsx b/node_modules/material-ui/src/svg-icons/action/class.jsx
new file mode 100644
index 0000000..815cd0f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/class.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionClass = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionClass;
diff --git a/node_modules/material-ui/src/svg-icons/action/code.jsx b/node_modules/material-ui/src/svg-icons/action/code.jsx
new file mode 100644
index 0000000..852c3f0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/code.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionCode = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionCode;
diff --git a/node_modules/material-ui/src/svg-icons/action/compare-arrows.jsx b/node_modules/material-ui/src/svg-icons/action/compare-arrows.jsx
new file mode 100644
index 0000000..09af030
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/compare-arrows.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionCompareArrows = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionCompareArrows;
diff --git a/node_modules/material-ui/src/svg-icons/action/copyright.jsx b/node_modules/material-ui/src/svg-icons/action/copyright.jsx
new file mode 100644
index 0000000..1cf921d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/copyright.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionCopyright = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionCopyright;
diff --git a/node_modules/material-ui/src/svg-icons/action/credit-card.jsx b/node_modules/material-ui/src/svg-icons/action/credit-card.jsx
new file mode 100644
index 0000000..c8aac6f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/credit-card.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionCreditCard = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionCreditCard;
diff --git a/node_modules/material-ui/src/svg-icons/action/dashboard.jsx b/node_modules/material-ui/src/svg-icons/action/dashboard.jsx
new file mode 100644
index 0000000..e4c3c6d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/dashboard.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionDashboard = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionDashboard;
diff --git a/node_modules/material-ui/src/svg-icons/action/date-range.jsx b/node_modules/material-ui/src/svg-icons/action/date-range.jsx
new file mode 100644
index 0000000..40a4db8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/date-range.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionDateRange = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionDateRange;
diff --git a/node_modules/material-ui/src/svg-icons/action/delete.jsx b/node_modules/material-ui/src/svg-icons/action/delete.jsx
new file mode 100644
index 0000000..baaaea1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/delete.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionDelete = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionDelete;
diff --git a/node_modules/material-ui/src/svg-icons/action/description.jsx b/node_modules/material-ui/src/svg-icons/action/description.jsx
new file mode 100644
index 0000000..8fbc93a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/description.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionDescription = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionDescription;
diff --git a/node_modules/material-ui/src/svg-icons/action/dns.jsx b/node_modules/material-ui/src/svg-icons/action/dns.jsx
new file mode 100644
index 0000000..ab4ffec
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/dns.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionDns = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionDns;
diff --git a/node_modules/material-ui/src/svg-icons/action/done-all.jsx b/node_modules/material-ui/src/svg-icons/action/done-all.jsx
new file mode 100644
index 0000000..43a46e7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/done-all.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionDoneAll = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionDoneAll;
diff --git a/node_modules/material-ui/src/svg-icons/action/done.jsx b/node_modules/material-ui/src/svg-icons/action/done.jsx
new file mode 100644
index 0000000..eee9708
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/done.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionDone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionDone;
diff --git a/node_modules/material-ui/src/svg-icons/action/donut-large.jsx b/node_modules/material-ui/src/svg-icons/action/donut-large.jsx
new file mode 100644
index 0000000..d088886
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/donut-large.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionDonutLarge = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionDonutLarge;
diff --git a/node_modules/material-ui/src/svg-icons/action/donut-small.jsx b/node_modules/material-ui/src/svg-icons/action/donut-small.jsx
new file mode 100644
index 0000000..2b73ece
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/donut-small.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionDonutSmall = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionDonutSmall;
diff --git a/node_modules/material-ui/src/svg-icons/action/eject.jsx b/node_modules/material-ui/src/svg-icons/action/eject.jsx
new file mode 100644
index 0000000..333c446
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/eject.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionEject = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionEject;
diff --git a/node_modules/material-ui/src/svg-icons/action/event-seat.jsx b/node_modules/material-ui/src/svg-icons/action/event-seat.jsx
new file mode 100644
index 0000000..c599117
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/event-seat.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionEventSeat = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionEventSeat;
diff --git a/node_modules/material-ui/src/svg-icons/action/event.jsx b/node_modules/material-ui/src/svg-icons/action/event.jsx
new file mode 100644
index 0000000..8760604
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/event.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionEvent = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionEvent;
diff --git a/node_modules/material-ui/src/svg-icons/action/exit-to-app.jsx b/node_modules/material-ui/src/svg-icons/action/exit-to-app.jsx
new file mode 100644
index 0000000..c196b42
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/exit-to-app.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionExitToApp = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionExitToApp;
diff --git a/node_modules/material-ui/src/svg-icons/action/explore.jsx b/node_modules/material-ui/src/svg-icons/action/explore.jsx
new file mode 100644
index 0000000..5941059
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/explore.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionExplore = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionExplore;
diff --git a/node_modules/material-ui/src/svg-icons/action/extension.jsx b/node_modules/material-ui/src/svg-icons/action/extension.jsx
new file mode 100644
index 0000000..eac6f00
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/extension.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionExtension = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionExtension;
diff --git a/node_modules/material-ui/src/svg-icons/action/face.jsx b/node_modules/material-ui/src/svg-icons/action/face.jsx
new file mode 100644
index 0000000..53883f4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/face.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionFace = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionFace;
diff --git a/node_modules/material-ui/src/svg-icons/action/favorite-border.jsx b/node_modules/material-ui/src/svg-icons/action/favorite-border.jsx
new file mode 100644
index 0000000..2df6d9f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/favorite-border.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionFavoriteBorder = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionFavoriteBorder;
diff --git a/node_modules/material-ui/src/svg-icons/action/favorite.jsx b/node_modules/material-ui/src/svg-icons/action/favorite.jsx
new file mode 100644
index 0000000..cea44da
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/favorite.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionFavorite = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionFavorite;
diff --git a/node_modules/material-ui/src/svg-icons/action/feedback.jsx b/node_modules/material-ui/src/svg-icons/action/feedback.jsx
new file mode 100644
index 0000000..2bafed9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/feedback.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionFeedback = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionFeedback;
diff --git a/node_modules/material-ui/src/svg-icons/action/find-in-page.jsx b/node_modules/material-ui/src/svg-icons/action/find-in-page.jsx
new file mode 100644
index 0000000..1c4227f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/find-in-page.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionFindInPage = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionFindInPage;
diff --git a/node_modules/material-ui/src/svg-icons/action/find-replace.jsx b/node_modules/material-ui/src/svg-icons/action/find-replace.jsx
new file mode 100644
index 0000000..3aa38e9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/find-replace.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionFindReplace = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionFindReplace;
diff --git a/node_modules/material-ui/src/svg-icons/action/fingerprint.jsx b/node_modules/material-ui/src/svg-icons/action/fingerprint.jsx
new file mode 100644
index 0000000..b6a71fc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/fingerprint.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionFingerprint = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionFingerprint;
diff --git a/node_modules/material-ui/src/svg-icons/action/flight-land.jsx b/node_modules/material-ui/src/svg-icons/action/flight-land.jsx
new file mode 100644
index 0000000..a9a315e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/flight-land.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionFlightLand = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionFlightLand;
diff --git a/node_modules/material-ui/src/svg-icons/action/flight-takeoff.jsx b/node_modules/material-ui/src/svg-icons/action/flight-takeoff.jsx
new file mode 100644
index 0000000..23b4b2b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/flight-takeoff.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionFlightTakeoff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionFlightTakeoff;
diff --git a/node_modules/material-ui/src/svg-icons/action/flip-to-back.jsx b/node_modules/material-ui/src/svg-icons/action/flip-to-back.jsx
new file mode 100644
index 0000000..a1669aa
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/flip-to-back.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionFlipToBack = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionFlipToBack;
diff --git a/node_modules/material-ui/src/svg-icons/action/flip-to-front.jsx b/node_modules/material-ui/src/svg-icons/action/flip-to-front.jsx
new file mode 100644
index 0000000..0287d3d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/flip-to-front.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionFlipToFront = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionFlipToFront;
diff --git a/node_modules/material-ui/src/svg-icons/action/gavel.jsx b/node_modules/material-ui/src/svg-icons/action/gavel.jsx
new file mode 100644
index 0000000..97b807e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/gavel.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionGavel = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionGavel;
diff --git a/node_modules/material-ui/src/svg-icons/action/get-app.jsx b/node_modules/material-ui/src/svg-icons/action/get-app.jsx
new file mode 100644
index 0000000..250b8eb
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/get-app.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionGetApp = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionGetApp;
diff --git a/node_modules/material-ui/src/svg-icons/action/gif.jsx b/node_modules/material-ui/src/svg-icons/action/gif.jsx
new file mode 100644
index 0000000..f7508ec
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/gif.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionGif = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionGif;
diff --git a/node_modules/material-ui/src/svg-icons/action/grade.jsx b/node_modules/material-ui/src/svg-icons/action/grade.jsx
new file mode 100644
index 0000000..6a4d5aa
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/grade.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionGrade = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionGrade;
diff --git a/node_modules/material-ui/src/svg-icons/action/group-work.jsx b/node_modules/material-ui/src/svg-icons/action/group-work.jsx
new file mode 100644
index 0000000..57d7e9a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/group-work.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionGroupWork = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionGroupWork;
diff --git a/node_modules/material-ui/src/svg-icons/action/help-outline.jsx b/node_modules/material-ui/src/svg-icons/action/help-outline.jsx
new file mode 100644
index 0000000..ac2011a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/help-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionHelpOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionHelpOutline;
diff --git a/node_modules/material-ui/src/svg-icons/action/help.jsx b/node_modules/material-ui/src/svg-icons/action/help.jsx
new file mode 100644
index 0000000..3157c96
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/help.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionHelp = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionHelp;
diff --git a/node_modules/material-ui/src/svg-icons/action/highlight-off.jsx b/node_modules/material-ui/src/svg-icons/action/highlight-off.jsx
new file mode 100644
index 0000000..32c930a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/highlight-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionHighlightOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionHighlightOff;
diff --git a/node_modules/material-ui/src/svg-icons/action/history.jsx b/node_modules/material-ui/src/svg-icons/action/history.jsx
new file mode 100644
index 0000000..33ac6be
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/history.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionHistory = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionHistory;
diff --git a/node_modules/material-ui/src/svg-icons/action/home.jsx b/node_modules/material-ui/src/svg-icons/action/home.jsx
new file mode 100644
index 0000000..e1c6554
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/home.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionHome = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionHome;
diff --git a/node_modules/material-ui/src/svg-icons/action/hourglass-empty.jsx b/node_modules/material-ui/src/svg-icons/action/hourglass-empty.jsx
new file mode 100644
index 0000000..718c6d5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/hourglass-empty.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionHourglassEmpty = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionHourglassEmpty;
diff --git a/node_modules/material-ui/src/svg-icons/action/hourglass-full.jsx b/node_modules/material-ui/src/svg-icons/action/hourglass-full.jsx
new file mode 100644
index 0000000..b895b13
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/hourglass-full.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionHourglassFull = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionHourglassFull;
diff --git a/node_modules/material-ui/src/svg-icons/action/http.jsx b/node_modules/material-ui/src/svg-icons/action/http.jsx
new file mode 100644
index 0000000..eaef1b5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/http.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionHttp = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionHttp;
diff --git a/node_modules/material-ui/src/svg-icons/action/https.jsx b/node_modules/material-ui/src/svg-icons/action/https.jsx
new file mode 100644
index 0000000..ab0fe45
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/https.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionHttps = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionHttps;
diff --git a/node_modules/material-ui/src/svg-icons/action/important-devices.jsx b/node_modules/material-ui/src/svg-icons/action/important-devices.jsx
new file mode 100644
index 0000000..d5f6ea6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/important-devices.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionImportantDevices = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionImportantDevices;
diff --git a/node_modules/material-ui/src/svg-icons/action/info-outline.jsx b/node_modules/material-ui/src/svg-icons/action/info-outline.jsx
new file mode 100644
index 0000000..6fde8c6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/info-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionInfoOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionInfoOutline;
diff --git a/node_modules/material-ui/src/svg-icons/action/info.jsx b/node_modules/material-ui/src/svg-icons/action/info.jsx
new file mode 100644
index 0000000..451cd35
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/info.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionInfo = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionInfo;
diff --git a/node_modules/material-ui/src/svg-icons/action/input.jsx b/node_modules/material-ui/src/svg-icons/action/input.jsx
new file mode 100644
index 0000000..a1daa09
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/input.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionInput = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionInput;
diff --git a/node_modules/material-ui/src/svg-icons/action/invert-colors.jsx b/node_modules/material-ui/src/svg-icons/action/invert-colors.jsx
new file mode 100644
index 0000000..5960f5d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/invert-colors.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionInvertColors = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionInvertColors;
diff --git a/node_modules/material-ui/src/svg-icons/action/label-outline.jsx b/node_modules/material-ui/src/svg-icons/action/label-outline.jsx
new file mode 100644
index 0000000..806a970
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/label-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionLabelOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionLabelOutline;
diff --git a/node_modules/material-ui/src/svg-icons/action/label.jsx b/node_modules/material-ui/src/svg-icons/action/label.jsx
new file mode 100644
index 0000000..4e1a511
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/label.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionLabel = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionLabel;
diff --git a/node_modules/material-ui/src/svg-icons/action/language.jsx b/node_modules/material-ui/src/svg-icons/action/language.jsx
new file mode 100644
index 0000000..13e34bd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/language.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionLanguage = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionLanguage;
diff --git a/node_modules/material-ui/src/svg-icons/action/launch.jsx b/node_modules/material-ui/src/svg-icons/action/launch.jsx
new file mode 100644
index 0000000..9af8d0d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/launch.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionLaunch = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionLaunch;
diff --git a/node_modules/material-ui/src/svg-icons/action/lightbulb-outline.jsx b/node_modules/material-ui/src/svg-icons/action/lightbulb-outline.jsx
new file mode 100644
index 0000000..4040188
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/lightbulb-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionLightbulbOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionLightbulbOutline;
diff --git a/node_modules/material-ui/src/svg-icons/action/line-style.jsx b/node_modules/material-ui/src/svg-icons/action/line-style.jsx
new file mode 100644
index 0000000..20fefa5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/line-style.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionLineStyle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionLineStyle;
diff --git a/node_modules/material-ui/src/svg-icons/action/line-weight.jsx b/node_modules/material-ui/src/svg-icons/action/line-weight.jsx
new file mode 100644
index 0000000..c1d158d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/line-weight.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionLineWeight = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionLineWeight;
diff --git a/node_modules/material-ui/src/svg-icons/action/list.jsx b/node_modules/material-ui/src/svg-icons/action/list.jsx
new file mode 100644
index 0000000..ea8538a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/list.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionList = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionList;
diff --git a/node_modules/material-ui/src/svg-icons/action/lock-open.jsx b/node_modules/material-ui/src/svg-icons/action/lock-open.jsx
new file mode 100644
index 0000000..71fa22a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/lock-open.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionLockOpen = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionLockOpen;
diff --git a/node_modules/material-ui/src/svg-icons/action/lock-outline.jsx b/node_modules/material-ui/src/svg-icons/action/lock-outline.jsx
new file mode 100644
index 0000000..b1d001c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/lock-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionLockOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionLockOutline;
diff --git a/node_modules/material-ui/src/svg-icons/action/lock.jsx b/node_modules/material-ui/src/svg-icons/action/lock.jsx
new file mode 100644
index 0000000..0f1e14a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/lock.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionLock = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionLock;
diff --git a/node_modules/material-ui/src/svg-icons/action/loyalty.jsx b/node_modules/material-ui/src/svg-icons/action/loyalty.jsx
new file mode 100644
index 0000000..1986a8b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/loyalty.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionLoyalty = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionLoyalty;
diff --git a/node_modules/material-ui/src/svg-icons/action/markunread-mailbox.jsx b/node_modules/material-ui/src/svg-icons/action/markunread-mailbox.jsx
new file mode 100644
index 0000000..7d91b78
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/markunread-mailbox.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionMarkunreadMailbox = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionMarkunreadMailbox;
diff --git a/node_modules/material-ui/src/svg-icons/action/motorcycle.jsx b/node_modules/material-ui/src/svg-icons/action/motorcycle.jsx
new file mode 100644
index 0000000..6d11237
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/motorcycle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionMotorcycle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionMotorcycle;
diff --git a/node_modules/material-ui/src/svg-icons/action/note-add.jsx b/node_modules/material-ui/src/svg-icons/action/note-add.jsx
new file mode 100644
index 0000000..04bf0bf
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/note-add.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionNoteAdd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionNoteAdd;
diff --git a/node_modules/material-ui/src/svg-icons/action/offline-pin.jsx b/node_modules/material-ui/src/svg-icons/action/offline-pin.jsx
new file mode 100644
index 0000000..50329fc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/offline-pin.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionOfflinePin = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionOfflinePin;
diff --git a/node_modules/material-ui/src/svg-icons/action/opacity.jsx b/node_modules/material-ui/src/svg-icons/action/opacity.jsx
new file mode 100644
index 0000000..fd8a4d1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/opacity.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionOpacity = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionOpacity;
diff --git a/node_modules/material-ui/src/svg-icons/action/open-in-browser.jsx b/node_modules/material-ui/src/svg-icons/action/open-in-browser.jsx
new file mode 100644
index 0000000..81717b4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/open-in-browser.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionOpenInBrowser = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionOpenInBrowser;
diff --git a/node_modules/material-ui/src/svg-icons/action/open-in-new.jsx b/node_modules/material-ui/src/svg-icons/action/open-in-new.jsx
new file mode 100644
index 0000000..18327ce
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/open-in-new.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionOpenInNew = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionOpenInNew;
diff --git a/node_modules/material-ui/src/svg-icons/action/open-with.jsx b/node_modules/material-ui/src/svg-icons/action/open-with.jsx
new file mode 100644
index 0000000..e41e3e4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/open-with.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionOpenWith = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionOpenWith;
diff --git a/node_modules/material-ui/src/svg-icons/action/pageview.jsx b/node_modules/material-ui/src/svg-icons/action/pageview.jsx
new file mode 100644
index 0000000..933165f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/pageview.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPageview = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPageview;
diff --git a/node_modules/material-ui/src/svg-icons/action/pan-tool.jsx b/node_modules/material-ui/src/svg-icons/action/pan-tool.jsx
new file mode 100644
index 0000000..c8bce33
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/pan-tool.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPanTool = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPanTool;
diff --git a/node_modules/material-ui/src/svg-icons/action/payment.jsx b/node_modules/material-ui/src/svg-icons/action/payment.jsx
new file mode 100644
index 0000000..4f6d276
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/payment.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPayment = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPayment;
diff --git a/node_modules/material-ui/src/svg-icons/action/perm-camera-mic.jsx b/node_modules/material-ui/src/svg-icons/action/perm-camera-mic.jsx
new file mode 100644
index 0000000..1ba1d72
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/perm-camera-mic.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPermCameraMic = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPermCameraMic;
diff --git a/node_modules/material-ui/src/svg-icons/action/perm-contact-calendar.jsx b/node_modules/material-ui/src/svg-icons/action/perm-contact-calendar.jsx
new file mode 100644
index 0000000..2c01dad
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/perm-contact-calendar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPermContactCalendar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPermContactCalendar;
diff --git a/node_modules/material-ui/src/svg-icons/action/perm-data-setting.jsx b/node_modules/material-ui/src/svg-icons/action/perm-data-setting.jsx
new file mode 100644
index 0000000..63bd0fd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/perm-data-setting.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPermDataSetting = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPermDataSetting;
diff --git a/node_modules/material-ui/src/svg-icons/action/perm-device-information.jsx b/node_modules/material-ui/src/svg-icons/action/perm-device-information.jsx
new file mode 100644
index 0000000..eefb955
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/perm-device-information.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPermDeviceInformation = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPermDeviceInformation;
diff --git a/node_modules/material-ui/src/svg-icons/action/perm-identity.jsx b/node_modules/material-ui/src/svg-icons/action/perm-identity.jsx
new file mode 100644
index 0000000..21d6cf5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/perm-identity.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPermIdentity = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPermIdentity;
diff --git a/node_modules/material-ui/src/svg-icons/action/perm-media.jsx b/node_modules/material-ui/src/svg-icons/action/perm-media.jsx
new file mode 100644
index 0000000..8ed91f9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/perm-media.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPermMedia = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPermMedia;
diff --git a/node_modules/material-ui/src/svg-icons/action/perm-phone-msg.jsx b/node_modules/material-ui/src/svg-icons/action/perm-phone-msg.jsx
new file mode 100644
index 0000000..dc52e6d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/perm-phone-msg.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPermPhoneMsg = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPermPhoneMsg;
diff --git a/node_modules/material-ui/src/svg-icons/action/perm-scan-wifi.jsx b/node_modules/material-ui/src/svg-icons/action/perm-scan-wifi.jsx
new file mode 100644
index 0000000..07cd460
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/perm-scan-wifi.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPermScanWifi = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPermScanWifi;
diff --git a/node_modules/material-ui/src/svg-icons/action/pets.jsx b/node_modules/material-ui/src/svg-icons/action/pets.jsx
new file mode 100644
index 0000000..7dee276
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/pets.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPets = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPets;
diff --git a/node_modules/material-ui/src/svg-icons/action/picture-in-picture-alt.jsx b/node_modules/material-ui/src/svg-icons/action/picture-in-picture-alt.jsx
new file mode 100644
index 0000000..8e59bcd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/picture-in-picture-alt.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPictureInPictureAlt = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPictureInPictureAlt;
diff --git a/node_modules/material-ui/src/svg-icons/action/picture-in-picture.jsx b/node_modules/material-ui/src/svg-icons/action/picture-in-picture.jsx
new file mode 100644
index 0000000..66c062f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/picture-in-picture.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPictureInPicture = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPictureInPicture;
diff --git a/node_modules/material-ui/src/svg-icons/action/play-for-work.jsx b/node_modules/material-ui/src/svg-icons/action/play-for-work.jsx
new file mode 100644
index 0000000..6c3427e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/play-for-work.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPlayForWork = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPlayForWork;
diff --git a/node_modules/material-ui/src/svg-icons/action/polymer.jsx b/node_modules/material-ui/src/svg-icons/action/polymer.jsx
new file mode 100644
index 0000000..7171339
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/polymer.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPolymer = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPolymer;
diff --git a/node_modules/material-ui/src/svg-icons/action/power-settings-new.jsx b/node_modules/material-ui/src/svg-icons/action/power-settings-new.jsx
new file mode 100644
index 0000000..da0c14c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/power-settings-new.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPowerSettingsNew = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPowerSettingsNew;
diff --git a/node_modules/material-ui/src/svg-icons/action/pregnant-woman.jsx b/node_modules/material-ui/src/svg-icons/action/pregnant-woman.jsx
new file mode 100644
index 0000000..aea2ced
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/pregnant-woman.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPregnantWoman = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPregnantWoman;
diff --git a/node_modules/material-ui/src/svg-icons/action/print.jsx b/node_modules/material-ui/src/svg-icons/action/print.jsx
new file mode 100644
index 0000000..a8d3182
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/print.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionPrint = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionPrint;
diff --git a/node_modules/material-ui/src/svg-icons/action/query-builder.jsx b/node_modules/material-ui/src/svg-icons/action/query-builder.jsx
new file mode 100644
index 0000000..595429b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/query-builder.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionQueryBuilder = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionQueryBuilder;
diff --git a/node_modules/material-ui/src/svg-icons/action/question-answer.jsx b/node_modules/material-ui/src/svg-icons/action/question-answer.jsx
new file mode 100644
index 0000000..617b2d0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/question-answer.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionQuestionAnswer = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionQuestionAnswer;
diff --git a/node_modules/material-ui/src/svg-icons/action/receipt.jsx b/node_modules/material-ui/src/svg-icons/action/receipt.jsx
new file mode 100644
index 0000000..8e5ddee
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/receipt.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionReceipt = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionReceipt;
diff --git a/node_modules/material-ui/src/svg-icons/action/record-voice-over.jsx b/node_modules/material-ui/src/svg-icons/action/record-voice-over.jsx
new file mode 100644
index 0000000..8e90ffd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/record-voice-over.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionRecordVoiceOver = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionRecordVoiceOver;
diff --git a/node_modules/material-ui/src/svg-icons/action/redeem.jsx b/node_modules/material-ui/src/svg-icons/action/redeem.jsx
new file mode 100644
index 0000000..e2bd48c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/redeem.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionRedeem = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionRedeem;
diff --git a/node_modules/material-ui/src/svg-icons/action/reorder.jsx b/node_modules/material-ui/src/svg-icons/action/reorder.jsx
new file mode 100644
index 0000000..95705e8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/reorder.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionReorder = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionReorder;
diff --git a/node_modules/material-ui/src/svg-icons/action/report-problem.jsx b/node_modules/material-ui/src/svg-icons/action/report-problem.jsx
new file mode 100644
index 0000000..ec8abce
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/report-problem.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionReportProblem = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionReportProblem;
diff --git a/node_modules/material-ui/src/svg-icons/action/restore.jsx b/node_modules/material-ui/src/svg-icons/action/restore.jsx
new file mode 100644
index 0000000..a7fc33c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/restore.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionRestore = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionRestore;
diff --git a/node_modules/material-ui/src/svg-icons/action/room.jsx b/node_modules/material-ui/src/svg-icons/action/room.jsx
new file mode 100644
index 0000000..b94852a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/room.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionRoom = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionRoom;
diff --git a/node_modules/material-ui/src/svg-icons/action/rounded-corner.jsx b/node_modules/material-ui/src/svg-icons/action/rounded-corner.jsx
new file mode 100644
index 0000000..54a4f69
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/rounded-corner.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionRoundedCorner = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionRoundedCorner;
diff --git a/node_modules/material-ui/src/svg-icons/action/rowing.jsx b/node_modules/material-ui/src/svg-icons/action/rowing.jsx
new file mode 100644
index 0000000..7a637af
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/rowing.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionRowing = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionRowing;
diff --git a/node_modules/material-ui/src/svg-icons/action/schedule.jsx b/node_modules/material-ui/src/svg-icons/action/schedule.jsx
new file mode 100644
index 0000000..0ad339c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/schedule.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSchedule = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSchedule;
diff --git a/node_modules/material-ui/src/svg-icons/action/search.jsx b/node_modules/material-ui/src/svg-icons/action/search.jsx
new file mode 100644
index 0000000..26cde8f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/search.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSearch = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSearch;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-applications.jsx b/node_modules/material-ui/src/svg-icons/action/settings-applications.jsx
new file mode 100644
index 0000000..8f414c4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-applications.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsApplications = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsApplications;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-backup-restore.jsx b/node_modules/material-ui/src/svg-icons/action/settings-backup-restore.jsx
new file mode 100644
index 0000000..84779b3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-backup-restore.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsBackupRestore = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsBackupRestore;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-bluetooth.jsx b/node_modules/material-ui/src/svg-icons/action/settings-bluetooth.jsx
new file mode 100644
index 0000000..4fe8cf4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-bluetooth.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsBluetooth = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsBluetooth;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-brightness.jsx b/node_modules/material-ui/src/svg-icons/action/settings-brightness.jsx
new file mode 100644
index 0000000..3785171
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-brightness.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsBrightness = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsBrightness;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-cell.jsx b/node_modules/material-ui/src/svg-icons/action/settings-cell.jsx
new file mode 100644
index 0000000..eb4d66c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-cell.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsCell = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsCell;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-ethernet.jsx b/node_modules/material-ui/src/svg-icons/action/settings-ethernet.jsx
new file mode 100644
index 0000000..775e528
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-ethernet.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsEthernet = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsEthernet;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-input-antenna.jsx b/node_modules/material-ui/src/svg-icons/action/settings-input-antenna.jsx
new file mode 100644
index 0000000..59d2d05
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-input-antenna.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsInputAntenna = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsInputAntenna;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-input-component.jsx b/node_modules/material-ui/src/svg-icons/action/settings-input-component.jsx
new file mode 100644
index 0000000..651e4a3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-input-component.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsInputComponent = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsInputComponent;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-input-composite.jsx b/node_modules/material-ui/src/svg-icons/action/settings-input-composite.jsx
new file mode 100644
index 0000000..88b400f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-input-composite.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsInputComposite = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsInputComposite;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-input-hdmi.jsx b/node_modules/material-ui/src/svg-icons/action/settings-input-hdmi.jsx
new file mode 100644
index 0000000..9f7636a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-input-hdmi.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsInputHdmi = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsInputHdmi;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-input-svideo.jsx b/node_modules/material-ui/src/svg-icons/action/settings-input-svideo.jsx
new file mode 100644
index 0000000..02bd866
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-input-svideo.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsInputSvideo = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsInputSvideo;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-overscan.jsx b/node_modules/material-ui/src/svg-icons/action/settings-overscan.jsx
new file mode 100644
index 0000000..16078f5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-overscan.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsOverscan = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsOverscan;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-phone.jsx b/node_modules/material-ui/src/svg-icons/action/settings-phone.jsx
new file mode 100644
index 0000000..4ac8105
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-phone.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsPhone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsPhone;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-power.jsx b/node_modules/material-ui/src/svg-icons/action/settings-power.jsx
new file mode 100644
index 0000000..350d233
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-power.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsPower = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsPower;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-remote.jsx b/node_modules/material-ui/src/svg-icons/action/settings-remote.jsx
new file mode 100644
index 0000000..5c3ea11
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-remote.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsRemote = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsRemote;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings-voice.jsx b/node_modules/material-ui/src/svg-icons/action/settings-voice.jsx
new file mode 100644
index 0000000..76e9ef1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings-voice.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettingsVoice = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettingsVoice;
diff --git a/node_modules/material-ui/src/svg-icons/action/settings.jsx b/node_modules/material-ui/src/svg-icons/action/settings.jsx
new file mode 100644
index 0000000..f211352
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/settings.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSettings = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSettings;
diff --git a/node_modules/material-ui/src/svg-icons/action/shop-two.jsx b/node_modules/material-ui/src/svg-icons/action/shop-two.jsx
new file mode 100644
index 0000000..4ee51f1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/shop-two.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionShopTwo = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionShopTwo;
diff --git a/node_modules/material-ui/src/svg-icons/action/shop.jsx b/node_modules/material-ui/src/svg-icons/action/shop.jsx
new file mode 100644
index 0000000..b9408fb
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/shop.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionShop = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionShop;
diff --git a/node_modules/material-ui/src/svg-icons/action/shopping-basket.jsx b/node_modules/material-ui/src/svg-icons/action/shopping-basket.jsx
new file mode 100644
index 0000000..2795cc8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/shopping-basket.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionShoppingBasket = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionShoppingBasket;
diff --git a/node_modules/material-ui/src/svg-icons/action/shopping-cart.jsx b/node_modules/material-ui/src/svg-icons/action/shopping-cart.jsx
new file mode 100644
index 0000000..1e07f42
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/shopping-cart.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionShoppingCart = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionShoppingCart;
diff --git a/node_modules/material-ui/src/svg-icons/action/speaker-notes.jsx b/node_modules/material-ui/src/svg-icons/action/speaker-notes.jsx
new file mode 100644
index 0000000..1429f4e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/speaker-notes.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSpeakerNotes = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSpeakerNotes;
diff --git a/node_modules/material-ui/src/svg-icons/action/spellcheck.jsx b/node_modules/material-ui/src/svg-icons/action/spellcheck.jsx
new file mode 100644
index 0000000..ee17b7a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/spellcheck.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSpellcheck = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSpellcheck;
diff --git a/node_modules/material-ui/src/svg-icons/action/stars.jsx b/node_modules/material-ui/src/svg-icons/action/stars.jsx
new file mode 100644
index 0000000..f041894
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/stars.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionStars = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionStars;
diff --git a/node_modules/material-ui/src/svg-icons/action/store.jsx b/node_modules/material-ui/src/svg-icons/action/store.jsx
new file mode 100644
index 0000000..8772ee0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/store.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionStore = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionStore;
diff --git a/node_modules/material-ui/src/svg-icons/action/subject.jsx b/node_modules/material-ui/src/svg-icons/action/subject.jsx
new file mode 100644
index 0000000..7f21f5f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/subject.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSubject = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSubject;
diff --git a/node_modules/material-ui/src/svg-icons/action/supervisor-account.jsx b/node_modules/material-ui/src/svg-icons/action/supervisor-account.jsx
new file mode 100644
index 0000000..0db3178
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/supervisor-account.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSupervisorAccount = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSupervisorAccount;
diff --git a/node_modules/material-ui/src/svg-icons/action/swap-horiz.jsx b/node_modules/material-ui/src/svg-icons/action/swap-horiz.jsx
new file mode 100644
index 0000000..c7bcf6e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/swap-horiz.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSwapHoriz = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSwapHoriz;
diff --git a/node_modules/material-ui/src/svg-icons/action/swap-vert.jsx b/node_modules/material-ui/src/svg-icons/action/swap-vert.jsx
new file mode 100644
index 0000000..61ba1f4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/swap-vert.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSwapVert = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSwapVert;
diff --git a/node_modules/material-ui/src/svg-icons/action/swap-vertical-circle.jsx b/node_modules/material-ui/src/svg-icons/action/swap-vertical-circle.jsx
new file mode 100644
index 0000000..5d28d3f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/swap-vertical-circle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSwapVerticalCircle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSwapVerticalCircle;
diff --git a/node_modules/material-ui/src/svg-icons/action/system-update-alt.jsx b/node_modules/material-ui/src/svg-icons/action/system-update-alt.jsx
new file mode 100644
index 0000000..c83565b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/system-update-alt.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionSystemUpdateAlt = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionSystemUpdateAlt;
diff --git a/node_modules/material-ui/src/svg-icons/action/tab-unselected.jsx b/node_modules/material-ui/src/svg-icons/action/tab-unselected.jsx
new file mode 100644
index 0000000..e287171
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/tab-unselected.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTabUnselected = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTabUnselected;
diff --git a/node_modules/material-ui/src/svg-icons/action/tab.jsx b/node_modules/material-ui/src/svg-icons/action/tab.jsx
new file mode 100644
index 0000000..62b1a4e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/tab.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTab = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTab;
diff --git a/node_modules/material-ui/src/svg-icons/action/theaters.jsx b/node_modules/material-ui/src/svg-icons/action/theaters.jsx
new file mode 100644
index 0000000..4dc4391
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/theaters.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTheaters = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTheaters;
diff --git a/node_modules/material-ui/src/svg-icons/action/three-d-rotation.jsx b/node_modules/material-ui/src/svg-icons/action/three-d-rotation.jsx
new file mode 100644
index 0000000..6dafbb1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/three-d-rotation.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionThreeDRotation = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionThreeDRotation;
diff --git a/node_modules/material-ui/src/svg-icons/action/thumb-down.jsx b/node_modules/material-ui/src/svg-icons/action/thumb-down.jsx
new file mode 100644
index 0000000..e4ea56c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/thumb-down.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionThumbDown = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionThumbDown;
diff --git a/node_modules/material-ui/src/svg-icons/action/thumb-up.jsx b/node_modules/material-ui/src/svg-icons/action/thumb-up.jsx
new file mode 100644
index 0000000..f95e957
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/thumb-up.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionThumbUp = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionThumbUp;
diff --git a/node_modules/material-ui/src/svg-icons/action/thumbs-up-down.jsx b/node_modules/material-ui/src/svg-icons/action/thumbs-up-down.jsx
new file mode 100644
index 0000000..86af94a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/thumbs-up-down.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionThumbsUpDown = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionThumbsUpDown;
diff --git a/node_modules/material-ui/src/svg-icons/action/timeline.jsx b/node_modules/material-ui/src/svg-icons/action/timeline.jsx
new file mode 100644
index 0000000..5001827
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/timeline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTimeline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTimeline;
diff --git a/node_modules/material-ui/src/svg-icons/action/toc.jsx b/node_modules/material-ui/src/svg-icons/action/toc.jsx
new file mode 100644
index 0000000..21afb8d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/toc.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionToc = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionToc;
diff --git a/node_modules/material-ui/src/svg-icons/action/today.jsx b/node_modules/material-ui/src/svg-icons/action/today.jsx
new file mode 100644
index 0000000..14f404b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/today.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionToday = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionToday;
diff --git a/node_modules/material-ui/src/svg-icons/action/toll.jsx b/node_modules/material-ui/src/svg-icons/action/toll.jsx
new file mode 100644
index 0000000..b80a3de
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/toll.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionToll = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionToll;
diff --git a/node_modules/material-ui/src/svg-icons/action/touch-app.jsx b/node_modules/material-ui/src/svg-icons/action/touch-app.jsx
new file mode 100644
index 0000000..96de954
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/touch-app.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTouchApp = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTouchApp;
diff --git a/node_modules/material-ui/src/svg-icons/action/track-changes.jsx b/node_modules/material-ui/src/svg-icons/action/track-changes.jsx
new file mode 100644
index 0000000..e57cec1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/track-changes.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTrackChanges = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTrackChanges;
diff --git a/node_modules/material-ui/src/svg-icons/action/translate.jsx b/node_modules/material-ui/src/svg-icons/action/translate.jsx
new file mode 100644
index 0000000..e6693ef
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/translate.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTranslate = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTranslate;
diff --git a/node_modules/material-ui/src/svg-icons/action/trending-down.jsx b/node_modules/material-ui/src/svg-icons/action/trending-down.jsx
new file mode 100644
index 0000000..4e78cd6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/trending-down.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTrendingDown = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTrendingDown;
diff --git a/node_modules/material-ui/src/svg-icons/action/trending-flat.jsx b/node_modules/material-ui/src/svg-icons/action/trending-flat.jsx
new file mode 100644
index 0000000..25e281a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/trending-flat.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTrendingFlat = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTrendingFlat;
diff --git a/node_modules/material-ui/src/svg-icons/action/trending-up.jsx b/node_modules/material-ui/src/svg-icons/action/trending-up.jsx
new file mode 100644
index 0000000..97d51f1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/trending-up.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTrendingUp = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTrendingUp;
diff --git a/node_modules/material-ui/src/svg-icons/action/turned-in-not.jsx b/node_modules/material-ui/src/svg-icons/action/turned-in-not.jsx
new file mode 100644
index 0000000..68729ea
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/turned-in-not.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTurnedInNot = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTurnedInNot;
diff --git a/node_modules/material-ui/src/svg-icons/action/turned-in.jsx b/node_modules/material-ui/src/svg-icons/action/turned-in.jsx
new file mode 100644
index 0000000..13f9450
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/turned-in.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionTurnedIn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionTurnedIn;
diff --git a/node_modules/material-ui/src/svg-icons/action/update.jsx b/node_modules/material-ui/src/svg-icons/action/update.jsx
new file mode 100644
index 0000000..142138e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/update.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionUpdate = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionUpdate;
diff --git a/node_modules/material-ui/src/svg-icons/action/verified-user.jsx b/node_modules/material-ui/src/svg-icons/action/verified-user.jsx
new file mode 100644
index 0000000..71d0e46
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/verified-user.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionVerifiedUser = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionVerifiedUser;
diff --git a/node_modules/material-ui/src/svg-icons/action/view-agenda.jsx b/node_modules/material-ui/src/svg-icons/action/view-agenda.jsx
new file mode 100644
index 0000000..703f477
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/view-agenda.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionViewAgenda = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionViewAgenda;
diff --git a/node_modules/material-ui/src/svg-icons/action/view-array.jsx b/node_modules/material-ui/src/svg-icons/action/view-array.jsx
new file mode 100644
index 0000000..5114722
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/view-array.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionViewArray = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionViewArray;
diff --git a/node_modules/material-ui/src/svg-icons/action/view-carousel.jsx b/node_modules/material-ui/src/svg-icons/action/view-carousel.jsx
new file mode 100644
index 0000000..32f1e04
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/view-carousel.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionViewCarousel = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionViewCarousel;
diff --git a/node_modules/material-ui/src/svg-icons/action/view-column.jsx b/node_modules/material-ui/src/svg-icons/action/view-column.jsx
new file mode 100644
index 0000000..cca1f52
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/view-column.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionViewColumn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionViewColumn;
diff --git a/node_modules/material-ui/src/svg-icons/action/view-day.jsx b/node_modules/material-ui/src/svg-icons/action/view-day.jsx
new file mode 100644
index 0000000..d9f4a35
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/view-day.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionViewDay = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionViewDay;
diff --git a/node_modules/material-ui/src/svg-icons/action/view-headline.jsx b/node_modules/material-ui/src/svg-icons/action/view-headline.jsx
new file mode 100644
index 0000000..565fab7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/view-headline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionViewHeadline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionViewHeadline;
diff --git a/node_modules/material-ui/src/svg-icons/action/view-list.jsx b/node_modules/material-ui/src/svg-icons/action/view-list.jsx
new file mode 100644
index 0000000..71795b8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/view-list.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionViewList = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionViewList;
diff --git a/node_modules/material-ui/src/svg-icons/action/view-module.jsx b/node_modules/material-ui/src/svg-icons/action/view-module.jsx
new file mode 100644
index 0000000..36bdd13
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/view-module.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionViewModule = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionViewModule;
diff --git a/node_modules/material-ui/src/svg-icons/action/view-quilt.jsx b/node_modules/material-ui/src/svg-icons/action/view-quilt.jsx
new file mode 100644
index 0000000..66f50df
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/view-quilt.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionViewQuilt = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionViewQuilt;
diff --git a/node_modules/material-ui/src/svg-icons/action/view-stream.jsx b/node_modules/material-ui/src/svg-icons/action/view-stream.jsx
new file mode 100644
index 0000000..9f288e9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/view-stream.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionViewStream = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionViewStream;
diff --git a/node_modules/material-ui/src/svg-icons/action/view-week.jsx b/node_modules/material-ui/src/svg-icons/action/view-week.jsx
new file mode 100644
index 0000000..c84d678
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/view-week.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionViewWeek = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionViewWeek;
diff --git a/node_modules/material-ui/src/svg-icons/action/visibility-off.jsx b/node_modules/material-ui/src/svg-icons/action/visibility-off.jsx
new file mode 100644
index 0000000..11b4625
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/visibility-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionVisibilityOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionVisibilityOff;
diff --git a/node_modules/material-ui/src/svg-icons/action/visibility.jsx b/node_modules/material-ui/src/svg-icons/action/visibility.jsx
new file mode 100644
index 0000000..3eb259f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/visibility.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionVisibility = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionVisibility;
diff --git a/node_modules/material-ui/src/svg-icons/action/watch-later.jsx b/node_modules/material-ui/src/svg-icons/action/watch-later.jsx
new file mode 100644
index 0000000..a8ea477
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/watch-later.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionWatchLater = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionWatchLater;
diff --git a/node_modules/material-ui/src/svg-icons/action/work.jsx b/node_modules/material-ui/src/svg-icons/action/work.jsx
new file mode 100644
index 0000000..890a10a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/work.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionWork = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionWork;
diff --git a/node_modules/material-ui/src/svg-icons/action/youtube-searched-for.jsx b/node_modules/material-ui/src/svg-icons/action/youtube-searched-for.jsx
new file mode 100644
index 0000000..bbdbfc0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/youtube-searched-for.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionYoutubeSearchedFor = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionYoutubeSearchedFor;
diff --git a/node_modules/material-ui/src/svg-icons/action/zoom-in.jsx b/node_modules/material-ui/src/svg-icons/action/zoom-in.jsx
new file mode 100644
index 0000000..0147999
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/zoom-in.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionZoomIn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionZoomIn;
diff --git a/node_modules/material-ui/src/svg-icons/action/zoom-out.jsx b/node_modules/material-ui/src/svg-icons/action/zoom-out.jsx
new file mode 100644
index 0000000..6983822
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/action/zoom-out.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ActionZoomOut = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ActionZoomOut;
diff --git a/node_modules/material-ui/src/svg-icons/alert/add-alert.jsx b/node_modules/material-ui/src/svg-icons/alert/add-alert.jsx
new file mode 100644
index 0000000..5a71997
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/alert/add-alert.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AlertAddAlert = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AlertAddAlert;
diff --git a/node_modules/material-ui/src/svg-icons/alert/error-outline.jsx b/node_modules/material-ui/src/svg-icons/alert/error-outline.jsx
new file mode 100644
index 0000000..82adccf
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/alert/error-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AlertErrorOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AlertErrorOutline;
diff --git a/node_modules/material-ui/src/svg-icons/alert/error.jsx b/node_modules/material-ui/src/svg-icons/alert/error.jsx
new file mode 100644
index 0000000..afc2996
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/alert/error.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AlertError = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AlertError;
diff --git a/node_modules/material-ui/src/svg-icons/alert/warning.jsx b/node_modules/material-ui/src/svg-icons/alert/warning.jsx
new file mode 100644
index 0000000..aab2fba
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/alert/warning.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AlertWarning = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AlertWarning;
diff --git a/node_modules/material-ui/src/svg-icons/av/add-to-queue.jsx b/node_modules/material-ui/src/svg-icons/av/add-to-queue.jsx
new file mode 100644
index 0000000..fc11090
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/add-to-queue.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvAddToQueue = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvAddToQueue;
diff --git a/node_modules/material-ui/src/svg-icons/av/airplay.jsx b/node_modules/material-ui/src/svg-icons/av/airplay.jsx
new file mode 100644
index 0000000..25bda99
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/airplay.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvAirplay = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvAirplay;
diff --git a/node_modules/material-ui/src/svg-icons/av/album.jsx b/node_modules/material-ui/src/svg-icons/av/album.jsx
new file mode 100644
index 0000000..731e765
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/album.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvAlbum = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvAlbum;
diff --git a/node_modules/material-ui/src/svg-icons/av/art-track.jsx b/node_modules/material-ui/src/svg-icons/av/art-track.jsx
new file mode 100644
index 0000000..b39ae4d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/art-track.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvArtTrack = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvArtTrack;
diff --git a/node_modules/material-ui/src/svg-icons/av/av-timer.jsx b/node_modules/material-ui/src/svg-icons/av/av-timer.jsx
new file mode 100644
index 0000000..c1e7334
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/av-timer.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvAvTimer = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvAvTimer;
diff --git a/node_modules/material-ui/src/svg-icons/av/closed-caption.jsx b/node_modules/material-ui/src/svg-icons/av/closed-caption.jsx
new file mode 100644
index 0000000..22b5951
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/closed-caption.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvClosedCaption = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvClosedCaption;
diff --git a/node_modules/material-ui/src/svg-icons/av/equalizer.jsx b/node_modules/material-ui/src/svg-icons/av/equalizer.jsx
new file mode 100644
index 0000000..cd411c7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/equalizer.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvEqualizer = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvEqualizer;
diff --git a/node_modules/material-ui/src/svg-icons/av/explicit.jsx b/node_modules/material-ui/src/svg-icons/av/explicit.jsx
new file mode 100644
index 0000000..3eb3b8b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/explicit.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvExplicit = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvExplicit;
diff --git a/node_modules/material-ui/src/svg-icons/av/fast-forward.jsx b/node_modules/material-ui/src/svg-icons/av/fast-forward.jsx
new file mode 100644
index 0000000..94a7137
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/fast-forward.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvFastForward = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvFastForward;
diff --git a/node_modules/material-ui/src/svg-icons/av/fast-rewind.jsx b/node_modules/material-ui/src/svg-icons/av/fast-rewind.jsx
new file mode 100644
index 0000000..bd13d90
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/fast-rewind.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvFastRewind = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvFastRewind;
diff --git a/node_modules/material-ui/src/svg-icons/av/fiber-dvr.jsx b/node_modules/material-ui/src/svg-icons/av/fiber-dvr.jsx
new file mode 100644
index 0000000..9cd6e57
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/fiber-dvr.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvFiberDvr = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvFiberDvr;
diff --git a/node_modules/material-ui/src/svg-icons/av/fiber-manual-record.jsx b/node_modules/material-ui/src/svg-icons/av/fiber-manual-record.jsx
new file mode 100644
index 0000000..5e4513b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/fiber-manual-record.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvFiberManualRecord = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvFiberManualRecord;
diff --git a/node_modules/material-ui/src/svg-icons/av/fiber-new.jsx b/node_modules/material-ui/src/svg-icons/av/fiber-new.jsx
new file mode 100644
index 0000000..ccd310c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/fiber-new.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvFiberNew = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvFiberNew;
diff --git a/node_modules/material-ui/src/svg-icons/av/fiber-pin.jsx b/node_modules/material-ui/src/svg-icons/av/fiber-pin.jsx
new file mode 100644
index 0000000..4adeba8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/fiber-pin.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvFiberPin = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvFiberPin;
diff --git a/node_modules/material-ui/src/svg-icons/av/fiber-smart-record.jsx b/node_modules/material-ui/src/svg-icons/av/fiber-smart-record.jsx
new file mode 100644
index 0000000..f6df600
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/fiber-smart-record.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvFiberSmartRecord = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvFiberSmartRecord;
diff --git a/node_modules/material-ui/src/svg-icons/av/forward-10.jsx b/node_modules/material-ui/src/svg-icons/av/forward-10.jsx
new file mode 100644
index 0000000..6ac3870
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/forward-10.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvForward10 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvForward10;
diff --git a/node_modules/material-ui/src/svg-icons/av/forward-30.jsx b/node_modules/material-ui/src/svg-icons/av/forward-30.jsx
new file mode 100644
index 0000000..da651ec
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/forward-30.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvForward30 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvForward30;
diff --git a/node_modules/material-ui/src/svg-icons/av/forward-5.jsx b/node_modules/material-ui/src/svg-icons/av/forward-5.jsx
new file mode 100644
index 0000000..f1ba849
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/forward-5.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvForward5 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvForward5;
diff --git a/node_modules/material-ui/src/svg-icons/av/games.jsx b/node_modules/material-ui/src/svg-icons/av/games.jsx
new file mode 100644
index 0000000..a270d00
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/games.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvGames = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvGames;
diff --git a/node_modules/material-ui/src/svg-icons/av/hd.jsx b/node_modules/material-ui/src/svg-icons/av/hd.jsx
new file mode 100644
index 0000000..6c8c3c3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/hd.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvHd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvHd;
diff --git a/node_modules/material-ui/src/svg-icons/av/hearing.jsx b/node_modules/material-ui/src/svg-icons/av/hearing.jsx
new file mode 100644
index 0000000..907ed86
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/hearing.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvHearing = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvHearing;
diff --git a/node_modules/material-ui/src/svg-icons/av/high-quality.jsx b/node_modules/material-ui/src/svg-icons/av/high-quality.jsx
new file mode 100644
index 0000000..ec6845b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/high-quality.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvHighQuality = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvHighQuality;
diff --git a/node_modules/material-ui/src/svg-icons/av/library-add.jsx b/node_modules/material-ui/src/svg-icons/av/library-add.jsx
new file mode 100644
index 0000000..9fba0da
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/library-add.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvLibraryAdd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvLibraryAdd;
diff --git a/node_modules/material-ui/src/svg-icons/av/library-books.jsx b/node_modules/material-ui/src/svg-icons/av/library-books.jsx
new file mode 100644
index 0000000..5cc7072
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/library-books.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvLibraryBooks = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvLibraryBooks;
diff --git a/node_modules/material-ui/src/svg-icons/av/library-music.jsx b/node_modules/material-ui/src/svg-icons/av/library-music.jsx
new file mode 100644
index 0000000..c30cc71
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/library-music.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvLibraryMusic = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvLibraryMusic;
diff --git a/node_modules/material-ui/src/svg-icons/av/loop.jsx b/node_modules/material-ui/src/svg-icons/av/loop.jsx
new file mode 100644
index 0000000..4b765bf
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/loop.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvLoop = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvLoop;
diff --git a/node_modules/material-ui/src/svg-icons/av/mic-none.jsx b/node_modules/material-ui/src/svg-icons/av/mic-none.jsx
new file mode 100644
index 0000000..cc40649
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/mic-none.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvMicNone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvMicNone;
diff --git a/node_modules/material-ui/src/svg-icons/av/mic-off.jsx b/node_modules/material-ui/src/svg-icons/av/mic-off.jsx
new file mode 100644
index 0000000..a94d7b3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/mic-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvMicOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvMicOff;
diff --git a/node_modules/material-ui/src/svg-icons/av/mic.jsx b/node_modules/material-ui/src/svg-icons/av/mic.jsx
new file mode 100644
index 0000000..cc35500
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/mic.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvMic = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvMic;
diff --git a/node_modules/material-ui/src/svg-icons/av/movie.jsx b/node_modules/material-ui/src/svg-icons/av/movie.jsx
new file mode 100644
index 0000000..2474aa4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/movie.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvMovie = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvMovie;
diff --git a/node_modules/material-ui/src/svg-icons/av/music-video.jsx b/node_modules/material-ui/src/svg-icons/av/music-video.jsx
new file mode 100644
index 0000000..44e2291
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/music-video.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvMusicVideo = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvMusicVideo;
diff --git a/node_modules/material-ui/src/svg-icons/av/new-releases.jsx b/node_modules/material-ui/src/svg-icons/av/new-releases.jsx
new file mode 100644
index 0000000..debfc89
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/new-releases.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvNewReleases = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvNewReleases;
diff --git a/node_modules/material-ui/src/svg-icons/av/not-interested.jsx b/node_modules/material-ui/src/svg-icons/av/not-interested.jsx
new file mode 100644
index 0000000..771fb19
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/not-interested.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvNotInterested = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvNotInterested;
diff --git a/node_modules/material-ui/src/svg-icons/av/pause-circle-filled.jsx b/node_modules/material-ui/src/svg-icons/av/pause-circle-filled.jsx
new file mode 100644
index 0000000..7bda07d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/pause-circle-filled.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvPauseCircleFilled = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvPauseCircleFilled;
diff --git a/node_modules/material-ui/src/svg-icons/av/pause-circle-outline.jsx b/node_modules/material-ui/src/svg-icons/av/pause-circle-outline.jsx
new file mode 100644
index 0000000..a483ab4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/pause-circle-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvPauseCircleOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvPauseCircleOutline;
diff --git a/node_modules/material-ui/src/svg-icons/av/pause.jsx b/node_modules/material-ui/src/svg-icons/av/pause.jsx
new file mode 100644
index 0000000..b7fa2ca
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/pause.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvPause = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvPause;
diff --git a/node_modules/material-ui/src/svg-icons/av/play-arrow.jsx b/node_modules/material-ui/src/svg-icons/av/play-arrow.jsx
new file mode 100644
index 0000000..64fa76b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/play-arrow.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvPlayArrow = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvPlayArrow;
diff --git a/node_modules/material-ui/src/svg-icons/av/play-circle-filled.jsx b/node_modules/material-ui/src/svg-icons/av/play-circle-filled.jsx
new file mode 100644
index 0000000..35353a9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/play-circle-filled.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvPlayCircleFilled = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvPlayCircleFilled;
diff --git a/node_modules/material-ui/src/svg-icons/av/play-circle-outline.jsx b/node_modules/material-ui/src/svg-icons/av/play-circle-outline.jsx
new file mode 100644
index 0000000..89538e3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/play-circle-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvPlayCircleOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvPlayCircleOutline;
diff --git a/node_modules/material-ui/src/svg-icons/av/playlist-add-check.jsx b/node_modules/material-ui/src/svg-icons/av/playlist-add-check.jsx
new file mode 100644
index 0000000..2ddd78a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/playlist-add-check.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvPlaylistAddCheck = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvPlaylistAddCheck;
diff --git a/node_modules/material-ui/src/svg-icons/av/playlist-add.jsx b/node_modules/material-ui/src/svg-icons/av/playlist-add.jsx
new file mode 100644
index 0000000..ecb00fe
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/playlist-add.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvPlaylistAdd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvPlaylistAdd;
diff --git a/node_modules/material-ui/src/svg-icons/av/playlist-play.jsx b/node_modules/material-ui/src/svg-icons/av/playlist-play.jsx
new file mode 100644
index 0000000..fe444d7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/playlist-play.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvPlaylistPlay = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvPlaylistPlay;
diff --git a/node_modules/material-ui/src/svg-icons/av/queue-music.jsx b/node_modules/material-ui/src/svg-icons/av/queue-music.jsx
new file mode 100644
index 0000000..728650b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/queue-music.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvQueueMusic = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvQueueMusic;
diff --git a/node_modules/material-ui/src/svg-icons/av/queue-play-next.jsx b/node_modules/material-ui/src/svg-icons/av/queue-play-next.jsx
new file mode 100644
index 0000000..c97528b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/queue-play-next.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvQueuePlayNext = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvQueuePlayNext;
diff --git a/node_modules/material-ui/src/svg-icons/av/queue.jsx b/node_modules/material-ui/src/svg-icons/av/queue.jsx
new file mode 100644
index 0000000..e5f8d9f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/queue.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvQueue = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvQueue;
diff --git a/node_modules/material-ui/src/svg-icons/av/radio.jsx b/node_modules/material-ui/src/svg-icons/av/radio.jsx
new file mode 100644
index 0000000..55e8bab
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/radio.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvRadio = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvRadio;
diff --git a/node_modules/material-ui/src/svg-icons/av/recent-actors.jsx b/node_modules/material-ui/src/svg-icons/av/recent-actors.jsx
new file mode 100644
index 0000000..5ddd223
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/recent-actors.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvRecentActors = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvRecentActors;
diff --git a/node_modules/material-ui/src/svg-icons/av/remove-from-queue.jsx b/node_modules/material-ui/src/svg-icons/av/remove-from-queue.jsx
new file mode 100644
index 0000000..91ef851
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/remove-from-queue.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvRemoveFromQueue = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvRemoveFromQueue;
diff --git a/node_modules/material-ui/src/svg-icons/av/repeat-one.jsx b/node_modules/material-ui/src/svg-icons/av/repeat-one.jsx
new file mode 100644
index 0000000..aae9814
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/repeat-one.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvRepeatOne = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvRepeatOne;
diff --git a/node_modules/material-ui/src/svg-icons/av/repeat.jsx b/node_modules/material-ui/src/svg-icons/av/repeat.jsx
new file mode 100644
index 0000000..e8f20e3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/repeat.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvRepeat = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvRepeat;
diff --git a/node_modules/material-ui/src/svg-icons/av/replay-10.jsx b/node_modules/material-ui/src/svg-icons/av/replay-10.jsx
new file mode 100644
index 0000000..7d72c35
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/replay-10.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvReplay10 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvReplay10;
diff --git a/node_modules/material-ui/src/svg-icons/av/replay-30.jsx b/node_modules/material-ui/src/svg-icons/av/replay-30.jsx
new file mode 100644
index 0000000..4862a91
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/replay-30.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvReplay30 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvReplay30;
diff --git a/node_modules/material-ui/src/svg-icons/av/replay-5.jsx b/node_modules/material-ui/src/svg-icons/av/replay-5.jsx
new file mode 100644
index 0000000..9d5df69
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/replay-5.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvReplay5 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvReplay5;
diff --git a/node_modules/material-ui/src/svg-icons/av/replay.jsx b/node_modules/material-ui/src/svg-icons/av/replay.jsx
new file mode 100644
index 0000000..b0bef84
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/replay.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvReplay = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvReplay;
diff --git a/node_modules/material-ui/src/svg-icons/av/shuffle.jsx b/node_modules/material-ui/src/svg-icons/av/shuffle.jsx
new file mode 100644
index 0000000..cf8f23b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/shuffle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvShuffle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvShuffle;
diff --git a/node_modules/material-ui/src/svg-icons/av/skip-next.jsx b/node_modules/material-ui/src/svg-icons/av/skip-next.jsx
new file mode 100644
index 0000000..3c5819b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/skip-next.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvSkipNext = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvSkipNext;
diff --git a/node_modules/material-ui/src/svg-icons/av/skip-previous.jsx b/node_modules/material-ui/src/svg-icons/av/skip-previous.jsx
new file mode 100644
index 0000000..9beb40f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/skip-previous.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvSkipPrevious = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvSkipPrevious;
diff --git a/node_modules/material-ui/src/svg-icons/av/slow-motion-video.jsx b/node_modules/material-ui/src/svg-icons/av/slow-motion-video.jsx
new file mode 100644
index 0000000..c7838d7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/slow-motion-video.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvSlowMotionVideo = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvSlowMotionVideo;
diff --git a/node_modules/material-ui/src/svg-icons/av/snooze.jsx b/node_modules/material-ui/src/svg-icons/av/snooze.jsx
new file mode 100644
index 0000000..443209b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/snooze.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvSnooze = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvSnooze;
diff --git a/node_modules/material-ui/src/svg-icons/av/sort-by-alpha.jsx b/node_modules/material-ui/src/svg-icons/av/sort-by-alpha.jsx
new file mode 100644
index 0000000..b16838e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/sort-by-alpha.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvSortByAlpha = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvSortByAlpha;
diff --git a/node_modules/material-ui/src/svg-icons/av/stop.jsx b/node_modules/material-ui/src/svg-icons/av/stop.jsx
new file mode 100644
index 0000000..dd206a1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/stop.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvStop = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvStop;
diff --git a/node_modules/material-ui/src/svg-icons/av/subscriptions.jsx b/node_modules/material-ui/src/svg-icons/av/subscriptions.jsx
new file mode 100644
index 0000000..62fee18
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/subscriptions.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvSubscriptions = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvSubscriptions;
diff --git a/node_modules/material-ui/src/svg-icons/av/subtitles.jsx b/node_modules/material-ui/src/svg-icons/av/subtitles.jsx
new file mode 100644
index 0000000..b9fc3ab
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/subtitles.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvSubtitles = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvSubtitles;
diff --git a/node_modules/material-ui/src/svg-icons/av/surround-sound.jsx b/node_modules/material-ui/src/svg-icons/av/surround-sound.jsx
new file mode 100644
index 0000000..03135ed
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/surround-sound.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvSurroundSound = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvSurroundSound;
diff --git a/node_modules/material-ui/src/svg-icons/av/video-library.jsx b/node_modules/material-ui/src/svg-icons/av/video-library.jsx
new file mode 100644
index 0000000..007d5f6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/video-library.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvVideoLibrary = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvVideoLibrary;
diff --git a/node_modules/material-ui/src/svg-icons/av/videocam-off.jsx b/node_modules/material-ui/src/svg-icons/av/videocam-off.jsx
new file mode 100644
index 0000000..f270f9e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/videocam-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvVideocamOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvVideocamOff;
diff --git a/node_modules/material-ui/src/svg-icons/av/videocam.jsx b/node_modules/material-ui/src/svg-icons/av/videocam.jsx
new file mode 100644
index 0000000..d8e95af
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/videocam.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvVideocam = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvVideocam;
diff --git a/node_modules/material-ui/src/svg-icons/av/volume-down.jsx b/node_modules/material-ui/src/svg-icons/av/volume-down.jsx
new file mode 100644
index 0000000..5826805
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/volume-down.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvVolumeDown = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvVolumeDown;
diff --git a/node_modules/material-ui/src/svg-icons/av/volume-mute.jsx b/node_modules/material-ui/src/svg-icons/av/volume-mute.jsx
new file mode 100644
index 0000000..ea1b7b4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/volume-mute.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvVolumeMute = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvVolumeMute;
diff --git a/node_modules/material-ui/src/svg-icons/av/volume-off.jsx b/node_modules/material-ui/src/svg-icons/av/volume-off.jsx
new file mode 100644
index 0000000..b01e238
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/volume-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvVolumeOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvVolumeOff;
diff --git a/node_modules/material-ui/src/svg-icons/av/volume-up.jsx b/node_modules/material-ui/src/svg-icons/av/volume-up.jsx
new file mode 100644
index 0000000..dfcf829
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/volume-up.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvVolumeUp = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvVolumeUp;
diff --git a/node_modules/material-ui/src/svg-icons/av/web-asset.jsx b/node_modules/material-ui/src/svg-icons/av/web-asset.jsx
new file mode 100644
index 0000000..781e8ba
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/web-asset.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvWebAsset = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvWebAsset;
diff --git a/node_modules/material-ui/src/svg-icons/av/web.jsx b/node_modules/material-ui/src/svg-icons/av/web.jsx
new file mode 100644
index 0000000..b26590a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/av/web.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const AvWeb = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default AvWeb;
diff --git a/node_modules/material-ui/src/svg-icons/communication/business.jsx b/node_modules/material-ui/src/svg-icons/communication/business.jsx
new file mode 100644
index 0000000..575f8e0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/business.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationBusiness = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationBusiness;
diff --git a/node_modules/material-ui/src/svg-icons/communication/call-end.jsx b/node_modules/material-ui/src/svg-icons/communication/call-end.jsx
new file mode 100644
index 0000000..f2001c2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/call-end.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationCallEnd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationCallEnd;
diff --git a/node_modules/material-ui/src/svg-icons/communication/call-made.jsx b/node_modules/material-ui/src/svg-icons/communication/call-made.jsx
new file mode 100644
index 0000000..7385f8f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/call-made.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationCallMade = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationCallMade;
diff --git a/node_modules/material-ui/src/svg-icons/communication/call-merge.jsx b/node_modules/material-ui/src/svg-icons/communication/call-merge.jsx
new file mode 100644
index 0000000..ad6da8a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/call-merge.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationCallMerge = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationCallMerge;
diff --git a/node_modules/material-ui/src/svg-icons/communication/call-missed-outgoing.jsx b/node_modules/material-ui/src/svg-icons/communication/call-missed-outgoing.jsx
new file mode 100644
index 0000000..f6bde65
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/call-missed-outgoing.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationCallMissedOutgoing = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationCallMissedOutgoing;
diff --git a/node_modules/material-ui/src/svg-icons/communication/call-missed.jsx b/node_modules/material-ui/src/svg-icons/communication/call-missed.jsx
new file mode 100644
index 0000000..f0c3c6f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/call-missed.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationCallMissed = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationCallMissed;
diff --git a/node_modules/material-ui/src/svg-icons/communication/call-received.jsx b/node_modules/material-ui/src/svg-icons/communication/call-received.jsx
new file mode 100644
index 0000000..c9010c8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/call-received.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationCallReceived = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationCallReceived;
diff --git a/node_modules/material-ui/src/svg-icons/communication/call-split.jsx b/node_modules/material-ui/src/svg-icons/communication/call-split.jsx
new file mode 100644
index 0000000..4a162e2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/call-split.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationCallSplit = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationCallSplit;
diff --git a/node_modules/material-ui/src/svg-icons/communication/call.jsx b/node_modules/material-ui/src/svg-icons/communication/call.jsx
new file mode 100644
index 0000000..b15ab15
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/call.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationCall = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationCall;
diff --git a/node_modules/material-ui/src/svg-icons/communication/chat-bubble-outline.jsx b/node_modules/material-ui/src/svg-icons/communication/chat-bubble-outline.jsx
new file mode 100644
index 0000000..2c60d85
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/chat-bubble-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationChatBubbleOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationChatBubbleOutline;
diff --git a/node_modules/material-ui/src/svg-icons/communication/chat-bubble.jsx b/node_modules/material-ui/src/svg-icons/communication/chat-bubble.jsx
new file mode 100644
index 0000000..79bb453
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/chat-bubble.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationChatBubble = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationChatBubble;
diff --git a/node_modules/material-ui/src/svg-icons/communication/chat.jsx b/node_modules/material-ui/src/svg-icons/communication/chat.jsx
new file mode 100644
index 0000000..8d22941
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/chat.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationChat = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationChat;
diff --git a/node_modules/material-ui/src/svg-icons/communication/clear-all.jsx b/node_modules/material-ui/src/svg-icons/communication/clear-all.jsx
new file mode 100644
index 0000000..205303b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/clear-all.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationClearAll = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationClearAll;
diff --git a/node_modules/material-ui/src/svg-icons/communication/comment.jsx b/node_modules/material-ui/src/svg-icons/communication/comment.jsx
new file mode 100644
index 0000000..559ac16
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/comment.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationComment = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationComment;
diff --git a/node_modules/material-ui/src/svg-icons/communication/contact-mail.jsx b/node_modules/material-ui/src/svg-icons/communication/contact-mail.jsx
new file mode 100644
index 0000000..e2a2a5b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/contact-mail.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationContactMail = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationContactMail;
diff --git a/node_modules/material-ui/src/svg-icons/communication/contact-phone.jsx b/node_modules/material-ui/src/svg-icons/communication/contact-phone.jsx
new file mode 100644
index 0000000..dbbda3c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/contact-phone.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationContactPhone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationContactPhone;
diff --git a/node_modules/material-ui/src/svg-icons/communication/contacts.jsx b/node_modules/material-ui/src/svg-icons/communication/contacts.jsx
new file mode 100644
index 0000000..5f933d6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/contacts.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationContacts = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationContacts;
diff --git a/node_modules/material-ui/src/svg-icons/communication/dialer-sip.jsx b/node_modules/material-ui/src/svg-icons/communication/dialer-sip.jsx
new file mode 100644
index 0000000..c78d48d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/dialer-sip.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationDialerSip = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationDialerSip;
diff --git a/node_modules/material-ui/src/svg-icons/communication/dialpad.jsx b/node_modules/material-ui/src/svg-icons/communication/dialpad.jsx
new file mode 100644
index 0000000..25dbac3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/dialpad.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationDialpad = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationDialpad;
diff --git a/node_modules/material-ui/src/svg-icons/communication/email.jsx b/node_modules/material-ui/src/svg-icons/communication/email.jsx
new file mode 100644
index 0000000..cf3b52f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/email.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationEmail = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationEmail;
diff --git a/node_modules/material-ui/src/svg-icons/communication/forum.jsx b/node_modules/material-ui/src/svg-icons/communication/forum.jsx
new file mode 100644
index 0000000..03b4d66
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/forum.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationForum = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationForum;
diff --git a/node_modules/material-ui/src/svg-icons/communication/import-contacts.jsx b/node_modules/material-ui/src/svg-icons/communication/import-contacts.jsx
new file mode 100644
index 0000000..7303a21
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/import-contacts.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationImportContacts = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationImportContacts;
diff --git a/node_modules/material-ui/src/svg-icons/communication/import-export.jsx b/node_modules/material-ui/src/svg-icons/communication/import-export.jsx
new file mode 100644
index 0000000..060a96d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/import-export.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationImportExport = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationImportExport;
diff --git a/node_modules/material-ui/src/svg-icons/communication/invert-colors-off.jsx b/node_modules/material-ui/src/svg-icons/communication/invert-colors-off.jsx
new file mode 100644
index 0000000..d8e8c87
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/invert-colors-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationInvertColorsOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationInvertColorsOff;
diff --git a/node_modules/material-ui/src/svg-icons/communication/live-help.jsx b/node_modules/material-ui/src/svg-icons/communication/live-help.jsx
new file mode 100644
index 0000000..1350b31
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/live-help.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationLiveHelp = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationLiveHelp;
diff --git a/node_modules/material-ui/src/svg-icons/communication/location-off.jsx b/node_modules/material-ui/src/svg-icons/communication/location-off.jsx
new file mode 100644
index 0000000..03f9a07
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/location-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationLocationOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationLocationOff;
diff --git a/node_modules/material-ui/src/svg-icons/communication/location-on.jsx b/node_modules/material-ui/src/svg-icons/communication/location-on.jsx
new file mode 100644
index 0000000..a52b38c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/location-on.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationLocationOn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationLocationOn;
diff --git a/node_modules/material-ui/src/svg-icons/communication/mail-outline.jsx b/node_modules/material-ui/src/svg-icons/communication/mail-outline.jsx
new file mode 100644
index 0000000..bb5a968
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/mail-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationMailOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationMailOutline;
diff --git a/node_modules/material-ui/src/svg-icons/communication/message.jsx b/node_modules/material-ui/src/svg-icons/communication/message.jsx
new file mode 100644
index 0000000..797d309
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/message.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationMessage = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationMessage;
diff --git a/node_modules/material-ui/src/svg-icons/communication/no-sim.jsx b/node_modules/material-ui/src/svg-icons/communication/no-sim.jsx
new file mode 100644
index 0000000..0114278
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/no-sim.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationNoSim = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationNoSim;
diff --git a/node_modules/material-ui/src/svg-icons/communication/phone.jsx b/node_modules/material-ui/src/svg-icons/communication/phone.jsx
new file mode 100644
index 0000000..c7fc427
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/phone.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationPhone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationPhone;
diff --git a/node_modules/material-ui/src/svg-icons/communication/phonelink-erase.jsx b/node_modules/material-ui/src/svg-icons/communication/phonelink-erase.jsx
new file mode 100644
index 0000000..fbbdf35
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/phonelink-erase.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationPhonelinkErase = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationPhonelinkErase;
diff --git a/node_modules/material-ui/src/svg-icons/communication/phonelink-lock.jsx b/node_modules/material-ui/src/svg-icons/communication/phonelink-lock.jsx
new file mode 100644
index 0000000..9680ca3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/phonelink-lock.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationPhonelinkLock = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationPhonelinkLock;
diff --git a/node_modules/material-ui/src/svg-icons/communication/phonelink-ring.jsx b/node_modules/material-ui/src/svg-icons/communication/phonelink-ring.jsx
new file mode 100644
index 0000000..4448aea
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/phonelink-ring.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationPhonelinkRing = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationPhonelinkRing;
diff --git a/node_modules/material-ui/src/svg-icons/communication/phonelink-setup.jsx b/node_modules/material-ui/src/svg-icons/communication/phonelink-setup.jsx
new file mode 100644
index 0000000..f957e8f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/phonelink-setup.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationPhonelinkSetup = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationPhonelinkSetup;
diff --git a/node_modules/material-ui/src/svg-icons/communication/portable-wifi-off.jsx b/node_modules/material-ui/src/svg-icons/communication/portable-wifi-off.jsx
new file mode 100644
index 0000000..d90d96b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/portable-wifi-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationPortableWifiOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationPortableWifiOff;
diff --git a/node_modules/material-ui/src/svg-icons/communication/present-to-all.jsx b/node_modules/material-ui/src/svg-icons/communication/present-to-all.jsx
new file mode 100644
index 0000000..606dd34
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/present-to-all.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationPresentToAll = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationPresentToAll;
diff --git a/node_modules/material-ui/src/svg-icons/communication/ring-volume.jsx b/node_modules/material-ui/src/svg-icons/communication/ring-volume.jsx
new file mode 100644
index 0000000..b637d07
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/ring-volume.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationRingVolume = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationRingVolume;
diff --git a/node_modules/material-ui/src/svg-icons/communication/screen-share.jsx b/node_modules/material-ui/src/svg-icons/communication/screen-share.jsx
new file mode 100644
index 0000000..edfc492
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/screen-share.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationScreenShare = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationScreenShare;
diff --git a/node_modules/material-ui/src/svg-icons/communication/speaker-phone.jsx b/node_modules/material-ui/src/svg-icons/communication/speaker-phone.jsx
new file mode 100644
index 0000000..273ee1d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/speaker-phone.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationSpeakerPhone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationSpeakerPhone;
diff --git a/node_modules/material-ui/src/svg-icons/communication/stay-current-landscape.jsx b/node_modules/material-ui/src/svg-icons/communication/stay-current-landscape.jsx
new file mode 100644
index 0000000..3be892f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/stay-current-landscape.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationStayCurrentLandscape = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationStayCurrentLandscape;
diff --git a/node_modules/material-ui/src/svg-icons/communication/stay-current-portrait.jsx b/node_modules/material-ui/src/svg-icons/communication/stay-current-portrait.jsx
new file mode 100644
index 0000000..5f55cc7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/stay-current-portrait.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationStayCurrentPortrait = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationStayCurrentPortrait;
diff --git a/node_modules/material-ui/src/svg-icons/communication/stay-primary-landscape.jsx b/node_modules/material-ui/src/svg-icons/communication/stay-primary-landscape.jsx
new file mode 100644
index 0000000..5620cc4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/stay-primary-landscape.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationStayPrimaryLandscape = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationStayPrimaryLandscape;
diff --git a/node_modules/material-ui/src/svg-icons/communication/stay-primary-portrait.jsx b/node_modules/material-ui/src/svg-icons/communication/stay-primary-portrait.jsx
new file mode 100644
index 0000000..d08eca8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/stay-primary-portrait.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationStayPrimaryPortrait = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationStayPrimaryPortrait;
diff --git a/node_modules/material-ui/src/svg-icons/communication/stop-screen-share.jsx b/node_modules/material-ui/src/svg-icons/communication/stop-screen-share.jsx
new file mode 100644
index 0000000..b6b86c8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/stop-screen-share.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationStopScreenShare = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationStopScreenShare;
diff --git a/node_modules/material-ui/src/svg-icons/communication/swap-calls.jsx b/node_modules/material-ui/src/svg-icons/communication/swap-calls.jsx
new file mode 100644
index 0000000..cbc42d9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/swap-calls.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationSwapCalls = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationSwapCalls;
diff --git a/node_modules/material-ui/src/svg-icons/communication/textsms.jsx b/node_modules/material-ui/src/svg-icons/communication/textsms.jsx
new file mode 100644
index 0000000..9f3f08b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/textsms.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationTextsms = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationTextsms;
diff --git a/node_modules/material-ui/src/svg-icons/communication/voicemail.jsx b/node_modules/material-ui/src/svg-icons/communication/voicemail.jsx
new file mode 100644
index 0000000..95e4e10
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/voicemail.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationVoicemail = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationVoicemail;
diff --git a/node_modules/material-ui/src/svg-icons/communication/vpn-key.jsx b/node_modules/material-ui/src/svg-icons/communication/vpn-key.jsx
new file mode 100644
index 0000000..f278d3a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/communication/vpn-key.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const CommunicationVpnKey = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default CommunicationVpnKey;
diff --git a/node_modules/material-ui/src/svg-icons/content/add-box.jsx b/node_modules/material-ui/src/svg-icons/content/add-box.jsx
new file mode 100644
index 0000000..fde7e18
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/add-box.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentAddBox = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentAddBox;
diff --git a/node_modules/material-ui/src/svg-icons/content/add-circle-outline.jsx b/node_modules/material-ui/src/svg-icons/content/add-circle-outline.jsx
new file mode 100644
index 0000000..24c02c5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/add-circle-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentAddCircleOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentAddCircleOutline;
diff --git a/node_modules/material-ui/src/svg-icons/content/add-circle.jsx b/node_modules/material-ui/src/svg-icons/content/add-circle.jsx
new file mode 100644
index 0000000..334a81f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/add-circle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentAddCircle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentAddCircle;
diff --git a/node_modules/material-ui/src/svg-icons/content/add.jsx b/node_modules/material-ui/src/svg-icons/content/add.jsx
new file mode 100644
index 0000000..3d2b750
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/add.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentAdd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentAdd;
diff --git a/node_modules/material-ui/src/svg-icons/content/archive.jsx b/node_modules/material-ui/src/svg-icons/content/archive.jsx
new file mode 100644
index 0000000..a51fed8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/archive.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentArchive = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentArchive;
diff --git a/node_modules/material-ui/src/svg-icons/content/backspace.jsx b/node_modules/material-ui/src/svg-icons/content/backspace.jsx
new file mode 100644
index 0000000..e5d7dc4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/backspace.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentBackspace = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentBackspace;
diff --git a/node_modules/material-ui/src/svg-icons/content/block.jsx b/node_modules/material-ui/src/svg-icons/content/block.jsx
new file mode 100644
index 0000000..9428ef3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/block.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentBlock = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentBlock;
diff --git a/node_modules/material-ui/src/svg-icons/content/clear.jsx b/node_modules/material-ui/src/svg-icons/content/clear.jsx
new file mode 100644
index 0000000..ded46a5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/clear.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentClear = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentClear;
diff --git a/node_modules/material-ui/src/svg-icons/content/content-copy.jsx b/node_modules/material-ui/src/svg-icons/content/content-copy.jsx
new file mode 100644
index 0000000..9a14b02
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/content-copy.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentContentCopy = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentContentCopy;
diff --git a/node_modules/material-ui/src/svg-icons/content/content-cut.jsx b/node_modules/material-ui/src/svg-icons/content/content-cut.jsx
new file mode 100644
index 0000000..b261f48
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/content-cut.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentContentCut = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentContentCut;
diff --git a/node_modules/material-ui/src/svg-icons/content/content-paste.jsx b/node_modules/material-ui/src/svg-icons/content/content-paste.jsx
new file mode 100644
index 0000000..279e635
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/content-paste.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentContentPaste = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentContentPaste;
diff --git a/node_modules/material-ui/src/svg-icons/content/create.jsx b/node_modules/material-ui/src/svg-icons/content/create.jsx
new file mode 100644
index 0000000..5aa4d9c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/create.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentCreate = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentCreate;
diff --git a/node_modules/material-ui/src/svg-icons/content/drafts.jsx b/node_modules/material-ui/src/svg-icons/content/drafts.jsx
new file mode 100644
index 0000000..8784685
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/drafts.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentDrafts = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentDrafts;
diff --git a/node_modules/material-ui/src/svg-icons/content/filter-list.jsx b/node_modules/material-ui/src/svg-icons/content/filter-list.jsx
new file mode 100644
index 0000000..876bb4b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/filter-list.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentFilterList = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentFilterList;
diff --git a/node_modules/material-ui/src/svg-icons/content/flag.jsx b/node_modules/material-ui/src/svg-icons/content/flag.jsx
new file mode 100644
index 0000000..d885d8f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/flag.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentFlag = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentFlag;
diff --git a/node_modules/material-ui/src/svg-icons/content/font-download.jsx b/node_modules/material-ui/src/svg-icons/content/font-download.jsx
new file mode 100644
index 0000000..1f56af6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/font-download.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentFontDownload = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentFontDownload;
diff --git a/node_modules/material-ui/src/svg-icons/content/forward.jsx b/node_modules/material-ui/src/svg-icons/content/forward.jsx
new file mode 100644
index 0000000..1edc55b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/forward.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentForward = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentForward;
diff --git a/node_modules/material-ui/src/svg-icons/content/gesture.jsx b/node_modules/material-ui/src/svg-icons/content/gesture.jsx
new file mode 100644
index 0000000..b276145
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/gesture.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentGesture = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentGesture;
diff --git a/node_modules/material-ui/src/svg-icons/content/inbox.jsx b/node_modules/material-ui/src/svg-icons/content/inbox.jsx
new file mode 100644
index 0000000..8b43673
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/inbox.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentInbox = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentInbox;
diff --git a/node_modules/material-ui/src/svg-icons/content/link.jsx b/node_modules/material-ui/src/svg-icons/content/link.jsx
new file mode 100644
index 0000000..b26700e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/link.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentLink = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentLink;
diff --git a/node_modules/material-ui/src/svg-icons/content/mail.jsx b/node_modules/material-ui/src/svg-icons/content/mail.jsx
new file mode 100644
index 0000000..717edf3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/mail.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentMail = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentMail;
diff --git a/node_modules/material-ui/src/svg-icons/content/markunread.jsx b/node_modules/material-ui/src/svg-icons/content/markunread.jsx
new file mode 100644
index 0000000..b8f86fa
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/markunread.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentMarkunread = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentMarkunread;
diff --git a/node_modules/material-ui/src/svg-icons/content/move-to-inbox.jsx b/node_modules/material-ui/src/svg-icons/content/move-to-inbox.jsx
new file mode 100644
index 0000000..cb2c7a7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/move-to-inbox.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentMoveToInbox = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentMoveToInbox;
diff --git a/node_modules/material-ui/src/svg-icons/content/next-week.jsx b/node_modules/material-ui/src/svg-icons/content/next-week.jsx
new file mode 100644
index 0000000..cd7e983
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/next-week.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentNextWeek = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentNextWeek;
diff --git a/node_modules/material-ui/src/svg-icons/content/redo.jsx b/node_modules/material-ui/src/svg-icons/content/redo.jsx
new file mode 100644
index 0000000..cc20e77
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/redo.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentRedo = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentRedo;
diff --git a/node_modules/material-ui/src/svg-icons/content/remove-circle-outline.jsx b/node_modules/material-ui/src/svg-icons/content/remove-circle-outline.jsx
new file mode 100644
index 0000000..125bb93
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/remove-circle-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentRemoveCircleOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentRemoveCircleOutline;
diff --git a/node_modules/material-ui/src/svg-icons/content/remove-circle.jsx b/node_modules/material-ui/src/svg-icons/content/remove-circle.jsx
new file mode 100644
index 0000000..b2079b3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/remove-circle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentRemoveCircle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentRemoveCircle;
diff --git a/node_modules/material-ui/src/svg-icons/content/remove.jsx b/node_modules/material-ui/src/svg-icons/content/remove.jsx
new file mode 100644
index 0000000..49ffbd0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/remove.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentRemove = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentRemove;
diff --git a/node_modules/material-ui/src/svg-icons/content/reply-all.jsx b/node_modules/material-ui/src/svg-icons/content/reply-all.jsx
new file mode 100644
index 0000000..6340e3b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/reply-all.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentReplyAll = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentReplyAll;
diff --git a/node_modules/material-ui/src/svg-icons/content/reply.jsx b/node_modules/material-ui/src/svg-icons/content/reply.jsx
new file mode 100644
index 0000000..ad5ad4a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/reply.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentReply = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentReply;
diff --git a/node_modules/material-ui/src/svg-icons/content/report.jsx b/node_modules/material-ui/src/svg-icons/content/report.jsx
new file mode 100644
index 0000000..807e69c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/report.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentReport = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentReport;
diff --git a/node_modules/material-ui/src/svg-icons/content/save.jsx b/node_modules/material-ui/src/svg-icons/content/save.jsx
new file mode 100644
index 0000000..64a283c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/save.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentSave = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentSave;
diff --git a/node_modules/material-ui/src/svg-icons/content/select-all.jsx b/node_modules/material-ui/src/svg-icons/content/select-all.jsx
new file mode 100644
index 0000000..f0d8db9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/select-all.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentSelectAll = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentSelectAll;
diff --git a/node_modules/material-ui/src/svg-icons/content/send.jsx b/node_modules/material-ui/src/svg-icons/content/send.jsx
new file mode 100644
index 0000000..5af8816
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/send.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentSend = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentSend;
diff --git a/node_modules/material-ui/src/svg-icons/content/sort.jsx b/node_modules/material-ui/src/svg-icons/content/sort.jsx
new file mode 100644
index 0000000..0ace036
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/sort.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentSort = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentSort;
diff --git a/node_modules/material-ui/src/svg-icons/content/text-format.jsx b/node_modules/material-ui/src/svg-icons/content/text-format.jsx
new file mode 100644
index 0000000..17fa4df
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/text-format.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentTextFormat = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentTextFormat;
diff --git a/node_modules/material-ui/src/svg-icons/content/unarchive.jsx b/node_modules/material-ui/src/svg-icons/content/unarchive.jsx
new file mode 100644
index 0000000..6442ff6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/unarchive.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentUnarchive = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentUnarchive;
diff --git a/node_modules/material-ui/src/svg-icons/content/undo.jsx b/node_modules/material-ui/src/svg-icons/content/undo.jsx
new file mode 100644
index 0000000..1b56b98
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/undo.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentUndo = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentUndo;
diff --git a/node_modules/material-ui/src/svg-icons/content/weekend.jsx b/node_modules/material-ui/src/svg-icons/content/weekend.jsx
new file mode 100644
index 0000000..dcc01b9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/content/weekend.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ContentWeekend = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ContentWeekend;
diff --git a/node_modules/material-ui/src/svg-icons/device/access-alarm.jsx b/node_modules/material-ui/src/svg-icons/device/access-alarm.jsx
new file mode 100644
index 0000000..8dd0f71
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/access-alarm.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceAccessAlarm = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceAccessAlarm;
diff --git a/node_modules/material-ui/src/svg-icons/device/access-alarms.jsx b/node_modules/material-ui/src/svg-icons/device/access-alarms.jsx
new file mode 100644
index 0000000..621eed5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/access-alarms.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceAccessAlarms = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceAccessAlarms;
diff --git a/node_modules/material-ui/src/svg-icons/device/access-time.jsx b/node_modules/material-ui/src/svg-icons/device/access-time.jsx
new file mode 100644
index 0000000..eb89cef
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/access-time.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceAccessTime = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceAccessTime;
diff --git a/node_modules/material-ui/src/svg-icons/device/add-alarm.jsx b/node_modules/material-ui/src/svg-icons/device/add-alarm.jsx
new file mode 100644
index 0000000..061506d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/add-alarm.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceAddAlarm = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceAddAlarm;
diff --git a/node_modules/material-ui/src/svg-icons/device/airplanemode-active.jsx b/node_modules/material-ui/src/svg-icons/device/airplanemode-active.jsx
new file mode 100644
index 0000000..790da37
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/airplanemode-active.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceAirplanemodeActive = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceAirplanemodeActive;
diff --git a/node_modules/material-ui/src/svg-icons/device/airplanemode-inactive.jsx b/node_modules/material-ui/src/svg-icons/device/airplanemode-inactive.jsx
new file mode 100644
index 0000000..accf900
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/airplanemode-inactive.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceAirplanemodeInactive = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceAirplanemodeInactive;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-20.jsx b/node_modules/material-ui/src/svg-icons/device/battery-20.jsx
new file mode 100644
index 0000000..65cadc1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-20.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBattery20 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBattery20;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-30.jsx b/node_modules/material-ui/src/svg-icons/device/battery-30.jsx
new file mode 100644
index 0000000..5bc390f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-30.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBattery30 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBattery30;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-50.jsx b/node_modules/material-ui/src/svg-icons/device/battery-50.jsx
new file mode 100644
index 0000000..2dc62ba
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-50.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBattery50 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBattery50;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-60.jsx b/node_modules/material-ui/src/svg-icons/device/battery-60.jsx
new file mode 100644
index 0000000..db6e4fa
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-60.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBattery60 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBattery60;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-80.jsx b/node_modules/material-ui/src/svg-icons/device/battery-80.jsx
new file mode 100644
index 0000000..4ea6362
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-80.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBattery80 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBattery80;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-90.jsx b/node_modules/material-ui/src/svg-icons/device/battery-90.jsx
new file mode 100644
index 0000000..bb654ef
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-90.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBattery90 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBattery90;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-alert.jsx b/node_modules/material-ui/src/svg-icons/device/battery-alert.jsx
new file mode 100644
index 0000000..d24e6f9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-alert.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBatteryAlert = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBatteryAlert;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-charging-20.jsx b/node_modules/material-ui/src/svg-icons/device/battery-charging-20.jsx
new file mode 100644
index 0000000..9982f5e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-charging-20.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBatteryCharging20 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBatteryCharging20;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-charging-30.jsx b/node_modules/material-ui/src/svg-icons/device/battery-charging-30.jsx
new file mode 100644
index 0000000..e5c22fd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-charging-30.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBatteryCharging30 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBatteryCharging30;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-charging-50.jsx b/node_modules/material-ui/src/svg-icons/device/battery-charging-50.jsx
new file mode 100644
index 0000000..53bfb07
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-charging-50.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBatteryCharging50 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBatteryCharging50;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-charging-60.jsx b/node_modules/material-ui/src/svg-icons/device/battery-charging-60.jsx
new file mode 100644
index 0000000..48181e1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-charging-60.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBatteryCharging60 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBatteryCharging60;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-charging-80.jsx b/node_modules/material-ui/src/svg-icons/device/battery-charging-80.jsx
new file mode 100644
index 0000000..909bf54
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-charging-80.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBatteryCharging80 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBatteryCharging80;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-charging-90.jsx b/node_modules/material-ui/src/svg-icons/device/battery-charging-90.jsx
new file mode 100644
index 0000000..8a73f2c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-charging-90.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBatteryCharging90 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBatteryCharging90;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-charging-full.jsx b/node_modules/material-ui/src/svg-icons/device/battery-charging-full.jsx
new file mode 100644
index 0000000..6492bc8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-charging-full.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBatteryChargingFull = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBatteryChargingFull;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-full.jsx b/node_modules/material-ui/src/svg-icons/device/battery-full.jsx
new file mode 100644
index 0000000..4465f29
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-full.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBatteryFull = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBatteryFull;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-std.jsx b/node_modules/material-ui/src/svg-icons/device/battery-std.jsx
new file mode 100644
index 0000000..f18519c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-std.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBatteryStd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBatteryStd;
diff --git a/node_modules/material-ui/src/svg-icons/device/battery-unknown.jsx b/node_modules/material-ui/src/svg-icons/device/battery-unknown.jsx
new file mode 100644
index 0000000..37ab396
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/battery-unknown.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBatteryUnknown = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBatteryUnknown;
diff --git a/node_modules/material-ui/src/svg-icons/device/bluetooth-connected.jsx b/node_modules/material-ui/src/svg-icons/device/bluetooth-connected.jsx
new file mode 100644
index 0000000..d6f94cc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/bluetooth-connected.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBluetoothConnected = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBluetoothConnected;
diff --git a/node_modules/material-ui/src/svg-icons/device/bluetooth-disabled.jsx b/node_modules/material-ui/src/svg-icons/device/bluetooth-disabled.jsx
new file mode 100644
index 0000000..98feb6b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/bluetooth-disabled.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBluetoothDisabled = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBluetoothDisabled;
diff --git a/node_modules/material-ui/src/svg-icons/device/bluetooth-searching.jsx b/node_modules/material-ui/src/svg-icons/device/bluetooth-searching.jsx
new file mode 100644
index 0000000..7d264aa
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/bluetooth-searching.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBluetoothSearching = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBluetoothSearching;
diff --git a/node_modules/material-ui/src/svg-icons/device/bluetooth.jsx b/node_modules/material-ui/src/svg-icons/device/bluetooth.jsx
new file mode 100644
index 0000000..c6c576a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/bluetooth.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBluetooth = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBluetooth;
diff --git a/node_modules/material-ui/src/svg-icons/device/brightness-auto.jsx b/node_modules/material-ui/src/svg-icons/device/brightness-auto.jsx
new file mode 100644
index 0000000..1a8a347
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/brightness-auto.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBrightnessAuto = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBrightnessAuto;
diff --git a/node_modules/material-ui/src/svg-icons/device/brightness-high.jsx b/node_modules/material-ui/src/svg-icons/device/brightness-high.jsx
new file mode 100644
index 0000000..e66454f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/brightness-high.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBrightnessHigh = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBrightnessHigh;
diff --git a/node_modules/material-ui/src/svg-icons/device/brightness-low.jsx b/node_modules/material-ui/src/svg-icons/device/brightness-low.jsx
new file mode 100644
index 0000000..5886074
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/brightness-low.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBrightnessLow = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBrightnessLow;
diff --git a/node_modules/material-ui/src/svg-icons/device/brightness-medium.jsx b/node_modules/material-ui/src/svg-icons/device/brightness-medium.jsx
new file mode 100644
index 0000000..9192a6f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/brightness-medium.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceBrightnessMedium = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceBrightnessMedium;
diff --git a/node_modules/material-ui/src/svg-icons/device/data-usage.jsx b/node_modules/material-ui/src/svg-icons/device/data-usage.jsx
new file mode 100644
index 0000000..0fd76af
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/data-usage.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceDataUsage = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceDataUsage;
diff --git a/node_modules/material-ui/src/svg-icons/device/developer-mode.jsx b/node_modules/material-ui/src/svg-icons/device/developer-mode.jsx
new file mode 100644
index 0000000..69c704e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/developer-mode.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceDeveloperMode = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceDeveloperMode;
diff --git a/node_modules/material-ui/src/svg-icons/device/devices.jsx b/node_modules/material-ui/src/svg-icons/device/devices.jsx
new file mode 100644
index 0000000..a50a8ad
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/devices.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceDevices = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceDevices;
diff --git a/node_modules/material-ui/src/svg-icons/device/dvr.jsx b/node_modules/material-ui/src/svg-icons/device/dvr.jsx
new file mode 100644
index 0000000..258229a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/dvr.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceDvr = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceDvr;
diff --git a/node_modules/material-ui/src/svg-icons/device/gps-fixed.jsx b/node_modules/material-ui/src/svg-icons/device/gps-fixed.jsx
new file mode 100644
index 0000000..9427878
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/gps-fixed.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceGpsFixed = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceGpsFixed;
diff --git a/node_modules/material-ui/src/svg-icons/device/gps-not-fixed.jsx b/node_modules/material-ui/src/svg-icons/device/gps-not-fixed.jsx
new file mode 100644
index 0000000..7a8071b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/gps-not-fixed.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceGpsNotFixed = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceGpsNotFixed;
diff --git a/node_modules/material-ui/src/svg-icons/device/gps-off.jsx b/node_modules/material-ui/src/svg-icons/device/gps-off.jsx
new file mode 100644
index 0000000..f33be82
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/gps-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceGpsOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceGpsOff;
diff --git a/node_modules/material-ui/src/svg-icons/device/graphic-eq.jsx b/node_modules/material-ui/src/svg-icons/device/graphic-eq.jsx
new file mode 100644
index 0000000..35ef27f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/graphic-eq.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceGraphicEq = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceGraphicEq;
diff --git a/node_modules/material-ui/src/svg-icons/device/location-disabled.jsx b/node_modules/material-ui/src/svg-icons/device/location-disabled.jsx
new file mode 100644
index 0000000..82fd2bf
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/location-disabled.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceLocationDisabled = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceLocationDisabled;
diff --git a/node_modules/material-ui/src/svg-icons/device/location-searching.jsx b/node_modules/material-ui/src/svg-icons/device/location-searching.jsx
new file mode 100644
index 0000000..f325e7c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/location-searching.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceLocationSearching = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceLocationSearching;
diff --git a/node_modules/material-ui/src/svg-icons/device/network-cell.jsx b/node_modules/material-ui/src/svg-icons/device/network-cell.jsx
new file mode 100644
index 0000000..1f760e6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/network-cell.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceNetworkCell = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceNetworkCell;
diff --git a/node_modules/material-ui/src/svg-icons/device/network-wifi.jsx b/node_modules/material-ui/src/svg-icons/device/network-wifi.jsx
new file mode 100644
index 0000000..edb262a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/network-wifi.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceNetworkWifi = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceNetworkWifi;
diff --git a/node_modules/material-ui/src/svg-icons/device/nfc.jsx b/node_modules/material-ui/src/svg-icons/device/nfc.jsx
new file mode 100644
index 0000000..ef5e71e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/nfc.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceNfc = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceNfc;
diff --git a/node_modules/material-ui/src/svg-icons/device/screen-lock-landscape.jsx b/node_modules/material-ui/src/svg-icons/device/screen-lock-landscape.jsx
new file mode 100644
index 0000000..04593b0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/screen-lock-landscape.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceScreenLockLandscape = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceScreenLockLandscape;
diff --git a/node_modules/material-ui/src/svg-icons/device/screen-lock-portrait.jsx b/node_modules/material-ui/src/svg-icons/device/screen-lock-portrait.jsx
new file mode 100644
index 0000000..b3726d8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/screen-lock-portrait.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceScreenLockPortrait = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceScreenLockPortrait;
diff --git a/node_modules/material-ui/src/svg-icons/device/screen-lock-rotation.jsx b/node_modules/material-ui/src/svg-icons/device/screen-lock-rotation.jsx
new file mode 100644
index 0000000..96c6f59
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/screen-lock-rotation.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceScreenLockRotation = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceScreenLockRotation;
diff --git a/node_modules/material-ui/src/svg-icons/device/screen-rotation.jsx b/node_modules/material-ui/src/svg-icons/device/screen-rotation.jsx
new file mode 100644
index 0000000..4d3aa4c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/screen-rotation.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceScreenRotation = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceScreenRotation;
diff --git a/node_modules/material-ui/src/svg-icons/device/sd-storage.jsx b/node_modules/material-ui/src/svg-icons/device/sd-storage.jsx
new file mode 100644
index 0000000..27bb57e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/sd-storage.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSdStorage = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSdStorage;
diff --git a/node_modules/material-ui/src/svg-icons/device/settings-system-daydream.jsx b/node_modules/material-ui/src/svg-icons/device/settings-system-daydream.jsx
new file mode 100644
index 0000000..a40a724
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/settings-system-daydream.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSettingsSystemDaydream = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSettingsSystemDaydream;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-0-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-0-bar.jsx
new file mode 100644
index 0000000..d59c62b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-0-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellular0Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellular0Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-1-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-1-bar.jsx
new file mode 100644
index 0000000..e84867b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-1-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellular1Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellular1Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-2-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-2-bar.jsx
new file mode 100644
index 0000000..be172be
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-2-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellular2Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellular2Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-3-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-3-bar.jsx
new file mode 100644
index 0000000..8443879
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-3-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellular3Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellular3Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-4-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-4-bar.jsx
new file mode 100644
index 0000000..dc8a4aa
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-4-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellular4Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellular4Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-0-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-0-bar.jsx
new file mode 100644
index 0000000..e65467d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-0-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellularConnectedNoInternet0Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellularConnectedNoInternet0Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-1-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-1-bar.jsx
new file mode 100644
index 0000000..f308bc9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-1-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellularConnectedNoInternet1Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellularConnectedNoInternet1Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-2-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-2-bar.jsx
new file mode 100644
index 0000000..8f66802
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-2-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellularConnectedNoInternet2Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellularConnectedNoInternet2Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-3-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-3-bar.jsx
new file mode 100644
index 0000000..e15a0fb
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-3-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellularConnectedNoInternet3Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellularConnectedNoInternet3Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-4-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-4-bar.jsx
new file mode 100644
index 0000000..20b766a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-connected-no-internet-4-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellularConnectedNoInternet4Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellularConnectedNoInternet4Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-no-sim.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-no-sim.jsx
new file mode 100644
index 0000000..975e303
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-no-sim.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellularNoSim = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellularNoSim;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-null.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-null.jsx
new file mode 100644
index 0000000..2fc8b1d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-null.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellularNull = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellularNull;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-cellular-off.jsx b/node_modules/material-ui/src/svg-icons/device/signal-cellular-off.jsx
new file mode 100644
index 0000000..644b34d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-cellular-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalCellularOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalCellularOff;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-wifi-0-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-wifi-0-bar.jsx
new file mode 100644
index 0000000..79fad22
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-wifi-0-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalWifi0Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalWifi0Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-wifi-1-bar-lock.jsx b/node_modules/material-ui/src/svg-icons/device/signal-wifi-1-bar-lock.jsx
new file mode 100644
index 0000000..05d3e69
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-wifi-1-bar-lock.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalWifi1BarLock = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalWifi1BarLock;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-wifi-1-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-wifi-1-bar.jsx
new file mode 100644
index 0000000..7a1a819
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-wifi-1-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalWifi1Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalWifi1Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-wifi-2-bar-lock.jsx b/node_modules/material-ui/src/svg-icons/device/signal-wifi-2-bar-lock.jsx
new file mode 100644
index 0000000..e123ff2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-wifi-2-bar-lock.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalWifi2BarLock = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalWifi2BarLock;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-wifi-2-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-wifi-2-bar.jsx
new file mode 100644
index 0000000..247b975
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-wifi-2-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalWifi2Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalWifi2Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-wifi-3-bar-lock.jsx b/node_modules/material-ui/src/svg-icons/device/signal-wifi-3-bar-lock.jsx
new file mode 100644
index 0000000..f036d22
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-wifi-3-bar-lock.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalWifi3BarLock = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalWifi3BarLock;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-wifi-3-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-wifi-3-bar.jsx
new file mode 100644
index 0000000..5e38aef
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-wifi-3-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalWifi3Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalWifi3Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-wifi-4-bar-lock.jsx b/node_modules/material-ui/src/svg-icons/device/signal-wifi-4-bar-lock.jsx
new file mode 100644
index 0000000..e75addc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-wifi-4-bar-lock.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalWifi4BarLock = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalWifi4BarLock;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-wifi-4-bar.jsx b/node_modules/material-ui/src/svg-icons/device/signal-wifi-4-bar.jsx
new file mode 100644
index 0000000..99e16c5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-wifi-4-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalWifi4Bar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalWifi4Bar;
diff --git a/node_modules/material-ui/src/svg-icons/device/signal-wifi-off.jsx b/node_modules/material-ui/src/svg-icons/device/signal-wifi-off.jsx
new file mode 100644
index 0000000..60ed7c7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/signal-wifi-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceSignalWifiOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceSignalWifiOff;
diff --git a/node_modules/material-ui/src/svg-icons/device/storage.jsx b/node_modules/material-ui/src/svg-icons/device/storage.jsx
new file mode 100644
index 0000000..fa6d741
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/storage.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceStorage = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceStorage;
diff --git a/node_modules/material-ui/src/svg-icons/device/usb.jsx b/node_modules/material-ui/src/svg-icons/device/usb.jsx
new file mode 100644
index 0000000..e4647fe
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/usb.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceUsb = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceUsb;
diff --git a/node_modules/material-ui/src/svg-icons/device/wallpaper.jsx b/node_modules/material-ui/src/svg-icons/device/wallpaper.jsx
new file mode 100644
index 0000000..63efb5a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/wallpaper.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceWallpaper = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceWallpaper;
diff --git a/node_modules/material-ui/src/svg-icons/device/widgets.jsx b/node_modules/material-ui/src/svg-icons/device/widgets.jsx
new file mode 100644
index 0000000..37e2de9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/widgets.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceWidgets = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceWidgets;
diff --git a/node_modules/material-ui/src/svg-icons/device/wifi-lock.jsx b/node_modules/material-ui/src/svg-icons/device/wifi-lock.jsx
new file mode 100644
index 0000000..f1f548b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/wifi-lock.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceWifiLock = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceWifiLock;
diff --git a/node_modules/material-ui/src/svg-icons/device/wifi-tethering.jsx b/node_modules/material-ui/src/svg-icons/device/wifi-tethering.jsx
new file mode 100644
index 0000000..9d3ef88
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/device/wifi-tethering.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const DeviceWifiTethering = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default DeviceWifiTethering;
diff --git a/node_modules/material-ui/src/svg-icons/editor/attach-file.jsx b/node_modules/material-ui/src/svg-icons/editor/attach-file.jsx
new file mode 100644
index 0000000..6f07c82
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/attach-file.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorAttachFile = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorAttachFile;
diff --git a/node_modules/material-ui/src/svg-icons/editor/attach-money.jsx b/node_modules/material-ui/src/svg-icons/editor/attach-money.jsx
new file mode 100644
index 0000000..b1a8c38
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/attach-money.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorAttachMoney = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorAttachMoney;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-all.jsx b/node_modules/material-ui/src/svg-icons/editor/border-all.jsx
new file mode 100644
index 0000000..3dd0cdb
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-all.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderAll = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderAll;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-bottom.jsx b/node_modules/material-ui/src/svg-icons/editor/border-bottom.jsx
new file mode 100644
index 0000000..1ee688b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-bottom.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderBottom = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderBottom;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-clear.jsx b/node_modules/material-ui/src/svg-icons/editor/border-clear.jsx
new file mode 100644
index 0000000..1e8541d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-clear.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderClear = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderClear;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-color.jsx b/node_modules/material-ui/src/svg-icons/editor/border-color.jsx
new file mode 100644
index 0000000..7c065c0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-color.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderColor = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderColor;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-horizontal.jsx b/node_modules/material-ui/src/svg-icons/editor/border-horizontal.jsx
new file mode 100644
index 0000000..9c6bfa2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-horizontal.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderHorizontal = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderHorizontal;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-inner.jsx b/node_modules/material-ui/src/svg-icons/editor/border-inner.jsx
new file mode 100644
index 0000000..ab8d88c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-inner.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderInner = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderInner;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-left.jsx b/node_modules/material-ui/src/svg-icons/editor/border-left.jsx
new file mode 100644
index 0000000..64f8fa4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-left.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderLeft = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderLeft;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-outer.jsx b/node_modules/material-ui/src/svg-icons/editor/border-outer.jsx
new file mode 100644
index 0000000..e0be7f2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-outer.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderOuter = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderOuter;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-right.jsx b/node_modules/material-ui/src/svg-icons/editor/border-right.jsx
new file mode 100644
index 0000000..a06d904
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-right.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderRight = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderRight;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-style.jsx b/node_modules/material-ui/src/svg-icons/editor/border-style.jsx
new file mode 100644
index 0000000..fcdabee
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-style.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderStyle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderStyle;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-top.jsx b/node_modules/material-ui/src/svg-icons/editor/border-top.jsx
new file mode 100644
index 0000000..633e33d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-top.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderTop = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderTop;
diff --git a/node_modules/material-ui/src/svg-icons/editor/border-vertical.jsx b/node_modules/material-ui/src/svg-icons/editor/border-vertical.jsx
new file mode 100644
index 0000000..85362c7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/border-vertical.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorBorderVertical = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorBorderVertical;
diff --git a/node_modules/material-ui/src/svg-icons/editor/drag-handle.jsx b/node_modules/material-ui/src/svg-icons/editor/drag-handle.jsx
new file mode 100644
index 0000000..9bf777a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/drag-handle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorDragHandle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorDragHandle;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-align-center.jsx b/node_modules/material-ui/src/svg-icons/editor/format-align-center.jsx
new file mode 100644
index 0000000..b248614
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-align-center.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatAlignCenter = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatAlignCenter;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-align-justify.jsx b/node_modules/material-ui/src/svg-icons/editor/format-align-justify.jsx
new file mode 100644
index 0000000..6cbfc2c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-align-justify.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatAlignJustify = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatAlignJustify;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-align-left.jsx b/node_modules/material-ui/src/svg-icons/editor/format-align-left.jsx
new file mode 100644
index 0000000..c1e6078
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-align-left.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatAlignLeft = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatAlignLeft;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-align-right.jsx b/node_modules/material-ui/src/svg-icons/editor/format-align-right.jsx
new file mode 100644
index 0000000..38bc069
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-align-right.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatAlignRight = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatAlignRight;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-bold.jsx b/node_modules/material-ui/src/svg-icons/editor/format-bold.jsx
new file mode 100644
index 0000000..64d4ba7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-bold.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatBold = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatBold;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-clear.jsx b/node_modules/material-ui/src/svg-icons/editor/format-clear.jsx
new file mode 100644
index 0000000..84d7df6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-clear.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatClear = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatClear;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-color-fill.jsx b/node_modules/material-ui/src/svg-icons/editor/format-color-fill.jsx
new file mode 100644
index 0000000..e73f676
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-color-fill.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatColorFill = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatColorFill;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-color-reset.jsx b/node_modules/material-ui/src/svg-icons/editor/format-color-reset.jsx
new file mode 100644
index 0000000..9c6c4fa
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-color-reset.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatColorReset = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatColorReset;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-color-text.jsx b/node_modules/material-ui/src/svg-icons/editor/format-color-text.jsx
new file mode 100644
index 0000000..ff262bc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-color-text.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatColorText = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatColorText;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-indent-decrease.jsx b/node_modules/material-ui/src/svg-icons/editor/format-indent-decrease.jsx
new file mode 100644
index 0000000..12bcfa0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-indent-decrease.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatIndentDecrease = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatIndentDecrease;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-indent-increase.jsx b/node_modules/material-ui/src/svg-icons/editor/format-indent-increase.jsx
new file mode 100644
index 0000000..276394e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-indent-increase.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatIndentIncrease = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatIndentIncrease;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-italic.jsx b/node_modules/material-ui/src/svg-icons/editor/format-italic.jsx
new file mode 100644
index 0000000..92040b9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-italic.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatItalic = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatItalic;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-line-spacing.jsx b/node_modules/material-ui/src/svg-icons/editor/format-line-spacing.jsx
new file mode 100644
index 0000000..4282c23
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-line-spacing.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatLineSpacing = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatLineSpacing;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-list-bulleted.jsx b/node_modules/material-ui/src/svg-icons/editor/format-list-bulleted.jsx
new file mode 100644
index 0000000..17a3345
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-list-bulleted.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatListBulleted = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatListBulleted;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-list-numbered.jsx b/node_modules/material-ui/src/svg-icons/editor/format-list-numbered.jsx
new file mode 100644
index 0000000..d250465
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-list-numbered.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatListNumbered = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatListNumbered;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-paint.jsx b/node_modules/material-ui/src/svg-icons/editor/format-paint.jsx
new file mode 100644
index 0000000..a59edc0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-paint.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatPaint = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatPaint;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-quote.jsx b/node_modules/material-ui/src/svg-icons/editor/format-quote.jsx
new file mode 100644
index 0000000..6621001
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-quote.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatQuote = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatQuote;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-shapes.jsx b/node_modules/material-ui/src/svg-icons/editor/format-shapes.jsx
new file mode 100644
index 0000000..5d1ba90
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-shapes.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatShapes = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatShapes;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-size.jsx b/node_modules/material-ui/src/svg-icons/editor/format-size.jsx
new file mode 100644
index 0000000..c601972
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-size.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatSize = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatSize;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-strikethrough.jsx b/node_modules/material-ui/src/svg-icons/editor/format-strikethrough.jsx
new file mode 100644
index 0000000..0be2e09
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-strikethrough.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatStrikethrough = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatStrikethrough;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-textdirection-l-to-r.jsx b/node_modules/material-ui/src/svg-icons/editor/format-textdirection-l-to-r.jsx
new file mode 100644
index 0000000..97541f9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-textdirection-l-to-r.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatTextdirectionLToR = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatTextdirectionLToR;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-textdirection-r-to-l.jsx b/node_modules/material-ui/src/svg-icons/editor/format-textdirection-r-to-l.jsx
new file mode 100644
index 0000000..d70e0c7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-textdirection-r-to-l.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatTextdirectionRToL = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatTextdirectionRToL;
diff --git a/node_modules/material-ui/src/svg-icons/editor/format-underlined.jsx b/node_modules/material-ui/src/svg-icons/editor/format-underlined.jsx
new file mode 100644
index 0000000..924dcd5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/format-underlined.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFormatUnderlined = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFormatUnderlined;
diff --git a/node_modules/material-ui/src/svg-icons/editor/functions.jsx b/node_modules/material-ui/src/svg-icons/editor/functions.jsx
new file mode 100644
index 0000000..03a96de
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/functions.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorFunctions = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorFunctions;
diff --git a/node_modules/material-ui/src/svg-icons/editor/highlight.jsx b/node_modules/material-ui/src/svg-icons/editor/highlight.jsx
new file mode 100644
index 0000000..8fe16c8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/highlight.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorHighlight = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorHighlight;
diff --git a/node_modules/material-ui/src/svg-icons/editor/insert-chart.jsx b/node_modules/material-ui/src/svg-icons/editor/insert-chart.jsx
new file mode 100644
index 0000000..f0750c2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/insert-chart.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorInsertChart = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorInsertChart;
diff --git a/node_modules/material-ui/src/svg-icons/editor/insert-comment.jsx b/node_modules/material-ui/src/svg-icons/editor/insert-comment.jsx
new file mode 100644
index 0000000..41dcfd3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/insert-comment.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorInsertComment = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorInsertComment;
diff --git a/node_modules/material-ui/src/svg-icons/editor/insert-drive-file.jsx b/node_modules/material-ui/src/svg-icons/editor/insert-drive-file.jsx
new file mode 100644
index 0000000..b58c528
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/insert-drive-file.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorInsertDriveFile = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorInsertDriveFile;
diff --git a/node_modules/material-ui/src/svg-icons/editor/insert-emoticon.jsx b/node_modules/material-ui/src/svg-icons/editor/insert-emoticon.jsx
new file mode 100644
index 0000000..429d3cf
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/insert-emoticon.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorInsertEmoticon = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorInsertEmoticon;
diff --git a/node_modules/material-ui/src/svg-icons/editor/insert-invitation.jsx b/node_modules/material-ui/src/svg-icons/editor/insert-invitation.jsx
new file mode 100644
index 0000000..b7a5f44
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/insert-invitation.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorInsertInvitation = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorInsertInvitation;
diff --git a/node_modules/material-ui/src/svg-icons/editor/insert-link.jsx b/node_modules/material-ui/src/svg-icons/editor/insert-link.jsx
new file mode 100644
index 0000000..e116b0d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/insert-link.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorInsertLink = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorInsertLink;
diff --git a/node_modules/material-ui/src/svg-icons/editor/insert-photo.jsx b/node_modules/material-ui/src/svg-icons/editor/insert-photo.jsx
new file mode 100644
index 0000000..1a7ed92
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/insert-photo.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorInsertPhoto = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorInsertPhoto;
diff --git a/node_modules/material-ui/src/svg-icons/editor/linear-scale.jsx b/node_modules/material-ui/src/svg-icons/editor/linear-scale.jsx
new file mode 100644
index 0000000..4d73aa0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/linear-scale.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorLinearScale = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorLinearScale;
diff --git a/node_modules/material-ui/src/svg-icons/editor/merge-type.jsx b/node_modules/material-ui/src/svg-icons/editor/merge-type.jsx
new file mode 100644
index 0000000..b46b1fb
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/merge-type.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorMergeType = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorMergeType;
diff --git a/node_modules/material-ui/src/svg-icons/editor/mode-comment.jsx b/node_modules/material-ui/src/svg-icons/editor/mode-comment.jsx
new file mode 100644
index 0000000..9f09870
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/mode-comment.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorModeComment = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorModeComment;
diff --git a/node_modules/material-ui/src/svg-icons/editor/mode-edit.jsx b/node_modules/material-ui/src/svg-icons/editor/mode-edit.jsx
new file mode 100644
index 0000000..863c510
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/mode-edit.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorModeEdit = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorModeEdit;
diff --git a/node_modules/material-ui/src/svg-icons/editor/money-off.jsx b/node_modules/material-ui/src/svg-icons/editor/money-off.jsx
new file mode 100644
index 0000000..bee8f4d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/money-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorMoneyOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorMoneyOff;
diff --git a/node_modules/material-ui/src/svg-icons/editor/publish.jsx b/node_modules/material-ui/src/svg-icons/editor/publish.jsx
new file mode 100644
index 0000000..25b89d0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/publish.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorPublish = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorPublish;
diff --git a/node_modules/material-ui/src/svg-icons/editor/short-text.jsx b/node_modules/material-ui/src/svg-icons/editor/short-text.jsx
new file mode 100644
index 0000000..7514a08
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/short-text.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorShortText = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorShortText;
diff --git a/node_modules/material-ui/src/svg-icons/editor/space-bar.jsx b/node_modules/material-ui/src/svg-icons/editor/space-bar.jsx
new file mode 100644
index 0000000..2040078
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/space-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorSpaceBar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorSpaceBar;
diff --git a/node_modules/material-ui/src/svg-icons/editor/strikethrough-s.jsx b/node_modules/material-ui/src/svg-icons/editor/strikethrough-s.jsx
new file mode 100644
index 0000000..3cf2a98
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/strikethrough-s.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorStrikethroughS = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorStrikethroughS;
diff --git a/node_modules/material-ui/src/svg-icons/editor/text-fields.jsx b/node_modules/material-ui/src/svg-icons/editor/text-fields.jsx
new file mode 100644
index 0000000..315e78a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/text-fields.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorTextFields = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorTextFields;
diff --git a/node_modules/material-ui/src/svg-icons/editor/vertical-align-bottom.jsx b/node_modules/material-ui/src/svg-icons/editor/vertical-align-bottom.jsx
new file mode 100644
index 0000000..d016e30
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/vertical-align-bottom.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorVerticalAlignBottom = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorVerticalAlignBottom;
diff --git a/node_modules/material-ui/src/svg-icons/editor/vertical-align-center.jsx b/node_modules/material-ui/src/svg-icons/editor/vertical-align-center.jsx
new file mode 100644
index 0000000..9f33870
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/vertical-align-center.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorVerticalAlignCenter = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorVerticalAlignCenter;
diff --git a/node_modules/material-ui/src/svg-icons/editor/vertical-align-top.jsx b/node_modules/material-ui/src/svg-icons/editor/vertical-align-top.jsx
new file mode 100644
index 0000000..ced7ccf
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/vertical-align-top.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorVerticalAlignTop = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorVerticalAlignTop;
diff --git a/node_modules/material-ui/src/svg-icons/editor/wrap-text.jsx b/node_modules/material-ui/src/svg-icons/editor/wrap-text.jsx
new file mode 100644
index 0000000..47654fc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/editor/wrap-text.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const EditorWrapText = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default EditorWrapText;
diff --git a/node_modules/material-ui/src/svg-icons/file/attachment.jsx b/node_modules/material-ui/src/svg-icons/file/attachment.jsx
new file mode 100644
index 0000000..a65f54e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/attachment.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileAttachment = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileAttachment;
diff --git a/node_modules/material-ui/src/svg-icons/file/cloud-circle.jsx b/node_modules/material-ui/src/svg-icons/file/cloud-circle.jsx
new file mode 100644
index 0000000..5379992
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/cloud-circle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileCloudCircle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileCloudCircle;
diff --git a/node_modules/material-ui/src/svg-icons/file/cloud-done.jsx b/node_modules/material-ui/src/svg-icons/file/cloud-done.jsx
new file mode 100644
index 0000000..e7f933c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/cloud-done.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileCloudDone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileCloudDone;
diff --git a/node_modules/material-ui/src/svg-icons/file/cloud-download.jsx b/node_modules/material-ui/src/svg-icons/file/cloud-download.jsx
new file mode 100644
index 0000000..0a6ae18
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/cloud-download.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileCloudDownload = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileCloudDownload;
diff --git a/node_modules/material-ui/src/svg-icons/file/cloud-off.jsx b/node_modules/material-ui/src/svg-icons/file/cloud-off.jsx
new file mode 100644
index 0000000..277ab74
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/cloud-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileCloudOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileCloudOff;
diff --git a/node_modules/material-ui/src/svg-icons/file/cloud-queue.jsx b/node_modules/material-ui/src/svg-icons/file/cloud-queue.jsx
new file mode 100644
index 0000000..b423971
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/cloud-queue.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileCloudQueue = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileCloudQueue;
diff --git a/node_modules/material-ui/src/svg-icons/file/cloud-upload.jsx b/node_modules/material-ui/src/svg-icons/file/cloud-upload.jsx
new file mode 100644
index 0000000..74dd5e2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/cloud-upload.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileCloudUpload = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileCloudUpload;
diff --git a/node_modules/material-ui/src/svg-icons/file/cloud.jsx b/node_modules/material-ui/src/svg-icons/file/cloud.jsx
new file mode 100644
index 0000000..96c34ac
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/cloud.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileCloud = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileCloud;
diff --git a/node_modules/material-ui/src/svg-icons/file/create-new-folder.jsx b/node_modules/material-ui/src/svg-icons/file/create-new-folder.jsx
new file mode 100644
index 0000000..2fef09a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/create-new-folder.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileCreateNewFolder = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileCreateNewFolder;
diff --git a/node_modules/material-ui/src/svg-icons/file/file-download.jsx b/node_modules/material-ui/src/svg-icons/file/file-download.jsx
new file mode 100644
index 0000000..0bf70a5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/file-download.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileFileDownload = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileFileDownload;
diff --git a/node_modules/material-ui/src/svg-icons/file/file-upload.jsx b/node_modules/material-ui/src/svg-icons/file/file-upload.jsx
new file mode 100644
index 0000000..4eb79ab
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/file-upload.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileFileUpload = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileFileUpload;
diff --git a/node_modules/material-ui/src/svg-icons/file/folder-open.jsx b/node_modules/material-ui/src/svg-icons/file/folder-open.jsx
new file mode 100644
index 0000000..264c85d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/folder-open.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileFolderOpen = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileFolderOpen;
diff --git a/node_modules/material-ui/src/svg-icons/file/folder-shared.jsx b/node_modules/material-ui/src/svg-icons/file/folder-shared.jsx
new file mode 100644
index 0000000..25d5695
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/folder-shared.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileFolderShared = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileFolderShared;
diff --git a/node_modules/material-ui/src/svg-icons/file/folder.jsx b/node_modules/material-ui/src/svg-icons/file/folder.jsx
new file mode 100644
index 0000000..94a0839
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/file/folder.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const FileFolder = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default FileFolder;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/cast-connected.jsx b/node_modules/material-ui/src/svg-icons/hardware/cast-connected.jsx
new file mode 100644
index 0000000..95e828e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/cast-connected.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareCastConnected = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareCastConnected;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/cast.jsx b/node_modules/material-ui/src/svg-icons/hardware/cast.jsx
new file mode 100644
index 0000000..1613864
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/cast.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareCast = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareCast;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/computer.jsx b/node_modules/material-ui/src/svg-icons/hardware/computer.jsx
new file mode 100644
index 0000000..008da3c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/computer.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareComputer = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareComputer;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/desktop-mac.jsx b/node_modules/material-ui/src/svg-icons/hardware/desktop-mac.jsx
new file mode 100644
index 0000000..2ef51b0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/desktop-mac.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareDesktopMac = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareDesktopMac;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/desktop-windows.jsx b/node_modules/material-ui/src/svg-icons/hardware/desktop-windows.jsx
new file mode 100644
index 0000000..e628c16
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/desktop-windows.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareDesktopWindows = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareDesktopWindows;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/developer-board.jsx b/node_modules/material-ui/src/svg-icons/hardware/developer-board.jsx
new file mode 100644
index 0000000..66fae28
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/developer-board.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareDeveloperBoard = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareDeveloperBoard;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/device-hub.jsx b/node_modules/material-ui/src/svg-icons/hardware/device-hub.jsx
new file mode 100644
index 0000000..fd28755
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/device-hub.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareDeviceHub = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareDeviceHub;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/devices-other.jsx b/node_modules/material-ui/src/svg-icons/hardware/devices-other.jsx
new file mode 100644
index 0000000..a1f8513
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/devices-other.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareDevicesOther = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareDevicesOther;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/dock.jsx b/node_modules/material-ui/src/svg-icons/hardware/dock.jsx
new file mode 100644
index 0000000..1732272
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/dock.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareDock = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareDock;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/gamepad.jsx b/node_modules/material-ui/src/svg-icons/hardware/gamepad.jsx
new file mode 100644
index 0000000..7902f05
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/gamepad.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareGamepad = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareGamepad;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/headset-mic.jsx b/node_modules/material-ui/src/svg-icons/hardware/headset-mic.jsx
new file mode 100644
index 0000000..0295032
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/headset-mic.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareHeadsetMic = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareHeadsetMic;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/headset.jsx b/node_modules/material-ui/src/svg-icons/hardware/headset.jsx
new file mode 100644
index 0000000..6ecc2de
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/headset.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareHeadset = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareHeadset;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-down.jsx b/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-down.jsx
new file mode 100644
index 0000000..e9c9adb
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-down.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareKeyboardArrowDown = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareKeyboardArrowDown;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-left.jsx b/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-left.jsx
new file mode 100644
index 0000000..f1bb4e6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-left.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareKeyboardArrowLeft = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareKeyboardArrowLeft;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-right.jsx b/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-right.jsx
new file mode 100644
index 0000000..d71c8e6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-right.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareKeyboardArrowRight = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareKeyboardArrowRight;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-up.jsx b/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-up.jsx
new file mode 100644
index 0000000..3c43823
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/keyboard-arrow-up.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareKeyboardArrowUp = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareKeyboardArrowUp;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/keyboard-backspace.jsx b/node_modules/material-ui/src/svg-icons/hardware/keyboard-backspace.jsx
new file mode 100644
index 0000000..97605a6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/keyboard-backspace.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareKeyboardBackspace = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareKeyboardBackspace;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/keyboard-capslock.jsx b/node_modules/material-ui/src/svg-icons/hardware/keyboard-capslock.jsx
new file mode 100644
index 0000000..93608ca
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/keyboard-capslock.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareKeyboardCapslock = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareKeyboardCapslock;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/keyboard-hide.jsx b/node_modules/material-ui/src/svg-icons/hardware/keyboard-hide.jsx
new file mode 100644
index 0000000..c4f925f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/keyboard-hide.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareKeyboardHide = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareKeyboardHide;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/keyboard-return.jsx b/node_modules/material-ui/src/svg-icons/hardware/keyboard-return.jsx
new file mode 100644
index 0000000..ed41be7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/keyboard-return.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareKeyboardReturn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareKeyboardReturn;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/keyboard-tab.jsx b/node_modules/material-ui/src/svg-icons/hardware/keyboard-tab.jsx
new file mode 100644
index 0000000..b4ff69e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/keyboard-tab.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareKeyboardTab = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareKeyboardTab;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/keyboard-voice.jsx b/node_modules/material-ui/src/svg-icons/hardware/keyboard-voice.jsx
new file mode 100644
index 0000000..f496e0e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/keyboard-voice.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareKeyboardVoice = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareKeyboardVoice;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/keyboard.jsx b/node_modules/material-ui/src/svg-icons/hardware/keyboard.jsx
new file mode 100644
index 0000000..f6bbdc6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/keyboard.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareKeyboard = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareKeyboard;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/laptop-chromebook.jsx b/node_modules/material-ui/src/svg-icons/hardware/laptop-chromebook.jsx
new file mode 100644
index 0000000..dd79673
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/laptop-chromebook.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareLaptopChromebook = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareLaptopChromebook;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/laptop-mac.jsx b/node_modules/material-ui/src/svg-icons/hardware/laptop-mac.jsx
new file mode 100644
index 0000000..a6b4977
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/laptop-mac.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareLaptopMac = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareLaptopMac;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/laptop-windows.jsx b/node_modules/material-ui/src/svg-icons/hardware/laptop-windows.jsx
new file mode 100644
index 0000000..1e59870
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/laptop-windows.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareLaptopWindows = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareLaptopWindows;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/laptop.jsx b/node_modules/material-ui/src/svg-icons/hardware/laptop.jsx
new file mode 100644
index 0000000..2035b42
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/laptop.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareLaptop = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareLaptop;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/memory.jsx b/node_modules/material-ui/src/svg-icons/hardware/memory.jsx
new file mode 100644
index 0000000..16ee8af
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/memory.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareMemory = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareMemory;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/mouse.jsx b/node_modules/material-ui/src/svg-icons/hardware/mouse.jsx
new file mode 100644
index 0000000..5bb62db
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/mouse.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareMouse = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareMouse;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/phone-android.jsx b/node_modules/material-ui/src/svg-icons/hardware/phone-android.jsx
new file mode 100644
index 0000000..5477dc9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/phone-android.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwarePhoneAndroid = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwarePhoneAndroid;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/phone-iphone.jsx b/node_modules/material-ui/src/svg-icons/hardware/phone-iphone.jsx
new file mode 100644
index 0000000..6eab2f0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/phone-iphone.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwarePhoneIphone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwarePhoneIphone;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/phonelink-off.jsx b/node_modules/material-ui/src/svg-icons/hardware/phonelink-off.jsx
new file mode 100644
index 0000000..d645741
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/phonelink-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwarePhonelinkOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwarePhonelinkOff;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/phonelink.jsx b/node_modules/material-ui/src/svg-icons/hardware/phonelink.jsx
new file mode 100644
index 0000000..fe25b88
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/phonelink.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwarePhonelink = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwarePhonelink;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/power-input.jsx b/node_modules/material-ui/src/svg-icons/hardware/power-input.jsx
new file mode 100644
index 0000000..c884cad
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/power-input.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwarePowerInput = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwarePowerInput;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/router.jsx b/node_modules/material-ui/src/svg-icons/hardware/router.jsx
new file mode 100644
index 0000000..2683695
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/router.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareRouter = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareRouter;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/scanner.jsx b/node_modules/material-ui/src/svg-icons/hardware/scanner.jsx
new file mode 100644
index 0000000..b5aa8b1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/scanner.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareScanner = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareScanner;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/security.jsx b/node_modules/material-ui/src/svg-icons/hardware/security.jsx
new file mode 100644
index 0000000..6619c7b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/security.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareSecurity = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareSecurity;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/sim-card.jsx b/node_modules/material-ui/src/svg-icons/hardware/sim-card.jsx
new file mode 100644
index 0000000..9315b95
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/sim-card.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareSimCard = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareSimCard;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/smartphone.jsx b/node_modules/material-ui/src/svg-icons/hardware/smartphone.jsx
new file mode 100644
index 0000000..2b7ec13
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/smartphone.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareSmartphone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareSmartphone;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/speaker-group.jsx b/node_modules/material-ui/src/svg-icons/hardware/speaker-group.jsx
new file mode 100644
index 0000000..f8ea181
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/speaker-group.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareSpeakerGroup = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareSpeakerGroup;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/speaker.jsx b/node_modules/material-ui/src/svg-icons/hardware/speaker.jsx
new file mode 100644
index 0000000..ea1b431
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/speaker.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareSpeaker = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareSpeaker;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/tablet-android.jsx b/node_modules/material-ui/src/svg-icons/hardware/tablet-android.jsx
new file mode 100644
index 0000000..996b1f6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/tablet-android.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareTabletAndroid = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareTabletAndroid;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/tablet-mac.jsx b/node_modules/material-ui/src/svg-icons/hardware/tablet-mac.jsx
new file mode 100644
index 0000000..fbb0cfb
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/tablet-mac.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareTabletMac = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareTabletMac;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/tablet.jsx b/node_modules/material-ui/src/svg-icons/hardware/tablet.jsx
new file mode 100644
index 0000000..6257d41
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/tablet.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareTablet = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareTablet;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/toys.jsx b/node_modules/material-ui/src/svg-icons/hardware/toys.jsx
new file mode 100644
index 0000000..7d02768
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/toys.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareToys = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareToys;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/tv.jsx b/node_modules/material-ui/src/svg-icons/hardware/tv.jsx
new file mode 100644
index 0000000..557f286
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/tv.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareTv = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareTv;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/videogame-asset.jsx b/node_modules/material-ui/src/svg-icons/hardware/videogame-asset.jsx
new file mode 100644
index 0000000..6fed4d3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/videogame-asset.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareVideogameAsset = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareVideogameAsset;
diff --git a/node_modules/material-ui/src/svg-icons/hardware/watch.jsx b/node_modules/material-ui/src/svg-icons/hardware/watch.jsx
new file mode 100644
index 0000000..b57180e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/hardware/watch.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const HardwareWatch = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default HardwareWatch;
diff --git a/node_modules/material-ui/src/svg-icons/image/add-a-photo.jsx b/node_modules/material-ui/src/svg-icons/image/add-a-photo.jsx
new file mode 100644
index 0000000..dfd6f09
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/add-a-photo.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageAddAPhoto = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageAddAPhoto;
diff --git a/node_modules/material-ui/src/svg-icons/image/add-to-photos.jsx b/node_modules/material-ui/src/svg-icons/image/add-to-photos.jsx
new file mode 100644
index 0000000..3f10993
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/add-to-photos.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageAddToPhotos = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageAddToPhotos;
diff --git a/node_modules/material-ui/src/svg-icons/image/adjust.jsx b/node_modules/material-ui/src/svg-icons/image/adjust.jsx
new file mode 100644
index 0000000..53537a7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/adjust.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageAdjust = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageAdjust;
diff --git a/node_modules/material-ui/src/svg-icons/image/assistant-photo.jsx b/node_modules/material-ui/src/svg-icons/image/assistant-photo.jsx
new file mode 100644
index 0000000..0e45620
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/assistant-photo.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageAssistantPhoto = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageAssistantPhoto;
diff --git a/node_modules/material-ui/src/svg-icons/image/assistant.jsx b/node_modules/material-ui/src/svg-icons/image/assistant.jsx
new file mode 100644
index 0000000..4557978
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/assistant.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageAssistant = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageAssistant;
diff --git a/node_modules/material-ui/src/svg-icons/image/audiotrack.jsx b/node_modules/material-ui/src/svg-icons/image/audiotrack.jsx
new file mode 100644
index 0000000..e868d81
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/audiotrack.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageAudiotrack = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageAudiotrack;
diff --git a/node_modules/material-ui/src/svg-icons/image/blur-circular.jsx b/node_modules/material-ui/src/svg-icons/image/blur-circular.jsx
new file mode 100644
index 0000000..ee00113
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/blur-circular.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBlurCircular = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBlurCircular;
diff --git a/node_modules/material-ui/src/svg-icons/image/blur-linear.jsx b/node_modules/material-ui/src/svg-icons/image/blur-linear.jsx
new file mode 100644
index 0000000..ba014f7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/blur-linear.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBlurLinear = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBlurLinear;
diff --git a/node_modules/material-ui/src/svg-icons/image/blur-off.jsx b/node_modules/material-ui/src/svg-icons/image/blur-off.jsx
new file mode 100644
index 0000000..e2bcfed
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/blur-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBlurOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBlurOff;
diff --git a/node_modules/material-ui/src/svg-icons/image/blur-on.jsx b/node_modules/material-ui/src/svg-icons/image/blur-on.jsx
new file mode 100644
index 0000000..8740e98
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/blur-on.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBlurOn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBlurOn;
diff --git a/node_modules/material-ui/src/svg-icons/image/brightness-1.jsx b/node_modules/material-ui/src/svg-icons/image/brightness-1.jsx
new file mode 100644
index 0000000..a810a40
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/brightness-1.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBrightness1 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBrightness1;
diff --git a/node_modules/material-ui/src/svg-icons/image/brightness-2.jsx b/node_modules/material-ui/src/svg-icons/image/brightness-2.jsx
new file mode 100644
index 0000000..e1c46e2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/brightness-2.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBrightness2 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBrightness2;
diff --git a/node_modules/material-ui/src/svg-icons/image/brightness-3.jsx b/node_modules/material-ui/src/svg-icons/image/brightness-3.jsx
new file mode 100644
index 0000000..08fefc6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/brightness-3.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBrightness3 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBrightness3;
diff --git a/node_modules/material-ui/src/svg-icons/image/brightness-4.jsx b/node_modules/material-ui/src/svg-icons/image/brightness-4.jsx
new file mode 100644
index 0000000..83b1735
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/brightness-4.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBrightness4 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBrightness4;
diff --git a/node_modules/material-ui/src/svg-icons/image/brightness-5.jsx b/node_modules/material-ui/src/svg-icons/image/brightness-5.jsx
new file mode 100644
index 0000000..e25fbe4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/brightness-5.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBrightness5 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBrightness5;
diff --git a/node_modules/material-ui/src/svg-icons/image/brightness-6.jsx b/node_modules/material-ui/src/svg-icons/image/brightness-6.jsx
new file mode 100644
index 0000000..ae69fd1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/brightness-6.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBrightness6 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBrightness6;
diff --git a/node_modules/material-ui/src/svg-icons/image/brightness-7.jsx b/node_modules/material-ui/src/svg-icons/image/brightness-7.jsx
new file mode 100644
index 0000000..93cd2b0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/brightness-7.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBrightness7 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBrightness7;
diff --git a/node_modules/material-ui/src/svg-icons/image/broken-image.jsx b/node_modules/material-ui/src/svg-icons/image/broken-image.jsx
new file mode 100644
index 0000000..d64f9e4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/broken-image.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBrokenImage = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBrokenImage;
diff --git a/node_modules/material-ui/src/svg-icons/image/brush.jsx b/node_modules/material-ui/src/svg-icons/image/brush.jsx
new file mode 100644
index 0000000..c407717
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/brush.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageBrush = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageBrush;
diff --git a/node_modules/material-ui/src/svg-icons/image/camera-alt.jsx b/node_modules/material-ui/src/svg-icons/image/camera-alt.jsx
new file mode 100644
index 0000000..1b716b2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/camera-alt.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCameraAlt = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCameraAlt;
diff --git a/node_modules/material-ui/src/svg-icons/image/camera-front.jsx b/node_modules/material-ui/src/svg-icons/image/camera-front.jsx
new file mode 100644
index 0000000..46e9997
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/camera-front.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCameraFront = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCameraFront;
diff --git a/node_modules/material-ui/src/svg-icons/image/camera-rear.jsx b/node_modules/material-ui/src/svg-icons/image/camera-rear.jsx
new file mode 100644
index 0000000..ab750fd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/camera-rear.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCameraRear = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCameraRear;
diff --git a/node_modules/material-ui/src/svg-icons/image/camera-roll.jsx b/node_modules/material-ui/src/svg-icons/image/camera-roll.jsx
new file mode 100644
index 0000000..01ebd15
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/camera-roll.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCameraRoll = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCameraRoll;
diff --git a/node_modules/material-ui/src/svg-icons/image/camera.jsx b/node_modules/material-ui/src/svg-icons/image/camera.jsx
new file mode 100644
index 0000000..40430ff
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/camera.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCamera = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCamera;
diff --git a/node_modules/material-ui/src/svg-icons/image/center-focus-strong.jsx b/node_modules/material-ui/src/svg-icons/image/center-focus-strong.jsx
new file mode 100644
index 0000000..7702ee4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/center-focus-strong.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCenterFocusStrong = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCenterFocusStrong;
diff --git a/node_modules/material-ui/src/svg-icons/image/center-focus-weak.jsx b/node_modules/material-ui/src/svg-icons/image/center-focus-weak.jsx
new file mode 100644
index 0000000..379f310
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/center-focus-weak.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCenterFocusWeak = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCenterFocusWeak;
diff --git a/node_modules/material-ui/src/svg-icons/image/collections-bookmark.jsx b/node_modules/material-ui/src/svg-icons/image/collections-bookmark.jsx
new file mode 100644
index 0000000..7844fce
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/collections-bookmark.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCollectionsBookmark = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCollectionsBookmark;
diff --git a/node_modules/material-ui/src/svg-icons/image/collections.jsx b/node_modules/material-ui/src/svg-icons/image/collections.jsx
new file mode 100644
index 0000000..b6acfc0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/collections.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCollections = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCollections;
diff --git a/node_modules/material-ui/src/svg-icons/image/color-lens.jsx b/node_modules/material-ui/src/svg-icons/image/color-lens.jsx
new file mode 100644
index 0000000..ca19b3f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/color-lens.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageColorLens = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageColorLens;
diff --git a/node_modules/material-ui/src/svg-icons/image/colorize.jsx b/node_modules/material-ui/src/svg-icons/image/colorize.jsx
new file mode 100644
index 0000000..d4403b7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/colorize.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageColorize = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageColorize;
diff --git a/node_modules/material-ui/src/svg-icons/image/compare.jsx b/node_modules/material-ui/src/svg-icons/image/compare.jsx
new file mode 100644
index 0000000..ff2ba92
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/compare.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCompare = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCompare;
diff --git a/node_modules/material-ui/src/svg-icons/image/control-point-duplicate.jsx b/node_modules/material-ui/src/svg-icons/image/control-point-duplicate.jsx
new file mode 100644
index 0000000..0dbf3bc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/control-point-duplicate.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageControlPointDuplicate = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageControlPointDuplicate;
diff --git a/node_modules/material-ui/src/svg-icons/image/control-point.jsx b/node_modules/material-ui/src/svg-icons/image/control-point.jsx
new file mode 100644
index 0000000..26acba6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/control-point.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageControlPoint = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageControlPoint;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop-16-9.jsx b/node_modules/material-ui/src/svg-icons/image/crop-16-9.jsx
new file mode 100644
index 0000000..4da868e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop-16-9.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCrop169 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCrop169;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop-3-2.jsx b/node_modules/material-ui/src/svg-icons/image/crop-3-2.jsx
new file mode 100644
index 0000000..73b55e7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop-3-2.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCrop32 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCrop32;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop-5-4.jsx b/node_modules/material-ui/src/svg-icons/image/crop-5-4.jsx
new file mode 100644
index 0000000..4d28824
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop-5-4.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCrop54 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCrop54;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop-7-5.jsx b/node_modules/material-ui/src/svg-icons/image/crop-7-5.jsx
new file mode 100644
index 0000000..cda454e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop-7-5.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCrop75 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCrop75;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop-din.jsx b/node_modules/material-ui/src/svg-icons/image/crop-din.jsx
new file mode 100644
index 0000000..4681b3f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop-din.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCropDin = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCropDin;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop-free.jsx b/node_modules/material-ui/src/svg-icons/image/crop-free.jsx
new file mode 100644
index 0000000..221b283
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop-free.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCropFree = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCropFree;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop-landscape.jsx b/node_modules/material-ui/src/svg-icons/image/crop-landscape.jsx
new file mode 100644
index 0000000..acebf89
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop-landscape.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCropLandscape = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCropLandscape;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop-original.jsx b/node_modules/material-ui/src/svg-icons/image/crop-original.jsx
new file mode 100644
index 0000000..fa2e1cb
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop-original.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCropOriginal = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCropOriginal;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop-portrait.jsx b/node_modules/material-ui/src/svg-icons/image/crop-portrait.jsx
new file mode 100644
index 0000000..e26ec44
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop-portrait.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCropPortrait = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCropPortrait;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop-rotate.jsx b/node_modules/material-ui/src/svg-icons/image/crop-rotate.jsx
new file mode 100644
index 0000000..d123202
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop-rotate.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCropRotate = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCropRotate;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop-square.jsx b/node_modules/material-ui/src/svg-icons/image/crop-square.jsx
new file mode 100644
index 0000000..036ba61
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop-square.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCropSquare = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCropSquare;
diff --git a/node_modules/material-ui/src/svg-icons/image/crop.jsx b/node_modules/material-ui/src/svg-icons/image/crop.jsx
new file mode 100644
index 0000000..5aeca05
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/crop.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageCrop = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageCrop;
diff --git a/node_modules/material-ui/src/svg-icons/image/dehaze.jsx b/node_modules/material-ui/src/svg-icons/image/dehaze.jsx
new file mode 100644
index 0000000..1139fb3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/dehaze.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageDehaze = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageDehaze;
diff --git a/node_modules/material-ui/src/svg-icons/image/details.jsx b/node_modules/material-ui/src/svg-icons/image/details.jsx
new file mode 100644
index 0000000..b880ae6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/details.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageDetails = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageDetails;
diff --git a/node_modules/material-ui/src/svg-icons/image/edit.jsx b/node_modules/material-ui/src/svg-icons/image/edit.jsx
new file mode 100644
index 0000000..482ac82
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/edit.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageEdit = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageEdit;
diff --git a/node_modules/material-ui/src/svg-icons/image/exposure-neg-1.jsx b/node_modules/material-ui/src/svg-icons/image/exposure-neg-1.jsx
new file mode 100644
index 0000000..03f8c5d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/exposure-neg-1.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageExposureNeg1 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageExposureNeg1;
diff --git a/node_modules/material-ui/src/svg-icons/image/exposure-neg-2.jsx b/node_modules/material-ui/src/svg-icons/image/exposure-neg-2.jsx
new file mode 100644
index 0000000..2a91600
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/exposure-neg-2.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageExposureNeg2 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageExposureNeg2;
diff --git a/node_modules/material-ui/src/svg-icons/image/exposure-plus-1.jsx b/node_modules/material-ui/src/svg-icons/image/exposure-plus-1.jsx
new file mode 100644
index 0000000..f3b11d3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/exposure-plus-1.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageExposurePlus1 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageExposurePlus1;
diff --git a/node_modules/material-ui/src/svg-icons/image/exposure-plus-2.jsx b/node_modules/material-ui/src/svg-icons/image/exposure-plus-2.jsx
new file mode 100644
index 0000000..ad2a962
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/exposure-plus-2.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageExposurePlus2 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageExposurePlus2;
diff --git a/node_modules/material-ui/src/svg-icons/image/exposure-zero.jsx b/node_modules/material-ui/src/svg-icons/image/exposure-zero.jsx
new file mode 100644
index 0000000..5873da3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/exposure-zero.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageExposureZero = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageExposureZero;
diff --git a/node_modules/material-ui/src/svg-icons/image/exposure.jsx b/node_modules/material-ui/src/svg-icons/image/exposure.jsx
new file mode 100644
index 0000000..1f225cb
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/exposure.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageExposure = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageExposure;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-1.jsx b/node_modules/material-ui/src/svg-icons/image/filter-1.jsx
new file mode 100644
index 0000000..ac3e231
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-1.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilter1 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilter1;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-2.jsx b/node_modules/material-ui/src/svg-icons/image/filter-2.jsx
new file mode 100644
index 0000000..ff6d879
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-2.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilter2 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilter2;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-3.jsx b/node_modules/material-ui/src/svg-icons/image/filter-3.jsx
new file mode 100644
index 0000000..dfb11cc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-3.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilter3 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilter3;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-4.jsx b/node_modules/material-ui/src/svg-icons/image/filter-4.jsx
new file mode 100644
index 0000000..0eb59a6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-4.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilter4 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilter4;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-5.jsx b/node_modules/material-ui/src/svg-icons/image/filter-5.jsx
new file mode 100644
index 0000000..fff65cd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-5.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilter5 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilter5;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-6.jsx b/node_modules/material-ui/src/svg-icons/image/filter-6.jsx
new file mode 100644
index 0000000..f5900ff
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-6.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilter6 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilter6;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-7.jsx b/node_modules/material-ui/src/svg-icons/image/filter-7.jsx
new file mode 100644
index 0000000..333adbe
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-7.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilter7 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilter7;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-8.jsx b/node_modules/material-ui/src/svg-icons/image/filter-8.jsx
new file mode 100644
index 0000000..dd927e6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-8.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilter8 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilter8;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-9-plus.jsx b/node_modules/material-ui/src/svg-icons/image/filter-9-plus.jsx
new file mode 100644
index 0000000..896da77
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-9-plus.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilter9Plus = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilter9Plus;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-9.jsx b/node_modules/material-ui/src/svg-icons/image/filter-9.jsx
new file mode 100644
index 0000000..3d1ab07
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-9.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilter9 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilter9;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-b-and-w.jsx b/node_modules/material-ui/src/svg-icons/image/filter-b-and-w.jsx
new file mode 100644
index 0000000..4a3a22c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-b-and-w.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilterBAndW = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilterBAndW;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-center-focus.jsx b/node_modules/material-ui/src/svg-icons/image/filter-center-focus.jsx
new file mode 100644
index 0000000..95f6372
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-center-focus.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilterCenterFocus = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilterCenterFocus;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-drama.jsx b/node_modules/material-ui/src/svg-icons/image/filter-drama.jsx
new file mode 100644
index 0000000..c0a4922
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-drama.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilterDrama = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilterDrama;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-frames.jsx b/node_modules/material-ui/src/svg-icons/image/filter-frames.jsx
new file mode 100644
index 0000000..58b113b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-frames.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilterFrames = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilterFrames;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-hdr.jsx b/node_modules/material-ui/src/svg-icons/image/filter-hdr.jsx
new file mode 100644
index 0000000..01b3afc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-hdr.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilterHdr = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilterHdr;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-none.jsx b/node_modules/material-ui/src/svg-icons/image/filter-none.jsx
new file mode 100644
index 0000000..ed10357
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-none.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilterNone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilterNone;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-tilt-shift.jsx b/node_modules/material-ui/src/svg-icons/image/filter-tilt-shift.jsx
new file mode 100644
index 0000000..f61b73c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-tilt-shift.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilterTiltShift = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilterTiltShift;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter-vintage.jsx b/node_modules/material-ui/src/svg-icons/image/filter-vintage.jsx
new file mode 100644
index 0000000..6476f19
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter-vintage.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilterVintage = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilterVintage;
diff --git a/node_modules/material-ui/src/svg-icons/image/filter.jsx b/node_modules/material-ui/src/svg-icons/image/filter.jsx
new file mode 100644
index 0000000..a2dbc81
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/filter.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFilter = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFilter;
diff --git a/node_modules/material-ui/src/svg-icons/image/flare.jsx b/node_modules/material-ui/src/svg-icons/image/flare.jsx
new file mode 100644
index 0000000..83cc472
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/flare.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFlare = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFlare;
diff --git a/node_modules/material-ui/src/svg-icons/image/flash-auto.jsx b/node_modules/material-ui/src/svg-icons/image/flash-auto.jsx
new file mode 100644
index 0000000..deade72
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/flash-auto.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFlashAuto = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFlashAuto;
diff --git a/node_modules/material-ui/src/svg-icons/image/flash-off.jsx b/node_modules/material-ui/src/svg-icons/image/flash-off.jsx
new file mode 100644
index 0000000..2b776f0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/flash-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFlashOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFlashOff;
diff --git a/node_modules/material-ui/src/svg-icons/image/flash-on.jsx b/node_modules/material-ui/src/svg-icons/image/flash-on.jsx
new file mode 100644
index 0000000..0dd8d0b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/flash-on.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFlashOn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFlashOn;
diff --git a/node_modules/material-ui/src/svg-icons/image/flip.jsx b/node_modules/material-ui/src/svg-icons/image/flip.jsx
new file mode 100644
index 0000000..d039a56
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/flip.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageFlip = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageFlip;
diff --git a/node_modules/material-ui/src/svg-icons/image/gradient.jsx b/node_modules/material-ui/src/svg-icons/image/gradient.jsx
new file mode 100644
index 0000000..2c71463
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/gradient.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageGradient = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageGradient;
diff --git a/node_modules/material-ui/src/svg-icons/image/grain.jsx b/node_modules/material-ui/src/svg-icons/image/grain.jsx
new file mode 100644
index 0000000..6de2781
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/grain.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageGrain = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageGrain;
diff --git a/node_modules/material-ui/src/svg-icons/image/grid-off.jsx b/node_modules/material-ui/src/svg-icons/image/grid-off.jsx
new file mode 100644
index 0000000..31a7f13
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/grid-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageGridOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageGridOff;
diff --git a/node_modules/material-ui/src/svg-icons/image/grid-on.jsx b/node_modules/material-ui/src/svg-icons/image/grid-on.jsx
new file mode 100644
index 0000000..354c12a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/grid-on.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageGridOn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageGridOn;
diff --git a/node_modules/material-ui/src/svg-icons/image/hdr-off.jsx b/node_modules/material-ui/src/svg-icons/image/hdr-off.jsx
new file mode 100644
index 0000000..60be134
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/hdr-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageHdrOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageHdrOff;
diff --git a/node_modules/material-ui/src/svg-icons/image/hdr-on.jsx b/node_modules/material-ui/src/svg-icons/image/hdr-on.jsx
new file mode 100644
index 0000000..f6ef2a0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/hdr-on.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageHdrOn = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageHdrOn;
diff --git a/node_modules/material-ui/src/svg-icons/image/hdr-strong.jsx b/node_modules/material-ui/src/svg-icons/image/hdr-strong.jsx
new file mode 100644
index 0000000..9d1a60f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/hdr-strong.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageHdrStrong = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageHdrStrong;
diff --git a/node_modules/material-ui/src/svg-icons/image/hdr-weak.jsx b/node_modules/material-ui/src/svg-icons/image/hdr-weak.jsx
new file mode 100644
index 0000000..d81b0f7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/hdr-weak.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageHdrWeak = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageHdrWeak;
diff --git a/node_modules/material-ui/src/svg-icons/image/healing.jsx b/node_modules/material-ui/src/svg-icons/image/healing.jsx
new file mode 100644
index 0000000..707ab45
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/healing.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageHealing = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageHealing;
diff --git a/node_modules/material-ui/src/svg-icons/image/image-aspect-ratio.jsx b/node_modules/material-ui/src/svg-icons/image/image-aspect-ratio.jsx
new file mode 100644
index 0000000..8cb3793
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/image-aspect-ratio.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageImageAspectRatio = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageImageAspectRatio;
diff --git a/node_modules/material-ui/src/svg-icons/image/image.jsx b/node_modules/material-ui/src/svg-icons/image/image.jsx
new file mode 100644
index 0000000..28c3947
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/image.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageImage = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageImage;
diff --git a/node_modules/material-ui/src/svg-icons/image/iso.jsx b/node_modules/material-ui/src/svg-icons/image/iso.jsx
new file mode 100644
index 0000000..90732b4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/iso.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageIso = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageIso;
diff --git a/node_modules/material-ui/src/svg-icons/image/landscape.jsx b/node_modules/material-ui/src/svg-icons/image/landscape.jsx
new file mode 100644
index 0000000..aba24ec
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/landscape.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLandscape = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLandscape;
diff --git a/node_modules/material-ui/src/svg-icons/image/leak-add.jsx b/node_modules/material-ui/src/svg-icons/image/leak-add.jsx
new file mode 100644
index 0000000..f5cc539
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/leak-add.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLeakAdd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLeakAdd;
diff --git a/node_modules/material-ui/src/svg-icons/image/leak-remove.jsx b/node_modules/material-ui/src/svg-icons/image/leak-remove.jsx
new file mode 100644
index 0000000..5615ec0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/leak-remove.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLeakRemove = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLeakRemove;
diff --git a/node_modules/material-ui/src/svg-icons/image/lens.jsx b/node_modules/material-ui/src/svg-icons/image/lens.jsx
new file mode 100644
index 0000000..ed9f5df
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/lens.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLens = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLens;
diff --git a/node_modules/material-ui/src/svg-icons/image/linked-camera.jsx b/node_modules/material-ui/src/svg-icons/image/linked-camera.jsx
new file mode 100644
index 0000000..064d02d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/linked-camera.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLinkedCamera = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLinkedCamera;
diff --git a/node_modules/material-ui/src/svg-icons/image/looks-3.jsx b/node_modules/material-ui/src/svg-icons/image/looks-3.jsx
new file mode 100644
index 0000000..f6a21d8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/looks-3.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLooks3 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLooks3;
diff --git a/node_modules/material-ui/src/svg-icons/image/looks-4.jsx b/node_modules/material-ui/src/svg-icons/image/looks-4.jsx
new file mode 100644
index 0000000..d4d4dc1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/looks-4.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLooks4 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLooks4;
diff --git a/node_modules/material-ui/src/svg-icons/image/looks-5.jsx b/node_modules/material-ui/src/svg-icons/image/looks-5.jsx
new file mode 100644
index 0000000..ccd54ae
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/looks-5.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLooks5 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLooks5;
diff --git a/node_modules/material-ui/src/svg-icons/image/looks-6.jsx b/node_modules/material-ui/src/svg-icons/image/looks-6.jsx
new file mode 100644
index 0000000..e766b41
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/looks-6.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLooks6 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLooks6;
diff --git a/node_modules/material-ui/src/svg-icons/image/looks-one.jsx b/node_modules/material-ui/src/svg-icons/image/looks-one.jsx
new file mode 100644
index 0000000..64ba956
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/looks-one.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLooksOne = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLooksOne;
diff --git a/node_modules/material-ui/src/svg-icons/image/looks-two.jsx b/node_modules/material-ui/src/svg-icons/image/looks-two.jsx
new file mode 100644
index 0000000..649bb8d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/looks-two.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLooksTwo = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLooksTwo;
diff --git a/node_modules/material-ui/src/svg-icons/image/looks.jsx b/node_modules/material-ui/src/svg-icons/image/looks.jsx
new file mode 100644
index 0000000..711ab7c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/looks.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLooks = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLooks;
diff --git a/node_modules/material-ui/src/svg-icons/image/loupe.jsx b/node_modules/material-ui/src/svg-icons/image/loupe.jsx
new file mode 100644
index 0000000..0ee1838
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/loupe.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageLoupe = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageLoupe;
diff --git a/node_modules/material-ui/src/svg-icons/image/monochrome-photos.jsx b/node_modules/material-ui/src/svg-icons/image/monochrome-photos.jsx
new file mode 100644
index 0000000..8d3f553
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/monochrome-photos.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageMonochromePhotos = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageMonochromePhotos;
diff --git a/node_modules/material-ui/src/svg-icons/image/movie-creation.jsx b/node_modules/material-ui/src/svg-icons/image/movie-creation.jsx
new file mode 100644
index 0000000..9ead3dd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/movie-creation.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageMovieCreation = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageMovieCreation;
diff --git a/node_modules/material-ui/src/svg-icons/image/movie-filter.jsx b/node_modules/material-ui/src/svg-icons/image/movie-filter.jsx
new file mode 100644
index 0000000..5c56f78
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/movie-filter.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageMovieFilter = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageMovieFilter;
diff --git a/node_modules/material-ui/src/svg-icons/image/music-note.jsx b/node_modules/material-ui/src/svg-icons/image/music-note.jsx
new file mode 100644
index 0000000..f054753
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/music-note.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageMusicNote = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageMusicNote;
diff --git a/node_modules/material-ui/src/svg-icons/image/nature-people.jsx b/node_modules/material-ui/src/svg-icons/image/nature-people.jsx
new file mode 100644
index 0000000..da4055b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/nature-people.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageNaturePeople = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageNaturePeople;
diff --git a/node_modules/material-ui/src/svg-icons/image/nature.jsx b/node_modules/material-ui/src/svg-icons/image/nature.jsx
new file mode 100644
index 0000000..db1e4b3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/nature.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageNature = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageNature;
diff --git a/node_modules/material-ui/src/svg-icons/image/navigate-before.jsx b/node_modules/material-ui/src/svg-icons/image/navigate-before.jsx
new file mode 100644
index 0000000..25022b6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/navigate-before.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageNavigateBefore = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageNavigateBefore;
diff --git a/node_modules/material-ui/src/svg-icons/image/navigate-next.jsx b/node_modules/material-ui/src/svg-icons/image/navigate-next.jsx
new file mode 100644
index 0000000..e78324a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/navigate-next.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageNavigateNext = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageNavigateNext;
diff --git a/node_modules/material-ui/src/svg-icons/image/palette.jsx b/node_modules/material-ui/src/svg-icons/image/palette.jsx
new file mode 100644
index 0000000..3e81d39
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/palette.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePalette = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePalette;
diff --git a/node_modules/material-ui/src/svg-icons/image/panorama-fish-eye.jsx b/node_modules/material-ui/src/svg-icons/image/panorama-fish-eye.jsx
new file mode 100644
index 0000000..5e5a152
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/panorama-fish-eye.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePanoramaFishEye = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePanoramaFishEye;
diff --git a/node_modules/material-ui/src/svg-icons/image/panorama-horizontal.jsx b/node_modules/material-ui/src/svg-icons/image/panorama-horizontal.jsx
new file mode 100644
index 0000000..330f81e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/panorama-horizontal.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePanoramaHorizontal = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePanoramaHorizontal;
diff --git a/node_modules/material-ui/src/svg-icons/image/panorama-vertical.jsx b/node_modules/material-ui/src/svg-icons/image/panorama-vertical.jsx
new file mode 100644
index 0000000..b1f926f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/panorama-vertical.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePanoramaVertical = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePanoramaVertical;
diff --git a/node_modules/material-ui/src/svg-icons/image/panorama-wide-angle.jsx b/node_modules/material-ui/src/svg-icons/image/panorama-wide-angle.jsx
new file mode 100644
index 0000000..f009f79
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/panorama-wide-angle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePanoramaWideAngle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePanoramaWideAngle;
diff --git a/node_modules/material-ui/src/svg-icons/image/panorama.jsx b/node_modules/material-ui/src/svg-icons/image/panorama.jsx
new file mode 100644
index 0000000..4af67e5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/panorama.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePanorama = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePanorama;
diff --git a/node_modules/material-ui/src/svg-icons/image/photo-album.jsx b/node_modules/material-ui/src/svg-icons/image/photo-album.jsx
new file mode 100644
index 0000000..54a2258
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/photo-album.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePhotoAlbum = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePhotoAlbum;
diff --git a/node_modules/material-ui/src/svg-icons/image/photo-camera.jsx b/node_modules/material-ui/src/svg-icons/image/photo-camera.jsx
new file mode 100644
index 0000000..7a65e86
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/photo-camera.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePhotoCamera = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePhotoCamera;
diff --git a/node_modules/material-ui/src/svg-icons/image/photo-filter.jsx b/node_modules/material-ui/src/svg-icons/image/photo-filter.jsx
new file mode 100644
index 0000000..9ae1284
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/photo-filter.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePhotoFilter = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePhotoFilter;
diff --git a/node_modules/material-ui/src/svg-icons/image/photo-library.jsx b/node_modules/material-ui/src/svg-icons/image/photo-library.jsx
new file mode 100644
index 0000000..c887621
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/photo-library.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePhotoLibrary = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePhotoLibrary;
diff --git a/node_modules/material-ui/src/svg-icons/image/photo-size-select-actual.jsx b/node_modules/material-ui/src/svg-icons/image/photo-size-select-actual.jsx
new file mode 100644
index 0000000..18a6768
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/photo-size-select-actual.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePhotoSizeSelectActual = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePhotoSizeSelectActual;
diff --git a/node_modules/material-ui/src/svg-icons/image/photo-size-select-large.jsx b/node_modules/material-ui/src/svg-icons/image/photo-size-select-large.jsx
new file mode 100644
index 0000000..8964a5b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/photo-size-select-large.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePhotoSizeSelectLarge = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePhotoSizeSelectLarge;
diff --git a/node_modules/material-ui/src/svg-icons/image/photo-size-select-small.jsx b/node_modules/material-ui/src/svg-icons/image/photo-size-select-small.jsx
new file mode 100644
index 0000000..70335fa
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/photo-size-select-small.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePhotoSizeSelectSmall = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePhotoSizeSelectSmall;
diff --git a/node_modules/material-ui/src/svg-icons/image/photo.jsx b/node_modules/material-ui/src/svg-icons/image/photo.jsx
new file mode 100644
index 0000000..ab59a73
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/photo.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePhoto = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePhoto;
diff --git a/node_modules/material-ui/src/svg-icons/image/picture-as-pdf.jsx b/node_modules/material-ui/src/svg-icons/image/picture-as-pdf.jsx
new file mode 100644
index 0000000..607ad2f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/picture-as-pdf.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePictureAsPdf = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePictureAsPdf;
diff --git a/node_modules/material-ui/src/svg-icons/image/portrait.jsx b/node_modules/material-ui/src/svg-icons/image/portrait.jsx
new file mode 100644
index 0000000..e292f99
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/portrait.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImagePortrait = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImagePortrait;
diff --git a/node_modules/material-ui/src/svg-icons/image/remove-red-eye.jsx b/node_modules/material-ui/src/svg-icons/image/remove-red-eye.jsx
new file mode 100644
index 0000000..3251f37
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/remove-red-eye.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageRemoveRedEye = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageRemoveRedEye;
diff --git a/node_modules/material-ui/src/svg-icons/image/rotate-90-degrees-ccw.jsx b/node_modules/material-ui/src/svg-icons/image/rotate-90-degrees-ccw.jsx
new file mode 100644
index 0000000..69df776
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/rotate-90-degrees-ccw.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageRotate90DegreesCcw = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageRotate90DegreesCcw;
diff --git a/node_modules/material-ui/src/svg-icons/image/rotate-left.jsx b/node_modules/material-ui/src/svg-icons/image/rotate-left.jsx
new file mode 100644
index 0000000..51f5ab4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/rotate-left.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageRotateLeft = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageRotateLeft;
diff --git a/node_modules/material-ui/src/svg-icons/image/rotate-right.jsx b/node_modules/material-ui/src/svg-icons/image/rotate-right.jsx
new file mode 100644
index 0000000..a7f1a2c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/rotate-right.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageRotateRight = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageRotateRight;
diff --git a/node_modules/material-ui/src/svg-icons/image/slideshow.jsx b/node_modules/material-ui/src/svg-icons/image/slideshow.jsx
new file mode 100644
index 0000000..e3f6d1b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/slideshow.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageSlideshow = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageSlideshow;
diff --git a/node_modules/material-ui/src/svg-icons/image/straighten.jsx b/node_modules/material-ui/src/svg-icons/image/straighten.jsx
new file mode 100644
index 0000000..487b4f2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/straighten.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageStraighten = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageStraighten;
diff --git a/node_modules/material-ui/src/svg-icons/image/style.jsx b/node_modules/material-ui/src/svg-icons/image/style.jsx
new file mode 100644
index 0000000..14cb587
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/style.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageStyle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageStyle;
diff --git a/node_modules/material-ui/src/svg-icons/image/switch-camera.jsx b/node_modules/material-ui/src/svg-icons/image/switch-camera.jsx
new file mode 100644
index 0000000..379808b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/switch-camera.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageSwitchCamera = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageSwitchCamera;
diff --git a/node_modules/material-ui/src/svg-icons/image/switch-video.jsx b/node_modules/material-ui/src/svg-icons/image/switch-video.jsx
new file mode 100644
index 0000000..d79e061
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/switch-video.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageSwitchVideo = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageSwitchVideo;
diff --git a/node_modules/material-ui/src/svg-icons/image/tag-faces.jsx b/node_modules/material-ui/src/svg-icons/image/tag-faces.jsx
new file mode 100644
index 0000000..e1c0323
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/tag-faces.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageTagFaces = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageTagFaces;
diff --git a/node_modules/material-ui/src/svg-icons/image/texture.jsx b/node_modules/material-ui/src/svg-icons/image/texture.jsx
new file mode 100644
index 0000000..81c349d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/texture.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageTexture = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageTexture;
diff --git a/node_modules/material-ui/src/svg-icons/image/timelapse.jsx b/node_modules/material-ui/src/svg-icons/image/timelapse.jsx
new file mode 100644
index 0000000..cc06687
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/timelapse.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageTimelapse = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageTimelapse;
diff --git a/node_modules/material-ui/src/svg-icons/image/timer-10.jsx b/node_modules/material-ui/src/svg-icons/image/timer-10.jsx
new file mode 100644
index 0000000..82fd6b5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/timer-10.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageTimer10 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageTimer10;
diff --git a/node_modules/material-ui/src/svg-icons/image/timer-3.jsx b/node_modules/material-ui/src/svg-icons/image/timer-3.jsx
new file mode 100644
index 0000000..b7aaedd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/timer-3.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageTimer3 = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageTimer3;
diff --git a/node_modules/material-ui/src/svg-icons/image/timer-off.jsx b/node_modules/material-ui/src/svg-icons/image/timer-off.jsx
new file mode 100644
index 0000000..5e11a04
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/timer-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageTimerOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageTimerOff;
diff --git a/node_modules/material-ui/src/svg-icons/image/timer.jsx b/node_modules/material-ui/src/svg-icons/image/timer.jsx
new file mode 100644
index 0000000..f2940e2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/timer.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageTimer = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageTimer;
diff --git a/node_modules/material-ui/src/svg-icons/image/tonality.jsx b/node_modules/material-ui/src/svg-icons/image/tonality.jsx
new file mode 100644
index 0000000..eef433d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/tonality.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageTonality = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageTonality;
diff --git a/node_modules/material-ui/src/svg-icons/image/transform.jsx b/node_modules/material-ui/src/svg-icons/image/transform.jsx
new file mode 100644
index 0000000..2bad3d7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/transform.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageTransform = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageTransform;
diff --git a/node_modules/material-ui/src/svg-icons/image/tune.jsx b/node_modules/material-ui/src/svg-icons/image/tune.jsx
new file mode 100644
index 0000000..a60bcb3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/tune.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageTune = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageTune;
diff --git a/node_modules/material-ui/src/svg-icons/image/view-comfy.jsx b/node_modules/material-ui/src/svg-icons/image/view-comfy.jsx
new file mode 100644
index 0000000..3c18471
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/view-comfy.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageViewComfy = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageViewComfy;
diff --git a/node_modules/material-ui/src/svg-icons/image/view-compact.jsx b/node_modules/material-ui/src/svg-icons/image/view-compact.jsx
new file mode 100644
index 0000000..4189a7d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/view-compact.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageViewCompact = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageViewCompact;
diff --git a/node_modules/material-ui/src/svg-icons/image/vignette.jsx b/node_modules/material-ui/src/svg-icons/image/vignette.jsx
new file mode 100644
index 0000000..2a3fb30
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/vignette.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageVignette = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageVignette;
diff --git a/node_modules/material-ui/src/svg-icons/image/wb-auto.jsx b/node_modules/material-ui/src/svg-icons/image/wb-auto.jsx
new file mode 100644
index 0000000..e383b5f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/wb-auto.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageWbAuto = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageWbAuto;
diff --git a/node_modules/material-ui/src/svg-icons/image/wb-cloudy.jsx b/node_modules/material-ui/src/svg-icons/image/wb-cloudy.jsx
new file mode 100644
index 0000000..83047ee
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/wb-cloudy.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageWbCloudy = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageWbCloudy;
diff --git a/node_modules/material-ui/src/svg-icons/image/wb-incandescent.jsx b/node_modules/material-ui/src/svg-icons/image/wb-incandescent.jsx
new file mode 100644
index 0000000..684044e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/wb-incandescent.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageWbIncandescent = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageWbIncandescent;
diff --git a/node_modules/material-ui/src/svg-icons/image/wb-iridescent.jsx b/node_modules/material-ui/src/svg-icons/image/wb-iridescent.jsx
new file mode 100644
index 0000000..9c86d46
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/wb-iridescent.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageWbIridescent = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageWbIridescent;
diff --git a/node_modules/material-ui/src/svg-icons/image/wb-sunny.jsx b/node_modules/material-ui/src/svg-icons/image/wb-sunny.jsx
new file mode 100644
index 0000000..6b06d8f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/image/wb-sunny.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ImageWbSunny = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ImageWbSunny;
diff --git a/node_modules/material-ui/src/svg-icons/index-generator.js b/node_modules/material-ui/src/svg-icons/index-generator.js
new file mode 100644
index 0000000..e1ca0e8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/index-generator.js
@@ -0,0 +1,27 @@
+import fs from 'fs';
+import rrs from 'recursive-readdir-sync';
+
+const outArray = [];
+
+rrs('./').forEach((file) => {
+ if (file !== 'index-generator.js' && file !== 'index.js') {
+ let fileLines = fs.readFileSync(file, 'utf8').split('\n');
+ let index = 0;
+ let found = false;
+
+ while (found === false && index < fileLines.length) {
+ if (fileLines[index].indexOf('export default') > -1) {
+ const moduleName = fileLines[index].split(' ')[2].replace(';', '').trim();
+ const modulePath = file.substring(0, file.length - 4);
+
+ outArray.push(`import ${moduleName} from './${modulePath}';\nexport { ${moduleName} };\n`);
+
+ found = true;
+ } else {
+ index++;
+ }
+ }
+ }
+});
+
+fs.writeFileSync('index.js', outArray.join(''));
diff --git a/node_modules/material-ui/src/svg-icons/index.js b/node_modules/material-ui/src/svg-icons/index.js
new file mode 100644
index 0000000..22c65fb
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/index.js
@@ -0,0 +1,1838 @@
+import ActionAccessibility from './action/accessibility';
+export { ActionAccessibility };
+import ActionAccessible from './action/accessible';
+export { ActionAccessible };
+import ActionAccountBalanceWallet from './action/account-balance-wallet';
+export { ActionAccountBalanceWallet };
+import ActionAccountBalance from './action/account-balance';
+export { ActionAccountBalance };
+import ActionAccountBox from './action/account-box';
+export { ActionAccountBox };
+import ActionAccountCircle from './action/account-circle';
+export { ActionAccountCircle };
+import ActionAddShoppingCart from './action/add-shopping-cart';
+export { ActionAddShoppingCart };
+import ActionAlarmAdd from './action/alarm-add';
+export { ActionAlarmAdd };
+import ActionAlarmOff from './action/alarm-off';
+export { ActionAlarmOff };
+import ActionAlarmOn from './action/alarm-on';
+export { ActionAlarmOn };
+import ActionAlarm from './action/alarm';
+export { ActionAlarm };
+import ActionAllOut from './action/all-out';
+export { ActionAllOut };
+import ActionAndroid from './action/android';
+export { ActionAndroid };
+import ActionAnnouncement from './action/announcement';
+export { ActionAnnouncement };
+import ActionAspectRatio from './action/aspect-ratio';
+export { ActionAspectRatio };
+import ActionAssessment from './action/assessment';
+export { ActionAssessment };
+import ActionAssignmentInd from './action/assignment-ind';
+export { ActionAssignmentInd };
+import ActionAssignmentLate from './action/assignment-late';
+export { ActionAssignmentLate };
+import ActionAssignmentReturn from './action/assignment-return';
+export { ActionAssignmentReturn };
+import ActionAssignmentReturned from './action/assignment-returned';
+export { ActionAssignmentReturned };
+import ActionAssignmentTurnedIn from './action/assignment-turned-in';
+export { ActionAssignmentTurnedIn };
+import ActionAssignment from './action/assignment';
+export { ActionAssignment };
+import ActionAutorenew from './action/autorenew';
+export { ActionAutorenew };
+import ActionBackup from './action/backup';
+export { ActionBackup };
+import ActionBook from './action/book';
+export { ActionBook };
+import ActionBookmarkBorder from './action/bookmark-border';
+export { ActionBookmarkBorder };
+import ActionBookmark from './action/bookmark';
+export { ActionBookmark };
+import ActionBugReport from './action/bug-report';
+export { ActionBugReport };
+import ActionBuild from './action/build';
+export { ActionBuild };
+import ActionCached from './action/cached';
+export { ActionCached };
+import ActionCameraEnhance from './action/camera-enhance';
+export { ActionCameraEnhance };
+import ActionCardGiftcard from './action/card-giftcard';
+export { ActionCardGiftcard };
+import ActionCardMembership from './action/card-membership';
+export { ActionCardMembership };
+import ActionCardTravel from './action/card-travel';
+export { ActionCardTravel };
+import ActionChangeHistory from './action/change-history';
+export { ActionChangeHistory };
+import ActionCheckCircle from './action/check-circle';
+export { ActionCheckCircle };
+import ActionChromeReaderMode from './action/chrome-reader-mode';
+export { ActionChromeReaderMode };
+import ActionClass from './action/class';
+export { ActionClass };
+import ActionCode from './action/code';
+export { ActionCode };
+import ActionCompareArrows from './action/compare-arrows';
+export { ActionCompareArrows };
+import ActionCopyright from './action/copyright';
+export { ActionCopyright };
+import ActionCreditCard from './action/credit-card';
+export { ActionCreditCard };
+import ActionDashboard from './action/dashboard';
+export { ActionDashboard };
+import ActionDateRange from './action/date-range';
+export { ActionDateRange };
+import ActionDelete from './action/delete';
+export { ActionDelete };
+import ActionDescription from './action/description';
+export { ActionDescription };
+import ActionDns from './action/dns';
+export { ActionDns };
+import ActionDoneAll from './action/done-all';
+export { ActionDoneAll };
+import ActionDone from './action/done';
+export { ActionDone };
+import ActionDonutLarge from './action/donut-large';
+export { ActionDonutLarge };
+import ActionDonutSmall from './action/donut-small';
+export { ActionDonutSmall };
+import ActionEject from './action/eject';
+export { ActionEject };
+import ActionEventSeat from './action/event-seat';
+export { ActionEventSeat };
+import ActionEvent from './action/event';
+export { ActionEvent };
+import ActionExitToApp from './action/exit-to-app';
+export { ActionExitToApp };
+import ActionExplore from './action/explore';
+export { ActionExplore };
+import ActionExtension from './action/extension';
+export { ActionExtension };
+import ActionFace from './action/face';
+export { ActionFace };
+import ActionFavoriteBorder from './action/favorite-border';
+export { ActionFavoriteBorder };
+import ActionFavorite from './action/favorite';
+export { ActionFavorite };
+import ActionFeedback from './action/feedback';
+export { ActionFeedback };
+import ActionFindInPage from './action/find-in-page';
+export { ActionFindInPage };
+import ActionFindReplace from './action/find-replace';
+export { ActionFindReplace };
+import ActionFingerprint from './action/fingerprint';
+export { ActionFingerprint };
+import ActionFlightLand from './action/flight-land';
+export { ActionFlightLand };
+import ActionFlightTakeoff from './action/flight-takeoff';
+export { ActionFlightTakeoff };
+import ActionFlipToBack from './action/flip-to-back';
+export { ActionFlipToBack };
+import ActionFlipToFront from './action/flip-to-front';
+export { ActionFlipToFront };
+import ActionGavel from './action/gavel';
+export { ActionGavel };
+import ActionGetApp from './action/get-app';
+export { ActionGetApp };
+import ActionGif from './action/gif';
+export { ActionGif };
+import ActionGrade from './action/grade';
+export { ActionGrade };
+import ActionGroupWork from './action/group-work';
+export { ActionGroupWork };
+import ActionHelpOutline from './action/help-outline';
+export { ActionHelpOutline };
+import ActionHelp from './action/help';
+export { ActionHelp };
+import ActionHighlightOff from './action/highlight-off';
+export { ActionHighlightOff };
+import ActionHistory from './action/history';
+export { ActionHistory };
+import ActionHome from './action/home';
+export { ActionHome };
+import ActionHourglassEmpty from './action/hourglass-empty';
+export { ActionHourglassEmpty };
+import ActionHourglassFull from './action/hourglass-full';
+export { ActionHourglassFull };
+import ActionHttp from './action/http';
+export { ActionHttp };
+import ActionHttps from './action/https';
+export { ActionHttps };
+import ActionImportantDevices from './action/important-devices';
+export { ActionImportantDevices };
+import ActionInfoOutline from './action/info-outline';
+export { ActionInfoOutline };
+import ActionInfo from './action/info';
+export { ActionInfo };
+import ActionInput from './action/input';
+export { ActionInput };
+import ActionInvertColors from './action/invert-colors';
+export { ActionInvertColors };
+import ActionLabelOutline from './action/label-outline';
+export { ActionLabelOutline };
+import ActionLabel from './action/label';
+export { ActionLabel };
+import ActionLanguage from './action/language';
+export { ActionLanguage };
+import ActionLaunch from './action/launch';
+export { ActionLaunch };
+import ActionLightbulbOutline from './action/lightbulb-outline';
+export { ActionLightbulbOutline };
+import ActionLineStyle from './action/line-style';
+export { ActionLineStyle };
+import ActionLineWeight from './action/line-weight';
+export { ActionLineWeight };
+import ActionList from './action/list';
+export { ActionList };
+import ActionLockOpen from './action/lock-open';
+export { ActionLockOpen };
+import ActionLockOutline from './action/lock-outline';
+export { ActionLockOutline };
+import ActionLock from './action/lock';
+export { ActionLock };
+import ActionLoyalty from './action/loyalty';
+export { ActionLoyalty };
+import ActionMarkunreadMailbox from './action/markunread-mailbox';
+export { ActionMarkunreadMailbox };
+import ActionMotorcycle from './action/motorcycle';
+export { ActionMotorcycle };
+import ActionNoteAdd from './action/note-add';
+export { ActionNoteAdd };
+import ActionOfflinePin from './action/offline-pin';
+export { ActionOfflinePin };
+import ActionOpacity from './action/opacity';
+export { ActionOpacity };
+import ActionOpenInBrowser from './action/open-in-browser';
+export { ActionOpenInBrowser };
+import ActionOpenInNew from './action/open-in-new';
+export { ActionOpenInNew };
+import ActionOpenWith from './action/open-with';
+export { ActionOpenWith };
+import ActionPageview from './action/pageview';
+export { ActionPageview };
+import ActionPanTool from './action/pan-tool';
+export { ActionPanTool };
+import ActionPayment from './action/payment';
+export { ActionPayment };
+import ActionPermCameraMic from './action/perm-camera-mic';
+export { ActionPermCameraMic };
+import ActionPermContactCalendar from './action/perm-contact-calendar';
+export { ActionPermContactCalendar };
+import ActionPermDataSetting from './action/perm-data-setting';
+export { ActionPermDataSetting };
+import ActionPermDeviceInformation from './action/perm-device-information';
+export { ActionPermDeviceInformation };
+import ActionPermIdentity from './action/perm-identity';
+export { ActionPermIdentity };
+import ActionPermMedia from './action/perm-media';
+export { ActionPermMedia };
+import ActionPermPhoneMsg from './action/perm-phone-msg';
+export { ActionPermPhoneMsg };
+import ActionPermScanWifi from './action/perm-scan-wifi';
+export { ActionPermScanWifi };
+import ActionPets from './action/pets';
+export { ActionPets };
+import ActionPictureInPictureAlt from './action/picture-in-picture-alt';
+export { ActionPictureInPictureAlt };
+import ActionPictureInPicture from './action/picture-in-picture';
+export { ActionPictureInPicture };
+import ActionPlayForWork from './action/play-for-work';
+export { ActionPlayForWork };
+import ActionPolymer from './action/polymer';
+export { ActionPolymer };
+import ActionPowerSettingsNew from './action/power-settings-new';
+export { ActionPowerSettingsNew };
+import ActionPregnantWoman from './action/pregnant-woman';
+export { ActionPregnantWoman };
+import ActionPrint from './action/print';
+export { ActionPrint };
+import ActionQueryBuilder from './action/query-builder';
+export { ActionQueryBuilder };
+import ActionQuestionAnswer from './action/question-answer';
+export { ActionQuestionAnswer };
+import ActionReceipt from './action/receipt';
+export { ActionReceipt };
+import ActionRecordVoiceOver from './action/record-voice-over';
+export { ActionRecordVoiceOver };
+import ActionRedeem from './action/redeem';
+export { ActionRedeem };
+import ActionReorder from './action/reorder';
+export { ActionReorder };
+import ActionReportProblem from './action/report-problem';
+export { ActionReportProblem };
+import ActionRestore from './action/restore';
+export { ActionRestore };
+import ActionRoom from './action/room';
+export { ActionRoom };
+import ActionRoundedCorner from './action/rounded-corner';
+export { ActionRoundedCorner };
+import ActionRowing from './action/rowing';
+export { ActionRowing };
+import ActionSchedule from './action/schedule';
+export { ActionSchedule };
+import ActionSearch from './action/search';
+export { ActionSearch };
+import ActionSettingsApplications from './action/settings-applications';
+export { ActionSettingsApplications };
+import ActionSettingsBackupRestore from './action/settings-backup-restore';
+export { ActionSettingsBackupRestore };
+import ActionSettingsBluetooth from './action/settings-bluetooth';
+export { ActionSettingsBluetooth };
+import ActionSettingsBrightness from './action/settings-brightness';
+export { ActionSettingsBrightness };
+import ActionSettingsCell from './action/settings-cell';
+export { ActionSettingsCell };
+import ActionSettingsEthernet from './action/settings-ethernet';
+export { ActionSettingsEthernet };
+import ActionSettingsInputAntenna from './action/settings-input-antenna';
+export { ActionSettingsInputAntenna };
+import ActionSettingsInputComponent from './action/settings-input-component';
+export { ActionSettingsInputComponent };
+import ActionSettingsInputComposite from './action/settings-input-composite';
+export { ActionSettingsInputComposite };
+import ActionSettingsInputHdmi from './action/settings-input-hdmi';
+export { ActionSettingsInputHdmi };
+import ActionSettingsInputSvideo from './action/settings-input-svideo';
+export { ActionSettingsInputSvideo };
+import ActionSettingsOverscan from './action/settings-overscan';
+export { ActionSettingsOverscan };
+import ActionSettingsPhone from './action/settings-phone';
+export { ActionSettingsPhone };
+import ActionSettingsPower from './action/settings-power';
+export { ActionSettingsPower };
+import ActionSettingsRemote from './action/settings-remote';
+export { ActionSettingsRemote };
+import ActionSettingsVoice from './action/settings-voice';
+export { ActionSettingsVoice };
+import ActionSettings from './action/settings';
+export { ActionSettings };
+import ActionShopTwo from './action/shop-two';
+export { ActionShopTwo };
+import ActionShop from './action/shop';
+export { ActionShop };
+import ActionShoppingBasket from './action/shopping-basket';
+export { ActionShoppingBasket };
+import ActionShoppingCart from './action/shopping-cart';
+export { ActionShoppingCart };
+import ActionSpeakerNotes from './action/speaker-notes';
+export { ActionSpeakerNotes };
+import ActionSpellcheck from './action/spellcheck';
+export { ActionSpellcheck };
+import ActionStars from './action/stars';
+export { ActionStars };
+import ActionStore from './action/store';
+export { ActionStore };
+import ActionSubject from './action/subject';
+export { ActionSubject };
+import ActionSupervisorAccount from './action/supervisor-account';
+export { ActionSupervisorAccount };
+import ActionSwapHoriz from './action/swap-horiz';
+export { ActionSwapHoriz };
+import ActionSwapVert from './action/swap-vert';
+export { ActionSwapVert };
+import ActionSwapVerticalCircle from './action/swap-vertical-circle';
+export { ActionSwapVerticalCircle };
+import ActionSystemUpdateAlt from './action/system-update-alt';
+export { ActionSystemUpdateAlt };
+import ActionTabUnselected from './action/tab-unselected';
+export { ActionTabUnselected };
+import ActionTab from './action/tab';
+export { ActionTab };
+import ActionTheaters from './action/theaters';
+export { ActionTheaters };
+import ActionThreeDRotation from './action/three-d-rotation';
+export { ActionThreeDRotation };
+import ActionThumbDown from './action/thumb-down';
+export { ActionThumbDown };
+import ActionThumbUp from './action/thumb-up';
+export { ActionThumbUp };
+import ActionThumbsUpDown from './action/thumbs-up-down';
+export { ActionThumbsUpDown };
+import ActionTimeline from './action/timeline';
+export { ActionTimeline };
+import ActionToc from './action/toc';
+export { ActionToc };
+import ActionToday from './action/today';
+export { ActionToday };
+import ActionToll from './action/toll';
+export { ActionToll };
+import ActionTouchApp from './action/touch-app';
+export { ActionTouchApp };
+import ActionTrackChanges from './action/track-changes';
+export { ActionTrackChanges };
+import ActionTranslate from './action/translate';
+export { ActionTranslate };
+import ActionTrendingDown from './action/trending-down';
+export { ActionTrendingDown };
+import ActionTrendingFlat from './action/trending-flat';
+export { ActionTrendingFlat };
+import ActionTrendingUp from './action/trending-up';
+export { ActionTrendingUp };
+import ActionTurnedInNot from './action/turned-in-not';
+export { ActionTurnedInNot };
+import ActionTurnedIn from './action/turned-in';
+export { ActionTurnedIn };
+import ActionUpdate from './action/update';
+export { ActionUpdate };
+import ActionVerifiedUser from './action/verified-user';
+export { ActionVerifiedUser };
+import ActionViewAgenda from './action/view-agenda';
+export { ActionViewAgenda };
+import ActionViewArray from './action/view-array';
+export { ActionViewArray };
+import ActionViewCarousel from './action/view-carousel';
+export { ActionViewCarousel };
+import ActionViewColumn from './action/view-column';
+export { ActionViewColumn };
+import ActionViewDay from './action/view-day';
+export { ActionViewDay };
+import ActionViewHeadline from './action/view-headline';
+export { ActionViewHeadline };
+import ActionViewList from './action/view-list';
+export { ActionViewList };
+import ActionViewModule from './action/view-module';
+export { ActionViewModule };
+import ActionViewQuilt from './action/view-quilt';
+export { ActionViewQuilt };
+import ActionViewStream from './action/view-stream';
+export { ActionViewStream };
+import ActionViewWeek from './action/view-week';
+export { ActionViewWeek };
+import ActionVisibilityOff from './action/visibility-off';
+export { ActionVisibilityOff };
+import ActionVisibility from './action/visibility';
+export { ActionVisibility };
+import ActionWatchLater from './action/watch-later';
+export { ActionWatchLater };
+import ActionWork from './action/work';
+export { ActionWork };
+import ActionYoutubeSearchedFor from './action/youtube-searched-for';
+export { ActionYoutubeSearchedFor };
+import ActionZoomIn from './action/zoom-in';
+export { ActionZoomIn };
+import ActionZoomOut from './action/zoom-out';
+export { ActionZoomOut };
+import AlertAddAlert from './alert/add-alert';
+export { AlertAddAlert };
+import AlertErrorOutline from './alert/error-outline';
+export { AlertErrorOutline };
+import AlertError from './alert/error';
+export { AlertError };
+import AlertWarning from './alert/warning';
+export { AlertWarning };
+import AvAddToQueue from './av/add-to-queue';
+export { AvAddToQueue };
+import AvAirplay from './av/airplay';
+export { AvAirplay };
+import AvAlbum from './av/album';
+export { AvAlbum };
+import AvArtTrack from './av/art-track';
+export { AvArtTrack };
+import AvAvTimer from './av/av-timer';
+export { AvAvTimer };
+import AvClosedCaption from './av/closed-caption';
+export { AvClosedCaption };
+import AvEqualizer from './av/equalizer';
+export { AvEqualizer };
+import AvExplicit from './av/explicit';
+export { AvExplicit };
+import AvFastForward from './av/fast-forward';
+export { AvFastForward };
+import AvFastRewind from './av/fast-rewind';
+export { AvFastRewind };
+import AvFiberDvr from './av/fiber-dvr';
+export { AvFiberDvr };
+import AvFiberManualRecord from './av/fiber-manual-record';
+export { AvFiberManualRecord };
+import AvFiberNew from './av/fiber-new';
+export { AvFiberNew };
+import AvFiberPin from './av/fiber-pin';
+export { AvFiberPin };
+import AvFiberSmartRecord from './av/fiber-smart-record';
+export { AvFiberSmartRecord };
+import AvForward10 from './av/forward-10';
+export { AvForward10 };
+import AvForward30 from './av/forward-30';
+export { AvForward30 };
+import AvForward5 from './av/forward-5';
+export { AvForward5 };
+import AvGames from './av/games';
+export { AvGames };
+import AvHd from './av/hd';
+export { AvHd };
+import AvHearing from './av/hearing';
+export { AvHearing };
+import AvHighQuality from './av/high-quality';
+export { AvHighQuality };
+import AvLibraryAdd from './av/library-add';
+export { AvLibraryAdd };
+import AvLibraryBooks from './av/library-books';
+export { AvLibraryBooks };
+import AvLibraryMusic from './av/library-music';
+export { AvLibraryMusic };
+import AvLoop from './av/loop';
+export { AvLoop };
+import AvMicNone from './av/mic-none';
+export { AvMicNone };
+import AvMicOff from './av/mic-off';
+export { AvMicOff };
+import AvMic from './av/mic';
+export { AvMic };
+import AvMovie from './av/movie';
+export { AvMovie };
+import AvMusicVideo from './av/music-video';
+export { AvMusicVideo };
+import AvNewReleases from './av/new-releases';
+export { AvNewReleases };
+import AvNotInterested from './av/not-interested';
+export { AvNotInterested };
+import AvPauseCircleFilled from './av/pause-circle-filled';
+export { AvPauseCircleFilled };
+import AvPauseCircleOutline from './av/pause-circle-outline';
+export { AvPauseCircleOutline };
+import AvPause from './av/pause';
+export { AvPause };
+import AvPlayArrow from './av/play-arrow';
+export { AvPlayArrow };
+import AvPlayCircleFilled from './av/play-circle-filled';
+export { AvPlayCircleFilled };
+import AvPlayCircleOutline from './av/play-circle-outline';
+export { AvPlayCircleOutline };
+import AvPlaylistAddCheck from './av/playlist-add-check';
+export { AvPlaylistAddCheck };
+import AvPlaylistAdd from './av/playlist-add';
+export { AvPlaylistAdd };
+import AvPlaylistPlay from './av/playlist-play';
+export { AvPlaylistPlay };
+import AvQueueMusic from './av/queue-music';
+export { AvQueueMusic };
+import AvQueuePlayNext from './av/queue-play-next';
+export { AvQueuePlayNext };
+import AvQueue from './av/queue';
+export { AvQueue };
+import AvRadio from './av/radio';
+export { AvRadio };
+import AvRecentActors from './av/recent-actors';
+export { AvRecentActors };
+import AvRemoveFromQueue from './av/remove-from-queue';
+export { AvRemoveFromQueue };
+import AvRepeatOne from './av/repeat-one';
+export { AvRepeatOne };
+import AvRepeat from './av/repeat';
+export { AvRepeat };
+import AvReplay10 from './av/replay-10';
+export { AvReplay10 };
+import AvReplay30 from './av/replay-30';
+export { AvReplay30 };
+import AvReplay5 from './av/replay-5';
+export { AvReplay5 };
+import AvReplay from './av/replay';
+export { AvReplay };
+import AvShuffle from './av/shuffle';
+export { AvShuffle };
+import AvSkipNext from './av/skip-next';
+export { AvSkipNext };
+import AvSkipPrevious from './av/skip-previous';
+export { AvSkipPrevious };
+import AvSlowMotionVideo from './av/slow-motion-video';
+export { AvSlowMotionVideo };
+import AvSnooze from './av/snooze';
+export { AvSnooze };
+import AvSortByAlpha from './av/sort-by-alpha';
+export { AvSortByAlpha };
+import AvStop from './av/stop';
+export { AvStop };
+import AvSubscriptions from './av/subscriptions';
+export { AvSubscriptions };
+import AvSubtitles from './av/subtitles';
+export { AvSubtitles };
+import AvSurroundSound from './av/surround-sound';
+export { AvSurroundSound };
+import AvVideoLibrary from './av/video-library';
+export { AvVideoLibrary };
+import AvVideocamOff from './av/videocam-off';
+export { AvVideocamOff };
+import AvVideocam from './av/videocam';
+export { AvVideocam };
+import AvVolumeDown from './av/volume-down';
+export { AvVolumeDown };
+import AvVolumeMute from './av/volume-mute';
+export { AvVolumeMute };
+import AvVolumeOff from './av/volume-off';
+export { AvVolumeOff };
+import AvVolumeUp from './av/volume-up';
+export { AvVolumeUp };
+import AvWebAsset from './av/web-asset';
+export { AvWebAsset };
+import AvWeb from './av/web';
+export { AvWeb };
+import CommunicationBusiness from './communication/business';
+export { CommunicationBusiness };
+import CommunicationCallEnd from './communication/call-end';
+export { CommunicationCallEnd };
+import CommunicationCallMade from './communication/call-made';
+export { CommunicationCallMade };
+import CommunicationCallMerge from './communication/call-merge';
+export { CommunicationCallMerge };
+import CommunicationCallMissedOutgoing from './communication/call-missed-outgoing';
+export { CommunicationCallMissedOutgoing };
+import CommunicationCallMissed from './communication/call-missed';
+export { CommunicationCallMissed };
+import CommunicationCallReceived from './communication/call-received';
+export { CommunicationCallReceived };
+import CommunicationCallSplit from './communication/call-split';
+export { CommunicationCallSplit };
+import CommunicationCall from './communication/call';
+export { CommunicationCall };
+import CommunicationChatBubbleOutline from './communication/chat-bubble-outline';
+export { CommunicationChatBubbleOutline };
+import CommunicationChatBubble from './communication/chat-bubble';
+export { CommunicationChatBubble };
+import CommunicationChat from './communication/chat';
+export { CommunicationChat };
+import CommunicationClearAll from './communication/clear-all';
+export { CommunicationClearAll };
+import CommunicationComment from './communication/comment';
+export { CommunicationComment };
+import CommunicationContactMail from './communication/contact-mail';
+export { CommunicationContactMail };
+import CommunicationContactPhone from './communication/contact-phone';
+export { CommunicationContactPhone };
+import CommunicationContacts from './communication/contacts';
+export { CommunicationContacts };
+import CommunicationDialerSip from './communication/dialer-sip';
+export { CommunicationDialerSip };
+import CommunicationDialpad from './communication/dialpad';
+export { CommunicationDialpad };
+import CommunicationEmail from './communication/email';
+export { CommunicationEmail };
+import CommunicationForum from './communication/forum';
+export { CommunicationForum };
+import CommunicationImportContacts from './communication/import-contacts';
+export { CommunicationImportContacts };
+import CommunicationImportExport from './communication/import-export';
+export { CommunicationImportExport };
+import CommunicationInvertColorsOff from './communication/invert-colors-off';
+export { CommunicationInvertColorsOff };
+import CommunicationLiveHelp from './communication/live-help';
+export { CommunicationLiveHelp };
+import CommunicationLocationOff from './communication/location-off';
+export { CommunicationLocationOff };
+import CommunicationLocationOn from './communication/location-on';
+export { CommunicationLocationOn };
+import CommunicationMailOutline from './communication/mail-outline';
+export { CommunicationMailOutline };
+import CommunicationMessage from './communication/message';
+export { CommunicationMessage };
+import CommunicationNoSim from './communication/no-sim';
+export { CommunicationNoSim };
+import CommunicationPhone from './communication/phone';
+export { CommunicationPhone };
+import CommunicationPhonelinkErase from './communication/phonelink-erase';
+export { CommunicationPhonelinkErase };
+import CommunicationPhonelinkLock from './communication/phonelink-lock';
+export { CommunicationPhonelinkLock };
+import CommunicationPhonelinkRing from './communication/phonelink-ring';
+export { CommunicationPhonelinkRing };
+import CommunicationPhonelinkSetup from './communication/phonelink-setup';
+export { CommunicationPhonelinkSetup };
+import CommunicationPortableWifiOff from './communication/portable-wifi-off';
+export { CommunicationPortableWifiOff };
+import CommunicationPresentToAll from './communication/present-to-all';
+export { CommunicationPresentToAll };
+import CommunicationRingVolume from './communication/ring-volume';
+export { CommunicationRingVolume };
+import CommunicationScreenShare from './communication/screen-share';
+export { CommunicationScreenShare };
+import CommunicationSpeakerPhone from './communication/speaker-phone';
+export { CommunicationSpeakerPhone };
+import CommunicationStayCurrentLandscape from './communication/stay-current-landscape';
+export { CommunicationStayCurrentLandscape };
+import CommunicationStayCurrentPortrait from './communication/stay-current-portrait';
+export { CommunicationStayCurrentPortrait };
+import CommunicationStayPrimaryLandscape from './communication/stay-primary-landscape';
+export { CommunicationStayPrimaryLandscape };
+import CommunicationStayPrimaryPortrait from './communication/stay-primary-portrait';
+export { CommunicationStayPrimaryPortrait };
+import CommunicationStopScreenShare from './communication/stop-screen-share';
+export { CommunicationStopScreenShare };
+import CommunicationSwapCalls from './communication/swap-calls';
+export { CommunicationSwapCalls };
+import CommunicationTextsms from './communication/textsms';
+export { CommunicationTextsms };
+import CommunicationVoicemail from './communication/voicemail';
+export { CommunicationVoicemail };
+import CommunicationVpnKey from './communication/vpn-key';
+export { CommunicationVpnKey };
+import ContentAddBox from './content/add-box';
+export { ContentAddBox };
+import ContentAddCircleOutline from './content/add-circle-outline';
+export { ContentAddCircleOutline };
+import ContentAddCircle from './content/add-circle';
+export { ContentAddCircle };
+import ContentAdd from './content/add';
+export { ContentAdd };
+import ContentArchive from './content/archive';
+export { ContentArchive };
+import ContentBackspace from './content/backspace';
+export { ContentBackspace };
+import ContentBlock from './content/block';
+export { ContentBlock };
+import ContentClear from './content/clear';
+export { ContentClear };
+import ContentContentCopy from './content/content-copy';
+export { ContentContentCopy };
+import ContentContentCut from './content/content-cut';
+export { ContentContentCut };
+import ContentContentPaste from './content/content-paste';
+export { ContentContentPaste };
+import ContentCreate from './content/create';
+export { ContentCreate };
+import ContentDrafts from './content/drafts';
+export { ContentDrafts };
+import ContentFilterList from './content/filter-list';
+export { ContentFilterList };
+import ContentFlag from './content/flag';
+export { ContentFlag };
+import ContentFontDownload from './content/font-download';
+export { ContentFontDownload };
+import ContentForward from './content/forward';
+export { ContentForward };
+import ContentGesture from './content/gesture';
+export { ContentGesture };
+import ContentInbox from './content/inbox';
+export { ContentInbox };
+import ContentLink from './content/link';
+export { ContentLink };
+import ContentMail from './content/mail';
+export { ContentMail };
+import ContentMarkunread from './content/markunread';
+export { ContentMarkunread };
+import ContentMoveToInbox from './content/move-to-inbox';
+export { ContentMoveToInbox };
+import ContentNextWeek from './content/next-week';
+export { ContentNextWeek };
+import ContentRedo from './content/redo';
+export { ContentRedo };
+import ContentRemoveCircleOutline from './content/remove-circle-outline';
+export { ContentRemoveCircleOutline };
+import ContentRemoveCircle from './content/remove-circle';
+export { ContentRemoveCircle };
+import ContentRemove from './content/remove';
+export { ContentRemove };
+import ContentReplyAll from './content/reply-all';
+export { ContentReplyAll };
+import ContentReply from './content/reply';
+export { ContentReply };
+import ContentReport from './content/report';
+export { ContentReport };
+import ContentSave from './content/save';
+export { ContentSave };
+import ContentSelectAll from './content/select-all';
+export { ContentSelectAll };
+import ContentSend from './content/send';
+export { ContentSend };
+import ContentSort from './content/sort';
+export { ContentSort };
+import ContentTextFormat from './content/text-format';
+export { ContentTextFormat };
+import ContentUnarchive from './content/unarchive';
+export { ContentUnarchive };
+import ContentUndo from './content/undo';
+export { ContentUndo };
+import ContentWeekend from './content/weekend';
+export { ContentWeekend };
+import DeviceAccessAlarm from './device/access-alarm';
+export { DeviceAccessAlarm };
+import DeviceAccessAlarms from './device/access-alarms';
+export { DeviceAccessAlarms };
+import DeviceAccessTime from './device/access-time';
+export { DeviceAccessTime };
+import DeviceAddAlarm from './device/add-alarm';
+export { DeviceAddAlarm };
+import DeviceAirplanemodeActive from './device/airplanemode-active';
+export { DeviceAirplanemodeActive };
+import DeviceAirplanemodeInactive from './device/airplanemode-inactive';
+export { DeviceAirplanemodeInactive };
+import DeviceBattery20 from './device/battery-20';
+export { DeviceBattery20 };
+import DeviceBattery30 from './device/battery-30';
+export { DeviceBattery30 };
+import DeviceBattery50 from './device/battery-50';
+export { DeviceBattery50 };
+import DeviceBattery60 from './device/battery-60';
+export { DeviceBattery60 };
+import DeviceBattery80 from './device/battery-80';
+export { DeviceBattery80 };
+import DeviceBattery90 from './device/battery-90';
+export { DeviceBattery90 };
+import DeviceBatteryAlert from './device/battery-alert';
+export { DeviceBatteryAlert };
+import DeviceBatteryCharging20 from './device/battery-charging-20';
+export { DeviceBatteryCharging20 };
+import DeviceBatteryCharging30 from './device/battery-charging-30';
+export { DeviceBatteryCharging30 };
+import DeviceBatteryCharging50 from './device/battery-charging-50';
+export { DeviceBatteryCharging50 };
+import DeviceBatteryCharging60 from './device/battery-charging-60';
+export { DeviceBatteryCharging60 };
+import DeviceBatteryCharging80 from './device/battery-charging-80';
+export { DeviceBatteryCharging80 };
+import DeviceBatteryCharging90 from './device/battery-charging-90';
+export { DeviceBatteryCharging90 };
+import DeviceBatteryChargingFull from './device/battery-charging-full';
+export { DeviceBatteryChargingFull };
+import DeviceBatteryFull from './device/battery-full';
+export { DeviceBatteryFull };
+import DeviceBatteryStd from './device/battery-std';
+export { DeviceBatteryStd };
+import DeviceBatteryUnknown from './device/battery-unknown';
+export { DeviceBatteryUnknown };
+import DeviceBluetoothConnected from './device/bluetooth-connected';
+export { DeviceBluetoothConnected };
+import DeviceBluetoothDisabled from './device/bluetooth-disabled';
+export { DeviceBluetoothDisabled };
+import DeviceBluetoothSearching from './device/bluetooth-searching';
+export { DeviceBluetoothSearching };
+import DeviceBluetooth from './device/bluetooth';
+export { DeviceBluetooth };
+import DeviceBrightnessAuto from './device/brightness-auto';
+export { DeviceBrightnessAuto };
+import DeviceBrightnessHigh from './device/brightness-high';
+export { DeviceBrightnessHigh };
+import DeviceBrightnessLow from './device/brightness-low';
+export { DeviceBrightnessLow };
+import DeviceBrightnessMedium from './device/brightness-medium';
+export { DeviceBrightnessMedium };
+import DeviceDataUsage from './device/data-usage';
+export { DeviceDataUsage };
+import DeviceDeveloperMode from './device/developer-mode';
+export { DeviceDeveloperMode };
+import DeviceDevices from './device/devices';
+export { DeviceDevices };
+import DeviceDvr from './device/dvr';
+export { DeviceDvr };
+import DeviceGpsFixed from './device/gps-fixed';
+export { DeviceGpsFixed };
+import DeviceGpsNotFixed from './device/gps-not-fixed';
+export { DeviceGpsNotFixed };
+import DeviceGpsOff from './device/gps-off';
+export { DeviceGpsOff };
+import DeviceGraphicEq from './device/graphic-eq';
+export { DeviceGraphicEq };
+import DeviceLocationDisabled from './device/location-disabled';
+export { DeviceLocationDisabled };
+import DeviceLocationSearching from './device/location-searching';
+export { DeviceLocationSearching };
+import DeviceNetworkCell from './device/network-cell';
+export { DeviceNetworkCell };
+import DeviceNetworkWifi from './device/network-wifi';
+export { DeviceNetworkWifi };
+import DeviceNfc from './device/nfc';
+export { DeviceNfc };
+import DeviceScreenLockLandscape from './device/screen-lock-landscape';
+export { DeviceScreenLockLandscape };
+import DeviceScreenLockPortrait from './device/screen-lock-portrait';
+export { DeviceScreenLockPortrait };
+import DeviceScreenLockRotation from './device/screen-lock-rotation';
+export { DeviceScreenLockRotation };
+import DeviceScreenRotation from './device/screen-rotation';
+export { DeviceScreenRotation };
+import DeviceSdStorage from './device/sd-storage';
+export { DeviceSdStorage };
+import DeviceSettingsSystemDaydream from './device/settings-system-daydream';
+export { DeviceSettingsSystemDaydream };
+import DeviceSignalCellular0Bar from './device/signal-cellular-0-bar';
+export { DeviceSignalCellular0Bar };
+import DeviceSignalCellular1Bar from './device/signal-cellular-1-bar';
+export { DeviceSignalCellular1Bar };
+import DeviceSignalCellular2Bar from './device/signal-cellular-2-bar';
+export { DeviceSignalCellular2Bar };
+import DeviceSignalCellular3Bar from './device/signal-cellular-3-bar';
+export { DeviceSignalCellular3Bar };
+import DeviceSignalCellular4Bar from './device/signal-cellular-4-bar';
+export { DeviceSignalCellular4Bar };
+import DeviceSignalCellularConnectedNoInternet0Bar from './device/signal-cellular-connected-no-internet-0-bar';
+export { DeviceSignalCellularConnectedNoInternet0Bar };
+import DeviceSignalCellularConnectedNoInternet1Bar from './device/signal-cellular-connected-no-internet-1-bar';
+export { DeviceSignalCellularConnectedNoInternet1Bar };
+import DeviceSignalCellularConnectedNoInternet2Bar from './device/signal-cellular-connected-no-internet-2-bar';
+export { DeviceSignalCellularConnectedNoInternet2Bar };
+import DeviceSignalCellularConnectedNoInternet3Bar from './device/signal-cellular-connected-no-internet-3-bar';
+export { DeviceSignalCellularConnectedNoInternet3Bar };
+import DeviceSignalCellularConnectedNoInternet4Bar from './device/signal-cellular-connected-no-internet-4-bar';
+export { DeviceSignalCellularConnectedNoInternet4Bar };
+import DeviceSignalCellularNoSim from './device/signal-cellular-no-sim';
+export { DeviceSignalCellularNoSim };
+import DeviceSignalCellularNull from './device/signal-cellular-null';
+export { DeviceSignalCellularNull };
+import DeviceSignalCellularOff from './device/signal-cellular-off';
+export { DeviceSignalCellularOff };
+import DeviceSignalWifi0Bar from './device/signal-wifi-0-bar';
+export { DeviceSignalWifi0Bar };
+import DeviceSignalWifi1BarLock from './device/signal-wifi-1-bar-lock';
+export { DeviceSignalWifi1BarLock };
+import DeviceSignalWifi1Bar from './device/signal-wifi-1-bar';
+export { DeviceSignalWifi1Bar };
+import DeviceSignalWifi2BarLock from './device/signal-wifi-2-bar-lock';
+export { DeviceSignalWifi2BarLock };
+import DeviceSignalWifi2Bar from './device/signal-wifi-2-bar';
+export { DeviceSignalWifi2Bar };
+import DeviceSignalWifi3BarLock from './device/signal-wifi-3-bar-lock';
+export { DeviceSignalWifi3BarLock };
+import DeviceSignalWifi3Bar from './device/signal-wifi-3-bar';
+export { DeviceSignalWifi3Bar };
+import DeviceSignalWifi4BarLock from './device/signal-wifi-4-bar-lock';
+export { DeviceSignalWifi4BarLock };
+import DeviceSignalWifi4Bar from './device/signal-wifi-4-bar';
+export { DeviceSignalWifi4Bar };
+import DeviceSignalWifiOff from './device/signal-wifi-off';
+export { DeviceSignalWifiOff };
+import DeviceStorage from './device/storage';
+export { DeviceStorage };
+import DeviceUsb from './device/usb';
+export { DeviceUsb };
+import DeviceWallpaper from './device/wallpaper';
+export { DeviceWallpaper };
+import DeviceWidgets from './device/widgets';
+export { DeviceWidgets };
+import DeviceWifiLock from './device/wifi-lock';
+export { DeviceWifiLock };
+import DeviceWifiTethering from './device/wifi-tethering';
+export { DeviceWifiTethering };
+import EditorAttachFile from './editor/attach-file';
+export { EditorAttachFile };
+import EditorAttachMoney from './editor/attach-money';
+export { EditorAttachMoney };
+import EditorBorderAll from './editor/border-all';
+export { EditorBorderAll };
+import EditorBorderBottom from './editor/border-bottom';
+export { EditorBorderBottom };
+import EditorBorderClear from './editor/border-clear';
+export { EditorBorderClear };
+import EditorBorderColor from './editor/border-color';
+export { EditorBorderColor };
+import EditorBorderHorizontal from './editor/border-horizontal';
+export { EditorBorderHorizontal };
+import EditorBorderInner from './editor/border-inner';
+export { EditorBorderInner };
+import EditorBorderLeft from './editor/border-left';
+export { EditorBorderLeft };
+import EditorBorderOuter from './editor/border-outer';
+export { EditorBorderOuter };
+import EditorBorderRight from './editor/border-right';
+export { EditorBorderRight };
+import EditorBorderStyle from './editor/border-style';
+export { EditorBorderStyle };
+import EditorBorderTop from './editor/border-top';
+export { EditorBorderTop };
+import EditorBorderVertical from './editor/border-vertical';
+export { EditorBorderVertical };
+import EditorDragHandle from './editor/drag-handle';
+export { EditorDragHandle };
+import EditorFormatAlignCenter from './editor/format-align-center';
+export { EditorFormatAlignCenter };
+import EditorFormatAlignJustify from './editor/format-align-justify';
+export { EditorFormatAlignJustify };
+import EditorFormatAlignLeft from './editor/format-align-left';
+export { EditorFormatAlignLeft };
+import EditorFormatAlignRight from './editor/format-align-right';
+export { EditorFormatAlignRight };
+import EditorFormatBold from './editor/format-bold';
+export { EditorFormatBold };
+import EditorFormatClear from './editor/format-clear';
+export { EditorFormatClear };
+import EditorFormatColorFill from './editor/format-color-fill';
+export { EditorFormatColorFill };
+import EditorFormatColorReset from './editor/format-color-reset';
+export { EditorFormatColorReset };
+import EditorFormatColorText from './editor/format-color-text';
+export { EditorFormatColorText };
+import EditorFormatIndentDecrease from './editor/format-indent-decrease';
+export { EditorFormatIndentDecrease };
+import EditorFormatIndentIncrease from './editor/format-indent-increase';
+export { EditorFormatIndentIncrease };
+import EditorFormatItalic from './editor/format-italic';
+export { EditorFormatItalic };
+import EditorFormatLineSpacing from './editor/format-line-spacing';
+export { EditorFormatLineSpacing };
+import EditorFormatListBulleted from './editor/format-list-bulleted';
+export { EditorFormatListBulleted };
+import EditorFormatListNumbered from './editor/format-list-numbered';
+export { EditorFormatListNumbered };
+import EditorFormatPaint from './editor/format-paint';
+export { EditorFormatPaint };
+import EditorFormatQuote from './editor/format-quote';
+export { EditorFormatQuote };
+import EditorFormatShapes from './editor/format-shapes';
+export { EditorFormatShapes };
+import EditorFormatSize from './editor/format-size';
+export { EditorFormatSize };
+import EditorFormatStrikethrough from './editor/format-strikethrough';
+export { EditorFormatStrikethrough };
+import EditorFormatTextdirectionLToR from './editor/format-textdirection-l-to-r';
+export { EditorFormatTextdirectionLToR };
+import EditorFormatTextdirectionRToL from './editor/format-textdirection-r-to-l';
+export { EditorFormatTextdirectionRToL };
+import EditorFormatUnderlined from './editor/format-underlined';
+export { EditorFormatUnderlined };
+import EditorFunctions from './editor/functions';
+export { EditorFunctions };
+import EditorHighlight from './editor/highlight';
+export { EditorHighlight };
+import EditorInsertChart from './editor/insert-chart';
+export { EditorInsertChart };
+import EditorInsertComment from './editor/insert-comment';
+export { EditorInsertComment };
+import EditorInsertDriveFile from './editor/insert-drive-file';
+export { EditorInsertDriveFile };
+import EditorInsertEmoticon from './editor/insert-emoticon';
+export { EditorInsertEmoticon };
+import EditorInsertInvitation from './editor/insert-invitation';
+export { EditorInsertInvitation };
+import EditorInsertLink from './editor/insert-link';
+export { EditorInsertLink };
+import EditorInsertPhoto from './editor/insert-photo';
+export { EditorInsertPhoto };
+import EditorLinearScale from './editor/linear-scale';
+export { EditorLinearScale };
+import EditorMergeType from './editor/merge-type';
+export { EditorMergeType };
+import EditorModeComment from './editor/mode-comment';
+export { EditorModeComment };
+import EditorModeEdit from './editor/mode-edit';
+export { EditorModeEdit };
+import EditorMoneyOff from './editor/money-off';
+export { EditorMoneyOff };
+import EditorPublish from './editor/publish';
+export { EditorPublish };
+import EditorShortText from './editor/short-text';
+export { EditorShortText };
+import EditorSpaceBar from './editor/space-bar';
+export { EditorSpaceBar };
+import EditorStrikethroughS from './editor/strikethrough-s';
+export { EditorStrikethroughS };
+import EditorTextFields from './editor/text-fields';
+export { EditorTextFields };
+import EditorVerticalAlignBottom from './editor/vertical-align-bottom';
+export { EditorVerticalAlignBottom };
+import EditorVerticalAlignCenter from './editor/vertical-align-center';
+export { EditorVerticalAlignCenter };
+import EditorVerticalAlignTop from './editor/vertical-align-top';
+export { EditorVerticalAlignTop };
+import EditorWrapText from './editor/wrap-text';
+export { EditorWrapText };
+import FileAttachment from './file/attachment';
+export { FileAttachment };
+import FileCloudCircle from './file/cloud-circle';
+export { FileCloudCircle };
+import FileCloudDone from './file/cloud-done';
+export { FileCloudDone };
+import FileCloudDownload from './file/cloud-download';
+export { FileCloudDownload };
+import FileCloudOff from './file/cloud-off';
+export { FileCloudOff };
+import FileCloudQueue from './file/cloud-queue';
+export { FileCloudQueue };
+import FileCloudUpload from './file/cloud-upload';
+export { FileCloudUpload };
+import FileCloud from './file/cloud';
+export { FileCloud };
+import FileCreateNewFolder from './file/create-new-folder';
+export { FileCreateNewFolder };
+import FileFileDownload from './file/file-download';
+export { FileFileDownload };
+import FileFileUpload from './file/file-upload';
+export { FileFileUpload };
+import FileFolderOpen from './file/folder-open';
+export { FileFolderOpen };
+import FileFolderShared from './file/folder-shared';
+export { FileFolderShared };
+import FileFolder from './file/folder';
+export { FileFolder };
+import HardwareCastConnected from './hardware/cast-connected';
+export { HardwareCastConnected };
+import HardwareCast from './hardware/cast';
+export { HardwareCast };
+import HardwareComputer from './hardware/computer';
+export { HardwareComputer };
+import HardwareDesktopMac from './hardware/desktop-mac';
+export { HardwareDesktopMac };
+import HardwareDesktopWindows from './hardware/desktop-windows';
+export { HardwareDesktopWindows };
+import HardwareDeveloperBoard from './hardware/developer-board';
+export { HardwareDeveloperBoard };
+import HardwareDeviceHub from './hardware/device-hub';
+export { HardwareDeviceHub };
+import HardwareDevicesOther from './hardware/devices-other';
+export { HardwareDevicesOther };
+import HardwareDock from './hardware/dock';
+export { HardwareDock };
+import HardwareGamepad from './hardware/gamepad';
+export { HardwareGamepad };
+import HardwareHeadsetMic from './hardware/headset-mic';
+export { HardwareHeadsetMic };
+import HardwareHeadset from './hardware/headset';
+export { HardwareHeadset };
+import HardwareKeyboardArrowDown from './hardware/keyboard-arrow-down';
+export { HardwareKeyboardArrowDown };
+import HardwareKeyboardArrowLeft from './hardware/keyboard-arrow-left';
+export { HardwareKeyboardArrowLeft };
+import HardwareKeyboardArrowRight from './hardware/keyboard-arrow-right';
+export { HardwareKeyboardArrowRight };
+import HardwareKeyboardArrowUp from './hardware/keyboard-arrow-up';
+export { HardwareKeyboardArrowUp };
+import HardwareKeyboardBackspace from './hardware/keyboard-backspace';
+export { HardwareKeyboardBackspace };
+import HardwareKeyboardCapslock from './hardware/keyboard-capslock';
+export { HardwareKeyboardCapslock };
+import HardwareKeyboardHide from './hardware/keyboard-hide';
+export { HardwareKeyboardHide };
+import HardwareKeyboardReturn from './hardware/keyboard-return';
+export { HardwareKeyboardReturn };
+import HardwareKeyboardTab from './hardware/keyboard-tab';
+export { HardwareKeyboardTab };
+import HardwareKeyboardVoice from './hardware/keyboard-voice';
+export { HardwareKeyboardVoice };
+import HardwareKeyboard from './hardware/keyboard';
+export { HardwareKeyboard };
+import HardwareLaptopChromebook from './hardware/laptop-chromebook';
+export { HardwareLaptopChromebook };
+import HardwareLaptopMac from './hardware/laptop-mac';
+export { HardwareLaptopMac };
+import HardwareLaptopWindows from './hardware/laptop-windows';
+export { HardwareLaptopWindows };
+import HardwareLaptop from './hardware/laptop';
+export { HardwareLaptop };
+import HardwareMemory from './hardware/memory';
+export { HardwareMemory };
+import HardwareMouse from './hardware/mouse';
+export { HardwareMouse };
+import HardwarePhoneAndroid from './hardware/phone-android';
+export { HardwarePhoneAndroid };
+import HardwarePhoneIphone from './hardware/phone-iphone';
+export { HardwarePhoneIphone };
+import HardwarePhonelinkOff from './hardware/phonelink-off';
+export { HardwarePhonelinkOff };
+import HardwarePhonelink from './hardware/phonelink';
+export { HardwarePhonelink };
+import HardwarePowerInput from './hardware/power-input';
+export { HardwarePowerInput };
+import HardwareRouter from './hardware/router';
+export { HardwareRouter };
+import HardwareScanner from './hardware/scanner';
+export { HardwareScanner };
+import HardwareSecurity from './hardware/security';
+export { HardwareSecurity };
+import HardwareSimCard from './hardware/sim-card';
+export { HardwareSimCard };
+import HardwareSmartphone from './hardware/smartphone';
+export { HardwareSmartphone };
+import HardwareSpeakerGroup from './hardware/speaker-group';
+export { HardwareSpeakerGroup };
+import HardwareSpeaker from './hardware/speaker';
+export { HardwareSpeaker };
+import HardwareTabletAndroid from './hardware/tablet-android';
+export { HardwareTabletAndroid };
+import HardwareTabletMac from './hardware/tablet-mac';
+export { HardwareTabletMac };
+import HardwareTablet from './hardware/tablet';
+export { HardwareTablet };
+import HardwareToys from './hardware/toys';
+export { HardwareToys };
+import HardwareTv from './hardware/tv';
+export { HardwareTv };
+import HardwareVideogameAsset from './hardware/videogame-asset';
+export { HardwareVideogameAsset };
+import HardwareWatch from './hardware/watch';
+export { HardwareWatch };
+import ImageAddAPhoto from './image/add-a-photo';
+export { ImageAddAPhoto };
+import ImageAddToPhotos from './image/add-to-photos';
+export { ImageAddToPhotos };
+import ImageAdjust from './image/adjust';
+export { ImageAdjust };
+import ImageAssistantPhoto from './image/assistant-photo';
+export { ImageAssistantPhoto };
+import ImageAssistant from './image/assistant';
+export { ImageAssistant };
+import ImageAudiotrack from './image/audiotrack';
+export { ImageAudiotrack };
+import ImageBlurCircular from './image/blur-circular';
+export { ImageBlurCircular };
+import ImageBlurLinear from './image/blur-linear';
+export { ImageBlurLinear };
+import ImageBlurOff from './image/blur-off';
+export { ImageBlurOff };
+import ImageBlurOn from './image/blur-on';
+export { ImageBlurOn };
+import ImageBrightness1 from './image/brightness-1';
+export { ImageBrightness1 };
+import ImageBrightness2 from './image/brightness-2';
+export { ImageBrightness2 };
+import ImageBrightness3 from './image/brightness-3';
+export { ImageBrightness3 };
+import ImageBrightness4 from './image/brightness-4';
+export { ImageBrightness4 };
+import ImageBrightness5 from './image/brightness-5';
+export { ImageBrightness5 };
+import ImageBrightness6 from './image/brightness-6';
+export { ImageBrightness6 };
+import ImageBrightness7 from './image/brightness-7';
+export { ImageBrightness7 };
+import ImageBrokenImage from './image/broken-image';
+export { ImageBrokenImage };
+import ImageBrush from './image/brush';
+export { ImageBrush };
+import ImageCameraAlt from './image/camera-alt';
+export { ImageCameraAlt };
+import ImageCameraFront from './image/camera-front';
+export { ImageCameraFront };
+import ImageCameraRear from './image/camera-rear';
+export { ImageCameraRear };
+import ImageCameraRoll from './image/camera-roll';
+export { ImageCameraRoll };
+import ImageCamera from './image/camera';
+export { ImageCamera };
+import ImageCenterFocusStrong from './image/center-focus-strong';
+export { ImageCenterFocusStrong };
+import ImageCenterFocusWeak from './image/center-focus-weak';
+export { ImageCenterFocusWeak };
+import ImageCollectionsBookmark from './image/collections-bookmark';
+export { ImageCollectionsBookmark };
+import ImageCollections from './image/collections';
+export { ImageCollections };
+import ImageColorLens from './image/color-lens';
+export { ImageColorLens };
+import ImageColorize from './image/colorize';
+export { ImageColorize };
+import ImageCompare from './image/compare';
+export { ImageCompare };
+import ImageControlPointDuplicate from './image/control-point-duplicate';
+export { ImageControlPointDuplicate };
+import ImageControlPoint from './image/control-point';
+export { ImageControlPoint };
+import ImageCrop169 from './image/crop-16-9';
+export { ImageCrop169 };
+import ImageCrop32 from './image/crop-3-2';
+export { ImageCrop32 };
+import ImageCrop54 from './image/crop-5-4';
+export { ImageCrop54 };
+import ImageCrop75 from './image/crop-7-5';
+export { ImageCrop75 };
+import ImageCropDin from './image/crop-din';
+export { ImageCropDin };
+import ImageCropFree from './image/crop-free';
+export { ImageCropFree };
+import ImageCropLandscape from './image/crop-landscape';
+export { ImageCropLandscape };
+import ImageCropOriginal from './image/crop-original';
+export { ImageCropOriginal };
+import ImageCropPortrait from './image/crop-portrait';
+export { ImageCropPortrait };
+import ImageCropRotate from './image/crop-rotate';
+export { ImageCropRotate };
+import ImageCropSquare from './image/crop-square';
+export { ImageCropSquare };
+import ImageCrop from './image/crop';
+export { ImageCrop };
+import ImageDehaze from './image/dehaze';
+export { ImageDehaze };
+import ImageDetails from './image/details';
+export { ImageDetails };
+import ImageEdit from './image/edit';
+export { ImageEdit };
+import ImageExposureNeg1 from './image/exposure-neg-1';
+export { ImageExposureNeg1 };
+import ImageExposureNeg2 from './image/exposure-neg-2';
+export { ImageExposureNeg2 };
+import ImageExposurePlus1 from './image/exposure-plus-1';
+export { ImageExposurePlus1 };
+import ImageExposurePlus2 from './image/exposure-plus-2';
+export { ImageExposurePlus2 };
+import ImageExposureZero from './image/exposure-zero';
+export { ImageExposureZero };
+import ImageExposure from './image/exposure';
+export { ImageExposure };
+import ImageFilter1 from './image/filter-1';
+export { ImageFilter1 };
+import ImageFilter2 from './image/filter-2';
+export { ImageFilter2 };
+import ImageFilter3 from './image/filter-3';
+export { ImageFilter3 };
+import ImageFilter4 from './image/filter-4';
+export { ImageFilter4 };
+import ImageFilter5 from './image/filter-5';
+export { ImageFilter5 };
+import ImageFilter6 from './image/filter-6';
+export { ImageFilter6 };
+import ImageFilter7 from './image/filter-7';
+export { ImageFilter7 };
+import ImageFilter8 from './image/filter-8';
+export { ImageFilter8 };
+import ImageFilter9Plus from './image/filter-9-plus';
+export { ImageFilter9Plus };
+import ImageFilter9 from './image/filter-9';
+export { ImageFilter9 };
+import ImageFilterBAndW from './image/filter-b-and-w';
+export { ImageFilterBAndW };
+import ImageFilterCenterFocus from './image/filter-center-focus';
+export { ImageFilterCenterFocus };
+import ImageFilterDrama from './image/filter-drama';
+export { ImageFilterDrama };
+import ImageFilterFrames from './image/filter-frames';
+export { ImageFilterFrames };
+import ImageFilterHdr from './image/filter-hdr';
+export { ImageFilterHdr };
+import ImageFilterNone from './image/filter-none';
+export { ImageFilterNone };
+import ImageFilterTiltShift from './image/filter-tilt-shift';
+export { ImageFilterTiltShift };
+import ImageFilterVintage from './image/filter-vintage';
+export { ImageFilterVintage };
+import ImageFilter from './image/filter';
+export { ImageFilter };
+import ImageFlare from './image/flare';
+export { ImageFlare };
+import ImageFlashAuto from './image/flash-auto';
+export { ImageFlashAuto };
+import ImageFlashOff from './image/flash-off';
+export { ImageFlashOff };
+import ImageFlashOn from './image/flash-on';
+export { ImageFlashOn };
+import ImageFlip from './image/flip';
+export { ImageFlip };
+import ImageGradient from './image/gradient';
+export { ImageGradient };
+import ImageGrain from './image/grain';
+export { ImageGrain };
+import ImageGridOff from './image/grid-off';
+export { ImageGridOff };
+import ImageGridOn from './image/grid-on';
+export { ImageGridOn };
+import ImageHdrOff from './image/hdr-off';
+export { ImageHdrOff };
+import ImageHdrOn from './image/hdr-on';
+export { ImageHdrOn };
+import ImageHdrStrong from './image/hdr-strong';
+export { ImageHdrStrong };
+import ImageHdrWeak from './image/hdr-weak';
+export { ImageHdrWeak };
+import ImageHealing from './image/healing';
+export { ImageHealing };
+import ImageImageAspectRatio from './image/image-aspect-ratio';
+export { ImageImageAspectRatio };
+import ImageImage from './image/image';
+export { ImageImage };
+import ImageIso from './image/iso';
+export { ImageIso };
+import ImageLandscape from './image/landscape';
+export { ImageLandscape };
+import ImageLeakAdd from './image/leak-add';
+export { ImageLeakAdd };
+import ImageLeakRemove from './image/leak-remove';
+export { ImageLeakRemove };
+import ImageLens from './image/lens';
+export { ImageLens };
+import ImageLinkedCamera from './image/linked-camera';
+export { ImageLinkedCamera };
+import ImageLooks3 from './image/looks-3';
+export { ImageLooks3 };
+import ImageLooks4 from './image/looks-4';
+export { ImageLooks4 };
+import ImageLooks5 from './image/looks-5';
+export { ImageLooks5 };
+import ImageLooks6 from './image/looks-6';
+export { ImageLooks6 };
+import ImageLooksOne from './image/looks-one';
+export { ImageLooksOne };
+import ImageLooksTwo from './image/looks-two';
+export { ImageLooksTwo };
+import ImageLooks from './image/looks';
+export { ImageLooks };
+import ImageLoupe from './image/loupe';
+export { ImageLoupe };
+import ImageMonochromePhotos from './image/monochrome-photos';
+export { ImageMonochromePhotos };
+import ImageMovieCreation from './image/movie-creation';
+export { ImageMovieCreation };
+import ImageMovieFilter from './image/movie-filter';
+export { ImageMovieFilter };
+import ImageMusicNote from './image/music-note';
+export { ImageMusicNote };
+import ImageNaturePeople from './image/nature-people';
+export { ImageNaturePeople };
+import ImageNature from './image/nature';
+export { ImageNature };
+import ImageNavigateBefore from './image/navigate-before';
+export { ImageNavigateBefore };
+import ImageNavigateNext from './image/navigate-next';
+export { ImageNavigateNext };
+import ImagePalette from './image/palette';
+export { ImagePalette };
+import ImagePanoramaFishEye from './image/panorama-fish-eye';
+export { ImagePanoramaFishEye };
+import ImagePanoramaHorizontal from './image/panorama-horizontal';
+export { ImagePanoramaHorizontal };
+import ImagePanoramaVertical from './image/panorama-vertical';
+export { ImagePanoramaVertical };
+import ImagePanoramaWideAngle from './image/panorama-wide-angle';
+export { ImagePanoramaWideAngle };
+import ImagePanorama from './image/panorama';
+export { ImagePanorama };
+import ImagePhotoAlbum from './image/photo-album';
+export { ImagePhotoAlbum };
+import ImagePhotoCamera from './image/photo-camera';
+export { ImagePhotoCamera };
+import ImagePhotoFilter from './image/photo-filter';
+export { ImagePhotoFilter };
+import ImagePhotoLibrary from './image/photo-library';
+export { ImagePhotoLibrary };
+import ImagePhotoSizeSelectActual from './image/photo-size-select-actual';
+export { ImagePhotoSizeSelectActual };
+import ImagePhotoSizeSelectLarge from './image/photo-size-select-large';
+export { ImagePhotoSizeSelectLarge };
+import ImagePhotoSizeSelectSmall from './image/photo-size-select-small';
+export { ImagePhotoSizeSelectSmall };
+import ImagePhoto from './image/photo';
+export { ImagePhoto };
+import ImagePictureAsPdf from './image/picture-as-pdf';
+export { ImagePictureAsPdf };
+import ImagePortrait from './image/portrait';
+export { ImagePortrait };
+import ImageRemoveRedEye from './image/remove-red-eye';
+export { ImageRemoveRedEye };
+import ImageRotate90DegreesCcw from './image/rotate-90-degrees-ccw';
+export { ImageRotate90DegreesCcw };
+import ImageRotateLeft from './image/rotate-left';
+export { ImageRotateLeft };
+import ImageRotateRight from './image/rotate-right';
+export { ImageRotateRight };
+import ImageSlideshow from './image/slideshow';
+export { ImageSlideshow };
+import ImageStraighten from './image/straighten';
+export { ImageStraighten };
+import ImageStyle from './image/style';
+export { ImageStyle };
+import ImageSwitchCamera from './image/switch-camera';
+export { ImageSwitchCamera };
+import ImageSwitchVideo from './image/switch-video';
+export { ImageSwitchVideo };
+import ImageTagFaces from './image/tag-faces';
+export { ImageTagFaces };
+import ImageTexture from './image/texture';
+export { ImageTexture };
+import ImageTimelapse from './image/timelapse';
+export { ImageTimelapse };
+import ImageTimer10 from './image/timer-10';
+export { ImageTimer10 };
+import ImageTimer3 from './image/timer-3';
+export { ImageTimer3 };
+import ImageTimerOff from './image/timer-off';
+export { ImageTimerOff };
+import ImageTimer from './image/timer';
+export { ImageTimer };
+import ImageTonality from './image/tonality';
+export { ImageTonality };
+import ImageTransform from './image/transform';
+export { ImageTransform };
+import ImageTune from './image/tune';
+export { ImageTune };
+import ImageViewComfy from './image/view-comfy';
+export { ImageViewComfy };
+import ImageViewCompact from './image/view-compact';
+export { ImageViewCompact };
+import ImageVignette from './image/vignette';
+export { ImageVignette };
+import ImageWbAuto from './image/wb-auto';
+export { ImageWbAuto };
+import ImageWbCloudy from './image/wb-cloudy';
+export { ImageWbCloudy };
+import ImageWbIncandescent from './image/wb-incandescent';
+export { ImageWbIncandescent };
+import ImageWbIridescent from './image/wb-iridescent';
+export { ImageWbIridescent };
+import ImageWbSunny from './image/wb-sunny';
+export { ImageWbSunny };
+import MapsAddLocation from './maps/add-location';
+export { MapsAddLocation };
+import MapsBeenhere from './maps/beenhere';
+export { MapsBeenhere };
+import MapsDirectionsBike from './maps/directions-bike';
+export { MapsDirectionsBike };
+import MapsDirectionsBoat from './maps/directions-boat';
+export { MapsDirectionsBoat };
+import MapsDirectionsBus from './maps/directions-bus';
+export { MapsDirectionsBus };
+import MapsDirectionsCar from './maps/directions-car';
+export { MapsDirectionsCar };
+import MapsDirectionsRailway from './maps/directions-railway';
+export { MapsDirectionsRailway };
+import MapsDirectionsRun from './maps/directions-run';
+export { MapsDirectionsRun };
+import MapsDirectionsSubway from './maps/directions-subway';
+export { MapsDirectionsSubway };
+import MapsDirectionsTransit from './maps/directions-transit';
+export { MapsDirectionsTransit };
+import MapsDirectionsWalk from './maps/directions-walk';
+export { MapsDirectionsWalk };
+import MapsDirections from './maps/directions';
+export { MapsDirections };
+import MapsEditLocation from './maps/edit-location';
+export { MapsEditLocation };
+import MapsFlight from './maps/flight';
+export { MapsFlight };
+import MapsHotel from './maps/hotel';
+export { MapsHotel };
+import MapsLayersClear from './maps/layers-clear';
+export { MapsLayersClear };
+import MapsLayers from './maps/layers';
+export { MapsLayers };
+import MapsLocalActivity from './maps/local-activity';
+export { MapsLocalActivity };
+import MapsLocalAirport from './maps/local-airport';
+export { MapsLocalAirport };
+import MapsLocalAtm from './maps/local-atm';
+export { MapsLocalAtm };
+import MapsLocalBar from './maps/local-bar';
+export { MapsLocalBar };
+import MapsLocalCafe from './maps/local-cafe';
+export { MapsLocalCafe };
+import MapsLocalCarWash from './maps/local-car-wash';
+export { MapsLocalCarWash };
+import MapsLocalConvenienceStore from './maps/local-convenience-store';
+export { MapsLocalConvenienceStore };
+import MapsLocalDining from './maps/local-dining';
+export { MapsLocalDining };
+import MapsLocalDrink from './maps/local-drink';
+export { MapsLocalDrink };
+import MapsLocalFlorist from './maps/local-florist';
+export { MapsLocalFlorist };
+import MapsLocalGasStation from './maps/local-gas-station';
+export { MapsLocalGasStation };
+import MapsLocalGroceryStore from './maps/local-grocery-store';
+export { MapsLocalGroceryStore };
+import MapsLocalHospital from './maps/local-hospital';
+export { MapsLocalHospital };
+import MapsLocalHotel from './maps/local-hotel';
+export { MapsLocalHotel };
+import MapsLocalLaundryService from './maps/local-laundry-service';
+export { MapsLocalLaundryService };
+import MapsLocalLibrary from './maps/local-library';
+export { MapsLocalLibrary };
+import MapsLocalMall from './maps/local-mall';
+export { MapsLocalMall };
+import MapsLocalMovies from './maps/local-movies';
+export { MapsLocalMovies };
+import MapsLocalOffer from './maps/local-offer';
+export { MapsLocalOffer };
+import MapsLocalParking from './maps/local-parking';
+export { MapsLocalParking };
+import MapsLocalPharmacy from './maps/local-pharmacy';
+export { MapsLocalPharmacy };
+import MapsLocalPhone from './maps/local-phone';
+export { MapsLocalPhone };
+import MapsLocalPizza from './maps/local-pizza';
+export { MapsLocalPizza };
+import MapsLocalPlay from './maps/local-play';
+export { MapsLocalPlay };
+import MapsLocalPostOffice from './maps/local-post-office';
+export { MapsLocalPostOffice };
+import MapsLocalPrintshop from './maps/local-printshop';
+export { MapsLocalPrintshop };
+import MapsLocalSee from './maps/local-see';
+export { MapsLocalSee };
+import MapsLocalShipping from './maps/local-shipping';
+export { MapsLocalShipping };
+import MapsLocalTaxi from './maps/local-taxi';
+export { MapsLocalTaxi };
+import MapsMap from './maps/map';
+export { MapsMap };
+import MapsMyLocation from './maps/my-location';
+export { MapsMyLocation };
+import MapsNavigation from './maps/navigation';
+export { MapsNavigation };
+import MapsNearMe from './maps/near-me';
+export { MapsNearMe };
+import MapsPersonPinCircle from './maps/person-pin-circle';
+export { MapsPersonPinCircle };
+import MapsPersonPin from './maps/person-pin';
+export { MapsPersonPin };
+import MapsPinDrop from './maps/pin-drop';
+export { MapsPinDrop };
+import MapsPlace from './maps/place';
+export { MapsPlace };
+import MapsRateReview from './maps/rate-review';
+export { MapsRateReview };
+import MapsRestaurantMenu from './maps/restaurant-menu';
+export { MapsRestaurantMenu };
+import MapsSatellite from './maps/satellite';
+export { MapsSatellite };
+import MapsStoreMallDirectory from './maps/store-mall-directory';
+export { MapsStoreMallDirectory };
+import MapsTerrain from './maps/terrain';
+export { MapsTerrain };
+import MapsTraffic from './maps/traffic';
+export { MapsTraffic };
+import MapsZoomOutMap from './maps/zoom-out-map';
+export { MapsZoomOutMap };
+import NavigationApps from './navigation/apps';
+export { NavigationApps };
+import NavigationArrowBack from './navigation/arrow-back';
+export { NavigationArrowBack };
+import NavigationArrowDownward from './navigation/arrow-downward';
+export { NavigationArrowDownward };
+import NavigationArrowDropDownCircle from './navigation/arrow-drop-down-circle';
+export { NavigationArrowDropDownCircle };
+import NavigationArrowDropDown from './navigation/arrow-drop-down';
+export { NavigationArrowDropDown };
+import NavigationArrowDropUp from './navigation/arrow-drop-up';
+export { NavigationArrowDropUp };
+import NavigationArrowForward from './navigation/arrow-forward';
+export { NavigationArrowForward };
+import NavigationArrowUpward from './navigation/arrow-upward';
+export { NavigationArrowUpward };
+import NavigationCancel from './navigation/cancel';
+export { NavigationCancel };
+import NavigationCheck from './navigation/check';
+export { NavigationCheck };
+import NavigationChevronLeft from './navigation/chevron-left';
+export { NavigationChevronLeft };
+import NavigationChevronRight from './navigation/chevron-right';
+export { NavigationChevronRight };
+import NavigationClose from './navigation/close';
+export { NavigationClose };
+import NavigationExpandLess from './navigation/expand-less';
+export { NavigationExpandLess };
+import NavigationExpandMore from './navigation/expand-more';
+export { NavigationExpandMore };
+import NavigationFullscreenExit from './navigation/fullscreen-exit';
+export { NavigationFullscreenExit };
+import NavigationFullscreen from './navigation/fullscreen';
+export { NavigationFullscreen };
+import NavigationMenu from './navigation/menu';
+export { NavigationMenu };
+import NavigationMoreHoriz from './navigation/more-horiz';
+export { NavigationMoreHoriz };
+import NavigationMoreVert from './navigation/more-vert';
+export { NavigationMoreVert };
+import NavigationRefresh from './navigation/refresh';
+export { NavigationRefresh };
+import NavigationSubdirectoryArrowLeft from './navigation/subdirectory-arrow-left';
+export { NavigationSubdirectoryArrowLeft };
+import NavigationSubdirectoryArrowRight from './navigation/subdirectory-arrow-right';
+export { NavigationSubdirectoryArrowRight };
+import NavigationUnfoldLess from './navigation/unfold-less';
+export { NavigationUnfoldLess };
+import NavigationUnfoldMore from './navigation/unfold-more';
+export { NavigationUnfoldMore };
+import NavigationArrowDropRight from './navigation-arrow-drop-right';
+export { NavigationArrowDropRight };
+import NotificationAdb from './notification/adb';
+export { NotificationAdb };
+import NotificationAirlineSeatFlatAngled from './notification/airline-seat-flat-angled';
+export { NotificationAirlineSeatFlatAngled };
+import NotificationAirlineSeatFlat from './notification/airline-seat-flat';
+export { NotificationAirlineSeatFlat };
+import NotificationAirlineSeatIndividualSuite from './notification/airline-seat-individual-suite';
+export { NotificationAirlineSeatIndividualSuite };
+import NotificationAirlineSeatLegroomExtra from './notification/airline-seat-legroom-extra';
+export { NotificationAirlineSeatLegroomExtra };
+import NotificationAirlineSeatLegroomNormal from './notification/airline-seat-legroom-normal';
+export { NotificationAirlineSeatLegroomNormal };
+import NotificationAirlineSeatLegroomReduced from './notification/airline-seat-legroom-reduced';
+export { NotificationAirlineSeatLegroomReduced };
+import NotificationAirlineSeatReclineExtra from './notification/airline-seat-recline-extra';
+export { NotificationAirlineSeatReclineExtra };
+import NotificationAirlineSeatReclineNormal from './notification/airline-seat-recline-normal';
+export { NotificationAirlineSeatReclineNormal };
+import NotificationBluetoothAudio from './notification/bluetooth-audio';
+export { NotificationBluetoothAudio };
+import NotificationConfirmationNumber from './notification/confirmation-number';
+export { NotificationConfirmationNumber };
+import NotificationDiscFull from './notification/disc-full';
+export { NotificationDiscFull };
+import NotificationDoNotDisturbAlt from './notification/do-not-disturb-alt';
+export { NotificationDoNotDisturbAlt };
+import NotificationDoNotDisturb from './notification/do-not-disturb';
+export { NotificationDoNotDisturb };
+import NotificationDriveEta from './notification/drive-eta';
+export { NotificationDriveEta };
+import NotificationEnhancedEncryption from './notification/enhanced-encryption';
+export { NotificationEnhancedEncryption };
+import NotificationEventAvailable from './notification/event-available';
+export { NotificationEventAvailable };
+import NotificationEventBusy from './notification/event-busy';
+export { NotificationEventBusy };
+import NotificationEventNote from './notification/event-note';
+export { NotificationEventNote };
+import NotificationFolderSpecial from './notification/folder-special';
+export { NotificationFolderSpecial };
+import NotificationLiveTv from './notification/live-tv';
+export { NotificationLiveTv };
+import NotificationMms from './notification/mms';
+export { NotificationMms };
+import NotificationMore from './notification/more';
+export { NotificationMore };
+import NotificationNetworkCheck from './notification/network-check';
+export { NotificationNetworkCheck };
+import NotificationNetworkLocked from './notification/network-locked';
+export { NotificationNetworkLocked };
+import NotificationNoEncryption from './notification/no-encryption';
+export { NotificationNoEncryption };
+import NotificationOndemandVideo from './notification/ondemand-video';
+export { NotificationOndemandVideo };
+import NotificationPersonalVideo from './notification/personal-video';
+export { NotificationPersonalVideo };
+import NotificationPhoneBluetoothSpeaker from './notification/phone-bluetooth-speaker';
+export { NotificationPhoneBluetoothSpeaker };
+import NotificationPhoneForwarded from './notification/phone-forwarded';
+export { NotificationPhoneForwarded };
+import NotificationPhoneInTalk from './notification/phone-in-talk';
+export { NotificationPhoneInTalk };
+import NotificationPhoneLocked from './notification/phone-locked';
+export { NotificationPhoneLocked };
+import NotificationPhoneMissed from './notification/phone-missed';
+export { NotificationPhoneMissed };
+import NotificationPhonePaused from './notification/phone-paused';
+export { NotificationPhonePaused };
+import NotificationPower from './notification/power';
+export { NotificationPower };
+import NotificationRvHookup from './notification/rv-hookup';
+export { NotificationRvHookup };
+import NotificationSdCard from './notification/sd-card';
+export { NotificationSdCard };
+import NotificationSimCardAlert from './notification/sim-card-alert';
+export { NotificationSimCardAlert };
+import NotificationSmsFailed from './notification/sms-failed';
+export { NotificationSmsFailed };
+import NotificationSms from './notification/sms';
+export { NotificationSms };
+import NotificationSyncDisabled from './notification/sync-disabled';
+export { NotificationSyncDisabled };
+import NotificationSyncProblem from './notification/sync-problem';
+export { NotificationSyncProblem };
+import NotificationSync from './notification/sync';
+export { NotificationSync };
+import NotificationSystemUpdate from './notification/system-update';
+export { NotificationSystemUpdate };
+import NotificationTapAndPlay from './notification/tap-and-play';
+export { NotificationTapAndPlay };
+import NotificationTimeToLeave from './notification/time-to-leave';
+export { NotificationTimeToLeave };
+import NotificationVibration from './notification/vibration';
+export { NotificationVibration };
+import NotificationVoiceChat from './notification/voice-chat';
+export { NotificationVoiceChat };
+import NotificationVpnLock from './notification/vpn-lock';
+export { NotificationVpnLock };
+import NotificationWc from './notification/wc';
+export { NotificationWc };
+import NotificationWifi from './notification/wifi';
+export { NotificationWifi };
+import PlacesAcUnit from './places/ac-unit';
+export { PlacesAcUnit };
+import PlacesAirportShuttle from './places/airport-shuttle';
+export { PlacesAirportShuttle };
+import PlacesAllInclusive from './places/all-inclusive';
+export { PlacesAllInclusive };
+import PlacesBeachAccess from './places/beach-access';
+export { PlacesBeachAccess };
+import PlacesBusinessCenter from './places/business-center';
+export { PlacesBusinessCenter };
+import PlacesCasino from './places/casino';
+export { PlacesCasino };
+import PlacesChildCare from './places/child-care';
+export { PlacesChildCare };
+import PlacesChildFriendly from './places/child-friendly';
+export { PlacesChildFriendly };
+import PlacesFitnessCenter from './places/fitness-center';
+export { PlacesFitnessCenter };
+import PlacesFreeBreakfast from './places/free-breakfast';
+export { PlacesFreeBreakfast };
+import PlacesGolfCourse from './places/golf-course';
+export { PlacesGolfCourse };
+import PlacesHotTub from './places/hot-tub';
+export { PlacesHotTub };
+import PlacesKitchen from './places/kitchen';
+export { PlacesKitchen };
+import PlacesPool from './places/pool';
+export { PlacesPool };
+import PlacesRoomService from './places/room-service';
+export { PlacesRoomService };
+import PlacesSmokeFree from './places/smoke-free';
+export { PlacesSmokeFree };
+import PlacesSmokingRooms from './places/smoking-rooms';
+export { PlacesSmokingRooms };
+import PlacesSpa from './places/spa';
+export { PlacesSpa };
+import SocialCake from './social/cake';
+export { SocialCake };
+import SocialDomain from './social/domain';
+export { SocialDomain };
+import SocialGroupAdd from './social/group-add';
+export { SocialGroupAdd };
+import SocialGroup from './social/group';
+export { SocialGroup };
+import SocialLocationCity from './social/location-city';
+export { SocialLocationCity };
+import SocialMoodBad from './social/mood-bad';
+export { SocialMoodBad };
+import SocialMood from './social/mood';
+export { SocialMood };
+import SocialNotificationsActive from './social/notifications-active';
+export { SocialNotificationsActive };
+import SocialNotificationsNone from './social/notifications-none';
+export { SocialNotificationsNone };
+import SocialNotificationsOff from './social/notifications-off';
+export { SocialNotificationsOff };
+import SocialNotificationsPaused from './social/notifications-paused';
+export { SocialNotificationsPaused };
+import SocialNotifications from './social/notifications';
+export { SocialNotifications };
+import SocialPages from './social/pages';
+export { SocialPages };
+import SocialPartyMode from './social/party-mode';
+export { SocialPartyMode };
+import SocialPeopleOutline from './social/people-outline';
+export { SocialPeopleOutline };
+import SocialPeople from './social/people';
+export { SocialPeople };
+import SocialPersonAdd from './social/person-add';
+export { SocialPersonAdd };
+import SocialPersonOutline from './social/person-outline';
+export { SocialPersonOutline };
+import SocialPerson from './social/person';
+export { SocialPerson };
+import SocialPlusOne from './social/plus-one';
+export { SocialPlusOne };
+import SocialPoll from './social/poll';
+export { SocialPoll };
+import SocialPublic from './social/public';
+export { SocialPublic };
+import SocialSchool from './social/school';
+export { SocialSchool };
+import SocialShare from './social/share';
+export { SocialShare };
+import SocialWhatshot from './social/whatshot';
+export { SocialWhatshot };
+import ToggleCheckBoxOutlineBlank from './toggle/check-box-outline-blank';
+export { ToggleCheckBoxOutlineBlank };
+import ToggleCheckBox from './toggle/check-box';
+export { ToggleCheckBox };
+import ToggleIndeterminateCheckBox from './toggle/indeterminate-check-box';
+export { ToggleIndeterminateCheckBox };
+import ToggleRadioButtonChecked from './toggle/radio-button-checked';
+export { ToggleRadioButtonChecked };
+import ToggleRadioButtonUnchecked from './toggle/radio-button-unchecked';
+export { ToggleRadioButtonUnchecked };
+import ToggleStarBorder from './toggle/star-border';
+export { ToggleStarBorder };
+import ToggleStarHalf from './toggle/star-half';
+export { ToggleStarHalf };
+import ToggleStar from './toggle/star';
+export { ToggleStar };
diff --git a/node_modules/material-ui/src/svg-icons/maps/add-location.jsx b/node_modules/material-ui/src/svg-icons/maps/add-location.jsx
new file mode 100644
index 0000000..7db2460
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/add-location.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsAddLocation = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsAddLocation;
diff --git a/node_modules/material-ui/src/svg-icons/maps/beenhere.jsx b/node_modules/material-ui/src/svg-icons/maps/beenhere.jsx
new file mode 100644
index 0000000..695d855
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/beenhere.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsBeenhere = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsBeenhere;
diff --git a/node_modules/material-ui/src/svg-icons/maps/directions-bike.jsx b/node_modules/material-ui/src/svg-icons/maps/directions-bike.jsx
new file mode 100644
index 0000000..66aef48
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/directions-bike.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsDirectionsBike = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsDirectionsBike;
diff --git a/node_modules/material-ui/src/svg-icons/maps/directions-boat.jsx b/node_modules/material-ui/src/svg-icons/maps/directions-boat.jsx
new file mode 100644
index 0000000..b5e81e5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/directions-boat.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsDirectionsBoat = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsDirectionsBoat;
diff --git a/node_modules/material-ui/src/svg-icons/maps/directions-bus.jsx b/node_modules/material-ui/src/svg-icons/maps/directions-bus.jsx
new file mode 100644
index 0000000..efdebc3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/directions-bus.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsDirectionsBus = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsDirectionsBus;
diff --git a/node_modules/material-ui/src/svg-icons/maps/directions-car.jsx b/node_modules/material-ui/src/svg-icons/maps/directions-car.jsx
new file mode 100644
index 0000000..d287ea6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/directions-car.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsDirectionsCar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsDirectionsCar;
diff --git a/node_modules/material-ui/src/svg-icons/maps/directions-railway.jsx b/node_modules/material-ui/src/svg-icons/maps/directions-railway.jsx
new file mode 100644
index 0000000..e05c289
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/directions-railway.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsDirectionsRailway = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsDirectionsRailway;
diff --git a/node_modules/material-ui/src/svg-icons/maps/directions-run.jsx b/node_modules/material-ui/src/svg-icons/maps/directions-run.jsx
new file mode 100644
index 0000000..2281ee2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/directions-run.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsDirectionsRun = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsDirectionsRun;
diff --git a/node_modules/material-ui/src/svg-icons/maps/directions-subway.jsx b/node_modules/material-ui/src/svg-icons/maps/directions-subway.jsx
new file mode 100644
index 0000000..f423251
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/directions-subway.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsDirectionsSubway = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsDirectionsSubway;
diff --git a/node_modules/material-ui/src/svg-icons/maps/directions-transit.jsx b/node_modules/material-ui/src/svg-icons/maps/directions-transit.jsx
new file mode 100644
index 0000000..5a13672
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/directions-transit.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsDirectionsTransit = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsDirectionsTransit;
diff --git a/node_modules/material-ui/src/svg-icons/maps/directions-walk.jsx b/node_modules/material-ui/src/svg-icons/maps/directions-walk.jsx
new file mode 100644
index 0000000..340c7dd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/directions-walk.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsDirectionsWalk = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsDirectionsWalk;
diff --git a/node_modules/material-ui/src/svg-icons/maps/directions.jsx b/node_modules/material-ui/src/svg-icons/maps/directions.jsx
new file mode 100644
index 0000000..bd09467
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/directions.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsDirections = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsDirections;
diff --git a/node_modules/material-ui/src/svg-icons/maps/edit-location.jsx b/node_modules/material-ui/src/svg-icons/maps/edit-location.jsx
new file mode 100644
index 0000000..0c97e75
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/edit-location.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsEditLocation = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsEditLocation;
diff --git a/node_modules/material-ui/src/svg-icons/maps/flight.jsx b/node_modules/material-ui/src/svg-icons/maps/flight.jsx
new file mode 100644
index 0000000..7e0b4ee
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/flight.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsFlight = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsFlight;
diff --git a/node_modules/material-ui/src/svg-icons/maps/hotel.jsx b/node_modules/material-ui/src/svg-icons/maps/hotel.jsx
new file mode 100644
index 0000000..bf5d292
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/hotel.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsHotel = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsHotel;
diff --git a/node_modules/material-ui/src/svg-icons/maps/layers-clear.jsx b/node_modules/material-ui/src/svg-icons/maps/layers-clear.jsx
new file mode 100644
index 0000000..b3a6053
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/layers-clear.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLayersClear = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLayersClear;
diff --git a/node_modules/material-ui/src/svg-icons/maps/layers.jsx b/node_modules/material-ui/src/svg-icons/maps/layers.jsx
new file mode 100644
index 0000000..b410e68
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/layers.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLayers = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLayers;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-activity.jsx b/node_modules/material-ui/src/svg-icons/maps/local-activity.jsx
new file mode 100644
index 0000000..41a93d8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-activity.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalActivity = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalActivity;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-airport.jsx b/node_modules/material-ui/src/svg-icons/maps/local-airport.jsx
new file mode 100644
index 0000000..f38c023
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-airport.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalAirport = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalAirport;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-atm.jsx b/node_modules/material-ui/src/svg-icons/maps/local-atm.jsx
new file mode 100644
index 0000000..3db2e36
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-atm.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalAtm = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalAtm;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-bar.jsx b/node_modules/material-ui/src/svg-icons/maps/local-bar.jsx
new file mode 100644
index 0000000..1a5085c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-bar.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalBar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalBar;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-cafe.jsx b/node_modules/material-ui/src/svg-icons/maps/local-cafe.jsx
new file mode 100644
index 0000000..3603fd3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-cafe.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalCafe = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalCafe;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-car-wash.jsx b/node_modules/material-ui/src/svg-icons/maps/local-car-wash.jsx
new file mode 100644
index 0000000..f892479
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-car-wash.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalCarWash = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalCarWash;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-convenience-store.jsx b/node_modules/material-ui/src/svg-icons/maps/local-convenience-store.jsx
new file mode 100644
index 0000000..f60ff75
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-convenience-store.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalConvenienceStore = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalConvenienceStore;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-dining.jsx b/node_modules/material-ui/src/svg-icons/maps/local-dining.jsx
new file mode 100644
index 0000000..6dbc88a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-dining.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalDining = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalDining;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-drink.jsx b/node_modules/material-ui/src/svg-icons/maps/local-drink.jsx
new file mode 100644
index 0000000..96d722f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-drink.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalDrink = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalDrink;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-florist.jsx b/node_modules/material-ui/src/svg-icons/maps/local-florist.jsx
new file mode 100644
index 0000000..9764c9a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-florist.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalFlorist = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalFlorist;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-gas-station.jsx b/node_modules/material-ui/src/svg-icons/maps/local-gas-station.jsx
new file mode 100644
index 0000000..58d8971
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-gas-station.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalGasStation = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalGasStation;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-grocery-store.jsx b/node_modules/material-ui/src/svg-icons/maps/local-grocery-store.jsx
new file mode 100644
index 0000000..3b56685
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-grocery-store.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalGroceryStore = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalGroceryStore;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-hospital.jsx b/node_modules/material-ui/src/svg-icons/maps/local-hospital.jsx
new file mode 100644
index 0000000..a2a3444
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-hospital.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalHospital = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalHospital;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-hotel.jsx b/node_modules/material-ui/src/svg-icons/maps/local-hotel.jsx
new file mode 100644
index 0000000..ab10d85
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-hotel.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalHotel = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalHotel;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-laundry-service.jsx b/node_modules/material-ui/src/svg-icons/maps/local-laundry-service.jsx
new file mode 100644
index 0000000..47b3e96
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-laundry-service.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalLaundryService = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalLaundryService;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-library.jsx b/node_modules/material-ui/src/svg-icons/maps/local-library.jsx
new file mode 100644
index 0000000..212414f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-library.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalLibrary = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalLibrary;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-mall.jsx b/node_modules/material-ui/src/svg-icons/maps/local-mall.jsx
new file mode 100644
index 0000000..3cec02d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-mall.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalMall = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalMall;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-movies.jsx b/node_modules/material-ui/src/svg-icons/maps/local-movies.jsx
new file mode 100644
index 0000000..3524217
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-movies.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalMovies = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalMovies;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-offer.jsx b/node_modules/material-ui/src/svg-icons/maps/local-offer.jsx
new file mode 100644
index 0000000..9092456
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-offer.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalOffer = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalOffer;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-parking.jsx b/node_modules/material-ui/src/svg-icons/maps/local-parking.jsx
new file mode 100644
index 0000000..c291d0e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-parking.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalParking = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalParking;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-pharmacy.jsx b/node_modules/material-ui/src/svg-icons/maps/local-pharmacy.jsx
new file mode 100644
index 0000000..a559621
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-pharmacy.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalPharmacy = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalPharmacy;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-phone.jsx b/node_modules/material-ui/src/svg-icons/maps/local-phone.jsx
new file mode 100644
index 0000000..ac73752
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-phone.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalPhone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalPhone;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-pizza.jsx b/node_modules/material-ui/src/svg-icons/maps/local-pizza.jsx
new file mode 100644
index 0000000..efd08ae
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-pizza.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalPizza = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalPizza;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-play.jsx b/node_modules/material-ui/src/svg-icons/maps/local-play.jsx
new file mode 100644
index 0000000..419efdd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-play.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalPlay = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalPlay;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-post-office.jsx b/node_modules/material-ui/src/svg-icons/maps/local-post-office.jsx
new file mode 100644
index 0000000..04bc0de
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-post-office.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalPostOffice = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalPostOffice;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-printshop.jsx b/node_modules/material-ui/src/svg-icons/maps/local-printshop.jsx
new file mode 100644
index 0000000..a6105d0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-printshop.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalPrintshop = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalPrintshop;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-see.jsx b/node_modules/material-ui/src/svg-icons/maps/local-see.jsx
new file mode 100644
index 0000000..4ed2fd6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-see.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalSee = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalSee;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-shipping.jsx b/node_modules/material-ui/src/svg-icons/maps/local-shipping.jsx
new file mode 100644
index 0000000..d938ec9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-shipping.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalShipping = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalShipping;
diff --git a/node_modules/material-ui/src/svg-icons/maps/local-taxi.jsx b/node_modules/material-ui/src/svg-icons/maps/local-taxi.jsx
new file mode 100644
index 0000000..da1d07f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/local-taxi.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsLocalTaxi = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsLocalTaxi;
diff --git a/node_modules/material-ui/src/svg-icons/maps/map.jsx b/node_modules/material-ui/src/svg-icons/maps/map.jsx
new file mode 100644
index 0000000..b706891
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/map.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsMap = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsMap;
diff --git a/node_modules/material-ui/src/svg-icons/maps/my-location.jsx b/node_modules/material-ui/src/svg-icons/maps/my-location.jsx
new file mode 100644
index 0000000..5d63594
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/my-location.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsMyLocation = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsMyLocation;
diff --git a/node_modules/material-ui/src/svg-icons/maps/navigation.jsx b/node_modules/material-ui/src/svg-icons/maps/navigation.jsx
new file mode 100644
index 0000000..a7bae37
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/navigation.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsNavigation = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsNavigation;
diff --git a/node_modules/material-ui/src/svg-icons/maps/near-me.jsx b/node_modules/material-ui/src/svg-icons/maps/near-me.jsx
new file mode 100644
index 0000000..129728b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/near-me.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsNearMe = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsNearMe;
diff --git a/node_modules/material-ui/src/svg-icons/maps/person-pin-circle.jsx b/node_modules/material-ui/src/svg-icons/maps/person-pin-circle.jsx
new file mode 100644
index 0000000..7b7cbd5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/person-pin-circle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsPersonPinCircle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsPersonPinCircle;
diff --git a/node_modules/material-ui/src/svg-icons/maps/person-pin.jsx b/node_modules/material-ui/src/svg-icons/maps/person-pin.jsx
new file mode 100644
index 0000000..1bbf5ce
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/person-pin.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsPersonPin = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsPersonPin;
diff --git a/node_modules/material-ui/src/svg-icons/maps/pin-drop.jsx b/node_modules/material-ui/src/svg-icons/maps/pin-drop.jsx
new file mode 100644
index 0000000..1c125df
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/pin-drop.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsPinDrop = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsPinDrop;
diff --git a/node_modules/material-ui/src/svg-icons/maps/place.jsx b/node_modules/material-ui/src/svg-icons/maps/place.jsx
new file mode 100644
index 0000000..8abc669
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/place.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsPlace = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsPlace;
diff --git a/node_modules/material-ui/src/svg-icons/maps/rate-review.jsx b/node_modules/material-ui/src/svg-icons/maps/rate-review.jsx
new file mode 100644
index 0000000..7611c5c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/rate-review.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsRateReview = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsRateReview;
diff --git a/node_modules/material-ui/src/svg-icons/maps/restaurant-menu.jsx b/node_modules/material-ui/src/svg-icons/maps/restaurant-menu.jsx
new file mode 100644
index 0000000..56af8c8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/restaurant-menu.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsRestaurantMenu = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsRestaurantMenu;
diff --git a/node_modules/material-ui/src/svg-icons/maps/satellite.jsx b/node_modules/material-ui/src/svg-icons/maps/satellite.jsx
new file mode 100644
index 0000000..f69168b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/satellite.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsSatellite = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsSatellite;
diff --git a/node_modules/material-ui/src/svg-icons/maps/store-mall-directory.jsx b/node_modules/material-ui/src/svg-icons/maps/store-mall-directory.jsx
new file mode 100644
index 0000000..4f83f53
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/store-mall-directory.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsStoreMallDirectory = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsStoreMallDirectory;
diff --git a/node_modules/material-ui/src/svg-icons/maps/terrain.jsx b/node_modules/material-ui/src/svg-icons/maps/terrain.jsx
new file mode 100644
index 0000000..220abce
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/terrain.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsTerrain = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsTerrain;
diff --git a/node_modules/material-ui/src/svg-icons/maps/traffic.jsx b/node_modules/material-ui/src/svg-icons/maps/traffic.jsx
new file mode 100644
index 0000000..e042731
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/traffic.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsTraffic = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsTraffic;
diff --git a/node_modules/material-ui/src/svg-icons/maps/zoom-out-map.jsx b/node_modules/material-ui/src/svg-icons/maps/zoom-out-map.jsx
new file mode 100644
index 0000000..b9c055c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/maps/zoom-out-map.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const MapsZoomOutMap = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default MapsZoomOutMap;
diff --git a/node_modules/material-ui/src/svg-icons/navigation-arrow-drop-right.jsx b/node_modules/material-ui/src/svg-icons/navigation-arrow-drop-right.jsx
new file mode 100644
index 0000000..56d3df2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation-arrow-drop-right.jsx
@@ -0,0 +1,16 @@
+import React from 'react';
+import SvgIcon from '../svg-icon';
+
+let NavigationArrowDropRight = React.createClass({
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationArrowDropRight;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/apps.jsx b/node_modules/material-ui/src/svg-icons/navigation/apps.jsx
new file mode 100644
index 0000000..2f02b90
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/apps.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationApps = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationApps;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/arrow-back.jsx b/node_modules/material-ui/src/svg-icons/navigation/arrow-back.jsx
new file mode 100644
index 0000000..84a67db
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/arrow-back.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationArrowBack = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationArrowBack;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/arrow-downward.jsx b/node_modules/material-ui/src/svg-icons/navigation/arrow-downward.jsx
new file mode 100644
index 0000000..9f7ee07
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/arrow-downward.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationArrowDownward = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationArrowDownward;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/arrow-drop-down-circle.jsx b/node_modules/material-ui/src/svg-icons/navigation/arrow-drop-down-circle.jsx
new file mode 100644
index 0000000..8a11fe2
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/arrow-drop-down-circle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationArrowDropDownCircle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationArrowDropDownCircle;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/arrow-drop-down.jsx b/node_modules/material-ui/src/svg-icons/navigation/arrow-drop-down.jsx
new file mode 100644
index 0000000..c68f71b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/arrow-drop-down.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationArrowDropDown = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationArrowDropDown;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/arrow-drop-up.jsx b/node_modules/material-ui/src/svg-icons/navigation/arrow-drop-up.jsx
new file mode 100644
index 0000000..d212d74
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/arrow-drop-up.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationArrowDropUp = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationArrowDropUp;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/arrow-forward.jsx b/node_modules/material-ui/src/svg-icons/navigation/arrow-forward.jsx
new file mode 100644
index 0000000..b081c60
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/arrow-forward.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationArrowForward = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationArrowForward;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/arrow-upward.jsx b/node_modules/material-ui/src/svg-icons/navigation/arrow-upward.jsx
new file mode 100644
index 0000000..c352c74
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/arrow-upward.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationArrowUpward = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationArrowUpward;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/cancel.jsx b/node_modules/material-ui/src/svg-icons/navigation/cancel.jsx
new file mode 100644
index 0000000..0c2c66b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/cancel.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationCancel = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationCancel;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/check.jsx b/node_modules/material-ui/src/svg-icons/navigation/check.jsx
new file mode 100644
index 0000000..349edb4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/check.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationCheck = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationCheck;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/chevron-left.jsx b/node_modules/material-ui/src/svg-icons/navigation/chevron-left.jsx
new file mode 100644
index 0000000..6e797cf
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/chevron-left.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationChevronLeft = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationChevronLeft;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/chevron-right.jsx b/node_modules/material-ui/src/svg-icons/navigation/chevron-right.jsx
new file mode 100644
index 0000000..6df6a7a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/chevron-right.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationChevronRight = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationChevronRight;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/close.jsx b/node_modules/material-ui/src/svg-icons/navigation/close.jsx
new file mode 100644
index 0000000..02e7f0b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/close.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationClose = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationClose;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/expand-less.jsx b/node_modules/material-ui/src/svg-icons/navigation/expand-less.jsx
new file mode 100644
index 0000000..3c801e6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/expand-less.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationExpandLess = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationExpandLess;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/expand-more.jsx b/node_modules/material-ui/src/svg-icons/navigation/expand-more.jsx
new file mode 100644
index 0000000..856dc2a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/expand-more.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationExpandMore = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationExpandMore;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/fullscreen-exit.jsx b/node_modules/material-ui/src/svg-icons/navigation/fullscreen-exit.jsx
new file mode 100644
index 0000000..174d796
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/fullscreen-exit.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationFullscreenExit = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationFullscreenExit;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/fullscreen.jsx b/node_modules/material-ui/src/svg-icons/navigation/fullscreen.jsx
new file mode 100644
index 0000000..8268a18
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/fullscreen.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationFullscreen = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationFullscreen;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/menu.jsx b/node_modules/material-ui/src/svg-icons/navigation/menu.jsx
new file mode 100644
index 0000000..cbb27b6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/menu.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationMenu = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationMenu;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/more-horiz.jsx b/node_modules/material-ui/src/svg-icons/navigation/more-horiz.jsx
new file mode 100644
index 0000000..7195100
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/more-horiz.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationMoreHoriz = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationMoreHoriz;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/more-vert.jsx b/node_modules/material-ui/src/svg-icons/navigation/more-vert.jsx
new file mode 100644
index 0000000..3e6d3d0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/more-vert.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationMoreVert = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationMoreVert;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/refresh.jsx b/node_modules/material-ui/src/svg-icons/navigation/refresh.jsx
new file mode 100644
index 0000000..c4a9979
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/refresh.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationRefresh = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationRefresh;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/subdirectory-arrow-left.jsx b/node_modules/material-ui/src/svg-icons/navigation/subdirectory-arrow-left.jsx
new file mode 100644
index 0000000..b7bcdc8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/subdirectory-arrow-left.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationSubdirectoryArrowLeft = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationSubdirectoryArrowLeft;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/subdirectory-arrow-right.jsx b/node_modules/material-ui/src/svg-icons/navigation/subdirectory-arrow-right.jsx
new file mode 100644
index 0000000..b936897
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/subdirectory-arrow-right.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationSubdirectoryArrowRight = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationSubdirectoryArrowRight;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/unfold-less.jsx b/node_modules/material-ui/src/svg-icons/navigation/unfold-less.jsx
new file mode 100644
index 0000000..6a4f83a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/unfold-less.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationUnfoldLess = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationUnfoldLess;
diff --git a/node_modules/material-ui/src/svg-icons/navigation/unfold-more.jsx b/node_modules/material-ui/src/svg-icons/navigation/unfold-more.jsx
new file mode 100644
index 0000000..e57f0f1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/navigation/unfold-more.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NavigationUnfoldMore = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NavigationUnfoldMore;
diff --git a/node_modules/material-ui/src/svg-icons/notification/adb.jsx b/node_modules/material-ui/src/svg-icons/notification/adb.jsx
new file mode 100644
index 0000000..f853ba9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/adb.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationAdb = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationAdb;
diff --git a/node_modules/material-ui/src/svg-icons/notification/airline-seat-flat-angled.jsx b/node_modules/material-ui/src/svg-icons/notification/airline-seat-flat-angled.jsx
new file mode 100644
index 0000000..14f0e8f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/airline-seat-flat-angled.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationAirlineSeatFlatAngled = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationAirlineSeatFlatAngled;
diff --git a/node_modules/material-ui/src/svg-icons/notification/airline-seat-flat.jsx b/node_modules/material-ui/src/svg-icons/notification/airline-seat-flat.jsx
new file mode 100644
index 0000000..aad79e5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/airline-seat-flat.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationAirlineSeatFlat = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationAirlineSeatFlat;
diff --git a/node_modules/material-ui/src/svg-icons/notification/airline-seat-individual-suite.jsx b/node_modules/material-ui/src/svg-icons/notification/airline-seat-individual-suite.jsx
new file mode 100644
index 0000000..b220d71
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/airline-seat-individual-suite.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationAirlineSeatIndividualSuite = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationAirlineSeatIndividualSuite;
diff --git a/node_modules/material-ui/src/svg-icons/notification/airline-seat-legroom-extra.jsx b/node_modules/material-ui/src/svg-icons/notification/airline-seat-legroom-extra.jsx
new file mode 100644
index 0000000..290ec75
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/airline-seat-legroom-extra.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationAirlineSeatLegroomExtra = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationAirlineSeatLegroomExtra;
diff --git a/node_modules/material-ui/src/svg-icons/notification/airline-seat-legroom-normal.jsx b/node_modules/material-ui/src/svg-icons/notification/airline-seat-legroom-normal.jsx
new file mode 100644
index 0000000..7c80f3c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/airline-seat-legroom-normal.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationAirlineSeatLegroomNormal = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationAirlineSeatLegroomNormal;
diff --git a/node_modules/material-ui/src/svg-icons/notification/airline-seat-legroom-reduced.jsx b/node_modules/material-ui/src/svg-icons/notification/airline-seat-legroom-reduced.jsx
new file mode 100644
index 0000000..f9f7e73
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/airline-seat-legroom-reduced.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationAirlineSeatLegroomReduced = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationAirlineSeatLegroomReduced;
diff --git a/node_modules/material-ui/src/svg-icons/notification/airline-seat-recline-extra.jsx b/node_modules/material-ui/src/svg-icons/notification/airline-seat-recline-extra.jsx
new file mode 100644
index 0000000..a492d68
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/airline-seat-recline-extra.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationAirlineSeatReclineExtra = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationAirlineSeatReclineExtra;
diff --git a/node_modules/material-ui/src/svg-icons/notification/airline-seat-recline-normal.jsx b/node_modules/material-ui/src/svg-icons/notification/airline-seat-recline-normal.jsx
new file mode 100644
index 0000000..55d453c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/airline-seat-recline-normal.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationAirlineSeatReclineNormal = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationAirlineSeatReclineNormal;
diff --git a/node_modules/material-ui/src/svg-icons/notification/bluetooth-audio.jsx b/node_modules/material-ui/src/svg-icons/notification/bluetooth-audio.jsx
new file mode 100644
index 0000000..e560ab1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/bluetooth-audio.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationBluetoothAudio = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationBluetoothAudio;
diff --git a/node_modules/material-ui/src/svg-icons/notification/confirmation-number.jsx b/node_modules/material-ui/src/svg-icons/notification/confirmation-number.jsx
new file mode 100644
index 0000000..b947ea8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/confirmation-number.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationConfirmationNumber = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationConfirmationNumber;
diff --git a/node_modules/material-ui/src/svg-icons/notification/disc-full.jsx b/node_modules/material-ui/src/svg-icons/notification/disc-full.jsx
new file mode 100644
index 0000000..f81bf44
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/disc-full.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationDiscFull = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationDiscFull;
diff --git a/node_modules/material-ui/src/svg-icons/notification/do-not-disturb-alt.jsx b/node_modules/material-ui/src/svg-icons/notification/do-not-disturb-alt.jsx
new file mode 100644
index 0000000..885d49b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/do-not-disturb-alt.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationDoNotDisturbAlt = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationDoNotDisturbAlt;
diff --git a/node_modules/material-ui/src/svg-icons/notification/do-not-disturb.jsx b/node_modules/material-ui/src/svg-icons/notification/do-not-disturb.jsx
new file mode 100644
index 0000000..8d0a2a0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/do-not-disturb.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationDoNotDisturb = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationDoNotDisturb;
diff --git a/node_modules/material-ui/src/svg-icons/notification/drive-eta.jsx b/node_modules/material-ui/src/svg-icons/notification/drive-eta.jsx
new file mode 100644
index 0000000..791911e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/drive-eta.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationDriveEta = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationDriveEta;
diff --git a/node_modules/material-ui/src/svg-icons/notification/enhanced-encryption.jsx b/node_modules/material-ui/src/svg-icons/notification/enhanced-encryption.jsx
new file mode 100644
index 0000000..b52e606
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/enhanced-encryption.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationEnhancedEncryption = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationEnhancedEncryption;
diff --git a/node_modules/material-ui/src/svg-icons/notification/event-available.jsx b/node_modules/material-ui/src/svg-icons/notification/event-available.jsx
new file mode 100644
index 0000000..6fb6ac7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/event-available.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationEventAvailable = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationEventAvailable;
diff --git a/node_modules/material-ui/src/svg-icons/notification/event-busy.jsx b/node_modules/material-ui/src/svg-icons/notification/event-busy.jsx
new file mode 100644
index 0000000..ee5eecd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/event-busy.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationEventBusy = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationEventBusy;
diff --git a/node_modules/material-ui/src/svg-icons/notification/event-note.jsx b/node_modules/material-ui/src/svg-icons/notification/event-note.jsx
new file mode 100644
index 0000000..f9d7aca
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/event-note.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationEventNote = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationEventNote;
diff --git a/node_modules/material-ui/src/svg-icons/notification/folder-special.jsx b/node_modules/material-ui/src/svg-icons/notification/folder-special.jsx
new file mode 100644
index 0000000..8b11cd9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/folder-special.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationFolderSpecial = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationFolderSpecial;
diff --git a/node_modules/material-ui/src/svg-icons/notification/live-tv.jsx b/node_modules/material-ui/src/svg-icons/notification/live-tv.jsx
new file mode 100644
index 0000000..4aa14a7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/live-tv.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationLiveTv = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationLiveTv;
diff --git a/node_modules/material-ui/src/svg-icons/notification/mms.jsx b/node_modules/material-ui/src/svg-icons/notification/mms.jsx
new file mode 100644
index 0000000..dbf391b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/mms.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationMms = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationMms;
diff --git a/node_modules/material-ui/src/svg-icons/notification/more.jsx b/node_modules/material-ui/src/svg-icons/notification/more.jsx
new file mode 100644
index 0000000..f4c556a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/more.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationMore = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationMore;
diff --git a/node_modules/material-ui/src/svg-icons/notification/network-check.jsx b/node_modules/material-ui/src/svg-icons/notification/network-check.jsx
new file mode 100644
index 0000000..2013a74
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/network-check.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationNetworkCheck = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationNetworkCheck;
diff --git a/node_modules/material-ui/src/svg-icons/notification/network-locked.jsx b/node_modules/material-ui/src/svg-icons/notification/network-locked.jsx
new file mode 100644
index 0000000..bb21629
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/network-locked.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationNetworkLocked = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationNetworkLocked;
diff --git a/node_modules/material-ui/src/svg-icons/notification/no-encryption.jsx b/node_modules/material-ui/src/svg-icons/notification/no-encryption.jsx
new file mode 100644
index 0000000..da53f08
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/no-encryption.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationNoEncryption = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationNoEncryption;
diff --git a/node_modules/material-ui/src/svg-icons/notification/ondemand-video.jsx b/node_modules/material-ui/src/svg-icons/notification/ondemand-video.jsx
new file mode 100644
index 0000000..31997e8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/ondemand-video.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationOndemandVideo = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationOndemandVideo;
diff --git a/node_modules/material-ui/src/svg-icons/notification/personal-video.jsx b/node_modules/material-ui/src/svg-icons/notification/personal-video.jsx
new file mode 100644
index 0000000..9122401
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/personal-video.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationPersonalVideo = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationPersonalVideo;
diff --git a/node_modules/material-ui/src/svg-icons/notification/phone-bluetooth-speaker.jsx b/node_modules/material-ui/src/svg-icons/notification/phone-bluetooth-speaker.jsx
new file mode 100644
index 0000000..3144c7f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/phone-bluetooth-speaker.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationPhoneBluetoothSpeaker = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationPhoneBluetoothSpeaker;
diff --git a/node_modules/material-ui/src/svg-icons/notification/phone-forwarded.jsx b/node_modules/material-ui/src/svg-icons/notification/phone-forwarded.jsx
new file mode 100644
index 0000000..bd349d3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/phone-forwarded.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationPhoneForwarded = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationPhoneForwarded;
diff --git a/node_modules/material-ui/src/svg-icons/notification/phone-in-talk.jsx b/node_modules/material-ui/src/svg-icons/notification/phone-in-talk.jsx
new file mode 100644
index 0000000..5924e8a
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/phone-in-talk.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationPhoneInTalk = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationPhoneInTalk;
diff --git a/node_modules/material-ui/src/svg-icons/notification/phone-locked.jsx b/node_modules/material-ui/src/svg-icons/notification/phone-locked.jsx
new file mode 100644
index 0000000..9bdea20
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/phone-locked.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationPhoneLocked = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationPhoneLocked;
diff --git a/node_modules/material-ui/src/svg-icons/notification/phone-missed.jsx b/node_modules/material-ui/src/svg-icons/notification/phone-missed.jsx
new file mode 100644
index 0000000..ace8241
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/phone-missed.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationPhoneMissed = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationPhoneMissed;
diff --git a/node_modules/material-ui/src/svg-icons/notification/phone-paused.jsx b/node_modules/material-ui/src/svg-icons/notification/phone-paused.jsx
new file mode 100644
index 0000000..7309466
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/phone-paused.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationPhonePaused = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationPhonePaused;
diff --git a/node_modules/material-ui/src/svg-icons/notification/power.jsx b/node_modules/material-ui/src/svg-icons/notification/power.jsx
new file mode 100644
index 0000000..37fc01f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/power.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationPower = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationPower;
diff --git a/node_modules/material-ui/src/svg-icons/notification/rv-hookup.jsx b/node_modules/material-ui/src/svg-icons/notification/rv-hookup.jsx
new file mode 100644
index 0000000..d4114d6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/rv-hookup.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationRvHookup = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationRvHookup;
diff --git a/node_modules/material-ui/src/svg-icons/notification/sd-card.jsx b/node_modules/material-ui/src/svg-icons/notification/sd-card.jsx
new file mode 100644
index 0000000..1ec4e3f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/sd-card.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationSdCard = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationSdCard;
diff --git a/node_modules/material-ui/src/svg-icons/notification/sim-card-alert.jsx b/node_modules/material-ui/src/svg-icons/notification/sim-card-alert.jsx
new file mode 100644
index 0000000..8702baf
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/sim-card-alert.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationSimCardAlert = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationSimCardAlert;
diff --git a/node_modules/material-ui/src/svg-icons/notification/sms-failed.jsx b/node_modules/material-ui/src/svg-icons/notification/sms-failed.jsx
new file mode 100644
index 0000000..198f91d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/sms-failed.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationSmsFailed = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationSmsFailed;
diff --git a/node_modules/material-ui/src/svg-icons/notification/sms.jsx b/node_modules/material-ui/src/svg-icons/notification/sms.jsx
new file mode 100644
index 0000000..7ed897f
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/sms.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationSms = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationSms;
diff --git a/node_modules/material-ui/src/svg-icons/notification/sync-disabled.jsx b/node_modules/material-ui/src/svg-icons/notification/sync-disabled.jsx
new file mode 100644
index 0000000..412242b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/sync-disabled.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationSyncDisabled = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationSyncDisabled;
diff --git a/node_modules/material-ui/src/svg-icons/notification/sync-problem.jsx b/node_modules/material-ui/src/svg-icons/notification/sync-problem.jsx
new file mode 100644
index 0000000..e2b4f03
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/sync-problem.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationSyncProblem = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationSyncProblem;
diff --git a/node_modules/material-ui/src/svg-icons/notification/sync.jsx b/node_modules/material-ui/src/svg-icons/notification/sync.jsx
new file mode 100644
index 0000000..5233cfd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/sync.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationSync = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationSync;
diff --git a/node_modules/material-ui/src/svg-icons/notification/system-update.jsx b/node_modules/material-ui/src/svg-icons/notification/system-update.jsx
new file mode 100644
index 0000000..a4149f3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/system-update.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationSystemUpdate = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationSystemUpdate;
diff --git a/node_modules/material-ui/src/svg-icons/notification/tap-and-play.jsx b/node_modules/material-ui/src/svg-icons/notification/tap-and-play.jsx
new file mode 100644
index 0000000..bba3a94
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/tap-and-play.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationTapAndPlay = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationTapAndPlay;
diff --git a/node_modules/material-ui/src/svg-icons/notification/time-to-leave.jsx b/node_modules/material-ui/src/svg-icons/notification/time-to-leave.jsx
new file mode 100644
index 0000000..eaef8ec
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/time-to-leave.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationTimeToLeave = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationTimeToLeave;
diff --git a/node_modules/material-ui/src/svg-icons/notification/vibration.jsx b/node_modules/material-ui/src/svg-icons/notification/vibration.jsx
new file mode 100644
index 0000000..1169f3c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/vibration.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationVibration = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationVibration;
diff --git a/node_modules/material-ui/src/svg-icons/notification/voice-chat.jsx b/node_modules/material-ui/src/svg-icons/notification/voice-chat.jsx
new file mode 100644
index 0000000..1f5875b
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/voice-chat.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationVoiceChat = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationVoiceChat;
diff --git a/node_modules/material-ui/src/svg-icons/notification/vpn-lock.jsx b/node_modules/material-ui/src/svg-icons/notification/vpn-lock.jsx
new file mode 100644
index 0000000..790d7fa
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/vpn-lock.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationVpnLock = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationVpnLock;
diff --git a/node_modules/material-ui/src/svg-icons/notification/wc.jsx b/node_modules/material-ui/src/svg-icons/notification/wc.jsx
new file mode 100644
index 0000000..caefa33
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/wc.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationWc = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationWc;
diff --git a/node_modules/material-ui/src/svg-icons/notification/wifi.jsx b/node_modules/material-ui/src/svg-icons/notification/wifi.jsx
new file mode 100644
index 0000000..07b1cc7
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/notification/wifi.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const NotificationWifi = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default NotificationWifi;
diff --git a/node_modules/material-ui/src/svg-icons/places/ac-unit.jsx b/node_modules/material-ui/src/svg-icons/places/ac-unit.jsx
new file mode 100644
index 0000000..b0da055
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/ac-unit.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesAcUnit = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesAcUnit;
diff --git a/node_modules/material-ui/src/svg-icons/places/airport-shuttle.jsx b/node_modules/material-ui/src/svg-icons/places/airport-shuttle.jsx
new file mode 100644
index 0000000..53c4ac3
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/airport-shuttle.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesAirportShuttle = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesAirportShuttle;
diff --git a/node_modules/material-ui/src/svg-icons/places/all-inclusive.jsx b/node_modules/material-ui/src/svg-icons/places/all-inclusive.jsx
new file mode 100644
index 0000000..8ac8427
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/all-inclusive.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesAllInclusive = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesAllInclusive;
diff --git a/node_modules/material-ui/src/svg-icons/places/beach-access.jsx b/node_modules/material-ui/src/svg-icons/places/beach-access.jsx
new file mode 100644
index 0000000..9d48fb1
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/beach-access.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesBeachAccess = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesBeachAccess;
diff --git a/node_modules/material-ui/src/svg-icons/places/business-center.jsx b/node_modules/material-ui/src/svg-icons/places/business-center.jsx
new file mode 100644
index 0000000..b648e7d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/business-center.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesBusinessCenter = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesBusinessCenter;
diff --git a/node_modules/material-ui/src/svg-icons/places/casino.jsx b/node_modules/material-ui/src/svg-icons/places/casino.jsx
new file mode 100644
index 0000000..9177a71
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/casino.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesCasino = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesCasino;
diff --git a/node_modules/material-ui/src/svg-icons/places/child-care.jsx b/node_modules/material-ui/src/svg-icons/places/child-care.jsx
new file mode 100644
index 0000000..99893dd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/child-care.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesChildCare = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesChildCare;
diff --git a/node_modules/material-ui/src/svg-icons/places/child-friendly.jsx b/node_modules/material-ui/src/svg-icons/places/child-friendly.jsx
new file mode 100644
index 0000000..c1ce27c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/child-friendly.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesChildFriendly = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesChildFriendly;
diff --git a/node_modules/material-ui/src/svg-icons/places/fitness-center.jsx b/node_modules/material-ui/src/svg-icons/places/fitness-center.jsx
new file mode 100644
index 0000000..eb0ba24
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/fitness-center.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesFitnessCenter = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesFitnessCenter;
diff --git a/node_modules/material-ui/src/svg-icons/places/free-breakfast.jsx b/node_modules/material-ui/src/svg-icons/places/free-breakfast.jsx
new file mode 100644
index 0000000..6e4e49e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/free-breakfast.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesFreeBreakfast = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesFreeBreakfast;
diff --git a/node_modules/material-ui/src/svg-icons/places/golf-course.jsx b/node_modules/material-ui/src/svg-icons/places/golf-course.jsx
new file mode 100644
index 0000000..05136c8
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/golf-course.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesGolfCourse = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesGolfCourse;
diff --git a/node_modules/material-ui/src/svg-icons/places/hot-tub.jsx b/node_modules/material-ui/src/svg-icons/places/hot-tub.jsx
new file mode 100644
index 0000000..b92bedc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/hot-tub.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesHotTub = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesHotTub;
diff --git a/node_modules/material-ui/src/svg-icons/places/kitchen.jsx b/node_modules/material-ui/src/svg-icons/places/kitchen.jsx
new file mode 100644
index 0000000..2c214a0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/kitchen.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesKitchen = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesKitchen;
diff --git a/node_modules/material-ui/src/svg-icons/places/pool.jsx b/node_modules/material-ui/src/svg-icons/places/pool.jsx
new file mode 100644
index 0000000..fade0cc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/pool.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesPool = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesPool;
diff --git a/node_modules/material-ui/src/svg-icons/places/room-service.jsx b/node_modules/material-ui/src/svg-icons/places/room-service.jsx
new file mode 100644
index 0000000..36f538c
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/room-service.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesRoomService = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesRoomService;
diff --git a/node_modules/material-ui/src/svg-icons/places/smoke-free.jsx b/node_modules/material-ui/src/svg-icons/places/smoke-free.jsx
new file mode 100644
index 0000000..2aa9929
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/smoke-free.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesSmokeFree = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesSmokeFree;
diff --git a/node_modules/material-ui/src/svg-icons/places/smoking-rooms.jsx b/node_modules/material-ui/src/svg-icons/places/smoking-rooms.jsx
new file mode 100644
index 0000000..070874d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/smoking-rooms.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesSmokingRooms = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesSmokingRooms;
diff --git a/node_modules/material-ui/src/svg-icons/places/spa.jsx b/node_modules/material-ui/src/svg-icons/places/spa.jsx
new file mode 100644
index 0000000..c4548cc
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/places/spa.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const PlacesSpa = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default PlacesSpa;
diff --git a/node_modules/material-ui/src/svg-icons/social/cake.jsx b/node_modules/material-ui/src/svg-icons/social/cake.jsx
new file mode 100644
index 0000000..9abbb44
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/cake.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialCake = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialCake;
diff --git a/node_modules/material-ui/src/svg-icons/social/domain.jsx b/node_modules/material-ui/src/svg-icons/social/domain.jsx
new file mode 100644
index 0000000..4fd87b9
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/domain.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialDomain = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialDomain;
diff --git a/node_modules/material-ui/src/svg-icons/social/group-add.jsx b/node_modules/material-ui/src/svg-icons/social/group-add.jsx
new file mode 100644
index 0000000..99f6818
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/group-add.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialGroupAdd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialGroupAdd;
diff --git a/node_modules/material-ui/src/svg-icons/social/group.jsx b/node_modules/material-ui/src/svg-icons/social/group.jsx
new file mode 100644
index 0000000..1356424
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/group.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialGroup = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialGroup;
diff --git a/node_modules/material-ui/src/svg-icons/social/location-city.jsx b/node_modules/material-ui/src/svg-icons/social/location-city.jsx
new file mode 100644
index 0000000..ad9c213
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/location-city.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialLocationCity = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialLocationCity;
diff --git a/node_modules/material-ui/src/svg-icons/social/mood-bad.jsx b/node_modules/material-ui/src/svg-icons/social/mood-bad.jsx
new file mode 100644
index 0000000..5962bf4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/mood-bad.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialMoodBad = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialMoodBad;
diff --git a/node_modules/material-ui/src/svg-icons/social/mood.jsx b/node_modules/material-ui/src/svg-icons/social/mood.jsx
new file mode 100644
index 0000000..80e97e6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/mood.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialMood = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialMood;
diff --git a/node_modules/material-ui/src/svg-icons/social/notifications-active.jsx b/node_modules/material-ui/src/svg-icons/social/notifications-active.jsx
new file mode 100644
index 0000000..593220e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/notifications-active.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialNotificationsActive = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialNotificationsActive;
diff --git a/node_modules/material-ui/src/svg-icons/social/notifications-none.jsx b/node_modules/material-ui/src/svg-icons/social/notifications-none.jsx
new file mode 100644
index 0000000..a53590e
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/notifications-none.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialNotificationsNone = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialNotificationsNone;
diff --git a/node_modules/material-ui/src/svg-icons/social/notifications-off.jsx b/node_modules/material-ui/src/svg-icons/social/notifications-off.jsx
new file mode 100644
index 0000000..e0b8447
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/notifications-off.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialNotificationsOff = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialNotificationsOff;
diff --git a/node_modules/material-ui/src/svg-icons/social/notifications-paused.jsx b/node_modules/material-ui/src/svg-icons/social/notifications-paused.jsx
new file mode 100644
index 0000000..6c17632
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/notifications-paused.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialNotificationsPaused = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialNotificationsPaused;
diff --git a/node_modules/material-ui/src/svg-icons/social/notifications.jsx b/node_modules/material-ui/src/svg-icons/social/notifications.jsx
new file mode 100644
index 0000000..c0b1efd
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/notifications.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialNotifications = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialNotifications;
diff --git a/node_modules/material-ui/src/svg-icons/social/pages.jsx b/node_modules/material-ui/src/svg-icons/social/pages.jsx
new file mode 100644
index 0000000..acdce0d
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/pages.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialPages = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialPages;
diff --git a/node_modules/material-ui/src/svg-icons/social/party-mode.jsx b/node_modules/material-ui/src/svg-icons/social/party-mode.jsx
new file mode 100644
index 0000000..3abbdaa
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/party-mode.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialPartyMode = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialPartyMode;
diff --git a/node_modules/material-ui/src/svg-icons/social/people-outline.jsx b/node_modules/material-ui/src/svg-icons/social/people-outline.jsx
new file mode 100644
index 0000000..ac73b07
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/people-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialPeopleOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialPeopleOutline;
diff --git a/node_modules/material-ui/src/svg-icons/social/people.jsx b/node_modules/material-ui/src/svg-icons/social/people.jsx
new file mode 100644
index 0000000..9eaf7f0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/people.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialPeople = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialPeople;
diff --git a/node_modules/material-ui/src/svg-icons/social/person-add.jsx b/node_modules/material-ui/src/svg-icons/social/person-add.jsx
new file mode 100644
index 0000000..695e9bf
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/person-add.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialPersonAdd = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialPersonAdd;
diff --git a/node_modules/material-ui/src/svg-icons/social/person-outline.jsx b/node_modules/material-ui/src/svg-icons/social/person-outline.jsx
new file mode 100644
index 0000000..1d43a57
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/person-outline.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialPersonOutline = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialPersonOutline;
diff --git a/node_modules/material-ui/src/svg-icons/social/person.jsx b/node_modules/material-ui/src/svg-icons/social/person.jsx
new file mode 100644
index 0000000..99593d6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/person.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialPerson = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialPerson;
diff --git a/node_modules/material-ui/src/svg-icons/social/plus-one.jsx b/node_modules/material-ui/src/svg-icons/social/plus-one.jsx
new file mode 100644
index 0000000..6331133
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/plus-one.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialPlusOne = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialPlusOne;
diff --git a/node_modules/material-ui/src/svg-icons/social/poll.jsx b/node_modules/material-ui/src/svg-icons/social/poll.jsx
new file mode 100644
index 0000000..1513101
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/poll.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialPoll = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialPoll;
diff --git a/node_modules/material-ui/src/svg-icons/social/public.jsx b/node_modules/material-ui/src/svg-icons/social/public.jsx
new file mode 100644
index 0000000..e99ca83
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/public.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialPublic = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialPublic;
diff --git a/node_modules/material-ui/src/svg-icons/social/school.jsx b/node_modules/material-ui/src/svg-icons/social/school.jsx
new file mode 100644
index 0000000..c5285c0
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/school.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialSchool = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialSchool;
diff --git a/node_modules/material-ui/src/svg-icons/social/share.jsx b/node_modules/material-ui/src/svg-icons/social/share.jsx
new file mode 100644
index 0000000..5efe0f6
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/share.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialShare = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialShare;
diff --git a/node_modules/material-ui/src/svg-icons/social/whatshot.jsx b/node_modules/material-ui/src/svg-icons/social/whatshot.jsx
new file mode 100644
index 0000000..56c9183
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/social/whatshot.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const SocialWhatshot = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default SocialWhatshot;
diff --git a/node_modules/material-ui/src/svg-icons/toggle/check-box-outline-blank.jsx b/node_modules/material-ui/src/svg-icons/toggle/check-box-outline-blank.jsx
new file mode 100644
index 0000000..e11b145
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/toggle/check-box-outline-blank.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ToggleCheckBoxOutlineBlank = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ToggleCheckBoxOutlineBlank;
diff --git a/node_modules/material-ui/src/svg-icons/toggle/check-box.jsx b/node_modules/material-ui/src/svg-icons/toggle/check-box.jsx
new file mode 100644
index 0000000..848a2d5
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/toggle/check-box.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ToggleCheckBox = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ToggleCheckBox;
diff --git a/node_modules/material-ui/src/svg-icons/toggle/indeterminate-check-box.jsx b/node_modules/material-ui/src/svg-icons/toggle/indeterminate-check-box.jsx
new file mode 100644
index 0000000..7af0e03
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/toggle/indeterminate-check-box.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ToggleIndeterminateCheckBox = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ToggleIndeterminateCheckBox;
diff --git a/node_modules/material-ui/src/svg-icons/toggle/radio-button-checked.jsx b/node_modules/material-ui/src/svg-icons/toggle/radio-button-checked.jsx
new file mode 100644
index 0000000..2efdb36
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/toggle/radio-button-checked.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ToggleRadioButtonChecked = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ToggleRadioButtonChecked;
diff --git a/node_modules/material-ui/src/svg-icons/toggle/radio-button-unchecked.jsx b/node_modules/material-ui/src/svg-icons/toggle/radio-button-unchecked.jsx
new file mode 100644
index 0000000..ecff8ac
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/toggle/radio-button-unchecked.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ToggleRadioButtonUnchecked = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ToggleRadioButtonUnchecked;
diff --git a/node_modules/material-ui/src/svg-icons/toggle/star-border.jsx b/node_modules/material-ui/src/svg-icons/toggle/star-border.jsx
new file mode 100644
index 0000000..1ca75d4
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/toggle/star-border.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ToggleStarBorder = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ToggleStarBorder;
diff --git a/node_modules/material-ui/src/svg-icons/toggle/star-half.jsx b/node_modules/material-ui/src/svg-icons/toggle/star-half.jsx
new file mode 100644
index 0000000..3be2f26
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/toggle/star-half.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ToggleStarHalf = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ToggleStarHalf;
diff --git a/node_modules/material-ui/src/svg-icons/toggle/star.jsx b/node_modules/material-ui/src/svg-icons/toggle/star.jsx
new file mode 100644
index 0000000..1246e26
--- /dev/null
+++ b/node_modules/material-ui/src/svg-icons/toggle/star.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import SvgIcon from '../../svg-icon';
+
+const ToggleStar = React.createClass({
+
+ mixins: [PureRenderMixin],
+
+ render() {
+ return (
+
+
+
+ );
+ }
+
+});
+
+export default ToggleStar;
diff --git a/node_modules/material-ui/src/table/index.js b/node_modules/material-ui/src/table/index.js
new file mode 100644
index 0000000..3b05dc3
--- /dev/null
+++ b/node_modules/material-ui/src/table/index.js
@@ -0,0 +1,25 @@
+import Table from './table';
+import TableBody from './table-body';
+import TableFooter from './table-footer';
+import TableHeader from './table-header';
+import TableHeaderColumn from './table-header-column';
+import TableRow from './table-row';
+import TableRowColumn from './table-row-column';
+
+export {Table};
+export {TableBody};
+export {TableFooter};
+export {TableHeader};
+export {TableHeaderColumn};
+export {TableRow};
+export {TableRowColumn};
+
+export default {
+ Table,
+ TableBody,
+ TableFooter,
+ TableHeader,
+ TableHeaderColumn,
+ TableRow,
+ TableRowColumn,
+};
diff --git a/node_modules/material-ui/src/table/table-body.jsx b/node_modules/material-ui/src/table/table-body.jsx
new file mode 100644
index 0000000..00e6626
--- /dev/null
+++ b/node_modules/material-ui/src/table/table-body.jsx
@@ -0,0 +1,431 @@
+import React from 'react';
+import Checkbox from '../checkbox';
+import TableRowColumn from './table-row-column';
+import ClickAwayable from '../mixins/click-awayable';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const TableBody = React.createClass({
+
+ propTypes: {
+ /**
+ * Set to true to indicate that all rows should be selected.
+ */
+ allRowsSelected: React.PropTypes.bool,
+
+ /**
+ * Children passed to table body.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Controls whether or not to deselect all selected
+ * rows after clicking outside the table.
+ */
+ deselectOnClickaway: React.PropTypes.bool,
+
+ /**
+ * Controls the display of the row checkbox. The default value is true.
+ */
+ displayRowCheckbox: React.PropTypes.bool,
+
+ /**
+ * If true, multiple table rows can be selected.
+ * CTRL/CMD+Click and SHIFT+Click are valid actions.
+ * The default value is false.
+ */
+ multiSelectable: React.PropTypes.bool,
+
+ /**
+ * Callback function for when a cell is clicked.
+ */
+ onCellClick: React.PropTypes.func,
+
+ /**
+ * Called when a table cell is hovered. rowNumber
+ * is the row number of the hovered row and columnId
+ * is the column number or the column key of the cell.
+ */
+ onCellHover: React.PropTypes.func,
+
+ /**
+ * Called when a table cell is no longer hovered.
+ * rowNumber is the row number of the row and columnId
+ * is the column number or the column key of the cell.
+ */
+ onCellHoverExit: React.PropTypes.func,
+
+ /**
+ * Called when a table row is hovered.
+ * rowNumber is the row number of the hovered row.
+ */
+ onRowHover: React.PropTypes.func,
+
+ /**
+ * Called when a table row is no longer
+ * hovered. rowNumber is the row number of the row
+ * that is no longer hovered.
+ */
+ onRowHoverExit: React.PropTypes.func,
+
+ /**
+ * Called when a row is selected. selectedRows is an
+ * array of all row selections. IF all rows have been selected,
+ * the string "all" will be returned instead to indicate that
+ * all rows have been selected.
+ */
+ onRowSelection: React.PropTypes.func,
+
+ /**
+ * Controls whether or not the rows are pre-scanned to determine
+ * initial state. If your table has a large number of rows and
+ * you are experiencing a delay in rendering, turn off this property.
+ */
+ preScanRows: React.PropTypes.bool,
+
+ /**
+ * If true, table rows can be selected. If multiple
+ * row selection is desired, enable multiSelectable.
+ * The default value is true.
+ */
+ selectable: React.PropTypes.bool,
+
+ /**
+ * If true, table rows will be highlighted when
+ * the cursor is hovering over the row. The default
+ * value is false.
+ */
+ showRowHover: React.PropTypes.bool,
+
+ /**
+ * If true, every other table row starting
+ * with the first row will be striped. The default value is false.
+ */
+ stripedRows: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ ClickAwayable,
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ allRowsSelected: false,
+ deselectOnClickaway: true,
+ displayRowCheckbox: true,
+ multiSelectable: false,
+ preScanRows: true,
+ selectable: true,
+ style: {},
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ selectedRows: this._calculatePreselectedRows(this.props),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+
+ let newState = {};
+
+ if (this.props.allRowsSelected && !nextProps.allRowsSelected) {
+ newState.selectedRows = this.state.selectedRows.length > 0
+ ? [this.state.selectedRows[this.state.selectedRows.length - 1]]
+ : [];
+ } else {
+ newState.selectedRows = this._calculatePreselectedRows(nextProps);
+ }
+
+ this.setState(newState);
+ },
+
+ componentClickAway() {
+ if (this.props.deselectOnClickaway && this.state.selectedRows.length) {
+ this.setState({selectedRows: []});
+ if (this.props.onRowSelection) this.props.onRowSelection([]);
+ }
+ },
+
+ _createRows() {
+ let numChildren = React.Children.count(this.props.children);
+ let rowNumber = 0;
+ const handlers = {
+ onCellClick: this._onCellClick,
+ onCellHover: this._onCellHover,
+ onCellHoverExit: this._onCellHoverExit,
+ onRowHover: this._onRowHover,
+ onRowHoverExit: this._onRowHoverExit,
+ onRowClick: this._onRowClick,
+ };
+
+ return React.Children.map(this.props.children, (child) => {
+ if (React.isValidElement(child)) {
+ let props = {
+ displayRowCheckbox: this.props.displayRowCheckbox,
+ hoverable: this.props.showRowHover,
+ selected: this._isRowSelected(rowNumber),
+ striped: this.props.stripedRows && (rowNumber % 2 === 0),
+ rowNumber: rowNumber++,
+ };
+ let checkboxColumn = this._createRowCheckboxColumn(props);
+
+ if (rowNumber === numChildren) {
+ props.displayBorder = false;
+ }
+
+ let children = [checkboxColumn];
+ React.Children.forEach(child.props.children, (child) => {
+ children.push(child);
+ });
+
+ return React.cloneElement(child, {...props, ...handlers}, children);
+ }
+ });
+ },
+
+ _createRowCheckboxColumn(rowProps) {
+ if (!this.props.displayRowCheckbox) return null;
+
+ let key = rowProps.rowNumber + '-cb';
+ const checkbox = (
+
+ );
+
+ return (
+
+ {checkbox}
+
+ );
+ },
+
+ _calculatePreselectedRows(props) {
+ // Determine what rows are 'pre-selected'.
+ let preSelectedRows = [];
+
+ if (props.selectable && props.preScanRows) {
+ let index = 0;
+ React.Children.forEach(props.children, (child) => {
+ if (React.isValidElement(child)) {
+ if (child.props.selected && (preSelectedRows.length === 0 || props.multiSelectable)) {
+ preSelectedRows.push(index);
+ }
+
+ index++;
+ }
+ });
+ }
+
+ return preSelectedRows;
+ },
+
+ _isRowSelected(rowNumber) {
+ if (this.props.allRowsSelected) {
+ return true;
+ }
+
+ for (let i = 0; i < this.state.selectedRows.length; i++) {
+ let selection = this.state.selectedRows[i];
+
+ if (typeof selection === 'object') {
+ if (this._isValueInRange(rowNumber, selection)) return true;
+ } else {
+ if (selection === rowNumber) return true;
+ }
+ }
+
+ return false;
+ },
+
+ _isValueInRange(value, range) {
+ if (!range) return false;
+
+ if ((range.start <= value && value <= range.end) || (range.end <= value && value <= range.start)) {
+ return true;
+ }
+
+ return false;
+ },
+
+ _onRowClick(e, rowNumber) {
+ e.stopPropagation();
+
+ if (this.props.selectable) {
+ // Prevent text selection while selecting rows.
+ window.getSelection().removeAllRanges();
+ this._processRowSelection(e, rowNumber);
+ }
+ },
+
+ _processRowSelection(e, rowNumber) {
+ let selectedRows = this.state.selectedRows;
+
+ if (e.shiftKey && this.props.multiSelectable && selectedRows.length) {
+ let lastIndex = selectedRows.length - 1;
+ let lastSelection = selectedRows[lastIndex];
+
+ if (typeof lastSelection === 'object') {
+ lastSelection.end = rowNumber;
+ } else {
+ selectedRows.splice(lastIndex, 1, {start: lastSelection, end: rowNumber});
+ }
+ } else if (((e.ctrlKey && !e.metaKey) || (e.metaKey && !e.ctrlKey)) && this.props.multiSelectable) {
+ let idx = selectedRows.indexOf(rowNumber);
+ if (idx < 0) {
+ let foundRange = false;
+ for (let i = 0; i < selectedRows.length; i++) {
+ let range = selectedRows[i];
+ if (typeof range !== 'object') continue;
+
+ if (this._isValueInRange(rowNumber, range)) {
+ foundRange = true;
+ let values = this._splitRange(range, rowNumber);
+ selectedRows.splice(i, 1, ...values);
+ }
+ }
+
+ if (!foundRange) selectedRows.push(rowNumber);
+ } else {
+ selectedRows.splice(idx, 1);
+ }
+ } else {
+ if (selectedRows.length === 1 && selectedRows[0] === rowNumber) {
+ selectedRows = [];
+ } else {
+ selectedRows = [rowNumber];
+ }
+ }
+
+ this.setState({selectedRows: selectedRows});
+ if (this.props.onRowSelection) this.props.onRowSelection(this._flattenRanges(selectedRows));
+ },
+
+ _splitRange(range, splitPoint) {
+ let splitValues = [];
+ let startOffset = range.start - splitPoint;
+ let endOffset = range.end - splitPoint;
+
+ // Process start half
+ splitValues.push(...this._genRangeOfValues(splitPoint, startOffset));
+
+ // Process end half
+ splitValues.push(...this._genRangeOfValues(splitPoint, endOffset));
+
+ return splitValues;
+ },
+
+ _genRangeOfValues(start, offset) {
+ let values = [];
+ let dir = (offset > 0) ? -1 : 1; // This forces offset to approach 0 from either direction.
+ while (offset !== 0) {
+ values.push(start + offset);
+ offset += dir;
+ }
+
+ return values;
+ },
+
+ _flattenRanges(selectedRows) {
+ let rows = [];
+ for (let selection of selectedRows) {
+ if (typeof selection === 'object') {
+ let values = this._genRangeOfValues(selection.end, selection.start - selection.end);
+ rows.push(selection.end, ...values);
+ } else {
+ rows.push(selection);
+ }
+ }
+
+ return rows.sort();
+ },
+
+ _onCellClick(e, rowNumber, columnNumber) {
+ e.stopPropagation();
+ if (this.props.onCellClick) this.props.onCellClick(rowNumber, this._getColumnId(columnNumber));
+ },
+
+ _onCellHover(e, rowNumber, columnNumber) {
+ if (this.props.onCellHover) this.props.onCellHover(rowNumber, this._getColumnId(columnNumber));
+ this._onRowHover(e, rowNumber);
+ },
+
+ _onCellHoverExit(e, rowNumber, columnNumber) {
+ if (this.props.onCellHoverExit) this.props.onCellHoverExit(rowNumber, this._getColumnId(columnNumber));
+ this._onRowHoverExit(e, rowNumber);
+ },
+
+ _onRowHover(e, rowNumber) {
+ if (this.props.onRowHover) this.props.onRowHover(rowNumber);
+ },
+
+ _onRowHoverExit(e, rowNumber) {
+ if (this.props.onRowHoverExit) this.props.onRowHoverExit(rowNumber);
+ },
+
+ _getColumnId(columnNumber) {
+ let columnId = columnNumber;
+ if (this.props.displayRowCheckbox) columnId--;
+
+ return columnId;
+ },
+
+ render() {
+ let {
+ className,
+ style,
+ ...other,
+ } = this.props;
+ let rows = this._createRows();
+
+ return (
+
+ {rows}
+
+ );
+ },
+
+});
+
+export default TableBody;
diff --git a/node_modules/material-ui/src/table/table-footer.jsx b/node_modules/material-ui/src/table/table-footer.jsx
new file mode 100644
index 0000000..1b8f83c
--- /dev/null
+++ b/node_modules/material-ui/src/table/table-footer.jsx
@@ -0,0 +1,141 @@
+import React from 'react';
+import TableRowColumn from './table-row-column';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const TableFooter = React.createClass({
+
+ propTypes: {
+ /**
+ * Controls whether or not header rows should be adjusted
+ * for a checkbox column. If the select all checkbox is true,
+ * this property will not influence the number of columns.
+ * This is mainly useful for "super header" rows so that
+ * the checkbox column does not create an offset that needs
+ * to be accounted for manually.
+ */
+ adjustForCheckbox: React.PropTypes.bool,
+ /**
+ * Children passed to table footer.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ adjustForCheckbox: true,
+ style: {},
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.tableFooter;
+ },
+
+ getStyles() {
+ const styles = {
+ cell: {
+ borderTop: '1px solid ' + this.getTheme().borderColor,
+ verticalAlign: 'bottom',
+ padding: 20,
+ textAlign: 'left',
+ whiteSpace: 'nowrap',
+ },
+ };
+
+ return styles;
+ },
+
+ _createRows() {
+ let rowNumber = 0;
+ return (
+ React.Children.map(this.props.children, (child) => {
+ return this._createRow(child, rowNumber++);
+ })
+ );
+ },
+
+ _createRow(child, rowNumber) {
+ let styles = this.getStyles();
+ let props = {
+ displayBorder: false,
+ key: 'f-' + rowNumber,
+ rowNumber: rowNumber,
+ style: this.mergeStyles(styles.cell, child.props.style),
+ };
+
+ let children = [this._getCheckboxPlaceholder(props)];
+ React.Children.forEach(child.props.children, (child) => {
+ children.push(child);
+ });
+
+ return React.cloneElement(child, props, children);
+ },
+
+ _getCheckboxPlaceholder(props) {
+ if (!this.props.adjustForCheckbox) return null;
+
+ let key = 'fpcb' + props.rowNumber;
+ return ;
+ },
+
+ render() {
+ let {
+ className,
+ style,
+ ...other,
+ } = this.props;
+ let footerRows = this._createRows();
+
+ return (
+
+ {footerRows}
+
+ );
+ },
+
+});
+
+export default TableFooter;
diff --git a/node_modules/material-ui/src/table/table-header-column.jsx b/node_modules/material-ui/src/table/table-header-column.jsx
new file mode 100644
index 0000000..004a01a
--- /dev/null
+++ b/node_modules/material-ui/src/table/table-header-column.jsx
@@ -0,0 +1,162 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import Tooltip from '../tooltip';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const TableHeaderColumn = React.createClass({
+
+ propTypes: {
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Number to identify the header row. This property
+ * is automatically populated when used with TableHeader.
+ */
+ columnNumber: React.PropTypes.number,
+
+ /**
+ * Key prop for table header column.
+ */
+ key: React.PropTypes.string,
+
+ /**
+ * Callback function for click event.
+ */
+ onClick: React.PropTypes.func,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The string to supply to the tooltip. If not
+ * string is supplied no tooltip will be shown.
+ */
+ tooltip: React.PropTypes.string,
+
+ /**
+ * Additional styling that can be applied to the tooltip.
+ */
+ tooltipStyle: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ hovered: false,
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.tableHeaderColumn;
+ },
+
+ getStyles() {
+ let theme = this.getTheme();
+ let styles = {
+ root: {
+ fontWeight: 'normal',
+ fontSize: 12,
+ paddingLeft: theme.spacing,
+ paddingRight: theme.spacing,
+ height: theme.height,
+ textAlign: 'left',
+ whiteSpace: 'nowrap',
+ textOverflow: 'ellipsis',
+ color: this.getTheme().textColor,
+ position: 'relative',
+ },
+ tooltip: {
+ boxSizing: 'border-box',
+ marginTop: theme.height / 2,
+ },
+ };
+
+ return styles;
+ },
+
+ _onMouseEnter() {
+ if (this.props.tooltip !== undefined) this.setState({hovered: true});
+ },
+
+ _onMouseLeave() {
+ if (this.props.tooltip !== undefined) this.setState({hovered: false});
+ },
+
+ _onClick(e) {
+ if (this.props.onClick) this.props.onClick(e, this.props.columnNumber);
+ },
+
+ render() {
+ let styles = this.getStyles();
+ let handlers = {
+ onMouseEnter: this._onMouseEnter,
+ onMouseLeave: this._onMouseLeave,
+ onClick: this._onClick,
+ };
+ let {
+ className,
+ columnNumber,
+ onClick,
+ style,
+ tooltip,
+ tooltipStyle,
+ ...other,
+ } = this.props;
+ if (this.props.tooltip !== undefined) {
+ tooltip = (
+
+ );
+ }
+
+ return (
+
+ {tooltip}
+ {this.props.children}
+
+ );
+ },
+
+});
+
+export default TableHeaderColumn;
diff --git a/node_modules/material-ui/src/table/table-header.jsx b/node_modules/material-ui/src/table/table-header.jsx
new file mode 100644
index 0000000..f46817e
--- /dev/null
+++ b/node_modules/material-ui/src/table/table-header.jsx
@@ -0,0 +1,218 @@
+import React from 'react';
+import Checkbox from '../checkbox';
+import StylePropable from '../mixins/style-propable';
+import TableHeaderColumn from './table-header-column';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const TableHeader = React.createClass({
+
+ propTypes: {
+ /**
+ * Controls whether or not header rows should be
+ * adjusted for a checkbox column. If the select all
+ * checkbox is true, this property will not influence
+ * the number of columns. This is mainly useful for
+ * "super header" rows so that the checkbox column
+ * does not create an offset that needs to be accounted
+ * for manually.
+ */
+ adjustForCheckbox: React.PropTypes.bool,
+
+ /**
+ * Children passed to table header.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Controls whether or not the select all checkbox is displayed.
+ */
+ displaySelectAll: React.PropTypes.bool,
+
+ /**
+ * If set to true, the select all button will be interactable.
+ * If set to false, the button will not be interactable.
+ * To hide the checkbox, set displaySelectAll to false.
+ */
+ enableSelectAll: React.PropTypes.bool,
+
+ /**
+ * Callback when select all has been checked.
+ */
+ onSelectAll: React.PropTypes.func,
+
+ /**
+ * True when select all has been checked.
+ */
+ selectAllSelected: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ adjustForCheckbox: true,
+ displaySelectAll: true,
+ enableSelectAll: true,
+ selectAllSelected: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.tableHeader;
+ },
+
+ getStyles() {
+ let styles = {
+ root: {
+ borderBottom: '1px solid ' + this.getTheme().borderColor,
+ },
+ };
+
+ return styles;
+ },
+
+ _createSuperHeaderRows() {
+ let numChildren = React.Children.count(this.props.children);
+ if (numChildren === 1) return undefined;
+
+ let superHeaders = [];
+ for (let index = 0; index < numChildren - 1; index++) {
+ let child = this.props.children[index];
+
+ if (!React.isValidElement(child)) continue;
+
+ let props = {
+ key: 'sh' + index,
+ rowNumber: index,
+ };
+ superHeaders.push(this._createSuperHeaderRow(child, props));
+ }
+
+ if (superHeaders.length) return superHeaders;
+ },
+
+ _createSuperHeaderRow(child, props) {
+ let children = [];
+ if (this.props.adjustForCheckbox) {
+ children.push(this._getCheckboxPlaceholder(props));
+ }
+ React.Children.forEach(child.props.children, (child) => {
+ children.push(child);
+ });
+
+ return React.cloneElement(child, props, children);
+ },
+
+ _createBaseHeaderRow() {
+ let numChildren = React.Children.count(this.props.children);
+ let child = (numChildren === 1) ? this.props.children : this.props.children[numChildren - 1];
+ let props = {
+ key: 'h' + numChildren,
+ rowNumber: numChildren,
+ };
+
+ let children = [this._getSelectAllCheckboxColumn(props)];
+ React.Children.forEach(child.props.children, (child) => {
+ children.push(child);
+ });
+
+ return React.cloneElement(
+ child,
+ props,
+ children
+ );
+ },
+
+ _getCheckboxPlaceholder(props) {
+ if (!this.props.adjustForCheckbox) return null;
+
+ const key = 'hpcb' + props.rowNumber;
+ return ;
+ },
+
+ _getSelectAllCheckboxColumn(props) {
+ if (!this.props.displaySelectAll) return this._getCheckboxPlaceholder(props);
+
+ const checkbox = (
+
+ );
+
+ const key = 'hpcb' + props.rowNumber;
+ return (
+
+ {checkbox}
+
+ );
+ },
+
+ _onSelectAll(e, checked) {
+ if (this.props.onSelectAll) this.props.onSelectAll(checked);
+ },
+
+ render() {
+ let {
+ className,
+ style,
+ ...other,
+ } = this.props;
+ let superHeaderRows = this._createSuperHeaderRows();
+ let baseHeaderRow = this._createBaseHeaderRow();
+
+ return (
+
+ {superHeaderRows}
+ {baseHeaderRow}
+
+ );
+ },
+
+});
+
+export default TableHeader;
diff --git a/node_modules/material-ui/src/table/table-row-column.jsx b/node_modules/material-ui/src/table/table-row-column.jsx
new file mode 100644
index 0000000..02cba05
--- /dev/null
+++ b/node_modules/material-ui/src/table/table-row-column.jsx
@@ -0,0 +1,168 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const TableRowColumn = React.createClass({
+
+ propTypes: {
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Number to identify the header row. This property
+ * is automatically populated when used with TableHeader.
+ */
+ columnNumber: React.PropTypes.number,
+
+ /**
+ * If true, this column responds to hover events.
+ */
+ hoverable: React.PropTypes.bool,
+
+ /**
+ * Key for this element.
+ */
+ key: React.PropTypes.string,
+
+ /**
+ * Callback function for click event.
+ */
+ onClick: React.PropTypes.func,
+
+ /**
+ * Callback function for hover event.
+ */
+ onHover: React.PropTypes.func,
+
+ /**
+ * Callback function for hover exit event.
+ */
+ onHoverExit: React.PropTypes.func,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ hoverable: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ hovered: false,
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.tableRowColumn;
+ },
+
+ getStyles() {
+ let theme = this.getTheme();
+ let styles = {
+ root: {
+ paddingLeft: theme.spacing,
+ paddingRight: theme.spacing,
+ height: theme.height,
+ textAlign: 'left',
+ fontSize: 13,
+ overflow: 'hidden',
+ whiteSpace: 'nowrap',
+ textOverflow: 'ellipsis',
+ },
+ };
+
+ if (React.Children.count(this.props.children) === 1 && !isNaN(this.props.children)) {
+ styles.textAlign = 'right';
+ }
+
+ return styles;
+ },
+
+ _onClick(e) {
+ if (this.props.onClick) this.props.onClick(e, this.props.columnNumber);
+ },
+
+ _onMouseEnter(e) {
+ if (this.props.hoverable) {
+ this.setState({hovered: true});
+ if (this.props.onHover) this.props.onHover(e, this.props.columnNumber);
+ }
+ },
+
+ _onMouseLeave(e) {
+ if (this.props.hoverable) {
+ this.setState({hovered: false});
+ if (this.props.onHoverExit) this.props.onHoverExit(e, this.props.columnNumber);
+ }
+ },
+
+ render() {
+ let {
+ className,
+ columnNumber,
+ hoverable,
+ onClick,
+ onHover,
+ onHoverExit,
+ style,
+ ...other,
+ } = this.props;
+ let styles = this.getStyles();
+ let handlers = {
+ onClick: this._onClick,
+ onMouseEnter: this._onMouseEnter,
+ onMouseLeave: this._onMouseLeave,
+ };
+
+ return (
+
+ {this.props.children}
+
+ );
+ },
+
+});
+
+export default TableRowColumn;
diff --git a/node_modules/material-ui/src/table/table-row.jsx b/node_modules/material-ui/src/table/table-row.jsx
new file mode 100644
index 0000000..efe7c9a
--- /dev/null
+++ b/node_modules/material-ui/src/table/table-row.jsx
@@ -0,0 +1,278 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const TableRow = React.createClass({
+
+ propTypes: {
+ /**
+ * Children passed to table row.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * If true, row border will be displayed for the row.
+ * If false, no border will be drawn.
+ */
+ displayBorder: React.PropTypes.bool,
+
+ /**
+ * Controls whether or not the row reponseds to hover events.
+ */
+ hoverable: React.PropTypes.bool,
+
+ /**
+ * Controls whether or not the row should be rendered as being
+ * hovered. This property is evaluated in addition to this.state.hovered
+ * and can be used to synchronize the hovered state with some other
+ * external events.
+ */
+ hovered: React.PropTypes.bool,
+
+ /**
+ * Called when a row cell is clicked.
+ * rowNumber is the row number and columnId is
+ * the column number or the column key.
+ */
+ onCellClick: React.PropTypes.func,
+
+ /**
+ * Called when a table cell is hovered.
+ * rowNumber is the row number of the hovered row
+ * and columnId is the column number or the column key of the cell.
+ */
+ onCellHover: React.PropTypes.func,
+
+ /**
+ * Called when a table cell is no longer hovered.
+ * rowNumber is the row number of the row and columnId
+ * is the column number or the column key of the cell.
+ */
+ onCellHoverExit: React.PropTypes.func,
+
+ /**
+ * Called when row is clicked.
+ */
+ onRowClick: React.PropTypes.func,
+
+ /**
+ * Called when a table row is hovered.
+ * rowNumber is the row number of the hovered row.
+ */
+ onRowHover: React.PropTypes.func,
+
+ /**
+ * Called when a table row is no longer hovered.
+ * rowNumber is the row number of the row that is no longer hovered.
+ */
+ onRowHoverExit: React.PropTypes.func,
+
+ /**
+ * Number to identify the row. This property is
+ * automatically populated when used with the TableBody component.
+ */
+ rowNumber: React.PropTypes.number,
+
+ /**
+ * If true, table rows can be selected. If multiple row
+ * selection is desired, enable multiSelectable.
+ * The default value is true.
+ */
+ selectable: React.PropTypes.bool,
+
+ /**
+ * Indicates that a particular row is selected.
+ * This property can be used to programmatically select rows.
+ */
+ selected: React.PropTypes.bool,
+
+ /**
+ * Indicates whether or not the row is striped.
+ */
+ striped: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ displayBorder: true,
+ hoverable: false,
+ hovered: false,
+ selectable: true,
+ selected: false,
+ striped: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ hovered: false,
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.tableRow;
+ },
+
+ getStyles() {
+ let theme = this.getTheme();
+ let cellBgColor = 'inherit';
+ if (this.props.hovered || this.state.hovered) {
+ cellBgColor = theme.hoverColor;
+ } else if (this.props.selected) {
+ cellBgColor = theme.selectedColor;
+ } else if (this.props.striped) {
+ cellBgColor = theme.stripeColor;
+ }
+
+ let styles = {
+ root: {
+ borderBottom: '1px solid ' + theme.borderColor,
+ color: theme.textColor,
+ height: theme.height,
+ },
+ cell: {
+ backgroundColor: cellBgColor,
+ },
+ };
+
+ if (!this.props.displayBorder) {
+ styles.root.borderBottom = '';
+ }
+
+ return styles;
+ },
+
+ _createColumns() {
+ let columnNumber = 1;
+ return React.Children.map(this.props.children, (child) => {
+ if (React.isValidElement(child)) {
+ return this._createColumn(child, columnNumber++);
+ }
+ });
+ },
+
+ _createColumn(child, columnNumber) {
+ let key = this.props.rowNumber + '-' + columnNumber;
+ let styles = this.getStyles();
+ const handlers = {
+ onClick: this._onCellClick,
+ onHover: this._onCellHover,
+ onHoverExit: this._onCellHoverExit,
+ };
+
+ return React.cloneElement(
+ child,
+ {
+ columnNumber: columnNumber,
+ hoverable: this.props.hoverable,
+ key: child.props.key || key,
+ style: this.mergeStyles(styles.cell, child.props.style),
+ ...handlers,
+ }
+ );
+ },
+
+ _onRowClick(e) {
+ if (this.props.selectable && this.props.onRowClick) this.props.onRowClick(e, this.props.rowNumber);
+ },
+
+ _onRowHover(e) {
+ if (this.props.onRowHover) this.props.onRowHover(e, this.props.rowNumber);
+ },
+
+ _onRowHoverExit(e) {
+ if (this.props.onRowHoverExit) this.props.onRowHoverExit(e, this.props.rowNumber);
+ },
+
+ _onCellClick(e, columnIndex) {
+ if (this.props.selectable && this.props.onCellClick) this.props.onCellClick(e, this.props.rowNumber, columnIndex);
+ e.ctrlKey = true;
+ this._onRowClick(e);
+ },
+
+ _onCellHover(e, columnIndex) {
+ if (this.props.hoverable) {
+ this.setState({hovered: true});
+ if (this.props.onCellHover) this.props.onCellHover(e, this.props.rowNumber, columnIndex);
+ this._onRowHover(e);
+ }
+ },
+
+ _onCellHoverExit(e, columnIndex) {
+ if (this.props.hoverable) {
+ this.setState({hovered: false});
+ if (this.props.onCellHoverExit) this.props.onCellHoverExit(e, this.props.rowNumber, columnIndex);
+ this._onRowHoverExit(e);
+ }
+ },
+
+ render() {
+ let {
+ className,
+ displayBorder,
+ hoverable,
+ onCellClick,
+ onCellHover,
+ onCellHoverExit,
+ onRowClick,
+ onRowHover,
+ onRowHoverExit,
+ rowNumber,
+ selectable,
+ selected,
+ striped,
+ style,
+ ...other,
+ } = this.props;
+ let rowColumns = this._createColumns();
+
+ return (
+
+ {rowColumns}
+
+ );
+ },
+});
+
+export default TableRow;
diff --git a/node_modules/material-ui/src/table/table.jsx b/node_modules/material-ui/src/table/table.jsx
new file mode 100644
index 0000000..e8c0853
--- /dev/null
+++ b/node_modules/material-ui/src/table/table.jsx
@@ -0,0 +1,353 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const Table = React.createClass({
+
+ propTypes: {
+ /**
+ * Set to true to indicate that all rows should be selected.
+ */
+ allRowsSelected: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the body's table element.
+ */
+ bodyStyle: React.PropTypes.object,
+
+ /**
+ * Children passed to table.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * If true, the footer will appear fixed below the table.
+ * The default value is true.
+ */
+ fixedFooter: React.PropTypes.bool,
+
+ /**
+ * If true, the header will appear fixed above the table.
+ * The default value is true.
+ */
+ fixedHeader: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the footer's table element.
+ */
+ footerStyle: React.PropTypes.object,
+
+ /**
+ * Override the inline-styles of the header's table element.
+ */
+ headerStyle: React.PropTypes.object,
+
+ /**
+ * The height of the table.
+ */
+ height: React.PropTypes.string,
+
+ /**
+ * If true, multiple table rows can be selected.
+ * CTRL/CMD+Click and SHIFT+Click are valid actions.
+ * The default value is false.
+ */
+ multiSelectable: React.PropTypes.bool,
+
+ /**
+ * Called when a row cell is clicked.
+ * rowNumber is the row number and columnId is
+ * the column number or the column key.
+ */
+ onCellClick: React.PropTypes.func,
+
+ /**
+ * Called when a table cell is hovered.
+ * rowNumber is the row number of the hovered row
+ * and columnId is the column number or the column key of the cell.
+ */
+ onCellHover: React.PropTypes.func,
+
+ /**
+ * Called when a table cell is no longer hovered.
+ * rowNumber is the row number of the row and columnId
+ * is the column number or the column key of the cell.
+ */
+ onCellHoverExit: React.PropTypes.func,
+
+ /**
+ * Called when a table row is hovered.
+ * rowNumber is the row number of the hovered row.
+ */
+ onRowHover: React.PropTypes.func,
+
+ /**
+ * Called when a table row is no longer hovered.
+ * rowNumber is the row number of the row that is no longer hovered.
+ */
+ onRowHoverExit: React.PropTypes.func,
+
+ /**
+ * Called when a row is selected.
+ * selectedRows is an array of all row selections.
+ * IF all rows have been selected, the string "all"
+ * will be returned instead to indicate that all rows have been selected.
+ */
+ onRowSelection: React.PropTypes.func,
+
+ /**
+ * If true, table rows can be selected.
+ * If multiple row selection is desired, enable multiSelectable.
+ * The default value is true.
+ */
+ selectable: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * Override the inline-styles of the table's wrapper element.
+ */
+ wrapperStyle: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ allRowsSelected: false,
+ fixedFooter: true,
+ fixedHeader: true,
+ height: 'inherit',
+ multiSelectable: false,
+ selectable: true,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ allRowsSelected: this.props.allRowsSelected,
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.table;
+ },
+
+ getStyles() {
+ let styles = {
+ root: {
+ backgroundColor: this.getTheme().backgroundColor,
+ padding: '0 ' + this.state.muiTheme.rawTheme.spacing.desktopGutter + 'px',
+ width: '100%',
+ borderCollapse: 'collapse',
+ borderSpacing: 0,
+ tableLayout: 'fixed',
+ fontFamily: this.state.muiTheme.rawTheme.fontFamily,
+ },
+ bodyTable: {
+ height: (this.props.fixedHeader || this.props.fixedFooter) ? this.props.height : 'auto',
+ overflowX: 'hidden',
+ overflowY: 'auto',
+ },
+ tableWrapper: {
+ height: (this.props.fixedHeader || this.props.fixedFooter) ? 'auto' : this.props.height,
+ overflow: 'auto',
+ },
+ };
+
+ return styles;
+ },
+
+ isScrollbarVisible() {
+ const tableDivHeight = ReactDOM.findDOMNode(this.refs.tableDiv).clientHeight;
+ const tableBodyHeight = ReactDOM.findDOMNode(this.refs.tableBody).clientHeight;
+
+ return tableBodyHeight > tableDivHeight;
+ },
+
+ _createTableHeader(base) {
+ return React.cloneElement(
+ base,
+ {
+ enableSelectAll: base.props.enableSelectAll && this.props.selectable && this.props.multiSelectable,
+ onSelectAll: this._onSelectAll,
+ selectAllSelected: this.state.allRowsSelected,
+ }
+ );
+ },
+
+ _createTableBody(base) {
+ return React.cloneElement(
+ base,
+ {
+ allRowsSelected: this.state.allRowsSelected,
+ multiSelectable: this.props.multiSelectable,
+ onCellClick: this._onCellClick,
+ onCellHover: this._onCellHover,
+ onCellHoverExit: this._onCellHoverExit,
+ onRowHover: this._onRowHover,
+ onRowHoverExit: this._onRowHoverExit,
+ onRowSelection: this._onRowSelection,
+ selectable: this.props.selectable,
+ style: this.mergeStyles({height: this.props.height}, base.props.style),
+ }
+ );
+ },
+
+ _createTableFooter(base) {
+ return base;
+ },
+
+ _onCellClick(rowNumber, columnNumber) {
+ if (this.props.onCellClick) this.props.onCellClick(rowNumber, columnNumber);
+ },
+
+ _onCellHover(rowNumber, columnNumber) {
+ if (this.props.onCellHover) this.props.onCellHover(rowNumber, columnNumber);
+ },
+
+ _onCellHoverExit(rowNumber, columnNumber) {
+ if (this.props.onCellHoverExit) this.props.onCellHoverExit(rowNumber, columnNumber);
+ },
+
+ _onRowHover(rowNumber) {
+ if (this.props.onRowHover) this.props.onRowHover(rowNumber);
+ },
+
+ _onRowHoverExit(rowNumber) {
+ if (this.props.onRowHoverExit) this.props.onRowHoverExit(rowNumber);
+ },
+
+ _onRowSelection(selectedRows) {
+ if (this.state.allRowsSelected) this.setState({allRowsSelected: false});
+ if (this.props.onRowSelection) this.props.onRowSelection(selectedRows);
+ },
+
+ _onSelectAll() {
+ if (this.props.onRowSelection) {
+ if (!this.state.allRowsSelected) {
+ this.props.onRowSelection('all');
+ } else {
+ this.props.onRowSelection('none');
+ }
+ }
+
+ this.setState({allRowsSelected: !this.state.allRowsSelected});
+ },
+
+ render() {
+ let {
+ children,
+ className,
+ fixedFooter,
+ fixedHeader,
+ style,
+ wrapperStyle,
+ headerStyle,
+ bodyStyle,
+ footerStyle,
+ ...other,
+ } = this.props;
+ let styles = this.getStyles();
+
+ let tHead;
+ let tFoot;
+ let tBody;
+
+ React.Children.forEach(children, (child) => {
+ if (!React.isValidElement(child)) return;
+
+ let displayName = child.type.displayName;
+ if (displayName === 'TableBody') {
+ tBody = this._createTableBody(child);
+ } else if (displayName === 'TableHeader') {
+ tHead = this._createTableHeader(child);
+ } else if (displayName === 'TableFooter') {
+ tFoot = this._createTableFooter(child);
+ }
+ });
+
+ // If we could not find a table-header and a table-body, do not attempt to display anything.
+ if (!tBody && !tHead) return null;
+
+ let mergedTableStyle = this.mergeStyles(styles.root, style);
+ let headerTable;
+ let footerTable;
+ let inlineHeader;
+ let inlineFooter;
+
+ if (fixedHeader) {
+ headerTable = (
+
+ );
+ } else {
+ inlineHeader = tHead;
+ }
+
+ if (tFoot !== undefined) {
+ if (fixedFooter) {
+ footerTable = (
+
+ );
+ } else {
+ inlineFooter = tFoot;
+ }
+ }
+
+ return (
+
+ {headerTable}
+
+
+ {inlineHeader}
+ {inlineFooter}
+ {tBody}
+
+
+ {footerTable}
+
+ );
+ },
+});
+
+export default Table;
diff --git a/node_modules/material-ui/src/tabs/index.js b/node_modules/material-ui/src/tabs/index.js
new file mode 100644
index 0000000..85ffc88
--- /dev/null
+++ b/node_modules/material-ui/src/tabs/index.js
@@ -0,0 +1,10 @@
+import Tab from './tab';
+import Tabs from './tabs';
+
+export {Tab};
+export {Tabs};
+
+export default {
+ Tab,
+ Tabs,
+};
diff --git a/node_modules/material-ui/src/tabs/tab.jsx b/node_modules/material-ui/src/tabs/tab.jsx
new file mode 100644
index 0000000..24da89d
--- /dev/null
+++ b/node_modules/material-ui/src/tabs/tab.jsx
@@ -0,0 +1,161 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+import EnhancedButton from '../enhanced-button';
+
+const Tab = React.createClass({
+
+ propTypes: {
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Sets the icon of the tab, you can pass `FontIcon` or `SvgIcon` elements.
+ */
+ icon: React.PropTypes.node,
+
+ /**
+ * Sets the text value of the tab item to the string specified.
+ */
+ label: React.PropTypes.node,
+
+ /**
+ * Fired when the active tab changes by touch or tap.
+ * Use this event to specify any functionality when an active tab changes.
+ * For example - we are using this to route to home when the third tab becomes active.
+ * This function will always recieve the active tab as it\'s first argument.
+ */
+ onActive: React.PropTypes.func,
+
+ /**
+ * This property is overriden by the Tabs component.
+ */
+ onTouchTap: React.PropTypes.func,
+
+ /**
+ * Defines if the current tab is selected or not.
+ * The Tabs component is responsible for setting this property.
+ */
+ selected: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * If value prop passed to Tabs component, this value prop is also required.
+ * It assigns a value to the tab so that it can be selected by the Tabs.
+ */
+ value: React.PropTypes.any,
+
+ /**
+ * This property is overriden by the Tabs component.
+ */
+ width: React.PropTypes.string,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ _handleTouchTap(event) {
+ if (this.props.onTouchTap) {
+ this.props.onTouchTap(this.props.value, event, this);
+ }
+ },
+
+ render() {
+ const {
+ label,
+ onActive,
+ onTouchTap,
+ selected,
+ style,
+ value,
+ width,
+ icon,
+ ...other,
+ } = this.props;
+
+ const textColor = selected ? this.state.muiTheme.tabs.selectedTextColor : this.state.muiTheme.tabs.textColor;
+
+ const styles = this.mergeStyles({
+ padding: '0px 12px',
+ height: (label && icon) ? 72 : 48,
+ color: textColor,
+ fontWeight: 500,
+ fontSize: 14,
+ width: width,
+ textTransform: 'uppercase',
+ }, style);
+
+ let iconElement;
+ if (icon && React.isValidElement(icon)) {
+ const params = {
+ style: {
+ fontSize: 24,
+ marginBottom: (label) ? 5 : 0,
+ display: label ? 'block' : 'inline-block',
+ color: textColor,
+ },
+ };
+ // If it's svg icon set color via props
+ if (icon.type.displayName !== 'FontIcon') {
+ params.color = textColor;
+ }
+ iconElement = React.cloneElement(icon, params);
+ }
+
+ const rippleColor = styles.color;
+ const rippleOpacity = 0.3;
+
+ return (
+
+ {iconElement}
+ {label}
+
+ );
+ },
+
+});
+
+export default Tab;
diff --git a/node_modules/material-ui/src/tabs/tabTemplate.jsx b/node_modules/material-ui/src/tabs/tabTemplate.jsx
new file mode 100644
index 0000000..2d71962
--- /dev/null
+++ b/node_modules/material-ui/src/tabs/tabTemplate.jsx
@@ -0,0 +1,31 @@
+import React from 'react';
+
+class TabTemplate extends React.Component {
+ static propTypes = {
+ children: React.PropTypes.node,
+ selected: React.PropTypes.bool,
+ };
+
+ render() {
+ const styles = {
+ height: 0,
+ overflow: 'hidden',
+ width: '100%',
+ position: 'relative',
+ textAlign: 'initial',
+ };
+
+ if (this.props.selected) {
+ delete styles.height;
+ delete styles.overflow;
+ }
+
+ return (
+
+ {this.props.children}
+
+ );
+ }
+}
+
+export default TabTemplate;
diff --git a/node_modules/material-ui/src/tabs/tabs.jsx b/node_modules/material-ui/src/tabs/tabs.jsx
new file mode 100644
index 0000000..75b85f9
--- /dev/null
+++ b/node_modules/material-ui/src/tabs/tabs.jsx
@@ -0,0 +1,264 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import TabTemplate from './tabTemplate';
+import InkBar from '../ink-bar';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+import warning from 'warning';
+
+const Tabs = React.createClass({
+
+ propTypes: {
+ /**
+ * Should be used to pass `Tab` components.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * The css class name of the content's container.
+ */
+ contentContainerClassName: React.PropTypes.string,
+
+ /**
+ * Override the inline-styles of the content's container.
+ */
+ contentContainerStyle: React.PropTypes.object,
+
+ /**
+ * Specify initial visible tab index.
+ * Initial selected index is set by default to 0.
+ * If initialSelectedIndex is set but larger than the total amount of specified tabs,
+ * initialSelectedIndex will revert back to default.
+ */
+ initialSelectedIndex: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the InkBar.
+ */
+ inkBarStyle: React.PropTypes.object,
+
+ /**
+ * Called when the selected value change.
+ */
+ onChange: React.PropTypes.func,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * Override the inline-styles of the tab-labels container.
+ */
+ tabItemContainerStyle: React.PropTypes.object,
+
+ /**
+ * Override the default tab template used to wrap the content of each tab element.
+ */
+ tabTemplate: React.PropTypes.func,
+
+ /**
+ * Makes Tabs controllable and selects the tab whose value prop matches this prop.
+ */
+ value: React.PropTypes.any,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ initialSelectedIndex: 0,
+ onChange: () => {},
+ };
+ },
+
+ getInitialState() {
+ let valueLink = this.getValueLink(this.props);
+ let initialIndex = this.props.initialSelectedIndex;
+
+ return {
+ selectedIndex: valueLink.value !== undefined ?
+ this._getSelectedIndex(this.props) :
+ initialIndex < this.getTabCount() ?
+ initialIndex :
+ 0,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentWillReceiveProps(newProps, nextContext) {
+ const valueLink = this.getValueLink(newProps);
+ const newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+
+ if (valueLink.value !== undefined) {
+ this.setState({selectedIndex: this._getSelectedIndex(newProps)});
+ }
+
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getEvenWidth() {
+ return (
+ parseInt(window
+ .getComputedStyle(ReactDOM.findDOMNode(this))
+ .getPropertyValue('width'), 10)
+ );
+ },
+
+ getTabCount() {
+ return React.Children.count(this.props.children);
+ },
+
+ // Do not use outside of this component, it will be removed once valueLink is deprecated
+ getValueLink(props) {
+ return props.valueLink || {
+ value: props.value,
+ requestChange: props.onChange,
+ };
+ },
+
+ _getSelectedIndex(props) {
+ let valueLink = this.getValueLink(props);
+ let selectedIndex = -1;
+
+ React.Children.forEach(props.children, (tab, index) => {
+ if (valueLink.value === tab.props.value) {
+ selectedIndex = index;
+ }
+ });
+
+ return selectedIndex;
+ },
+
+ _handleTabTouchTap(value, e, tab) {
+ let valueLink = this.getValueLink(this.props);
+ let tabIndex = tab.props.tabIndex;
+
+ if ((valueLink.value && valueLink.value !== value) ||
+ this.state.selectedIndex !== tabIndex) {
+ valueLink.requestChange(value, e, tab);
+ }
+
+ this.setState({selectedIndex: tabIndex});
+
+ if (tab.props.onActive) {
+ tab.props.onActive(tab);
+ }
+ },
+
+ _getSelected(tab, index) {
+ let valueLink = this.getValueLink(this.props);
+ return valueLink.value ? valueLink.value === tab.props.value :
+ this.state.selectedIndex === index;
+ },
+
+ render() {
+ let {
+ children,
+ contentContainerClassName,
+ contentContainerStyle,
+ initialSelectedIndex,
+ inkBarStyle,
+ style,
+ tabItemContainerStyle,
+ tabTemplate,
+ ...other,
+ } = this.props;
+
+ let themeVariables = this.state.muiTheme.tabs;
+ let styles = {
+ tabItemContainer: {
+ margin: 0,
+ padding: 0,
+ width: '100%',
+ backgroundColor: themeVariables.backgroundColor,
+ whiteSpace: 'nowrap',
+ },
+ };
+
+ let valueLink = this.getValueLink(this.props);
+ let tabValue = valueLink.value;
+ let tabContent = [];
+
+ const width = 100 / this.getTabCount();
+
+ let tabs = React.Children.map(children, (tab, index) => {
+ warning(tab.type && tab.type.displayName === 'Tab',
+ `Tabs only accepts Tab Components as children.
+ Found ${tab.type.displayName || tab.type} as child number ${index + 1} of Tabs`);
+
+ warning(!tabValue || tab.props.value !== undefined,
+ `Tabs value prop has been passed, but Tab ${index}
+ does not have a value prop. Needs value if Tabs is going
+ to be a controlled component.`);
+
+ tabContent.push(tab.props.children ?
+ React.createElement(tabTemplate || TabTemplate, {
+ key: index,
+ selected: this._getSelected(tab, index),
+ }, tab.props.children) : undefined);
+
+ return React.cloneElement(tab, {
+ key: index,
+ selected: this._getSelected(tab, index),
+ tabIndex: index,
+ width: width + '%',
+ onTouchTap: this._handleTabTouchTap,
+ });
+ });
+
+ const inkBar = this.state.selectedIndex !== -1 ? (
+
+ ) : null;
+
+ const inkBarContainerWidth = tabItemContainerStyle ?
+ tabItemContainerStyle.width : '100%';
+
+ return (
+
+
+ {tabs}
+
+
+ {inkBar}
+
+
+ {tabContent}
+
+
+ );
+ },
+});
+
+export default Tabs;
diff --git a/node_modules/material-ui/src/text-field.jsx b/node_modules/material-ui/src/text-field.jsx
new file mode 100644
index 0000000..7e9c49a
--- /dev/null
+++ b/node_modules/material-ui/src/text-field.jsx
@@ -0,0 +1,3 @@
+import TextField from './TextField';
+
+export default TextField;
diff --git a/node_modules/material-ui/src/theme-wrapper.jsx b/node_modules/material-ui/src/theme-wrapper.jsx
new file mode 100644
index 0000000..e8e7a1c
--- /dev/null
+++ b/node_modules/material-ui/src/theme-wrapper.jsx
@@ -0,0 +1,22 @@
+import React from 'react';
+
+export default React.createClass({
+ propTypes: {
+ children: React.PropTypes.node,
+ theme: React.PropTypes.object.isRequired,
+ },
+
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.props.theme,
+ };
+ },
+
+ render() {
+ return this.props.children;
+ },
+});
diff --git a/node_modules/material-ui/src/time-picker/clock-hours.jsx b/node_modules/material-ui/src/time-picker/clock-hours.jsx
new file mode 100644
index 0000000..a830364
--- /dev/null
+++ b/node_modules/material-ui/src/time-picker/clock-hours.jsx
@@ -0,0 +1,230 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from '../mixins/style-propable';
+import ClockNumber from './clock-number';
+import ClockPointer from './clock-pointer';
+import getMuiTheme from '../styles/getMuiTheme';
+
+function rad2deg(rad) {
+ return rad * 57.29577951308232;
+}
+
+function getTouchEventOffsetValues(e) {
+ let el = e.target;
+ let boundingRect = el.getBoundingClientRect();
+
+ let offset = {
+ offsetX: e.clientX - boundingRect.left,
+ offsetY: e.clientY - boundingRect.top,
+ };
+
+ return offset;
+}
+
+const ClockHours = React.createClass({
+
+ propTypes: {
+ format: React.PropTypes.oneOf(['ampm', '24hr']),
+ initialHours: React.PropTypes.number,
+ onChange: React.PropTypes.func,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ initialHours: new Date().getHours(),
+ onChange: () => {},
+ format: 'ampm',
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ let clockElement = ReactDOM.findDOMNode(this.refs.mask);
+
+ this.center = {
+ x: clockElement.offsetWidth / 2,
+ y: clockElement.offsetHeight / 2,
+ };
+
+ this.basePoint = {
+ x: this.center.x,
+ y: 0,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ center: {x: 0, y: 0},
+ basePoint: {x: 0, y: 0},
+
+ isMousePressed(e) {
+ if (typeof e.buttons === 'undefined') {
+ return e.nativeEvent.which;
+ }
+
+ return e.buttons;
+ },
+
+ handleUp(e) {
+ e.preventDefault();
+ this.setClock(e.nativeEvent, true);
+ },
+
+ handleMove(e) {
+ e.preventDefault();
+ if (this.isMousePressed(e) !== 1 ) return;
+ this.setClock(e.nativeEvent, false);
+ },
+
+ handleTouchMove(e) {
+ e.preventDefault();
+ this.setClock(e.changedTouches[0], false);
+ },
+
+ handleTouchEnd(e) {
+ e.preventDefault();
+ this.setClock(e.changedTouches[0], true);
+ },
+
+ setClock(e, finish) {
+ if (typeof e.offsetX === 'undefined') {
+ let offset = getTouchEventOffsetValues(e);
+
+ e.offsetX = offset.offsetX;
+ e.offsetY = offset.offsetY;
+ }
+
+ let hours = this.getHours(e.offsetX, e.offsetY);
+
+ this.props.onChange(hours, finish);
+ },
+
+ getHours(offsetX, offsetY) {
+ let step = 30;
+ let x = offsetX - this.center.x;
+ let y = offsetY - this.center.y;
+ let cx = this.basePoint.x - this.center.x;
+ let cy = this.basePoint.y - this.center.y;
+
+ let atan = Math.atan2(cx, cy) - Math.atan2(x, y);
+
+ let deg = rad2deg(atan);
+ deg = Math.round(deg / step ) * step;
+ deg %= 360;
+
+ let value = Math.floor(deg / step) || 0;
+
+ let delta = Math.pow(x, 2) + Math.pow(y, 2);
+ let distance = Math.sqrt(delta);
+
+ value = value || 12;
+ if (this.props.format === '24hr') {
+ if (distance < 90) {
+ value += 12;
+ value %= 24;
+ }
+ } else {
+ value %= 12;
+ }
+
+ return value;
+ },
+
+ _getSelected() {
+ let hour = this.props.initialHours;
+
+ if (this.props.format === 'ampm') {
+ hour %= 12;
+ hour = hour || 12;
+ }
+
+ return hour;
+ },
+
+ _getHourNumbers() {
+ let style = {
+ pointerEvents: 'none',
+ };
+ let hourSize = this.props.format === 'ampm' ? 12 : 24;
+
+ let hours = [];
+ for (let i = 1; i <= hourSize; i++) {
+ hours.push(i % 24);
+ }
+
+ return hours.map((hour) => {
+ const isSelected = this._getSelected() === hour;
+ return (
+
+ );
+ });
+ },
+
+ render() {
+ let styles = {
+ root: {
+ height: '100%',
+ width: '100%',
+ borderRadius: '100%',
+ position: 'relative',
+ pointerEvents: 'none',
+ boxSizing: 'border-box',
+ },
+
+ hitMask: {
+ height: '100%',
+ width: '100%',
+ pointerEvents: 'auto',
+ },
+ };
+
+ let hours = this._getSelected();
+ let numbers = this._getHourNumbers();
+
+ return (
+
+ );
+ },
+});
+
+export default ClockHours;
diff --git a/node_modules/material-ui/src/time-picker/clock-minutes.jsx b/node_modules/material-ui/src/time-picker/clock-minutes.jsx
new file mode 100644
index 0000000..55a4739
--- /dev/null
+++ b/node_modules/material-ui/src/time-picker/clock-minutes.jsx
@@ -0,0 +1,197 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from '../mixins/style-propable';
+import ClockNumber from './clock-number';
+import ClockPointer from './clock-pointer';
+import getMuiTheme from '../styles/getMuiTheme';
+
+function rad2deg(rad) {
+ return rad * 57.29577951308232;
+}
+
+function getTouchEventOffsetValues(e) {
+ let el = e.target;
+ let boundingRect = el.getBoundingClientRect();
+
+ let offset = {
+ offsetX: e.clientX - boundingRect.left,
+ offsetY: e.clientY - boundingRect.top,
+ };
+
+ return offset;
+}
+
+const ClockMinutes = React.createClass({
+ propTypes: {
+ initialMinutes: React.PropTypes.number,
+ onChange: React.PropTypes.func,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ initialMinutes: new Date().getMinutes(),
+ onChange: () => {},
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ let clockElement = ReactDOM.findDOMNode(this.refs.mask);
+
+ this.center = {
+ x: clockElement.offsetWidth / 2,
+ y: clockElement.offsetHeight / 2,
+ };
+
+ this.basePoint = {
+ x: this.center.x,
+ y: 0,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ center: {x: 0, y: 0},
+ basePoint: {x: 0, y: 0},
+
+ isMousePressed(e) {
+ if (typeof e.buttons === 'undefined') {
+ return e.nativeEvent.which;
+ }
+ return e.buttons;
+ },
+
+ handleUp(e) {
+ e.preventDefault();
+ this.setClock(e.nativeEvent, true);
+ },
+
+ handleMove(e) {
+ e.preventDefault();
+ if (this.isMousePressed(e) !== 1 ) return;
+ this.setClock(e.nativeEvent, false);
+ },
+
+ handleTouch(e) {
+ e.preventDefault();
+ this.setClock(e.changedTouches[0], false);
+ },
+
+ setClock(e, finish) {
+ if (typeof e.offsetX === 'undefined') {
+ let offset = getTouchEventOffsetValues(e);
+
+ e.offsetX = offset.offsetX;
+ e.offsetY = offset.offsetY;
+ }
+
+ let minutes = this.getMinutes(e.offsetX, e.offsetY);
+
+ this.props.onChange(minutes, finish);
+ },
+
+ getMinutes(offsetX, offsetY) {
+ let step = 6;
+ let x = offsetX - this.center.x;
+ let y = offsetY - this.center.y;
+ let cx = this.basePoint.x - this.center.x;
+ let cy = this.basePoint.y - this.center.y;
+
+ let atan = Math.atan2(cx, cy) - Math.atan2(x, y);
+
+ let deg = rad2deg(atan);
+ deg = Math.round(deg / step ) * step;
+ deg %= 360;
+
+ let value = Math.floor(deg / step) || 0;
+
+ return value;
+ },
+
+ _getMinuteNumbers() {
+ let minutes = [];
+ for (let i = 0; i < 12; i++) {
+ minutes.push(i * 5);
+ }
+ let selectedMinutes = this.props.initialMinutes;
+ let hasSelected = false;
+
+ let numbers = minutes.map((minute) => {
+ let isSelected = selectedMinutes === minute;
+ if (isSelected) hasSelected = true;
+ return (
+
+ );
+ });
+
+ return {
+ numbers: numbers,
+ hasSelected: hasSelected,
+ selected: selectedMinutes,
+ };
+ },
+
+ render() {
+ let styles = {
+ root: {
+ height: '100%',
+ width: '100%',
+ borderRadius: '100%',
+ position: 'relative',
+ pointerEvents: 'none',
+ boxSizing: 'border-box',
+ },
+
+ hitMask: {
+ height: '100%',
+ width: '100%',
+ pointerEvents: 'auto',
+ },
+ };
+
+ let minutes = this._getMinuteNumbers();
+
+ return (
+
+
+ {minutes.numbers}
+
+
+ );
+ },
+});
+
+export default ClockMinutes;
diff --git a/node_modules/material-ui/src/time-picker/clock-number.jsx b/node_modules/material-ui/src/time-picker/clock-number.jsx
new file mode 100644
index 0000000..20fb14e
--- /dev/null
+++ b/node_modules/material-ui/src/time-picker/clock-number.jsx
@@ -0,0 +1,139 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const ClockNumber = React.createClass({
+
+ propTypes: {
+ isSelected: React.PropTypes.bool,
+ onSelected: React.PropTypes.func,
+ type: React.PropTypes.oneOf(['hour', 'minute']),
+ value: React.PropTypes.number,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ value: 0,
+ type: 'minute',
+ isSelected: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.timePicker;
+ },
+
+ render() {
+ let pos = this.props.value;
+ let inner = false;
+
+ if (this.props.type === 'hour') {
+ inner = pos < 1 || pos > 12;
+ pos %= 12;
+ } else {
+ pos = pos / 5;
+ }
+
+ let positions = [
+ [0, 5],
+ [54.5, 16.6],
+ [94.4, 59.5],
+ [109, 114],
+ [94.4, 168.5],
+ [54.5, 208.4],
+ [0, 223],
+ [-54.5, 208.4],
+ [-94.4, 168.5],
+ [-109, 114],
+ [-94.4, 59.5],
+ [-54.5, 19.6],
+ ];
+
+ let innerPositions = [
+ [0, 40],
+ [36.9, 49.9],
+ [64, 77],
+ [74, 114],
+ [64, 151],
+ [37, 178],
+ [0, 188],
+ [-37, 178],
+ [-64, 151],
+ [-74, 114],
+ [-64, 77],
+ [-37, 50],
+ ];
+
+ let styles = {
+ root: {
+ display: 'inline-block',
+ position: 'absolute',
+ width: 32,
+ height: 32,
+ borderRadius: '100%',
+ left: 'calc(50% - 16px)',
+ top: 10,
+ textAlign: 'center',
+ paddingTop: 5,
+ userSelect: 'none', /* Chrome all / Safari all */
+ fontSize: '1.1em',
+ pointerEvents: 'none',
+ boxSizing: 'border-box',
+ },
+ };
+
+ if (this.props.isSelected) {
+ styles.root.backgroundColor = this.getTheme().accentColor;
+ styles.root.color = this.getTheme().selectTextColor;
+ }
+
+ let transformPos = positions[pos];
+
+ if (inner) {
+ styles.root.width = 28;
+ styles.root.height = 28;
+ styles.root.left = 'calc(50% - 14px)';
+ transformPos = innerPositions[pos];
+ }
+
+ let [x, y] = transformPos;
+
+ styles.root.transform = 'translate(' + x + 'px, ' + y + 'px)';
+
+ return (
+ {this.props.value}
+ );
+ },
+});
+
+export default ClockNumber;
diff --git a/node_modules/material-ui/src/time-picker/clock-pointer.jsx b/node_modules/material-ui/src/time-picker/clock-pointer.jsx
new file mode 100644
index 0000000..bf51719
--- /dev/null
+++ b/node_modules/material-ui/src/time-picker/clock-pointer.jsx
@@ -0,0 +1,125 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const ClockPointer = React.createClass({
+
+ propTypes: {
+ hasSelected: React.PropTypes.bool,
+ type: React.PropTypes.oneOf(['hour', 'minute']),
+ value: React.PropTypes.number,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ value: null,
+ type: 'minute',
+ hasSelected: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ inner: this.isInner(this.props.value),
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({
+ inner: this.isInner(nextProps.value),
+ muiTheme: newMuiTheme,
+ });
+ },
+
+ isInner(value) {
+ if (this.props.type !== 'hour' ) {
+ return false;
+ }
+ return value < 1 || value > 12 ;
+ },
+
+ getAngle() {
+ if (this.props.type === 'hour') {
+ return this.calcAngle(this.props.value, 12);
+ }
+
+ return this.calcAngle(this.props.value, 60);
+ },
+
+ calcAngle(value, base) {
+ value %= base;
+ let angle = 360 / base * value;
+ return angle;
+ },
+
+ getTheme() {
+ return this.state.muiTheme.timePicker;
+ },
+
+ render() {
+ if (this.props.value === null) {
+ return ;
+ }
+
+ let angle = this.getAngle();
+
+ let styles = {
+ root: {
+ height: '30%',
+ background: this.getTheme().accentColor,
+ width: 2,
+ left: 'calc(50% - 1px)',
+ position: 'absolute',
+ bottom: '50%',
+ transformOrigin: 'bottom',
+ pointerEvents: 'none',
+ transform: 'rotateZ(' + angle + 'deg)',
+ },
+ mark: {
+ background: this.getTheme().selectTextColor,
+ border: '4px solid ' + this.getTheme().accentColor,
+ width: 7,
+ height: 7,
+ position: 'absolute',
+ top: -5,
+ left: -6,
+ borderRadius: '100%',
+ },
+ };
+
+ if (!this.state.inner) {
+ styles.root.height = '40%';
+ }
+
+ if (this.props.hasSelected) {
+ styles.mark.display = 'none';
+ }
+
+ return (
+
+ );
+ },
+});
+
+export default ClockPointer;
diff --git a/node_modules/material-ui/src/time-picker/clock.jsx b/node_modules/material-ui/src/time-picker/clock.jsx
new file mode 100644
index 0000000..27d9e4e
--- /dev/null
+++ b/node_modules/material-ui/src/time-picker/clock.jsx
@@ -0,0 +1,191 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import TimeDisplay from './time-display';
+import ClockHours from './clock-hours';
+import ClockMinutes from './clock-minutes';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const Clock = React.createClass({
+
+ propTypes: {
+ format: React.PropTypes.oneOf(['ampm', '24hr']),
+ initialTime: React.PropTypes.object,
+ isActive: React.PropTypes.bool,
+ mode: React.PropTypes.oneOf(['hour', 'minute']),
+ onChangeHours: React.PropTypes.func,
+ onChangeMinutes: React.PropTypes.func,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ initialTime: new Date(),
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ selectedTime: this.props.initialTime,
+ mode: 'hour',
+ };
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({
+ muiTheme: newMuiTheme,
+ selectedTime: nextProps.initialTime,
+ });
+ },
+
+ _setMode(mode) {
+ setTimeout(() => {
+ this.setState({
+ mode: mode,
+ });
+ }, 100);
+ },
+
+ _setAffix(affix) {
+ if (affix === this._getAffix()) return;
+
+ let hours = this.state.selectedTime.getHours();
+
+ if (affix === 'am') {
+ this.handleChangeHours(hours - 12, affix);
+ return;
+ }
+
+ this.handleChangeHours(hours + 12, affix);
+ },
+
+ _getAffix() {
+ if (this.props.format !== 'ampm') return '';
+
+ let hours = this.state.selectedTime.getHours();
+ if (hours < 12) {
+ return 'am';
+ }
+
+ return 'pm';
+ },
+
+ handleChangeHours(hours, finished) {
+ let time = new Date(this.state.selectedTime);
+ let affix;
+
+ if ( typeof finished === 'string' ) {
+ affix = finished;
+ finished = undefined;
+ }
+ if (!affix) {
+ affix = this._getAffix();
+ }
+ if (affix === 'pm' && hours < 12) {
+ hours += 12;
+ }
+
+ time.setHours(hours);
+ this.setState({
+ selectedTime: time,
+ });
+
+ const {onChangeHours} = this.props;
+
+ if (finished) {
+ setTimeout(() => {
+ this.setState({
+ mode: 'minute',
+ });
+ if (typeof (onChangeHours) === 'function') {
+ onChangeHours(time);
+ }
+ }, 100);
+ }
+ },
+
+ handleChangeMinutes(minutes) {
+ let time = new Date(this.state.selectedTime);
+ time.setMinutes(minutes);
+ this.setState({
+ selectedTime: time,
+ });
+
+ const {onChangeMinutes} = this.props;
+ if (typeof (onChangeMinutes) === 'function') {
+ setTimeout(() => {
+ onChangeMinutes(time);
+ }, 0);
+ }
+ },
+
+ getSelectedTime() {
+ return this.state.selectedTime;
+ },
+
+ render() {
+ let clock = null;
+
+ let styles = {
+ root: {},
+
+ container: {
+ height: 280,
+ padding: 10,
+ position: 'relative',
+ },
+
+ circle: {
+ position: 'absolute',
+ top: 20,
+ width: 260,
+ height: 260,
+ borderRadius: '100%',
+ backgroundColor: this.state.muiTheme.timePicker.clockCircleColor,
+ },
+ };
+
+ if ( this.state.mode === 'hour') {
+ clock = (
+
+ );
+ } else {
+ clock = (
+
+ );
+ }
+
+ return (
+
+ );
+ },
+});
+
+export default Clock;
diff --git a/node_modules/material-ui/src/time-picker/index.js b/node_modules/material-ui/src/time-picker/index.js
new file mode 100644
index 0000000..ec77892
--- /dev/null
+++ b/node_modules/material-ui/src/time-picker/index.js
@@ -0,0 +1,2 @@
+import TimePicker from './time-picker';
+export default TimePicker;
diff --git a/node_modules/material-ui/src/time-picker/time-display.jsx b/node_modules/material-ui/src/time-picker/time-display.jsx
new file mode 100644
index 0000000..e1383f6
--- /dev/null
+++ b/node_modules/material-ui/src/time-picker/time-display.jsx
@@ -0,0 +1,195 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const TimeDisplay = React.createClass({
+
+ propTypes: {
+ affix: React.PropTypes.oneOf(['', 'pm', 'am']),
+ format: React.PropTypes.oneOf(['ampm', '24hr']),
+ mode: React.PropTypes.oneOf(['hour', 'minute']),
+ onSelectAffix: React.PropTypes.func,
+ onSelectHour: React.PropTypes.func,
+ onSelectMin: React.PropTypes.func,
+ selectedTime: React.PropTypes.object.isRequired,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ mode: 'hour',
+ affix: '',
+ };
+ },
+
+ getInitialState() {
+ return {
+ transitionDirection: 'up',
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ let direction;
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+
+ if (nextProps.selectedTime !== this.props.selectedTime) {
+ direction = nextProps.selectedTime > this.props.selectedTime ? 'up' : 'down';
+
+ this.setState({
+ transitionDirection: direction,
+ });
+ }
+ },
+
+ sanitizeTime() {
+ let hour = this.props.selectedTime.getHours();
+ let min = this.props.selectedTime.getMinutes().toString();
+
+ if (this.props.format === 'ampm') {
+ hour %= 12;
+ hour = hour || 12;
+ }
+
+ hour = hour.toString();
+ if (hour.length < 2 ) hour = '0' + hour;
+ if (min.length < 2 ) min = '0' + min;
+
+ return [hour, min];
+ },
+
+ getTheme() {
+ return this.state.muiTheme.timePicker;
+ },
+
+ render() {
+ let {
+ selectedTime,
+ mode,
+ affix,
+ ...other,
+ } = this.props;
+
+ let styles = {
+ root: {
+ position: 'relative',
+ width: 280,
+ height: '100%',
+ },
+
+ box: {
+ padding: '14px 0',
+ borderTopLeftRadius: 2,
+ borderTopRightRadius: 2,
+ backgroundColor: this.getTheme().headerColor,
+ color: 'white',
+ },
+
+ text: {
+ margin: '6px 0',
+ lineHeight: '58px',
+ height: 58,
+ fontSize: 58,
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'baseline',
+ },
+
+ time: {
+ margin: '0 10px',
+ },
+
+ affix: {
+ flex: 1,
+ position: 'relative',
+ lineHeight: '17px',
+ height: 17,
+ fontSize: 17,
+ },
+
+ affixTop: {
+ position: 'absolute',
+ top: -20,
+ left: 0,
+ },
+
+ clickable: {
+ cursor: 'pointer',
+ },
+
+ inactive: {
+ opacity: 0.7,
+ },
+ };
+
+ let [hour, min] = this.sanitizeTime();
+
+ let buttons = [];
+ if (this.props.format === 'ampm') {
+ buttons = [
+ this.props.onSelectAffix('pm')}
+ >
+ {"PM"}
+
,
+ this.props.onSelectAffix('am')}
+ >
+ {"AM"}
+
,
+ ];
+ }
+
+ return (
+
+
+
+
+
+
+ {hour}
+
+ :
+
+ {min}
+
+
+
+ {buttons}
+
+
+
+
+ );
+ },
+
+});
+
+export default TimeDisplay;
diff --git a/node_modules/material-ui/src/time-picker/time-picker-dialog.jsx b/node_modules/material-ui/src/time-picker/time-picker-dialog.jsx
new file mode 100644
index 0000000..79a132d
--- /dev/null
+++ b/node_modules/material-ui/src/time-picker/time-picker-dialog.jsx
@@ -0,0 +1,154 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import WindowListenable from '../mixins/window-listenable';
+import KeyCode from '../utils/key-code';
+import Clock from './clock';
+import Dialog from '../dialog';
+import FlatButton from '../flat-button';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const TimePickerDialog = React.createClass({
+
+ propTypes: {
+ autoOk: React.PropTypes.bool,
+ format: React.PropTypes.oneOf(['ampm', '24hr']),
+ initialTime: React.PropTypes.object,
+ onAccept: React.PropTypes.func,
+ onDismiss: React.PropTypes.func,
+ onShow: React.PropTypes.func,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable, WindowListenable],
+
+ getInitialState() {
+ return {
+ open: false,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ windowListeners: {
+ keyup: '_handleWindowKeyUp',
+ },
+
+ getTheme() {
+ return this.state.muiTheme.timePicker;
+ },
+
+ show() {
+ if (this.props.onShow && !this.state.open) this.props.onShow();
+ this.setState({
+ open: true,
+ });
+ },
+
+ dismiss() {
+ if (this.props.onDismiss && this.state.open) this.props.onDismiss();
+ this.setState({
+ open: false,
+ });
+ },
+
+ _handleOKTouchTap() {
+ this.dismiss();
+ if (this.props.onAccept) {
+ this.props.onAccept(this.refs.clock.getSelectedTime());
+ }
+ },
+
+ _handleWindowKeyUp(event) {
+ if (this.state.open) {
+ switch (event.keyCode) {
+ case KeyCode.ENTER:
+ this._handleOKTouchTap();
+ break;
+ }
+ }
+ },
+
+ render() {
+ let {
+ initialTime,
+ onAccept,
+ format,
+ autoOk,
+ ...other,
+ } = this.props;
+
+ let styles = {
+ root: {
+ fontSize: 14,
+ color: this.getTheme().clockColor,
+ },
+ dialogContent: {
+ width: 280,
+ },
+ body: {
+ padding: 0,
+ },
+ };
+
+ let actions = [
+ ,
+ ,
+ ];
+
+ const onClockChangeMinutes = (autoOk === true ? this._handleOKTouchTap : undefined);
+
+ return (
+
+
+
+ );
+ },
+
+});
+
+export default TimePickerDialog;
diff --git a/node_modules/material-ui/src/time-picker/time-picker.jsx b/node_modules/material-ui/src/time-picker/time-picker.jsx
new file mode 100644
index 0000000..6adfc6f
--- /dev/null
+++ b/node_modules/material-ui/src/time-picker/time-picker.jsx
@@ -0,0 +1,221 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import WindowListenable from '../mixins/window-listenable';
+import TimePickerDialog from './time-picker-dialog';
+import TextField from '../text-field';
+import getMuiTheme from '../styles/getMuiTheme';
+
+let emptyTime = new Date();
+emptyTime.setHours(0);
+emptyTime.setMinutes(0);
+emptyTime.setSeconds(0);
+emptyTime.setMilliseconds(0);
+
+const TimePicker = React.createClass({
+
+ propTypes: {
+ /**
+ * If true, automatically accept and close the picker on set minutes.
+ */
+ autoOk: React.PropTypes.bool,
+
+ /**
+ * This is the initial time value of the component.
+ */
+ defaultTime: React.PropTypes.object,
+
+ /**
+ * Tells the component to display the picker in
+ * ampm (12hr) format or 24hr format.
+ */
+ format: React.PropTypes.oneOf(['ampm', '24hr']),
+
+ /**
+ * Callback function that is fired when the time
+ * value changes. The time value is passed in a Date
+ * Object.Since there is no particular event associated
+ * with the change the first argument will always be null
+ * and the second argument will be the new Date instance.
+ */
+ onChange: React.PropTypes.func,
+
+ /**
+ * Fired when the timepicker dialog is dismissed.
+ */
+ onDismiss: React.PropTypes.func,
+
+ /**
+ * Callback function that is fired when the timepicker field gains focus.
+ */
+ onFocus: React.PropTypes.func,
+
+ /**
+ * Fired when the timepicker dialog is shown.
+ */
+ onShow: React.PropTypes.func,
+
+ /**
+ * Callback for touch tap event.
+ */
+ onTouchTap: React.PropTypes.func,
+
+ /**
+ * It's technically more correct to refer to
+ * "12 noon" and "12 midnight" rather than
+ * "12 a.m." and "12 p.m." and it avoids real
+ * confusion between different locales. By default
+ * (for compatibility reasons) TimePicker uses
+ * (12 a.m./12 p.m.) To use (noon/midnight) set pedantic={true}.
+ */
+ pedantic: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * Override the inline-styles of TimePicker's TextField element.
+ */
+ textFieldStyle: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable, WindowListenable],
+
+ getDefaultProps() {
+ return {
+ defaultTime: null,
+ format: 'ampm',
+ pedantic: false,
+ autoOk: false,
+ style: {},
+ };
+ },
+
+ getInitialState() {
+ return {
+ time: this.props.defaultTime || emptyTime,
+ dialogTime: new Date(),
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ windowListeners: {
+ 'keyup': '_handleWindowKeyUp',
+ },
+
+ formatTime(date) {
+ let hours = date.getHours();
+ let mins = date.getMinutes().toString();
+
+ if (this.props.format === 'ampm') {
+ let isAM = hours < 12;
+ hours = hours % 12;
+ let additional = isAM ? ' am' : ' pm';
+ hours = (hours || 12).toString();
+
+ if (mins.length < 2 ) mins = '0' + mins;
+
+ if (this.props.pedantic) {
+ // Treat midday/midnight specially http://www.nist.gov/pml/div688/times.cfm
+ if (hours === '12' && mins === '00') {
+ return additional === ' pm' ? '12 noon' : '12 midnight';
+ }
+ }
+
+ return hours + (mins === '00' ? '' : ':' + mins) + additional;
+ }
+
+ hours = hours.toString();
+
+ if (hours.length < 2) hours = '0' + hours;
+ if (mins.length < 2) mins = '0' + mins;
+
+ return hours + ':' + mins;
+ },
+
+ getTime() {
+ return this.state.time;
+ },
+
+ setTime(time) {
+ this.setState({time: time ? time : emptyTime});
+ },
+
+ /**
+ * Alias for `openDialog()` for an api consistent with TextField.
+ */
+ focus() {
+ this.openDialog();
+ },
+
+ openDialog() {
+ this.setState({
+ dialogTime: this.getTime(),
+ });
+
+ this.refs.dialogWindow.show();
+ },
+
+ _handleDialogAccept(t) {
+ this.setTime(t);
+ if (this.props.onChange) this.props.onChange(null, t);
+ },
+
+ _handleInputFocus(e) {
+ e.target.blur();
+ if (this.props.onFocus) this.props.onFocus(e);
+ },
+
+ _handleInputTouchTap(e) {
+ e.preventDefault();
+
+ this.openDialog();
+
+ if (this.props.onTouchTap) this.props.onTouchTap(e);
+ },
+
+ render() {
+ const {
+ autoOk,
+ format,
+ onFocus,
+ onTouchTap,
+ onShow,
+ onDismiss,
+ style,
+ textFieldStyle,
+ ...other,
+ } = this.props;
+
+ const {time} = this.state;
+
+ return (
+
+
+
+
+ );
+ },
+});
+
+export default TimePicker;
diff --git a/node_modules/material-ui/src/toggle.jsx b/node_modules/material-ui/src/toggle.jsx
new file mode 100644
index 0000000..83bbcbd
--- /dev/null
+++ b/node_modules/material-ui/src/toggle.jsx
@@ -0,0 +1,275 @@
+import React from 'react';
+import StylePropable from './mixins/style-propable';
+import Transitions from './styles/transitions';
+import Paper from './paper';
+import EnhancedSwitch from './enhanced-switch';
+import getMuiTheme from './styles/getMuiTheme';
+
+const Toggle = React.createClass({
+
+ propTypes: {
+ /**
+ * Determines whether the Toggle is initially turned on.
+ */
+ defaultToggled: React.PropTypes.bool,
+
+ /**
+ * Will disable the toggle if true.
+ */
+ disabled: React.PropTypes.bool,
+
+ /**
+ * Overrides the inline-styles of the Toggle element.
+ */
+ elementStyle: React.PropTypes.object,
+
+ /**
+ * Overrides the inline-styles of the Icon element.
+ */
+ iconStyle: React.PropTypes.object,
+
+ /**
+ * Where the label will be placed next to the toggle.
+ */
+ labelPosition: React.PropTypes.oneOf(['left', 'right']),
+
+ /**
+ * Overrides the inline-styles of the Toggle element label.
+ */
+ labelStyle: React.PropTypes.object,
+
+ /**
+ * Callback function that is fired when the toggle switch is toggled.
+ */
+ onToggle: React.PropTypes.func,
+
+ /**
+ * Override style of ripple.
+ */
+ rippleStyle: React.PropTypes.object,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * Override style for thumb.
+ */
+ thumbStyle: React.PropTypes.object,
+
+ /**
+ * Toggled if set to true.
+ */
+ toggled: React.PropTypes.bool,
+
+ /**
+ * Override style for track.
+ */
+ trackStyle: React.PropTypes.object,
+
+ /**
+ * ValueLink prop for when using controlled toggle.
+ */
+ valueLink: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ defaultToggled: false,
+ disabled: false,
+ labelPosition: 'left',
+ };
+ },
+
+ getInitialState() {
+ return {
+ switched:
+ this.props.toggled ||
+ this.props.defaultToggled ||
+ (this.props.valueLink && this.props.valueLink.value) ||
+ false,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.toggle;
+ },
+
+ getStyles() {
+ let toggleSize = 20;
+ let toggleTrackWidth = 36;
+ let styles = {
+ icon: {
+ width: 36,
+ padding: '4px 0px 6px 2px',
+ },
+ toggleElement: {
+ width: toggleTrackWidth,
+ },
+ track: {
+ transition: Transitions.easeOut(),
+ width: '100%',
+ height: 14,
+ borderRadius: 30,
+ backgroundColor: this.getTheme().trackOffColor,
+ },
+ thumb: {
+ transition: Transitions.easeOut(),
+ position: 'absolute',
+ top: 1,
+ left: 0,
+ width: toggleSize,
+ height: toggleSize,
+ lineHeight: '24px',
+ borderRadius: '50%',
+ backgroundColor: this.getTheme().thumbOffColor,
+ },
+ trackWhenSwitched: {
+ backgroundColor: this.getTheme().trackOnColor,
+ },
+ thumbWhenSwitched: {
+ backgroundColor: this.getTheme().thumbOnColor,
+ left: '100%',
+ },
+ trackWhenDisabled: {
+ backgroundColor: this.getTheme().trackDisabledColor,
+ },
+ thumbWhenDisabled: {
+ backgroundColor: this.getTheme().thumbDisabledColor,
+ },
+ label: {
+ color: this.props.disabled ? this.getTheme().labelDisabledColor : this.getTheme().labelColor,
+ width: 'calc(100% - ' + (toggleTrackWidth + 10) + 'px)',
+ },
+ };
+
+ return styles;
+ },
+
+ isToggled() {
+ return this.refs.enhancedSwitch.isSwitched();
+ },
+
+ setToggled(newToggledValue) {
+ this.refs.enhancedSwitch.setSwitched(newToggledValue);
+ },
+
+ _handleToggle(e, isInputChecked) {
+ if (this.props.onToggle) this.props.onToggle(e, isInputChecked);
+ },
+
+ _handleStateChange(newSwitched) {
+ this.setState({switched: newSwitched});
+ },
+
+ render() {
+ let {
+ onToggle,
+ ...other,
+ } = this.props;
+
+ let styles = this.getStyles();
+
+ let trackStyles = this.mergeStyles(
+ styles.track,
+ this.props.trackStyle,
+ this.state.switched && styles.trackWhenSwitched,
+ this.props.disabled && styles.trackWhenDisabled
+ );
+
+ let thumbStyles = this.mergeStyles(
+ styles.thumb,
+ this.props.thumbStyle,
+ this.state.switched && styles.thumbWhenSwitched,
+ this.props.disabled && styles.thumbWhenDisabled
+ );
+
+ if (this.state.switched) {
+ thumbStyles.marginLeft = '-' + thumbStyles.width;
+ }
+
+ let toggleElementStyles = this.mergeStyles(styles.toggleElement, this.props.elementStyle);
+
+ let toggleElement = (
+
+ );
+
+ let customRippleStyle = this.mergeStyles({
+ top: -10,
+ left: -10,
+ }, this.props.rippleStyle);
+
+ let rippleColor = this.state.switched ?
+ this.getTheme().thumbOnColor : this.state.muiTheme.textColor;
+
+ let iconStyle = this.mergeStyles(
+ styles.icon,
+ this.props.iconStyle
+ );
+
+ let labelStyle = this.mergeStyles(
+ styles.label,
+ this.props.labelStyle
+ );
+
+ let enhancedSwitchProps = {
+ ref: 'enhancedSwitch',
+ inputType: 'checkbox',
+ switchElement: toggleElement,
+ rippleStyle: customRippleStyle,
+ rippleColor: rippleColor,
+ iconStyle: iconStyle,
+ trackStyle: trackStyles,
+ thumbStyle: thumbStyles,
+ labelStyle: labelStyle,
+ switched: this.state.switched,
+ onSwitch: this._handleToggle,
+ onParentShouldUpdate: this._handleStateChange,
+ defaultSwitched: this.props.defaultToggled,
+ labelPosition: this.props.labelPosition,
+ };
+
+ if (this.props.hasOwnProperty('toggled')) enhancedSwitchProps.checked = this.props.toggled;
+
+ return (
+
+ );
+ },
+
+});
+
+export default Toggle;
diff --git a/node_modules/material-ui/src/toolbar/index.js b/node_modules/material-ui/src/toolbar/index.js
new file mode 100644
index 0000000..5d9f64b
--- /dev/null
+++ b/node_modules/material-ui/src/toolbar/index.js
@@ -0,0 +1,16 @@
+import Toolbar from './toolbar';
+import ToolbarGroup from './toolbar-group';
+import ToolbarSeparator from './toolbar-separator';
+import ToolbarTitle from './toolbar-title';
+
+export {Toolbar};
+export {ToolbarGroup};
+export {ToolbarSeparator};
+export {ToolbarTitle};
+
+export default {
+ Toolbar,
+ ToolbarGroup,
+ ToolbarSeparator,
+ ToolbarTitle,
+};
diff --git a/node_modules/material-ui/src/toolbar/toolbar-group.jsx b/node_modules/material-ui/src/toolbar/toolbar-group.jsx
new file mode 100644
index 0000000..f77730a
--- /dev/null
+++ b/node_modules/material-ui/src/toolbar/toolbar-group.jsx
@@ -0,0 +1,224 @@
+import React from 'react';
+import Colors from '../styles/colors';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const ToolbarGroup = React.createClass({
+ propTypes: {
+ /**
+ * Can be any node or number of nodes.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Set this to true for if the `ToolbarGroup` is the first child of `Toolbar`
+ * to prevent setting the left gap.
+ */
+ firstChild: React.PropTypes.bool,
+
+ /**
+ * Determines the side the `ToolbarGroup` will snap to. Either 'left' or 'right'.
+ */
+ float: React.PropTypes.oneOf(['left', 'right']),
+
+ /**
+ * Set this to true for if the `ToolbarGroup` is the last child of `Toolbar`
+ * to prevent setting the right gap.
+ */
+ lastChild: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ firstChild: false,
+ float: 'left',
+ lastChild: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ const newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.toolbar;
+ },
+
+ getSpacing() {
+ return this.state.muiTheme.rawTheme.spacing;
+ },
+
+ getStyles() {
+ const {
+ firstChild,
+ float,
+ lastChild,
+ } = this.props;
+
+ const marginHorizontal = this.getSpacing().desktopGutter;
+ const marginVertical = (this.getTheme().height - this.state.muiTheme.button.height) / 2;
+ const styles = {
+ root: {
+ float,
+ position: 'relative',
+ marginLeft: firstChild ? -marginHorizontal : undefined,
+ marginRight: lastChild ? -marginHorizontal : undefined,
+ },
+ dropDownMenu: {
+ root: {
+ float: 'left',
+ color: Colors.lightBlack, // removes hover color change, we want to keep it
+ display: 'inline-block',
+ marginRight: this.getSpacing().desktopGutter,
+ },
+ controlBg: {
+ backgroundColor: this.getTheme().menuHoverColor,
+ borderRadius: 0,
+ },
+ underline: {
+ display: 'none',
+ },
+ },
+ button: {
+ float: 'left',
+ margin: marginVertical + 'px ' + marginHorizontal + 'px',
+ position: 'relative',
+ },
+ icon: {
+ root: {
+ float: 'left',
+ cursor: 'pointer',
+ color: this.getTheme().iconColor,
+ lineHeight: this.getTheme().height + 'px',
+ paddingLeft: this.getSpacing().desktopGutter,
+ },
+ hover: {
+ color: Colors.darkBlack,
+ },
+ },
+ span: {
+ float: 'left',
+ color: this.getTheme().iconColor,
+ lineHeight: this.getTheme().height + 'px',
+ },
+ };
+
+ return styles;
+ },
+
+ _handleMouseEnterDropDownMenu(e) {
+ e.target.style.zIndex = this.getStyles().icon.hover.zIndex;
+ e.target.style.color = this.getStyles().icon.hover.color;
+ },
+
+ _handleMouseLeaveDropDownMenu(e) {
+ e.target.style.zIndex = 'auto';
+ e.target.style.color = this.getStyles().icon.root.color;
+ },
+
+ _handleMouseEnterFontIcon(e) {
+ e.target.style.zIndex = this.getStyles().icon.hover.zIndex;
+ e.target.style.color = this.getStyles().icon.hover.color;
+ },
+
+ _handleMouseLeaveFontIcon(e) {
+ e.target.style.zIndex = 'auto';
+ e.target.style.color = this.getStyles().icon.root.color;
+ },
+
+ render() {
+ const {
+ children,
+ className,
+ style,
+ ...other,
+ } = this.props;
+
+ const styles = this.getStyles();
+ const newChildren = React.Children.map(children, currentChild => {
+ if (!currentChild) {
+ return null;
+ }
+ if (!currentChild.type) {
+ return currentChild;
+ }
+ switch (currentChild.type.displayName) {
+ case 'DropDownMenu' :
+ return React.cloneElement(currentChild, {
+ style: this.mergeStyles(styles.dropDownMenu.root, currentChild.props.style),
+ styleControlBg: styles.dropDownMenu.controlBg,
+ styleUnderline: styles.dropDownMenu.underline,
+ });
+ case 'DropDownIcon' :
+ return React.cloneElement(currentChild, {
+ style: this.mergeStyles({float: 'left'}, currentChild.props.style),
+ iconStyle: styles.icon.root,
+ onMouseEnter: this._handleMouseEnterDropDownMenu,
+ onMouseLeave: this._handleMouseLeaveDropDownMenu,
+ });
+ case 'RaisedButton' :
+ case 'FlatButton' :
+ return React.cloneElement(currentChild, {
+ style: this.mergeStyles(styles.button, currentChild.props.style),
+ });
+ case 'FontIcon' :
+ return React.cloneElement(currentChild, {
+ style: this.mergeStyles(styles.icon.root, currentChild.props.style),
+ onMouseEnter: this._handleMouseEnterFontIcon,
+ onMouseLeave: this._handleMouseLeaveFontIcon,
+ });
+ case 'ToolbarSeparator' :
+ case 'ToolbarTitle' :
+ return React.cloneElement(currentChild, {
+ style: this.mergeStyles(styles.span, currentChild.props.style),
+ });
+ default:
+ return currentChild;
+ }
+ }, this);
+
+ return (
+
+ {newChildren}
+
+ );
+ },
+});
+
+export default ToolbarGroup;
diff --git a/node_modules/material-ui/src/toolbar/toolbar-separator.jsx b/node_modules/material-ui/src/toolbar/toolbar-separator.jsx
new file mode 100644
index 0000000..3bc1f00
--- /dev/null
+++ b/node_modules/material-ui/src/toolbar/toolbar-separator.jsx
@@ -0,0 +1,88 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const ToolbarSeparator = React.createClass({
+
+ propTypes: {
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ const newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.toolbar;
+ },
+
+ getSpacing() {
+ return this.state.muiTheme.rawTheme.spacing;
+ },
+
+ getStyles() {
+ return {
+ root: {
+ backgroundColor: this.getTheme().separatorColor,
+ display: 'inline-block',
+ height: this.getSpacing().desktopGutterMore,
+ marginLeft: this.getSpacing().desktopGutter,
+ position: 'relative',
+ top: ((this.getTheme().height - this.getSpacing().desktopGutterMore) / 2),
+ width: 1,
+ },
+ };
+ },
+
+ render() {
+
+ const {
+ className,
+ style,
+ ...other,
+ } = this.props;
+
+ const styles = this.getStyles();
+
+ return (
+
+ );
+ },
+
+});
+
+export default ToolbarSeparator;
diff --git a/node_modules/material-ui/src/toolbar/toolbar-title.jsx b/node_modules/material-ui/src/toolbar/toolbar-title.jsx
new file mode 100644
index 0000000..333e9b6
--- /dev/null
+++ b/node_modules/material-ui/src/toolbar/toolbar-title.jsx
@@ -0,0 +1,93 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const ToolbarTitle = React.createClass({
+
+ propTypes: {
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+
+ /**
+ * The text to be displayed.
+ */
+ text: React.PropTypes.string,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ const newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.toolbar;
+ },
+
+ getSpacing() {
+ return this.state.muiTheme.rawTheme.spacing;
+ },
+
+ getStyles() {
+ return {
+ root: {
+ paddingRight: this.getSpacing().desktopGutterLess,
+ lineHeight: this.getTheme().height + 'px',
+ fontSize: this.getTheme().titleFontSize + 'px',
+ display: 'inline-block',
+ position: 'relative',
+ },
+ };
+ },
+
+ render() {
+ const {
+ className,
+ style,
+ text,
+ ...other,
+ } = this.props;
+
+ const styles = this.getStyles();
+
+ return (
+
+ {text}
+
+ );
+ },
+
+});
+
+export default ToolbarTitle;
diff --git a/node_modules/material-ui/src/toolbar/toolbar.jsx b/node_modules/material-ui/src/toolbar/toolbar.jsx
new file mode 100644
index 0000000..87961f6
--- /dev/null
+++ b/node_modules/material-ui/src/toolbar/toolbar.jsx
@@ -0,0 +1,104 @@
+import React from 'react';
+import StylePropable from '../mixins/style-propable';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const Toolbar = React.createClass({
+
+ propTypes: {
+ /**
+ * Can be a `ToolbarGroup` to render a group of related items.
+ */
+ children: React.PropTypes.node,
+
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+
+ /**
+ * Do not apply `desktopGutter` to the `Toolbar`.
+ */
+ noGutter: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ noGutter: false,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ getTheme() {
+ return this.state.muiTheme.toolbar;
+ },
+
+ getSpacing() {
+ return this.state.muiTheme.rawTheme.spacing;
+ },
+
+ getStyles() {
+ return {
+ root: {
+ boxSizing: 'border-box',
+ WebkitTapHighlightColor: 'rgba(0,0,0,0)',
+ backgroundColor: this.getTheme().backgroundColor,
+ height: this.getTheme().height,
+ width: '100%',
+ padding: this.props.noGutter ? 0 : '0px ' + this.getSpacing().desktopGutter + 'px',
+ },
+ };
+ },
+
+ render() {
+ const {
+ children,
+ className,
+ style,
+ ...other,
+ } = this.props;
+
+ const styles = this.getStyles();
+
+ return (
+
+ {children}
+
+ );
+ },
+
+});
+
+export default Toolbar;
diff --git a/node_modules/material-ui/src/tooltip.jsx b/node_modules/material-ui/src/tooltip.jsx
new file mode 100644
index 0000000..5262ef4
--- /dev/null
+++ b/node_modules/material-ui/src/tooltip.jsx
@@ -0,0 +1,203 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from './mixins/style-propable';
+import Transitions from './styles/transitions';
+import Colors from './styles/colors';
+import getMuiTheme from './styles/getMuiTheme';
+
+const Tooltip = React.createClass({
+
+ propTypes: {
+ /**
+ * The css class name of the root element.
+ */
+ className: React.PropTypes.string,
+ horizontalPosition: React.PropTypes.oneOf(['left', 'right', 'center']),
+ label: React.PropTypes.node.isRequired,
+ show: React.PropTypes.bool,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ touch: React.PropTypes.bool,
+ verticalPosition: React.PropTypes.oneOf(['top', 'bottom']),
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ StylePropable,
+ ],
+
+ getInitialState() {
+ return {
+ offsetWidth: null,
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ componentDidMount() {
+ this._setRippleSize();
+ this._setTooltipPosition();
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ this._setTooltipPosition();
+
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ componentDidUpdate() {
+ this._setRippleSize();
+ },
+
+ getStyles() {
+ let verticalPosition = this.props.verticalPosition;
+ let horizontalPosition = this.props.horizontalPosition;
+ let touchMarginOffset = this.props.touch ? 10 : 0;
+ let touchOffsetTop = this.props.touch ? -20 : -10;
+ let offset = verticalPosition === 'bottom' ?
+ 14 + touchMarginOffset : -14 - touchMarginOffset;
+
+ const muiTheme = this.state.muiTheme;
+ const rawTheme = muiTheme.rawTheme;
+
+ let styles = {
+ root: {
+ position: 'absolute',
+ fontFamily: rawTheme.fontFamily,
+ fontSize: '10px',
+ lineHeight: '22px',
+ padding: '0 8px',
+ zIndex: muiTheme.zIndex.tooltip,
+ color: Colors.white,
+ overflow: 'hidden',
+ top: -10000,
+ borderRadius: 2,
+ userSelect: 'none',
+ opacity: 0,
+ right: horizontalPosition === 'left' ? 12 : null,
+ left: horizontalPosition === 'center' ?
+ (this.state.offsetWidth - 48) / 2 * -1 : null,
+ transition:
+ Transitions.easeOut('0ms', 'top', '450ms') + ',' +
+ Transitions.easeOut('450ms', 'transform', '0ms') + ',' +
+ Transitions.easeOut('450ms', 'opacity', '0ms'),
+ },
+ label: {
+ position: 'relative',
+ whiteSpace: 'nowrap',
+ },
+ ripple: {
+ position: 'absolute',
+ left: horizontalPosition === 'center' ? '50%' :
+ horizontalPosition === 'left' ? '100%' : '0%',
+ top: verticalPosition === 'bottom' ? 0 : '100%',
+ transform: 'translate(-50%, -50%)',
+ borderRadius: '50%',
+ backgroundColor: 'transparent',
+ transition:
+ Transitions.easeOut('0ms', 'width', '450ms') + ',' +
+ Transitions.easeOut('0ms', 'height', '450ms') + ',' +
+ Transitions.easeOut('450ms', 'backgroundColor', '0ms'),
+ },
+ rootWhenShown: {
+ top: verticalPosition === 'top' ?
+ touchOffsetTop : 36,
+ opacity: 0.9,
+ transform: 'translate3d(0px, ' + offset + 'px, 0px)',
+ transition:
+ Transitions.easeOut('0ms', 'top', '0ms') + ',' +
+ Transitions.easeOut('450ms', 'transform', '0ms') + ',' +
+ Transitions.easeOut('450ms', 'opacity', '0ms'),
+ },
+ rootWhenTouched: {
+ fontSize: '14px',
+ lineHeight: '32px',
+ padding: '0 16px',
+ },
+ rippleWhenShown: {
+ backgroundColor: Colors.grey700,
+ transition:
+ Transitions.easeOut('450ms', 'width', '0ms') + ',' +
+ Transitions.easeOut('450ms', 'height', '0ms') + ',' +
+ Transitions.easeOut('450ms', 'backgroundColor', '0ms'),
+ },
+ };
+
+ return styles;
+ },
+
+ _setRippleSize() {
+ let ripple = ReactDOM.findDOMNode(this.refs.ripple);
+ let tooltip = window.getComputedStyle(ReactDOM.findDOMNode(this));
+ let tooltipWidth = parseInt(tooltip.getPropertyValue('width'), 10) /
+ (this.props.horizontalPosition === 'center' ? 2 : 1);
+ let tooltipHeight = parseInt(tooltip.getPropertyValue('height'), 10);
+
+ let rippleDiameter = Math.ceil((Math.sqrt(Math.pow(tooltipHeight, 2) +
+ Math.pow(tooltipWidth, 2) ) * 2));
+ if (this.props.show) {
+ ripple.style.height = rippleDiameter + 'px';
+ ripple.style.width = rippleDiameter + 'px';
+ } else {
+ ripple.style.width = '0px';
+ ripple.style.height = '0px';
+ }
+ },
+
+ _setTooltipPosition() {
+ let tooltip = ReactDOM.findDOMNode(this);
+ this.setState({offsetWidth: tooltip.offsetWidth});
+ },
+
+ render() {
+ const {
+ label,
+ ...other,
+ } = this.props;
+ const styles = this.getStyles();
+
+ return (
+
+ );
+ },
+
+});
+
+export default Tooltip;
diff --git a/node_modules/material-ui/src/transition-groups/scale-in-child.jsx b/node_modules/material-ui/src/transition-groups/scale-in-child.jsx
new file mode 100644
index 0000000..e31a696
--- /dev/null
+++ b/node_modules/material-ui/src/transition-groups/scale-in-child.jsx
@@ -0,0 +1,135 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import StylePropable from '../mixins/style-propable';
+import autoPrefix from '../styles/auto-prefix';
+import Transitions from '../styles/transitions';
+import getMuiTheme from '../styles/getMuiTheme';
+
+
+const ScaleInChild = React.createClass({
+
+ propTypes: {
+ children: React.PropTypes.node,
+ enterDelay: React.PropTypes.number,
+ maxScale: React.PropTypes.number,
+ minScale: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ PureRenderMixin,
+ StylePropable,
+ ],
+
+ getDefaultProps: function() {
+ return {
+ enterDelay: 0,
+ maxScale: 1,
+ minScale: 0,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ componentWillAppear(callback) {
+ this._initializeAnimation(callback);
+ },
+
+ componentWillEnter(callback) {
+ this._initializeAnimation(callback);
+ },
+
+ componentDidAppear() {
+ this._animate();
+ },
+
+ componentDidEnter() {
+ this._animate();
+ },
+
+ componentWillLeave(callback) {
+ let style = ReactDOM.findDOMNode(this).style;
+
+ style.opacity = '0';
+ autoPrefix.set(style, 'transform', 'scale(' + this.props.minScale + ')', this.state.muiTheme);
+
+ setTimeout(() => {
+ if (this.isMounted()) callback();
+ }, 450);
+ },
+
+ _animate() {
+ let style = ReactDOM.findDOMNode(this).style;
+
+ style.opacity = '1';
+ autoPrefix.set(style, 'transform', 'scale(' + this.props.maxScale + ')', this.state.muiTheme);
+ },
+
+ _initializeAnimation(callback) {
+ let style = ReactDOM.findDOMNode(this).style;
+
+ style.opacity = '0';
+ autoPrefix.set(style, 'transform', 'scale(0)', this.state.muiTheme);
+
+ setTimeout(() => {
+ if (this.isMounted()) callback();
+ }, this.props.enterDelay);
+ },
+
+ render() {
+ const {
+ children,
+ enterDelay,
+ style,
+ ...other,
+ } = this.props;
+
+ const mergedRootStyles = this.mergeStyles({
+ position: 'absolute',
+ height: '100%',
+ width: '100%',
+ top: 0,
+ left: 0,
+ transition: Transitions.easeOut(null, ['transform', 'opacity']),
+ }, style);
+
+ return (
+
+ {children}
+
+ );
+ },
+});
+
+export default ScaleInChild;
diff --git a/node_modules/material-ui/src/transition-groups/scale-in.jsx b/node_modules/material-ui/src/transition-groups/scale-in.jsx
new file mode 100644
index 0000000..12d85a3
--- /dev/null
+++ b/node_modules/material-ui/src/transition-groups/scale-in.jsx
@@ -0,0 +1,106 @@
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+import ReactTransitionGroup from 'react-addons-transition-group';
+import StylePropable from '../mixins/style-propable';
+import ScaleInChild from './scale-in-child';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const ScaleIn = React.createClass({
+
+ propTypes: {
+ childStyle: React.PropTypes.object,
+ children: React.PropTypes.node,
+ enterDelay: React.PropTypes.number,
+ maxScale: React.PropTypes.number,
+ minScale: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [
+ PureRenderMixin,
+ StylePropable,
+ ],
+
+ getDefaultProps() {
+ return {
+ enterDelay: 0,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ render() {
+ const {
+ children,
+ childStyle,
+ enterDelay,
+ maxScale,
+ minScale,
+ style,
+ ...other,
+ } = this.props;
+
+ const mergedRootStyles = this.mergeStyles({
+ position: 'relative',
+ overflow: 'hidden',
+ height: '100%',
+ }, style);
+
+ const newChildren = React.Children.map(children, (child) => {
+ return (
+
+ {child}
+
+ );
+ });
+
+ return (
+
+ {newChildren}
+
+ );
+ },
+
+});
+
+export default ScaleIn;
diff --git a/node_modules/material-ui/src/transition-groups/slide-in-child.jsx b/node_modules/material-ui/src/transition-groups/slide-in-child.jsx
new file mode 100644
index 0000000..15c0a3f
--- /dev/null
+++ b/node_modules/material-ui/src/transition-groups/slide-in-child.jsx
@@ -0,0 +1,125 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import StylePropable from '../mixins/style-propable';
+import autoPrefix from '../styles/auto-prefix';
+import Transitions from '../styles/transitions';
+import getMuiTheme from '../styles/getMuiTheme';
+
+
+const SlideInChild = React.createClass({
+
+ propTypes: {
+ children: React.PropTypes.node,
+ direction: React.PropTypes.string,
+ enterDelay: React.PropTypes.number,
+ //This callback is needed bacause
+ //the direction could change when leaving the dom
+ getLeaveDirection: React.PropTypes.func.isRequired,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps: function() {
+ return {
+ enterDelay: 0,
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ componentWillEnter(callback) {
+ let style = ReactDOM.findDOMNode(this).style;
+ let x = this.props.direction === 'left' ? '100%' :
+ this.props.direction === 'right' ? '-100%' : '0';
+ let y = this.props.direction === 'up' ? '100%' :
+ this.props.direction === 'down' ? '-100%' : '0';
+
+ style.opacity = '0';
+ autoPrefix.set(style, 'transform', 'translate3d(' + x + ',' + y + ',0)', this.state.muiTheme);
+
+ setTimeout(() => {
+ if (this.isMounted()) callback();
+ }, this.props.enterDelay);
+ },
+
+ componentDidEnter() {
+ let style = ReactDOM.findDOMNode(this).style;
+ style.opacity = '1';
+ autoPrefix.set(style, 'transform', 'translate3d(0,0,0)', this.state.muiTheme);
+ },
+
+ componentWillLeave(callback) {
+ let style = ReactDOM.findDOMNode(this).style;
+ let direction = this.props.getLeaveDirection();
+ let x = direction === 'left' ? '-100%' :
+ direction === 'right' ? '100%' : '0';
+ let y = direction === 'up' ? '-100%' :
+ direction === 'down' ? '100%' : '0';
+
+ style.opacity = '0';
+ autoPrefix.set(style, 'transform', 'translate3d(' + x + ',' + y + ',0)', this.state.muiTheme);
+
+ setTimeout(() => {
+ if (this.isMounted()) callback();
+ }, 450);
+ },
+
+ render() {
+ let {
+ children,
+ enterDelay,
+ getLeaveDirection,
+ style,
+ ...other,
+ } = this.props;
+
+ let mergedRootStyles = this.mergeStyles({
+ position: 'absolute',
+ height: '100%',
+ width: '100%',
+ top: 0,
+ left: 0,
+ transition: Transitions.easeOut(null, ['transform', 'opacity']),
+ }, style);
+
+ return (
+
+ {children}
+
+ );
+ },
+
+});
+
+export default SlideInChild;
diff --git a/node_modules/material-ui/src/transition-groups/slide-in.jsx b/node_modules/material-ui/src/transition-groups/slide-in.jsx
new file mode 100644
index 0000000..1226d07
--- /dev/null
+++ b/node_modules/material-ui/src/transition-groups/slide-in.jsx
@@ -0,0 +1,105 @@
+import React from 'react';
+import ReactTransitionGroup from 'react-addons-transition-group';
+import StylePropable from '../mixins/style-propable';
+import SlideInChild from './slide-in-child';
+import getMuiTheme from '../styles/getMuiTheme';
+
+const SlideIn = React.createClass({
+
+ propTypes: {
+ childStyle: React.PropTypes.object,
+ children: React.PropTypes.node,
+ direction: React.PropTypes.oneOf(['left', 'right', 'up', 'down']),
+ enterDelay: React.PropTypes.number,
+
+ /**
+ * Override the inline-styles of the root element.
+ */
+ style: React.PropTypes.object,
+ },
+
+ contextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ //for passing default theme context to children
+ childContextTypes: {
+ muiTheme: React.PropTypes.object,
+ },
+
+ mixins: [StylePropable],
+
+ getDefaultProps() {
+ return {
+ enterDelay: 0,
+ direction: 'left',
+ };
+ },
+
+ getInitialState() {
+ return {
+ muiTheme: this.context.muiTheme || getMuiTheme(),
+ };
+ },
+
+ getChildContext() {
+ return {
+ muiTheme: this.state.muiTheme,
+ };
+ },
+
+ //to update theme inside state whenever a new theme is passed down
+ //from the parent / owner using context
+ componentWillReceiveProps(nextProps, nextContext) {
+ let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
+ this.setState({muiTheme: newMuiTheme});
+ },
+
+ _getLeaveDirection() {
+ return this.props.direction;
+ },
+
+ render() {
+ let {
+ enterDelay,
+ children,
+ childStyle,
+ direction,
+ style,
+ ...other,
+ } = this.props;
+
+ let mergedRootStyles = this.mergeStyles({
+ position: 'relative',
+ overflow: 'hidden',
+ height: '100%',
+ }, style);
+
+ let newChildren = React.Children.map(children, (child) => {
+ return (
+
+ {child}
+
+ );
+ }, this);
+
+ return (
+
+ {newChildren}
+
+ );
+ },
+
+});
+
+export default SlideIn;
diff --git a/node_modules/material-ui/src/utils/children.js b/node_modules/material-ui/src/utils/children.js
new file mode 100644
index 0000000..aa40456
--- /dev/null
+++ b/node_modules/material-ui/src/utils/children.js
@@ -0,0 +1,43 @@
+import React from 'react';
+import createFragment from 'react-addons-create-fragment';
+
+export default {
+
+ create(fragments) {
+ let newFragments = {};
+ let validChildrenCount = 0;
+ let firstKey;
+
+ //Only create non-empty key fragments
+ for (let key in fragments) {
+ const currentChild = fragments[key];
+
+ if (currentChild) {
+ if (validChildrenCount === 0) firstKey = key;
+ newFragments[key] = currentChild;
+ validChildrenCount++;
+ }
+ }
+
+ if (validChildrenCount === 0) return undefined;
+ if (validChildrenCount === 1) return newFragments[firstKey];
+ return createFragment(newFragments);
+ },
+
+ extend(children, extendedProps, extendedChildren) {
+
+ return React.isValidElement(children) ?
+ React.Children.map(children, (child) => {
+
+ const newProps = typeof (extendedProps) === 'function' ?
+ extendedProps(child) : extendedProps;
+
+ const newChildren = typeof (extendedChildren) === 'function' ?
+ extendedChildren(child) : extendedChildren ?
+ extendedChildren : child.props.children;
+
+ return React.cloneElement(child, newProps, newChildren);
+ }) : children;
+ },
+
+};
diff --git a/node_modules/material-ui/src/utils/color-manipulator.js b/node_modules/material-ui/src/utils/color-manipulator.js
new file mode 100644
index 0000000..b6b44d1
--- /dev/null
+++ b/node_modules/material-ui/src/utils/color-manipulator.js
@@ -0,0 +1,182 @@
+import warning from 'warning';
+
+export default {
+
+ /**
+ * The relative brightness of any point in a colorspace, normalized to 0 for
+ * darkest black and 1 for lightest white. RGB colors only. Does not take
+ * into account alpha values.
+ *
+ * TODO:
+ * - Take into account alpha values.
+ * - Identify why there are minor discrepancies for some use cases
+ * (i.e. #F0F & #FFF). Note that these cases rarely occur.
+ *
+ * Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
+ */
+ _luminance(color) {
+ color = this._decomposeColor(color);
+
+ if (color.type.indexOf('rgb') > -1) {
+ let rgb = color.values.map((val) => {
+ val /= 255; // normalized
+ return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);
+ });
+
+ return 0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2];
+
+ } else {
+ warning(false, `Calculating the relative luminance is not available
+ for HSL and HSLA.`);
+
+ return -1;
+ }
+ },
+
+ /**
+ * @params:
+ * additionalValue = An extra value that has been calculated but not included
+ * with the original color object, such as an alpha value.
+ */
+ _convertColorToString(color, additonalValue) {
+ let str = color.type + '(' +
+ parseInt(color.values[0]) + ',' +
+ parseInt(color.values[1]) + ',' +
+ parseInt(color.values[2]);
+
+ if (additonalValue !== undefined) {
+ str += ',' + additonalValue + ')';
+ } else if (color.values.length === 4) {
+ str += ',' + color.values[3] + ')';
+ } else {
+ str += ')';
+ }
+
+ return str;
+ },
+
+ // Converts a color from hex format to rgb format.
+ _convertHexToRGB(color) {
+ if (color.length === 4) {
+ let extendedColor = '#';
+ for (let i = 1; i < color.length; i++) {
+ extendedColor += color.charAt(i) + color.charAt(i);
+ }
+ color = extendedColor;
+ }
+
+ let values = {
+ r: parseInt(color.substr(1, 2), 16),
+ g: parseInt(color.substr(3, 2), 16),
+ b: parseInt(color.substr(5, 2), 16),
+ };
+
+ return 'rgb(' + values.r + ',' +
+ values.g + ',' +
+ values.b + ')';
+ },
+
+ // Returns the type and values of a color of any given type.
+ _decomposeColor(color) {
+ if (color.charAt(0) === '#') {
+ return this._decomposeColor(this._convertHexToRGB(color));
+ }
+
+ let marker = color.indexOf('(');
+ let type = color.substring(0, marker);
+ let values = color.substring(marker + 1, color.length - 1).split(',');
+
+ return {type: type, values: values};
+ },
+
+ // Set the absolute transparency of a color.
+ // Any existing alpha values are overwritten.
+ fade(color, amount) {
+ color = this._decomposeColor(color);
+ if (color.type === 'rgb' || color.type === 'hsl') color.type += 'a';
+ return this._convertColorToString(color, amount);
+ },
+
+ // Desaturates rgb and sets opacity to 0.15
+ lighten(color, amount) {
+ color = this._decomposeColor(color);
+
+ if (color.type.indexOf('hsl') > -1) {
+ color.values[2] += amount;
+ return this._decomposeColor(this._convertColorToString(color));
+ } else if (color.type.indexOf('rgb') > -1) {
+ for (let i = 0; i < 3; i++) {
+ color.values[i] *= 1 + amount;
+ if (color.values[i] > 255) color.values[i] = 255;
+ }
+ }
+
+ if (color.type.indexOf('a') <= -1) color.type += 'a';
+
+ return this._convertColorToString(color, '0.15');
+ },
+
+ darken(color, amount) {
+ color = this._decomposeColor(color);
+
+ if (color.type.indexOf('hsl') > -1) {
+ color.values[2] += amount;
+ return this._decomposeColor(this._convertColorToString(color));
+ } else if (color.type.indexOf('rgb') > -1) {
+ for (let i = 0; i < 3; i++) {
+ color.values[i] *= 1 - amount;
+ if (color.values[i] < 0) color.values[i] = 0;
+ }
+ }
+
+ return this._convertColorToString(color);
+ },
+
+
+ // Calculates the contrast ratio between two colors.
+ //
+ // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef
+ contrastRatio(background, foreground) {
+ let lumA = this._luminance(background);
+ let lumB = this._luminance(foreground);
+
+ if (lumA >= lumB) {
+ return ((lumA + 0.05) / (lumB + 0.05)).toFixed(2);
+ } else {
+ return ((lumB + 0.05) / (lumA + 0.05)).toFixed(2);
+ }
+ },
+
+ /**
+ * Determines how readable a color combination is based on its level.
+ * Levels are defined from @LeaVerou:
+ * https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/contrast-ratio.js
+ */
+ contrastRatioLevel(background, foreground) {
+ let levels = {
+ 'fail': {
+ range: [0, 3],
+ color: 'hsl(0, 100%, 40%)',
+ },
+ 'aa-large': {
+ range: [3, 4.5],
+ color: 'hsl(40, 100%, 45%)',
+ },
+ 'aa': {
+ range: [4.5, 7],
+ color: 'hsl(80, 60%, 45%)',
+ },
+ 'aaa': {
+ range: [7, 22],
+ color: 'hsl(95, 60%, 41%)',
+ },
+ };
+
+ let ratio = this.contrastRatio(background, foreground);
+
+ for (let level in levels) {
+ let range = levels[level].range;
+ if (ratio >= range[0] && ratio <= range[1]) return level;
+ }
+ },
+};
diff --git a/node_modules/material-ui/src/utils/css-event.js b/node_modules/material-ui/src/utils/css-event.js
new file mode 100644
index 0000000..98685be
--- /dev/null
+++ b/node_modules/material-ui/src/utils/css-event.js
@@ -0,0 +1,51 @@
+import Events from './events';
+
+
+export default {
+
+ _testSupportedProps(props) {
+ let i;
+ const el = document.createElement('div');
+
+ for (i in props) {
+ if (props.hasOwnProperty(i) && el.style[i] !== undefined) {
+ return props[i];
+ }
+ }
+ },
+
+ //Returns the correct event name to use
+ transitionEndEventName() {
+ return this._testSupportedProps({
+ 'transition': 'transitionend',
+ 'OTransition': 'otransitionend',
+ 'MozTransition': 'transitionend',
+ 'WebkitTransition': 'webkitTransitionEnd',
+ });
+ },
+
+ animationEndEventName() {
+ return this._testSupportedProps({
+ 'animation': 'animationend',
+ '-o-animation': 'oAnimationEnd',
+ '-moz-animation': 'animationend',
+ '-webkit-animation': 'webkitAnimationEnd',
+ });
+ },
+
+ onTransitionEnd(el, callback) {
+ let transitionEnd = this.transitionEndEventName();
+
+ Events.once(el, transitionEnd, () => {
+ return callback();
+ });
+ },
+
+ onAnimationEnd(el, callback) {
+ let animationEnd = this.animationEndEventName();
+
+ Events.once(el, animationEnd, () => {
+ return callback();
+ });
+ },
+};
diff --git a/node_modules/material-ui/src/utils/date-time.js b/node_modules/material-ui/src/utils/date-time.js
new file mode 100644
index 0000000..a4a6856
--- /dev/null
+++ b/node_modules/material-ui/src/utils/date-time.js
@@ -0,0 +1,174 @@
+import warning from 'warning';
+
+const dayAbbreviation = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];
+const dayList = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
+const monthList = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
+ 'Oct', 'Nov', 'Dec'];
+const monthLongList = ['January', 'February', 'March', 'April', 'May', 'June',
+ 'July', 'August', 'September', 'October', 'November', 'December'];
+
+function DateTimeFormat(locale, options) {
+ warning(locale === 'en-US',
+ 'Wrong usage of DateTimeFormat. The ' + locale + ' locale is not supported.');
+
+ this.format = function(date) {
+ let output;
+
+ if (options.month === 'short' &&
+ options.weekday === 'short' &&
+ options.day === '2-digit') {
+
+ output = dayList[date.getDay()] + ', ';
+ output += monthList[date.getMonth()] + ' ';
+ output += date.getDate();
+ } else if (options.month === 'long' && options.year === 'numeric') {
+ output = monthLongList[date.getMonth()];
+ output += ' ' + date.getFullYear();
+ } else if (options.weekday === 'narrow') {
+ output = dayAbbreviation[date.getDay()];
+ } else {
+ warning(false, 'Wrong usage of DateTimeFormat');
+ }
+
+ return output;
+ };
+}
+
+export default {
+ DateTimeFormat: DateTimeFormat,
+
+ addDays(d, days) {
+ const newDate = this.clone(d);
+ newDate.setDate(d.getDate() + days);
+ return newDate;
+ },
+
+ addMonths(d, months) {
+ const newDate = this.clone(d);
+ newDate.setMonth(d.getMonth() + months);
+ return newDate;
+ },
+
+ addYears(d, years) {
+ const newDate = this.clone(d);
+ newDate.setFullYear(d.getFullYear() + years);
+ return newDate;
+ },
+
+ clone(d) {
+ return new Date(d.getTime());
+ },
+
+ cloneAsDate(d) {
+ const clonedDate = this.clone(d);
+ clonedDate.setHours(0, 0, 0, 0);
+ return clonedDate;
+ },
+
+ getDaysInMonth(d) {
+ let resultDate = this.getFirstDayOfMonth(d);
+
+ resultDate.setMonth(resultDate.getMonth() + 1);
+ resultDate.setDate(resultDate.getDate() - 1);
+
+ return resultDate.getDate();
+ },
+
+ getFirstDayOfMonth(d) {
+ return new Date(d.getFullYear(), d.getMonth(), 1);
+ },
+
+ getFirstDayOfWeek() {
+ const now = new Date();
+ return new Date(now.setDate(now.getDate() - now.getDay()));
+ },
+
+ getWeekArray(d, firstDayOfWeek) {
+ let dayArray = [];
+ let daysInMonth = this.getDaysInMonth(d);
+ let weekArray = [];
+ let week = [];
+
+ for (let i = 1; i <= daysInMonth; i++) {
+ dayArray.push(new Date(d.getFullYear(), d.getMonth(), i));
+ }
+
+ const addWeek = week => {
+ const emptyDays = 7 - week.length;
+ for (let i = 0; i < emptyDays; ++i) {
+ week[weekArray.length ? 'push' : 'unshift'](null);
+ }
+ weekArray.push(week);
+ };
+
+ dayArray.forEach(day => {
+ if (week.length > 0 && day.getDay() === firstDayOfWeek) {
+ addWeek(week);
+ week = [];
+ }
+ week.push(day);
+ if (dayArray.indexOf(day) === dayArray.length - 1) {
+ addWeek(week);
+ }
+ });
+
+ return weekArray;
+ },
+
+ localizedWeekday(DateTimeFormat, locale, day, firstDayOfWeek) {
+ const weekdayFormatter = new DateTimeFormat(locale, {weekday: 'narrow'});
+ const firstDayDate = this.getFirstDayOfWeek();
+
+ return weekdayFormatter.format(this.addDays(firstDayDate, day + firstDayOfWeek));
+ },
+
+ format(date) {
+ const m = date.getMonth() + 1;
+ const d = date.getDate();
+ const y = date.getFullYear();
+ return m + '/' + d + '/' + y;
+ },
+
+ isEqualDate(d1, d2) {
+ return d1 && d2 &&
+ (d1.getFullYear() === d2.getFullYear()) &&
+ (d1.getMonth() === d2.getMonth()) &&
+ (d1.getDate() === d2.getDate());
+ },
+
+ isBeforeDate(d1, d2) {
+ const date1 = this.cloneAsDate(d1);
+ const date2 = this.cloneAsDate(d2);
+
+ return (date1.getTime() < date2.getTime());
+ },
+
+ isAfterDate(d1, d2) {
+ const date1 = this.cloneAsDate(d1);
+ const date2 = this.cloneAsDate(d2);
+
+ return (date1.getTime() > date2.getTime());
+ },
+
+ isBetweenDates(dateToCheck, startDate, endDate) {
+ return (!(this.isBeforeDate(dateToCheck, startDate)) &&
+ !(this.isAfterDate(dateToCheck, endDate)));
+ },
+
+ isDateObject(d) {
+ return d instanceof Date;
+ },
+
+ monthDiff(d1, d2) {
+ let m;
+ m = (d1.getFullYear() - d2.getFullYear()) * 12;
+ m += d1.getMonth();
+ m -= d2.getMonth();
+ return m;
+ },
+
+ yearDiff(d1, d2) {
+ return ~~(this.monthDiff(d1, d2) / 12);
+ },
+
+};
diff --git a/node_modules/material-ui/src/utils/deprecatedExport.js b/node_modules/material-ui/src/utils/deprecatedExport.js
new file mode 100644
index 0000000..d5e8dd1
--- /dev/null
+++ b/node_modules/material-ui/src/utils/deprecatedExport.js
@@ -0,0 +1,11 @@
+import warning from 'warning';
+
+const getName = (object) => object.displayName ? `${object.displayName} ` : '';
+
+function deprecatedExport(object, deprecatedPath, supportedPath) {
+ warning(false,
+ `Importing ${getName(object)}from '${deprecatedPath}' has been deprecated, use '${supportedPath}' instead.`);
+ return object;
+}
+
+export default deprecatedExport;
diff --git a/node_modules/material-ui/src/utils/deprecatedPropType.js b/node_modules/material-ui/src/utils/deprecatedPropType.js
new file mode 100644
index 0000000..5b194b9
--- /dev/null
+++ b/node_modules/material-ui/src/utils/deprecatedPropType.js
@@ -0,0 +1,11 @@
+import warning from 'warning';
+
+export default function deprecated(propType, explanation) {
+ return function validate(props, propName, componentName) {
+ if (props[propName] != null) {
+ warning(false, `"${propName}" property of "${componentName}" has been deprecated.\n${explanation}`);
+ }
+
+ return propType(props, propName, componentName);
+ };
+}
diff --git a/node_modules/material-ui/src/utils/dom.js b/node_modules/material-ui/src/utils/dom.js
new file mode 100644
index 0000000..c4009a2
--- /dev/null
+++ b/node_modules/material-ui/src/utils/dom.js
@@ -0,0 +1,84 @@
+export default {
+
+ isDescendant(parent, child) {
+ let node = child.parentNode;
+
+ while (node !== null) {
+ if (node === parent) return true;
+ node = node.parentNode;
+ }
+
+ return false;
+ },
+
+ offset(el) {
+ let rect = el.getBoundingClientRect();
+ return {
+ top: rect.top + document.body.scrollTop,
+ left: rect.left + document.body.scrollLeft,
+ };
+ },
+
+ getStyleAttributeAsNumber: function(el, attr) {
+ let attrStyle = el.style[attr];
+ let attrNum = 0;
+ if (attrStyle && attrStyle.length) {
+ attrNum = parseInt(attrStyle);
+ }
+
+ return attrNum;
+ },
+
+ addClass(el, className) {
+ if (el.classList)
+ el.classList.add(className);
+ else
+ el.className += ' ' + className;
+ },
+
+ removeClass(el, className) {
+ if (el.classList) {
+ el.classList.remove(className);
+ } else {
+ el.className = el.className
+ .replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
+ }
+ },
+
+ hasClass(el, className) {
+ if (el.classList)
+ return el.classList.contains(className);
+ else
+ return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);
+ },
+
+ toggleClass(el, className) {
+ if (this.hasClass(el, className))
+ this.removeClass(el, className);
+ else
+ this.addClass(el, className);
+ },
+
+ forceRedraw(el) {
+ let originalDisplay = el.style.display;
+
+ el.style.display = 'none';
+ el.style.display = originalDisplay;
+ },
+
+ withoutTransition(el, callback) {
+ let originalTransition = el.style.transition;
+
+ //turn off transition
+ el.style.transition = null;
+
+ callback();
+
+ //force a redraw
+ this.forceRedraw(el);
+
+ //put the transition back
+ el.style.transition = originalTransition;
+ },
+
+};
diff --git a/node_modules/material-ui/src/utils/events.js b/node_modules/material-ui/src/utils/events.js
new file mode 100644
index 0000000..ffc5c95
--- /dev/null
+++ b/node_modules/material-ui/src/utils/events.js
@@ -0,0 +1,42 @@
+export default {
+
+ once(el, type, callback) {
+ let typeArray = type ? type.split(' ') : [];
+ let recursiveFunction = (e) => {
+ e.target.removeEventListener(e.type, recursiveFunction);
+ return callback(e);
+ };
+
+ for (let i = typeArray.length - 1; i >= 0; i--) {
+ this.on(el, typeArray[i], recursiveFunction);
+ }
+ },
+
+ on(el, type, callback) {
+ if (el.addEventListener) {
+ el.addEventListener(type, callback);
+ } else {
+ // IE8+ Support
+ el.attachEvent('on' + type, () => {
+ callback.call(el);
+ });
+ }
+ },
+
+ off(el, type, callback) {
+ if (el.removeEventListener) {
+ el.removeEventListener(type, callback);
+ } else {
+ // IE8+ Support
+ el.detachEvent('on' + type, callback);
+ }
+ },
+
+ isKeyboard(e) {
+ return [
+ 'keydown',
+ 'keypress',
+ 'keyup',
+ ].indexOf(e.type) !== -1;
+ },
+};
diff --git a/node_modules/material-ui/src/utils/index.js b/node_modules/material-ui/src/utils/index.js
new file mode 100644
index 0000000..68fda1d
--- /dev/null
+++ b/node_modules/material-ui/src/utils/index.js
@@ -0,0 +1,28 @@
+import ColorManipulator from './color-manipulator';
+import CssEvent from './css-event';
+import Dom from './dom';
+import Events from './events';
+import KeyCode from './key-code';
+import KeyLine from './key-line';
+import UniqueId from './unique-id';
+import Styles from './styles';
+
+export {ColorManipulator};
+export {CssEvent};
+export {Dom};
+export {Events};
+export {KeyCode};
+export {KeyLine};
+export {UniqueId};
+export {Styles};
+
+export default {
+ ColorManipulator,
+ CssEvent,
+ Dom,
+ Events,
+ KeyCode,
+ KeyLine,
+ UniqueId,
+ Styles,
+};
diff --git a/node_modules/material-ui/src/utils/key-code.js b/node_modules/material-ui/src/utils/key-code.js
new file mode 100644
index 0000000..3296556
--- /dev/null
+++ b/node_modules/material-ui/src/utils/key-code.js
@@ -0,0 +1,10 @@
+export default {
+ DOWN: 40,
+ ESC: 27,
+ ENTER: 13,
+ LEFT: 37,
+ RIGHT: 39,
+ SPACE: 32,
+ TAB: 9,
+ UP: 38,
+};
diff --git a/node_modules/material-ui/src/utils/key-line.js b/node_modules/material-ui/src/utils/key-line.js
new file mode 100644
index 0000000..78e1bba
--- /dev/null
+++ b/node_modules/material-ui/src/utils/key-line.js
@@ -0,0 +1,13 @@
+export default {
+
+ Desktop: {
+ GUTTER: 24,
+ GUTTER_LESS: 16,
+ INCREMENT: 64,
+ MENU_ITEM_HEIGHT: 32,
+ },
+
+ getIncrementalDim(dim) {
+ return Math.ceil(dim / this.Desktop.INCREMENT) * this.Desktop.INCREMENT;
+ },
+};
diff --git a/node_modules/material-ui/src/utils/prop-types.js b/node_modules/material-ui/src/utils/prop-types.js
new file mode 100644
index 0000000..ee847fa
--- /dev/null
+++ b/node_modules/material-ui/src/utils/prop-types.js
@@ -0,0 +1,40 @@
+import React from 'react';
+
+const horizontal = React.PropTypes.oneOf(['left', 'middle', 'right']);
+const vertical = React.PropTypes.oneOf(['top', 'center', 'bottom']);
+
+export default {
+
+ corners: React.PropTypes.oneOf([
+ 'bottom-left',
+ 'bottom-right',
+ 'top-left',
+ 'top-right',
+ ]),
+
+ horizontal: horizontal,
+
+ vertical: vertical,
+
+ origin: React.PropTypes.shape({
+ horizontal: horizontal,
+ vertical: vertical,
+ }),
+
+ cornersAndCenter: React.PropTypes.oneOf([
+ 'bottom-center',
+ 'bottom-left',
+ 'bottom-right',
+ 'top-center',
+ 'top-left',
+ 'top-right',
+ ]),
+
+ stringOrNumber: React.PropTypes.oneOfType([
+ React.PropTypes.string,
+ React.PropTypes.number,
+ ]),
+
+ zDepth: React.PropTypes.oneOf([0, 1, 2, 3, 4, 5]),
+
+};
diff --git a/node_modules/material-ui/src/utils/shallow-equal.js b/node_modules/material-ui/src/utils/shallow-equal.js
new file mode 100644
index 0000000..c70d564
--- /dev/null
+++ b/node_modules/material-ui/src/utils/shallow-equal.js
@@ -0,0 +1,27 @@
+export default function shallowEqual(objA, objB) {
+ if (objA === objB) {
+ return true;
+ }
+
+ if (typeof objA !== 'object' || objA === null ||
+ typeof objB !== 'object' || objB === null) {
+ return false;
+ }
+
+ const keysA = Object.keys(objA);
+ const keysB = Object.keys(objB);
+
+ if (keysA.length !== keysB.length) {
+ return false;
+ }
+
+ // Test for A's keys different from B.
+ const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);
+ for (let i = 0; i < keysA.length; i++) {
+ if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {
+ return false;
+ }
+ }
+
+ return true;
+}
diff --git a/node_modules/material-ui/src/utils/styles.js b/node_modules/material-ui/src/utils/styles.js
new file mode 100644
index 0000000..fecdc5d
--- /dev/null
+++ b/node_modules/material-ui/src/utils/styles.js
@@ -0,0 +1,144 @@
+import autoPrefix from '../styles/auto-prefix';
+import update from 'react-addons-update';
+import warning from 'warning';
+
+const reTranslate = /((^|\s)translate(3d|X)?\()(\-?[\d]+)/;
+
+const reSkew = /((^|\s)skew(x|y)?\()\s*(\-?[\d]+)(deg|rad|grad)(,\s*(\-?[\d]+)(deg|rad|grad))?/;
+
+function mergeSingle(objA, objB) {
+ if (!objA) return objB;
+ if (!objB) return objA;
+ return update(objA, {$merge: objB});
+}
+
+/**
+ * This function ensures that `style` supports both ltr and rtl directions by
+ * checking `styleConstants` in `muiTheme` and replacing attribute keys if
+ * necessary.
+ */
+function ensureDirection(muiTheme, style) {
+ if (process.env.NODE_ENV !== 'production') {
+ warning(!style.didFlip, `You're calling ensureDirection() on the same style
+ object twice.`);
+
+ style = mergeStyles({
+ didFlip: 'true',
+ }, style);
+ }
+
+ // Left to right is the default. No need to flip anything.
+ if (!muiTheme || !muiTheme.isRtl) return style;
+
+ const flippedAttributes = {
+ // Keys and their replacements.
+ right: 'left',
+ left: 'right',
+ marginRight: 'marginLeft',
+ marginLeft: 'marginRight',
+ paddingRight: 'paddingLeft',
+ paddingLeft: 'paddingRight',
+ borderRight: 'borderLeft',
+ borderLeft: 'borderRight',
+ };
+
+ let newStyle = {};
+
+ Object.keys(style).forEach(function(attribute) {
+ let value = style[attribute];
+ let key = attribute;
+
+ if (flippedAttributes.hasOwnProperty(attribute)) {
+ key = flippedAttributes[attribute];
+ }
+
+ switch (attribute) {
+ case 'float':
+ case 'textAlign':
+ if (value === 'right') {
+ value = 'left';
+ } else if (value === 'left') {
+ value = 'right';
+ }
+ break;
+
+ case 'direction':
+ if (value === 'ltr') {
+ value = 'rtl';
+ } else if (value === 'rtl') {
+ value = 'ltr';
+ }
+ break;
+
+ case 'transform':
+ let matches;
+ if ((matches = value.match(reTranslate))) {
+ value = value.replace(matches[0], matches[1] + (-parseFloat(matches[4])) );
+ }
+ if ((matches = value.match(reSkew))) {
+ value = value.replace(matches[0], matches[1] + (-parseFloat(matches[4])) + matches[5] +
+ matches[6] ? ',' + (-parseFloat(matches[7])) + matches[8] : ''
+ );
+ }
+ break;
+
+ case 'transformOrigin':
+ if (value.indexOf('right') > -1) {
+ value = value.replace('right', 'left');
+ } else if (value.indexOf('left') > -1) {
+ value = value.replace('left', 'right');
+ }
+ break;
+ }
+
+ newStyle[key] = value;
+ });
+
+ return newStyle;
+}
+
+export function mergeStyles(base, ...args) {
+ for (let i = 0; i < args.length; i++) {
+ if (args[i]) {
+ base = mergeSingle(base, args[i]);
+ }
+ }
+ return base;
+}
+
+/**
+ * `mergeAndPrefix` is used to merge styles and autoprefix them. It has has been deprecated
+ * and should no longer be used.
+ */
+export function mergeAndPrefix(...args) {
+ warning(false, 'Use of mergeAndPrefix() has been deprecated. ' +
+ 'Please use mergeStyles() for merging styles, and then prepareStyles() for prefixing and ensuring direction.');
+ return autoPrefix.all(mergeStyles(...args));
+}
+
+/**
+ * `prepareStyles` is used to merge multiple styles, make sure they are flipped
+ * to rtl if needed, and then autoprefix them.
+ *
+ * Never call this on the same style object twice. As a rule of thumb, only
+ * call it when passing style attribute to html elements.
+ *
+ * If this method detects you called it twice on the same style object, it
+ * will produce a warning in the console.
+ */
+export function prepareStyles(muiTheme, style = {}, ...styles) {
+ if (styles) {
+ //warning(false, 'Providing more than one style argument to prepareStyles has been deprecated. ' +
+ // 'Please pass a single style, such as the result from mergeStyles(...styles).');
+ style = mergeStyles(style, ...styles);
+ }
+
+ const flipped = ensureDirection(muiTheme, style);
+ return muiTheme.prefix(flipped);
+}
+
+export default {
+ mergeStyles,
+ mergeAndPrefix,
+ prepareStyles,
+};
diff --git a/node_modules/material-ui/src/utils/unique-id.js b/node_modules/material-ui/src/utils/unique-id.js
new file mode 100644
index 0000000..1cb2385
--- /dev/null
+++ b/node_modules/material-ui/src/utils/unique-id.js
@@ -0,0 +1,7 @@
+let index = 0;
+
+export default {
+ generate() {
+ return 'mui-id-' + (index++);
+ },
+};
diff --git a/node_modules/minimatch/LICENSE b/node_modules/minimatch/LICENSE
new file mode 100644
index 0000000..19129e3
--- /dev/null
+++ b/node_modules/minimatch/LICENSE
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/minimatch/README.md b/node_modules/minimatch/README.md
new file mode 100644
index 0000000..d458bc2
--- /dev/null
+++ b/node_modules/minimatch/README.md
@@ -0,0 +1,216 @@
+# minimatch
+
+A minimal matching utility.
+
+[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)
+
+
+This is the matching library used internally by npm.
+
+It works by converting glob expressions into JavaScript `RegExp`
+objects.
+
+## Usage
+
+```javascript
+var minimatch = require("minimatch")
+
+minimatch("bar.foo", "*.foo") // true!
+minimatch("bar.foo", "*.bar") // false!
+minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy!
+```
+
+## Features
+
+Supports these glob features:
+
+* Brace Expansion
+* Extended glob matching
+* "Globstar" `**` matching
+
+See:
+
+* `man sh`
+* `man bash`
+* `man 3 fnmatch`
+* `man 5 gitignore`
+
+## Minimatch Class
+
+Create a minimatch object by instanting the `minimatch.Minimatch` class.
+
+```javascript
+var Minimatch = require("minimatch").Minimatch
+var mm = new Minimatch(pattern, options)
+```
+
+### Properties
+
+* `pattern` The original pattern the minimatch object represents.
+* `options` The options supplied to the constructor.
+* `set` A 2-dimensional array of regexp or string expressions.
+ Each row in the
+ array corresponds to a brace-expanded pattern. Each item in the row
+ corresponds to a single path-part. For example, the pattern
+ `{a,b/c}/d` would expand to a set of patterns like:
+
+ [ [ a, d ]
+ , [ b, c, d ] ]
+
+ If a portion of the pattern doesn't have any "magic" in it
+ (that is, it's something like `"foo"` rather than `fo*o?`), then it
+ will be left as a string rather than converted to a regular
+ expression.
+
+* `regexp` Created by the `makeRe` method. A single regular expression
+ expressing the entire pattern. This is useful in cases where you wish
+ to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
+* `negate` True if the pattern is negated.
+* `comment` True if the pattern is a comment.
+* `empty` True if the pattern is `""`.
+
+### Methods
+
+* `makeRe` Generate the `regexp` member if necessary, and return it.
+ Will return `false` if the pattern is invalid.
+* `match(fname)` Return true if the filename matches the pattern, or
+ false otherwise.
+* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
+ filename, and match it against a single row in the `regExpSet`. This
+ method is mainly for internal use, but is exposed so that it can be
+ used by a glob-walker that needs to avoid excessive filesystem calls.
+
+All other methods are internal, and will be called as necessary.
+
+## Functions
+
+The top-level exported function has a `cache` property, which is an LRU
+cache set to store 100 items. So, calling these methods repeatedly
+with the same pattern and options will use the same Minimatch object,
+saving the cost of parsing it multiple times.
+
+### minimatch(path, pattern, options)
+
+Main export. Tests a path against the pattern using the options.
+
+```javascript
+var isJS = minimatch(file, "*.js", { matchBase: true })
+```
+
+### minimatch.filter(pattern, options)
+
+Returns a function that tests its
+supplied argument, suitable for use with `Array.filter`. Example:
+
+```javascript
+var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
+```
+
+### minimatch.match(list, pattern, options)
+
+Match against the list of
+files, in the style of fnmatch or glob. If nothing is matched, and
+options.nonull is set, then return a list containing the pattern itself.
+
+```javascript
+var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
+```
+
+### minimatch.makeRe(pattern, options)
+
+Make a regular expression object from the pattern.
+
+## Options
+
+All options are `false` by default.
+
+### debug
+
+Dump a ton of stuff to stderr.
+
+### nobrace
+
+Do not expand `{a,b}` and `{1..3}` brace sets.
+
+### noglobstar
+
+Disable `**` matching against multiple folder names.
+
+### dot
+
+Allow patterns to match filenames starting with a period, even if
+the pattern does not explicitly have a period in that spot.
+
+Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
+is set.
+
+### noext
+
+Disable "extglob" style patterns like `+(a|b)`.
+
+### nocase
+
+Perform a case-insensitive match.
+
+### nonull
+
+When a match is not found by `minimatch.match`, return a list containing
+the pattern itself if this option is set. When not set, an empty list
+is returned if there are no matches.
+
+### matchBase
+
+If set, then patterns without slashes will be matched
+against the basename of the path if it contains slashes. For example,
+`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
+
+### nocomment
+
+Suppress the behavior of treating `#` at the start of a pattern as a
+comment.
+
+### nonegate
+
+Suppress the behavior of treating a leading `!` character as negation.
+
+### flipNegate
+
+Returns from negate expressions the same as if they were not negated.
+(Ie, true on a hit, false on a miss.)
+
+
+## Comparisons to other fnmatch/glob implementations
+
+While strict compliance with the existing standards is a worthwhile
+goal, some discrepancies exist between minimatch and other
+implementations, and are intentional.
+
+If the pattern starts with a `!` character, then it is negated. Set the
+`nonegate` flag to suppress this behavior, and treat leading `!`
+characters normally. This is perhaps relevant if you wish to start the
+pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
+characters at the start of a pattern will negate the pattern multiple
+times.
+
+If a pattern starts with `#`, then it is treated as a comment, and
+will not match anything. Use `\#` to match a literal `#` at the
+start of a line, or set the `nocomment` flag to suppress this behavior.
+
+The double-star character `**` is supported by default, unless the
+`noglobstar` flag is set. This is supported in the manner of bsdglob
+and bash 4.1, where `**` only has special significance if it is the only
+thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
+`a/**b` will not.
+
+If an escaped pattern has no matches, and the `nonull` flag is set,
+then minimatch.match returns the pattern as-provided, rather than
+interpreting the character escapes. For example,
+`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
+`"*a?"`. This is akin to setting the `nullglob` option in bash, except
+that it does not resolve escaped pattern characters.
+
+If brace expansion is not disabled, then it is performed before any
+other interpretation of the glob pattern. Thus, a pattern like
+`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
+**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
+checked for validity. Since those two are valid, matching proceeds.
diff --git a/node_modules/minimatch/minimatch.js b/node_modules/minimatch/minimatch.js
new file mode 100644
index 0000000..ec4c05c
--- /dev/null
+++ b/node_modules/minimatch/minimatch.js
@@ -0,0 +1,912 @@
+module.exports = minimatch
+minimatch.Minimatch = Minimatch
+
+var path = { sep: '/' }
+try {
+ path = require('path')
+} catch (er) {}
+
+var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
+var expand = require('brace-expansion')
+
+// any single thing other than /
+// don't need to escape / when using new RegExp()
+var qmark = '[^/]'
+
+// * => any number of characters
+var star = qmark + '*?'
+
+// ** when dots are allowed. Anything goes, except .. and .
+// not (^ or / followed by one or two dots followed by $ or /),
+// followed by anything, any number of times.
+var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
+
+// not a ^ or / followed by a dot,
+// followed by anything, any number of times.
+var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
+
+// characters that need to be escaped in RegExp.
+var reSpecials = charSet('().*{}+?[]^$\\!')
+
+// "abc" -> { a:true, b:true, c:true }
+function charSet (s) {
+ return s.split('').reduce(function (set, c) {
+ set[c] = true
+ return set
+ }, {})
+}
+
+// normalizes slashes.
+var slashSplit = /\/+/
+
+minimatch.filter = filter
+function filter (pattern, options) {
+ options = options || {}
+ return function (p, i, list) {
+ return minimatch(p, pattern, options)
+ }
+}
+
+function ext (a, b) {
+ a = a || {}
+ b = b || {}
+ var t = {}
+ Object.keys(b).forEach(function (k) {
+ t[k] = b[k]
+ })
+ Object.keys(a).forEach(function (k) {
+ t[k] = a[k]
+ })
+ return t
+}
+
+minimatch.defaults = function (def) {
+ if (!def || !Object.keys(def).length) return minimatch
+
+ var orig = minimatch
+
+ var m = function minimatch (p, pattern, options) {
+ return orig.minimatch(p, pattern, ext(def, options))
+ }
+
+ m.Minimatch = function Minimatch (pattern, options) {
+ return new orig.Minimatch(pattern, ext(def, options))
+ }
+
+ return m
+}
+
+Minimatch.defaults = function (def) {
+ if (!def || !Object.keys(def).length) return Minimatch
+ return minimatch.defaults(def).Minimatch
+}
+
+function minimatch (p, pattern, options) {
+ if (typeof pattern !== 'string') {
+ throw new TypeError('glob pattern string required')
+ }
+
+ if (!options) options = {}
+
+ // shortcut: comments match nothing.
+ if (!options.nocomment && pattern.charAt(0) === '#') {
+ return false
+ }
+
+ // "" only matches ""
+ if (pattern.trim() === '') return p === ''
+
+ return new Minimatch(pattern, options).match(p)
+}
+
+function Minimatch (pattern, options) {
+ if (!(this instanceof Minimatch)) {
+ return new Minimatch(pattern, options)
+ }
+
+ if (typeof pattern !== 'string') {
+ throw new TypeError('glob pattern string required')
+ }
+
+ if (!options) options = {}
+ pattern = pattern.trim()
+
+ // windows support: need to use /, not \
+ if (path.sep !== '/') {
+ pattern = pattern.split(path.sep).join('/')
+ }
+
+ this.options = options
+ this.set = []
+ this.pattern = pattern
+ this.regexp = null
+ this.negate = false
+ this.comment = false
+ this.empty = false
+
+ // make the set of regexps etc.
+ this.make()
+}
+
+Minimatch.prototype.debug = function () {}
+
+Minimatch.prototype.make = make
+function make () {
+ // don't do it more than once.
+ if (this._made) return
+
+ var pattern = this.pattern
+ var options = this.options
+
+ // empty patterns and comments match nothing.
+ if (!options.nocomment && pattern.charAt(0) === '#') {
+ this.comment = true
+ return
+ }
+ if (!pattern) {
+ this.empty = true
+ return
+ }
+
+ // step 1: figure out negation, etc.
+ this.parseNegate()
+
+ // step 2: expand braces
+ var set = this.globSet = this.braceExpand()
+
+ if (options.debug) this.debug = console.error
+
+ this.debug(this.pattern, set)
+
+ // step 3: now we have a set, so turn each one into a series of path-portion
+ // matching patterns.
+ // These will be regexps, except in the case of "**", which is
+ // set to the GLOBSTAR object for globstar behavior,
+ // and will not contain any / characters
+ set = this.globParts = set.map(function (s) {
+ return s.split(slashSplit)
+ })
+
+ this.debug(this.pattern, set)
+
+ // glob --> regexps
+ set = set.map(function (s, si, set) {
+ return s.map(this.parse, this)
+ }, this)
+
+ this.debug(this.pattern, set)
+
+ // filter out everything that didn't compile properly.
+ set = set.filter(function (s) {
+ return s.indexOf(false) === -1
+ })
+
+ this.debug(this.pattern, set)
+
+ this.set = set
+}
+
+Minimatch.prototype.parseNegate = parseNegate
+function parseNegate () {
+ var pattern = this.pattern
+ var negate = false
+ var options = this.options
+ var negateOffset = 0
+
+ if (options.nonegate) return
+
+ for (var i = 0, l = pattern.length
+ ; i < l && pattern.charAt(i) === '!'
+ ; i++) {
+ negate = !negate
+ negateOffset++
+ }
+
+ if (negateOffset) this.pattern = pattern.substr(negateOffset)
+ this.negate = negate
+}
+
+// Brace expansion:
+// a{b,c}d -> abd acd
+// a{b,}c -> abc ac
+// a{0..3}d -> a0d a1d a2d a3d
+// a{b,c{d,e}f}g -> abg acdfg acefg
+// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
+//
+// Invalid sets are not expanded.
+// a{2..}b -> a{2..}b
+// a{b}c -> a{b}c
+minimatch.braceExpand = function (pattern, options) {
+ return braceExpand(pattern, options)
+}
+
+Minimatch.prototype.braceExpand = braceExpand
+
+function braceExpand (pattern, options) {
+ if (!options) {
+ if (this instanceof Minimatch) {
+ options = this.options
+ } else {
+ options = {}
+ }
+ }
+
+ pattern = typeof pattern === 'undefined'
+ ? this.pattern : pattern
+
+ if (typeof pattern === 'undefined') {
+ throw new Error('undefined pattern')
+ }
+
+ if (options.nobrace ||
+ !pattern.match(/\{.*\}/)) {
+ // shortcut. no need to expand.
+ return [pattern]
+ }
+
+ return expand(pattern)
+}
+
+// parse a component of the expanded set.
+// At this point, no pattern may contain "/" in it
+// so we're going to return a 2d array, where each entry is the full
+// pattern, split on '/', and then turned into a regular expression.
+// A regexp is made at the end which joins each array with an
+// escaped /, and another full one which joins each regexp with |.
+//
+// Following the lead of Bash 4.1, note that "**" only has special meaning
+// when it is the *only* thing in a path portion. Otherwise, any series
+// of * is equivalent to a single *. Globstar behavior is enabled by
+// default, and can be disabled by setting options.noglobstar.
+Minimatch.prototype.parse = parse
+var SUBPARSE = {}
+function parse (pattern, isSub) {
+ var options = this.options
+
+ // shortcuts
+ if (!options.noglobstar && pattern === '**') return GLOBSTAR
+ if (pattern === '') return ''
+
+ var re = ''
+ var hasMagic = !!options.nocase
+ var escaping = false
+ // ? => one single character
+ var patternListStack = []
+ var negativeLists = []
+ var plType
+ var stateChar
+ var inClass = false
+ var reClassStart = -1
+ var classStart = -1
+ // . and .. never match anything that doesn't start with .,
+ // even when options.dot is set.
+ var patternStart = pattern.charAt(0) === '.' ? '' // anything
+ // not (start or / followed by . or .. followed by / or end)
+ : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
+ : '(?!\\.)'
+ var self = this
+
+ function clearStateChar () {
+ if (stateChar) {
+ // we had some state-tracking character
+ // that wasn't consumed by this pass.
+ switch (stateChar) {
+ case '*':
+ re += star
+ hasMagic = true
+ break
+ case '?':
+ re += qmark
+ hasMagic = true
+ break
+ default:
+ re += '\\' + stateChar
+ break
+ }
+ self.debug('clearStateChar %j %j', stateChar, re)
+ stateChar = false
+ }
+ }
+
+ for (var i = 0, len = pattern.length, c
+ ; (i < len) && (c = pattern.charAt(i))
+ ; i++) {
+ this.debug('%s\t%s %s %j', pattern, i, re, c)
+
+ // skip over any that are escaped.
+ if (escaping && reSpecials[c]) {
+ re += '\\' + c
+ escaping = false
+ continue
+ }
+
+ switch (c) {
+ case '/':
+ // completely not allowed, even escaped.
+ // Should already be path-split by now.
+ return false
+
+ case '\\':
+ clearStateChar()
+ escaping = true
+ continue
+
+ // the various stateChar values
+ // for the "extglob" stuff.
+ case '?':
+ case '*':
+ case '+':
+ case '@':
+ case '!':
+ this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
+
+ // all of those are literals inside a class, except that
+ // the glob [!a] means [^a] in regexp
+ if (inClass) {
+ this.debug(' in class')
+ if (c === '!' && i === classStart + 1) c = '^'
+ re += c
+ continue
+ }
+
+ // if we already have a stateChar, then it means
+ // that there was something like ** or +? in there.
+ // Handle the stateChar, then proceed with this one.
+ self.debug('call clearStateChar %j', stateChar)
+ clearStateChar()
+ stateChar = c
+ // if extglob is disabled, then +(asdf|foo) isn't a thing.
+ // just clear the statechar *now*, rather than even diving into
+ // the patternList stuff.
+ if (options.noext) clearStateChar()
+ continue
+
+ case '(':
+ if (inClass) {
+ re += '('
+ continue
+ }
+
+ if (!stateChar) {
+ re += '\\('
+ continue
+ }
+
+ plType = stateChar
+ patternListStack.push({
+ type: plType,
+ start: i - 1,
+ reStart: re.length
+ })
+ // negation is (?:(?!js)[^/]*)
+ re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
+ this.debug('plType %j %j', stateChar, re)
+ stateChar = false
+ continue
+
+ case ')':
+ if (inClass || !patternListStack.length) {
+ re += '\\)'
+ continue
+ }
+
+ clearStateChar()
+ hasMagic = true
+ re += ')'
+ var pl = patternListStack.pop()
+ plType = pl.type
+ // negation is (?:(?!js)[^/]*)
+ // The others are (?:)
+ switch (plType) {
+ case '!':
+ negativeLists.push(pl)
+ re += ')[^/]*?)'
+ pl.reEnd = re.length
+ break
+ case '?':
+ case '+':
+ case '*':
+ re += plType
+ break
+ case '@': break // the default anyway
+ }
+ continue
+
+ case '|':
+ if (inClass || !patternListStack.length || escaping) {
+ re += '\\|'
+ escaping = false
+ continue
+ }
+
+ clearStateChar()
+ re += '|'
+ continue
+
+ // these are mostly the same in regexp and glob
+ case '[':
+ // swallow any state-tracking char before the [
+ clearStateChar()
+
+ if (inClass) {
+ re += '\\' + c
+ continue
+ }
+
+ inClass = true
+ classStart = i
+ reClassStart = re.length
+ re += c
+ continue
+
+ case ']':
+ // a right bracket shall lose its special
+ // meaning and represent itself in
+ // a bracket expression if it occurs
+ // first in the list. -- POSIX.2 2.8.3.2
+ if (i === classStart + 1 || !inClass) {
+ re += '\\' + c
+ escaping = false
+ continue
+ }
+
+ // handle the case where we left a class open.
+ // "[z-a]" is valid, equivalent to "\[z-a\]"
+ if (inClass) {
+ // split where the last [ was, make sure we don't have
+ // an invalid re. if so, re-walk the contents of the
+ // would-be class to re-translate any characters that
+ // were passed through as-is
+ // TODO: It would probably be faster to determine this
+ // without a try/catch and a new RegExp, but it's tricky
+ // to do safely. For now, this is safe and works.
+ var cs = pattern.substring(classStart + 1, i)
+ try {
+ RegExp('[' + cs + ']')
+ } catch (er) {
+ // not a valid class!
+ var sp = this.parse(cs, SUBPARSE)
+ re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
+ hasMagic = hasMagic || sp[1]
+ inClass = false
+ continue
+ }
+ }
+
+ // finish up the class.
+ hasMagic = true
+ inClass = false
+ re += c
+ continue
+
+ default:
+ // swallow any state char that wasn't consumed
+ clearStateChar()
+
+ if (escaping) {
+ // no need
+ escaping = false
+ } else if (reSpecials[c]
+ && !(c === '^' && inClass)) {
+ re += '\\'
+ }
+
+ re += c
+
+ } // switch
+ } // for
+
+ // handle the case where we left a class open.
+ // "[abc" is valid, equivalent to "\[abc"
+ if (inClass) {
+ // split where the last [ was, and escape it
+ // this is a huge pita. We now have to re-walk
+ // the contents of the would-be class to re-translate
+ // any characters that were passed through as-is
+ cs = pattern.substr(classStart + 1)
+ sp = this.parse(cs, SUBPARSE)
+ re = re.substr(0, reClassStart) + '\\[' + sp[0]
+ hasMagic = hasMagic || sp[1]
+ }
+
+ // handle the case where we had a +( thing at the *end*
+ // of the pattern.
+ // each pattern list stack adds 3 chars, and we need to go through
+ // and escape any | chars that were passed through as-is for the regexp.
+ // Go through and escape them, taking care not to double-escape any
+ // | chars that were already escaped.
+ for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
+ var tail = re.slice(pl.reStart + 3)
+ // maybe some even number of \, then maybe 1 \, followed by a |
+ tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) {
+ if (!$2) {
+ // the | isn't already escaped, so escape it.
+ $2 = '\\'
+ }
+
+ // need to escape all those slashes *again*, without escaping the
+ // one that we need for escaping the | character. As it works out,
+ // escaping an even number of slashes can be done by simply repeating
+ // it exactly after itself. That's why this trick works.
+ //
+ // I am sorry that you have to see this.
+ return $1 + $1 + $2 + '|'
+ })
+
+ this.debug('tail=%j\n %s', tail, tail)
+ var t = pl.type === '*' ? star
+ : pl.type === '?' ? qmark
+ : '\\' + pl.type
+
+ hasMagic = true
+ re = re.slice(0, pl.reStart) + t + '\\(' + tail
+ }
+
+ // handle trailing things that only matter at the very end.
+ clearStateChar()
+ if (escaping) {
+ // trailing \\
+ re += '\\\\'
+ }
+
+ // only need to apply the nodot start if the re starts with
+ // something that could conceivably capture a dot
+ var addPatternStart = false
+ switch (re.charAt(0)) {
+ case '.':
+ case '[':
+ case '(': addPatternStart = true
+ }
+
+ // Hack to work around lack of negative lookbehind in JS
+ // A pattern like: *.!(x).!(y|z) needs to ensure that a name
+ // like 'a.xyz.yz' doesn't match. So, the first negative
+ // lookahead, has to look ALL the way ahead, to the end of
+ // the pattern.
+ for (var n = negativeLists.length - 1; n > -1; n--) {
+ var nl = negativeLists[n]
+
+ var nlBefore = re.slice(0, nl.reStart)
+ var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
+ var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
+ var nlAfter = re.slice(nl.reEnd)
+
+ nlLast += nlAfter
+
+ // Handle nested stuff like *(*.js|!(*.json)), where open parens
+ // mean that we should *not* include the ) in the bit that is considered
+ // "after" the negated section.
+ var openParensBefore = nlBefore.split('(').length - 1
+ var cleanAfter = nlAfter
+ for (i = 0; i < openParensBefore; i++) {
+ cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
+ }
+ nlAfter = cleanAfter
+
+ var dollar = ''
+ if (nlAfter === '' && isSub !== SUBPARSE) {
+ dollar = '$'
+ }
+ var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
+ re = newRe
+ }
+
+ // if the re is not "" at this point, then we need to make sure
+ // it doesn't match against an empty path part.
+ // Otherwise a/* will match a/, which it should not.
+ if (re !== '' && hasMagic) {
+ re = '(?=.)' + re
+ }
+
+ if (addPatternStart) {
+ re = patternStart + re
+ }
+
+ // parsing just a piece of a larger pattern.
+ if (isSub === SUBPARSE) {
+ return [re, hasMagic]
+ }
+
+ // skip the regexp for non-magical patterns
+ // unescape anything in it, though, so that it'll be
+ // an exact match against a file etc.
+ if (!hasMagic) {
+ return globUnescape(pattern)
+ }
+
+ var flags = options.nocase ? 'i' : ''
+ var regExp = new RegExp('^' + re + '$', flags)
+
+ regExp._glob = pattern
+ regExp._src = re
+
+ return regExp
+}
+
+minimatch.makeRe = function (pattern, options) {
+ return new Minimatch(pattern, options || {}).makeRe()
+}
+
+Minimatch.prototype.makeRe = makeRe
+function makeRe () {
+ if (this.regexp || this.regexp === false) return this.regexp
+
+ // at this point, this.set is a 2d array of partial
+ // pattern strings, or "**".
+ //
+ // It's better to use .match(). This function shouldn't
+ // be used, really, but it's pretty convenient sometimes,
+ // when you just want to work with a regex.
+ var set = this.set
+
+ if (!set.length) {
+ this.regexp = false
+ return this.regexp
+ }
+ var options = this.options
+
+ var twoStar = options.noglobstar ? star
+ : options.dot ? twoStarDot
+ : twoStarNoDot
+ var flags = options.nocase ? 'i' : ''
+
+ var re = set.map(function (pattern) {
+ return pattern.map(function (p) {
+ return (p === GLOBSTAR) ? twoStar
+ : (typeof p === 'string') ? regExpEscape(p)
+ : p._src
+ }).join('\\\/')
+ }).join('|')
+
+ // must match entire pattern
+ // ending in a * or ** will make it less strict.
+ re = '^(?:' + re + ')$'
+
+ // can match anything, as long as it's not this.
+ if (this.negate) re = '^(?!' + re + ').*$'
+
+ try {
+ this.regexp = new RegExp(re, flags)
+ } catch (ex) {
+ this.regexp = false
+ }
+ return this.regexp
+}
+
+minimatch.match = function (list, pattern, options) {
+ options = options || {}
+ var mm = new Minimatch(pattern, options)
+ list = list.filter(function (f) {
+ return mm.match(f)
+ })
+ if (mm.options.nonull && !list.length) {
+ list.push(pattern)
+ }
+ return list
+}
+
+Minimatch.prototype.match = match
+function match (f, partial) {
+ this.debug('match', f, this.pattern)
+ // short-circuit in the case of busted things.
+ // comments, etc.
+ if (this.comment) return false
+ if (this.empty) return f === ''
+
+ if (f === '/' && partial) return true
+
+ var options = this.options
+
+ // windows: need to use /, not \
+ if (path.sep !== '/') {
+ f = f.split(path.sep).join('/')
+ }
+
+ // treat the test path as a set of pathparts.
+ f = f.split(slashSplit)
+ this.debug(this.pattern, 'split', f)
+
+ // just ONE of the pattern sets in this.set needs to match
+ // in order for it to be valid. If negating, then just one
+ // match means that we have failed.
+ // Either way, return on the first hit.
+
+ var set = this.set
+ this.debug(this.pattern, 'set', set)
+
+ // Find the basename of the path by looking for the last non-empty segment
+ var filename
+ var i
+ for (i = f.length - 1; i >= 0; i--) {
+ filename = f[i]
+ if (filename) break
+ }
+
+ for (i = 0; i < set.length; i++) {
+ var pattern = set[i]
+ var file = f
+ if (options.matchBase && pattern.length === 1) {
+ file = [filename]
+ }
+ var hit = this.matchOne(file, pattern, partial)
+ if (hit) {
+ if (options.flipNegate) return true
+ return !this.negate
+ }
+ }
+
+ // didn't get any hits. this is success if it's a negative
+ // pattern, failure otherwise.
+ if (options.flipNegate) return false
+ return this.negate
+}
+
+// set partial to true to test if, for example,
+// "/a/b" matches the start of "/*/b/*/d"
+// Partial means, if you run out of file before you run
+// out of pattern, then that's fine, as long as all
+// the parts match.
+Minimatch.prototype.matchOne = function (file, pattern, partial) {
+ var options = this.options
+
+ this.debug('matchOne',
+ { 'this': this, file: file, pattern: pattern })
+
+ this.debug('matchOne', file.length, pattern.length)
+
+ for (var fi = 0,
+ pi = 0,
+ fl = file.length,
+ pl = pattern.length
+ ; (fi < fl) && (pi < pl)
+ ; fi++, pi++) {
+ this.debug('matchOne loop')
+ var p = pattern[pi]
+ var f = file[fi]
+
+ this.debug(pattern, p, f)
+
+ // should be impossible.
+ // some invalid regexp stuff in the set.
+ if (p === false) return false
+
+ if (p === GLOBSTAR) {
+ this.debug('GLOBSTAR', [pattern, p, f])
+
+ // "**"
+ // a/**/b/**/c would match the following:
+ // a/b/x/y/z/c
+ // a/x/y/z/b/c
+ // a/b/x/b/x/c
+ // a/b/c
+ // To do this, take the rest of the pattern after
+ // the **, and see if it would match the file remainder.
+ // If so, return success.
+ // If not, the ** "swallows" a segment, and try again.
+ // This is recursively awful.
+ //
+ // a/**/b/**/c matching a/b/x/y/z/c
+ // - a matches a
+ // - doublestar
+ // - matchOne(b/x/y/z/c, b/**/c)
+ // - b matches b
+ // - doublestar
+ // - matchOne(x/y/z/c, c) -> no
+ // - matchOne(y/z/c, c) -> no
+ // - matchOne(z/c, c) -> no
+ // - matchOne(c, c) yes, hit
+ var fr = fi
+ var pr = pi + 1
+ if (pr === pl) {
+ this.debug('** at the end')
+ // a ** at the end will just swallow the rest.
+ // We have found a match.
+ // however, it will not swallow /.x, unless
+ // options.dot is set.
+ // . and .. are *never* matched by **, for explosively
+ // exponential reasons.
+ for (; fi < fl; fi++) {
+ if (file[fi] === '.' || file[fi] === '..' ||
+ (!options.dot && file[fi].charAt(0) === '.')) return false
+ }
+ return true
+ }
+
+ // ok, let's see if we can swallow whatever we can.
+ while (fr < fl) {
+ var swallowee = file[fr]
+
+ this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
+
+ // XXX remove this slice. Just pass the start index.
+ if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
+ this.debug('globstar found match!', fr, fl, swallowee)
+ // found a match.
+ return true
+ } else {
+ // can't swallow "." or ".." ever.
+ // can only swallow ".foo" when explicitly asked.
+ if (swallowee === '.' || swallowee === '..' ||
+ (!options.dot && swallowee.charAt(0) === '.')) {
+ this.debug('dot detected!', file, fr, pattern, pr)
+ break
+ }
+
+ // ** swallows a segment, and continue.
+ this.debug('globstar swallow a segment, and continue')
+ fr++
+ }
+ }
+
+ // no match was found.
+ // However, in partial mode, we can't say this is necessarily over.
+ // If there's more *pattern* left, then
+ if (partial) {
+ // ran out of file
+ this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
+ if (fr === fl) return true
+ }
+ return false
+ }
+
+ // something other than **
+ // non-magic patterns just have to match exactly
+ // patterns with magic have been turned into regexps.
+ var hit
+ if (typeof p === 'string') {
+ if (options.nocase) {
+ hit = f.toLowerCase() === p.toLowerCase()
+ } else {
+ hit = f === p
+ }
+ this.debug('string match', p, f, hit)
+ } else {
+ hit = f.match(p)
+ this.debug('pattern match', p, f, hit)
+ }
+
+ if (!hit) return false
+ }
+
+ // Note: ending in / means that we'll get a final ""
+ // at the end of the pattern. This can only match a
+ // corresponding "" at the end of the file.
+ // If the file ends in /, then it can only match a
+ // a pattern that ends in /, unless the pattern just
+ // doesn't have any more for it. But, a/b/ should *not*
+ // match "a/b/*", even though "" matches against the
+ // [^/]*? pattern, except in partial mode, where it might
+ // simply not be reached yet.
+ // However, a/b/ should still satisfy a/*
+
+ // now either we fell off the end of the pattern, or we're done.
+ if (fi === fl && pi === pl) {
+ // ran out of pattern and filename at the same time.
+ // an exact hit!
+ return true
+ } else if (fi === fl) {
+ // ran out of file, but still had pattern left.
+ // this is ok if we're doing the match as part of
+ // a glob fs traversal.
+ return partial
+ } else if (pi === pl) {
+ // ran out of pattern, still have file left.
+ // this is only acceptable if we're on the very last
+ // empty segment of a file with a trailing slash.
+ // a/* should match a/b/
+ var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
+ return emptyFileEnd
+ }
+
+ // should be unreachable.
+ throw new Error('wtf?')
+}
+
+// replace stuff like \* with *
+function globUnescape (s) {
+ return s.replace(/\\(.)/g, '$1')
+}
+
+function regExpEscape (s) {
+ return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
+}
diff --git a/node_modules/minimatch/package.json b/node_modules/minimatch/package.json
new file mode 100644
index 0000000..cbca77f
--- /dev/null
+++ b/node_modules/minimatch/package.json
@@ -0,0 +1,85 @@
+{
+ "_args": [
+ [
+ "minimatch@2 || 3",
+ "/Users/simontucker/Documents/quasar/node_modules/glob"
+ ]
+ ],
+ "_from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
+ "_id": "minimatch@3.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/minimatch",
+ "_nodeVersion": "4.0.0",
+ "_npmUser": {
+ "email": "isaacs@npmjs.com",
+ "name": "isaacs"
+ },
+ "_npmVersion": "3.3.2",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "minimatch",
+ "raw": "minimatch@2 || 3",
+ "rawSpec": "2 || 3",
+ "scope": null,
+ "spec": ">=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/glob"
+ ],
+ "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz",
+ "_shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83",
+ "_shrinkwrap": null,
+ "_spec": "minimatch@2 || 3",
+ "_where": "/Users/simontucker/Documents/quasar/node_modules/glob",
+ "author": {
+ "email": "i@izs.me",
+ "name": "Isaac Z. Schlueter",
+ "url": "http://blog.izs.me"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/minimatch/issues"
+ },
+ "dependencies": {
+ "brace-expansion": "^1.0.0"
+ },
+ "description": "a glob matcher in javascript",
+ "devDependencies": {
+ "standard": "^3.7.2",
+ "tap": "^1.2.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83",
+ "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "files": [
+ "minimatch.js"
+ ],
+ "gitHead": "270dbea567f0af6918cb18103e98c612aa717a20",
+ "homepage": "https://github.com/isaacs/minimatch#readme",
+ "license": "ISC",
+ "main": "minimatch.js",
+ "maintainers": [
+ {
+ "name": "isaacs",
+ "email": "i@izs.me"
+ }
+ ],
+ "name": "minimatch",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/minimatch.git"
+ },
+ "scripts": {
+ "posttest": "standard minimatch.js test/*.js",
+ "test": "tap test/*.js"
+ },
+ "version": "3.0.0"
+}
diff --git a/node_modules/moment/CHANGELOG.md b/node_modules/moment/CHANGELOG.md
new file mode 100644
index 0000000..d98994b
--- /dev/null
+++ b/node_modules/moment/CHANGELOG.md
@@ -0,0 +1,496 @@
+Changelog
+=========
+
+### 2.11.2 (Fix ReDoS attack vector)
+
+* [#2939](https://github.com/moment/moment/pull/2939) use full-string match to speed up aspnet regex match
+
+### 2.11.1 [See full changelog](https://gist.github.com/ichernev/8ec3ee25b749b4cff3c2)
+
+## Bugfixes:
+* [#2881](https://github.com/moment/moment/pull/2881) Revert "Merge pull request #2746 from mbad0la:develop" Sep->Sept
+* [#2868](https://github.com/moment/moment/pull/2868) Add format and parse token Y, so it actually works
+* [#2865](https://github.com/moment/moment/pull/2865) Use typeof checks for undefined for global variables
+* [#2858](https://github.com/moment/moment/pull/2858) Fix Date mocking regression introduced in 2.11.0
+* [#2864](https://github.com/moment/moment/pull/2864) Include changelog in npm release
+* [#2830](https://github.com/moment/moment/pull/2830) dep: add grunt-cli
+* [#2869](https://github.com/moment/moment/pull/2869) Fix months parsing for some locales
+
+### 2.11.0 [See full changelog](https://gist.github.com/ichernev/6594bc29719dde6b2f66)
+
+* [#2624](https://github.com/moment/moment/pull/2624) Proper handling of invalid moments
+* [#2634](https://github.com/moment/moment/pull/2634) Fix strict month parsing issue in cs,ru,sk
+* [#2735](https://github.com/moment/moment/pull/2735) Reset the locale back to 'en' after defining all locales in min/locales.js
+* [#2702](https://github.com/moment/moment/pull/2702) Week rework
+* [#2746](https://github.com/moment/moment/pull/2746) Changed September Abbreviation to "Sept" in locale-specific english
+ files and default locale file
+* [#2646](https://github.com/moment/moment/pull/2646) Fix [#2645](https://github.com/moment/moment/pull/2645) - invalid dates pre-1970
+
+* [#2641](https://github.com/moment/moment/pull/2641) Implement basic format and comma as ms separator in ISO 8601
+* [#2665](https://github.com/moment/moment/pull/2665) Implement stricter weekday parsing
+* [#2700](https://github.com/moment/moment/pull/2700) Add [Hh]mm and [Hh]mmss formatting tokens, so you can parse 123 with
+ hmm for example
+* [#2565](https://github.com/moment/moment/pull/2565) [#2835](https://github.com/moment/moment/pull/2835) Expose arguments used for moment creation with creationData
+ (fix [#2443](https://github.com/moment/moment/pull/2443))
+* [#2648](https://github.com/moment/moment/pull/2648) fix issue [#2640](https://github.com/moment/moment/pull/2640): support instanceof operator
+* [#2709](https://github.com/moment/moment/pull/2709) Add isSameOrAfter and isSameOrBefore comparison methods
+* [#2721](https://github.com/moment/moment/pull/2721) Fix moment creation from object with strings values
+* [#2740](https://github.com/moment/moment/pull/2740) Enable 'd hh:mm:ss.sss' format for durations
+* [#2766](https://github.com/moment/moment/pull/2766) [#2833](https://github.com/moment/moment/pull/2833) Alternate Clock Source Support
+
+### 2.10.6
+
+[#2515](https://github.com/moment/moment/pull/2515) Fix regression introduced
+in `2.10.5` related to `moment.ISO_8601` parsing.
+
+### 2.10.5 [See full changelog](https://gist.github.com/ichernev/6ec13ac7efc396da44b2)
+
+Important changes:
+* [#2357](https://github.com/moment/moment/pull/2357) Improve unit bubbling for ISO dates
+ this fixes day to year conversions to work around end-of-year (~365 days). As
+ a side effect 365 days is 11 months and 30 days, and 366 days is one year.
+* [#2438](https://github.com/moment/moment/pull/2438) Fix inconsistent moment.min and moment.max results
+ Return invalid result if any of the inputs is invalid
+* [#2494](https://github.com/moment/moment/pull/2494) Fix two digit year parsing with YYYY format
+ This brings the benefits of YY to YYYY
+* [#2368](https://github.com/moment/moment/pull/2368) perf: use faster form of copying dates, across the board improvement
+
+
+### 2.10.3 [See full changelog](https://gist.github.com/ichernev/f264b9bed5b00f8b1b7f)
+
+* add `moment.fn.to` and `moment.fn.toNow` (similar to `from` and `fromNow`)
+* new locales (Sinhalese (si), Montenegrin (me), Javanese (ja))
+* performance improvements
+
+### 2.10.2
+
+* fixed moment-with-locales in browser env caused by esperanto change
+
+### 2.10.1
+
+* regression: Add moment.duration.fn back
+
+### 2.10.0
+
+Ported code to es6 modules.
+
+### 2.9.0 [See full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7)
+
+languages:
+* [2104](https://github.com/moment/moment/issues/2104) Frisian (fy) language file with unit test
+* [2097](https://github.com/moment/moment/issues/2097) add ar-tn locale
+
+deprecations:
+* [2074](https://github.com/moment/moment/issues/2074) Implement `moment.fn.utcOffset`, deprecate `moment.fn.zone`
+
+features:
+* [2088](https://github.com/moment/moment/issues/2088) add moment.fn.isBetween
+* [2054](https://github.com/moment/moment/issues/2054) Call updateOffset when creating moment (needed for default timezone in
+ moment-timezone)
+* [1893](https://github.com/moment/moment/issues/1893) Add moment.isDate method
+* [1825](https://github.com/moment/moment/issues/1825) Implement toJSON function on Duration
+* [1809](https://github.com/moment/moment/issues/1809) Allowing moment.set() to accept a hash of units
+* [2128](https://github.com/moment/moment/issues/2128) Add firstDayOfWeek, firstDayOfYear locale getters
+* [2131](https://github.com/moment/moment/issues/2131) Add quarter diff support
+
+Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7)
+
+### 2.8.4 [See full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996)
+
+Features:
+
+* [#2000](https://github.com/moment/moment/issues/2000) Add LTS localised format that includes seconds
+* [#1960](https://github.com/moment/moment/issues/1960) added formatToken 'x' for unix offset in milliseconds #1938
+* [#1965](https://github.com/moment/moment/issues/1965) Support 24:00:00.000 to mean next day, at midnight.
+* [#2002](https://github.com/moment/moment/issues/2002) Accept 'date' key when creating moment with object
+* [#2009](https://github.com/moment/moment/issues/2009) Use native toISOString when we can
+
+Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996)
+
+### 2.8.3
+
+Bugfixes:
+
+* [#1801](https://github.com/moment/moment/issues/1801) proper pluralization for Arabic
+* [#1833](https://github.com/moment/moment/issues/1833) improve spm integration
+* [#1871](https://github.com/moment/moment/issues/1871) fix zone bug caused by Firefox 24
+* [#1882](https://github.com/moment/moment/issues/1882) Use hh:mm in Czech
+* [#1883](https://github.com/moment/moment/issues/1883) Fix 2.8.0 regression in duration as conversions
+* [#1890](https://github.com/moment/moment/issues/1890) Faster travis builds
+* [#1892](https://github.com/moment/moment/issues/1892) Faster isBefore/After/Same
+* [#1848](https://github.com/moment/moment/issues/1848) Fix flaky month diffs
+* [#1895](https://github.com/moment/moment/issues/1895) Fix 2.8.0 regression in moment.utc with format array
+* [#1896](https://github.com/moment/moment/issues/1896) Support setting invalid instance locale (noop)
+* [#1897](https://github.com/moment/moment/issues/1897) Support moment([str]) in addition to moment([int])
+
+### 2.8.2
+
+Minor bugfixes:
+
+* [#1874](https://github.com/moment/moment/issues/1874) use `Object.prototype.hasOwnProperty`
+ instead of `obj.hasOwnProperty` (ie8 bug)
+* [#1873](https://github.com/moment/moment/issues/1873) add `duration#toString()`
+* [#1859](https://github.com/moment/moment/issues/1859) better month/weekday names in norwegian
+* [#1812](https://github.com/moment/moment/issues/1812) meridiem parsing for greek
+* [#1804](https://github.com/moment/moment/issues/1804) spanish del -> de
+* [#1800](https://github.com/moment/moment/issues/1800) korean LT improvement
+
+### 2.8.1
+
+* bugfix [#1813](https://github.com/moment/moment/issues/1813): fix moment().lang([key]) incompatibility
+
+### 2.8.0 [See changelog](https://gist.github.com/ichernev/ac3899324a5fa6c8c9b4)
+
+* incompatible changes
+ * [#1761](https://github.com/moment/moment/issues/1761): moments created without a language are no longer following the global language, in case it changes. Only newly created moments take the global language by default. In case you're affected by this, wait, comment on [#1797](https://github.com/moment/moment/issues/1797) and wait for a proper reimplementation
+ * [#1642](https://github.com/moment/moment/issues/1642): 45 days is no longer "a month" according to humanize, cutoffs for month, and year have changed. Hopefully your code does not depend on a particular answer from humanize (which it shouldn't anyway)
+ * [#1784](https://github.com/moment/moment/issues/1784): if you use the human readable English datetime format in a weird way (like storing them in a database) that would break when the format changes you're at risk.
+
+* deprecations (old behavior will be dropped in 3.0)
+ * [#1761](https://github.com/moment/moment/issues/1761) `lang` is renamed to `locale`, `langData` -> `localeData`. Also there is now `defineLocale` that should be used when creating new locales
+ * [#1763](https://github.com/moment/moment/issues/1763) `add(unit, value)` and `subtract(unit, value)` are now deprecated. Use `add(value, unit)` and `subtract(value, unit)` instead.
+ * [#1759](https://github.com/moment/moment/issues/1759) rename `duration.toIsoString` to `duration.toISOString`. The js standard library and moment's `toISOString` follow that convention.
+
+* new locales
+ * [#1789](https://github.com/moment/moment/issues/1789) Tibetan (bo)
+ * [#1786](https://github.com/moment/moment/issues/1786) Africaans (af)
+ * [#1778](https://github.com/moment/moment/issues/1778) Burmese (my)
+ * [#1727](https://github.com/moment/moment/issues/1727) Belarusian (be)
+
+* bugfixes, locale bugfixes, performance improvements, features
+
+### 2.7.0 [See changelog](https://gist.github.com/ichernev/b0a3d456d5a84c9901d7)
+
+* new languages
+
+ * [#1678](https://github.com/moment/moment/issues/1678) Bengali (bn)
+ * [#1628](https://github.com/moment/moment/issues/1628) Azerbaijani (az)
+ * [#1633](https://github.com/moment/moment/issues/1633) Arabic, Saudi Arabia (ar-sa)
+ * [#1648](https://github.com/moment/moment/issues/1648) Austrian German (de-at)
+
+* features
+
+ * [#1663](https://github.com/moment/moment/issues/1663) configurable relative time thresholds
+ * [#1554](https://github.com/moment/moment/issues/1554) support anchor time in moment.calendar
+ * [#1693](https://github.com/moment/moment/issues/1693) support moment.ISO_8601 as parsing format
+ * [#1637](https://github.com/moment/moment/issues/1637) add moment.min and moment.max and deprecate min/max instance methods
+ * [#1704](https://github.com/moment/moment/issues/1704) support string value in add/subtract
+ * [#1647](https://github.com/moment/moment/issues/1647) add spm support (package manager)
+
+* bugfixes
+
+### 2.6.0 [See changelog](https://gist.github.com/ichernev/10544682)
+
+* languages
+ * [#1529](https://github.com/moment/moment/issues/1529) Serbian-Cyrillic (sr-cyr)
+ * [#1544](https://github.com/moment/moment/issues/1544), [#1546](https://github.com/moment/moment/issues/1546) Khmer Cambodia (km)
+
+* features
+ * [#1419](https://github.com/moment/moment/issues/1419), [#1468](https://github.com/moment/moment/issues/1468), [#1467](https://github.com/moment/moment/issues/1467), [#1546](https://github.com/moment/moment/issues/1546) better handling of timezone-d moments around DST
+ * [#1462](https://github.com/moment/moment/issues/1462) add weeksInYear and isoWeeksInYear
+ * [#1475](https://github.com/moment/moment/issues/1475) support ordinal parsing
+ * [#1499](https://github.com/moment/moment/issues/1499) composer support
+ * [#1577](https://github.com/moment/moment/issues/1577), [#1604](https://github.com/moment/moment/issues/1604) put Date parsing in moment.createFromInputFallback so it can be properly deprecated and controlled in the future
+ * [#1545](https://github.com/moment/moment/issues/1545) extract two-digit year parsing in moment.parseTwoDigitYear, so it can be overwritten
+ * [#1590](https://github.com/moment/moment/issues/1590) (see [#1574](https://github.com/moment/moment/issues/1574)) set AMD global before module definition to better support non AMD module dependencies used in AMD environment
+ * [#1589](https://github.com/moment/moment/issues/1589) remove global in Node.JS environment (was not working before, nobody complained, was scheduled for removal anyway)
+ * [#1586](https://github.com/moment/moment/issues/1586) support quarter setting and parsing
+
+* 18 bugs fixed
+
+### 2.5.1
+
+* languages
+ * [#1392](https://github.com/moment/moment/issues/1392) Armenian (hy-am)
+
+* bugfixes
+ * [#1429](https://github.com/moment/moment/issues/1429) fixes [#1423](https://github.com/moment/moment/issues/1423) weird chrome-32 bug with js object creation
+ * [#1421](https://github.com/moment/moment/issues/1421) remove html entities from Welsh
+ * [#1418](https://github.com/moment/moment/issues/1418) fixes [#1401](https://github.com/moment/moment/issues/1401) improved non-padded tokens in strict matching
+ * [#1417](https://github.com/moment/moment/issues/1417) fixes [#1404](https://github.com/moment/moment/issues/1404) handle buggy moment object created by property cloning
+ * [#1398](https://github.com/moment/moment/issues/1398) fixes [#1397](https://github.com/moment/moment/issues/1397) fix Arabic-like week number parsing
+ * [#1396](https://github.com/moment/moment/issues/1396) add leftZeroFill(4) to GGGG and gggg formats
+ * [#1373](https://github.com/moment/moment/issues/1373) use lowercase for months and days in Catalan
+
+* testing
+ * [#1374](https://github.com/moment/moment/issues/1374) run tests on multiple browser/os combos via SauceLabs and Travis
+
+### 2.5.0 [See changelog](https://gist.github.com/ichernev/8104451)
+
+* New languages
+ * Luxemburish (lb) [1247](https://github.com/moment/moment/issues/1247)
+ * Serbian (rs) [1319](https://github.com/moment/moment/issues/1319)
+ * Tamil (ta) [1324](https://github.com/moment/moment/issues/1324)
+ * Macedonian (mk) [1337](https://github.com/moment/moment/issues/1337)
+
+* Features
+ * [1311](https://github.com/moment/moment/issues/1311) Add quarter getter and format token `Q`
+ * [1303](https://github.com/moment/moment/issues/1303) strict parsing now respects number of digits per token (fix [1196](https://github.com/moment/moment/issues/1196))
+ * 0d30bb7 add jspm support
+ * [1347](https://github.com/moment/moment/issues/1347) improve zone parsing
+ * [1362](https://github.com/moment/moment/issues/1362) support merideam parsing in Korean
+
+* 22 bugfixes
+
+### 2.4.0
+
+* **Deprecate** globally exported moment, will be removed in next major
+* New languages
+ * Farose (fo) [#1206](https://github.com/moment/moment/issues/1206)
+ * Tagalog/Filipino (tl-ph) [#1197](https://github.com/moment/moment/issues/1197)
+ * Welsh (cy) [#1215](https://github.com/moment/moment/issues/1215)
+* Bugfixes
+ * properly handle Z at the end of iso RegExp [#1187](https://github.com/moment/moment/issues/1187)
+ * chinese meridian time improvements [#1076](https://github.com/moment/moment/issues/1076)
+ * fix language tests [#1177](https://github.com/moment/moment/issues/1177)
+ * remove some failing tests (that should have never existed :))
+ [#1185](https://github.com/moment/moment/issues/1185)
+ [#1183](https://github.com/moment/moment/issues/1183)
+ * handle russian noun cases in weird cases [#1195](https://github.com/moment/moment/issues/1195)
+
+### 2.3.1
+
+Removed a trailing comma [1169] and fixed a bug with `months`, `weekdays` getters [#1171](https://github.com/moment/moment/issues/1171).
+
+### 2.3.0 [See changelog](https://gist.github.com/ichernev/6864354)
+
+Changed isValid, added strict parsing.
+Week tokens parsing.
+
+### 2.2.1
+
+Fixed bug in string prototype test.
+Updated authors and contributors.
+
+### 2.2.0 [See changelog](https://gist.github.com/ichernev/00f837a9baf46a3565e4)
+
+Added bower support.
+
+Language files now use UMD.
+
+Creating moment defaults to current date/month/year.
+
+Added a bundle of moment and all language files.
+
+### 2.1.0 [See changelog](https://gist.github.com/timrwood/b8c2d90d528eddb53ab5)
+
+Added better week support.
+
+Added ability to set offset with `moment#zone`.
+
+Added ability to set month or weekday from a string.
+
+Added `moment#min` and `moment#max`
+
+### 2.0.0 [See changelog](https://gist.github.com/timrwood/e72f2eef320ed9e37c51)
+
+Added short form localized tokens.
+
+Added ability to define language a string should be parsed in.
+
+Added support for reversed add/subtract arguments.
+
+Added support for `endOf('week')` and `startOf('week')`.
+
+Fixed the logic for `moment#diff(Moment, 'months')` and `moment#diff(Moment, 'years')`
+
+`moment#diff` now floors instead of rounds.
+
+Normalized `moment#toString`.
+
+Added `isSame`, `isAfter`, and `isBefore` methods.
+
+Added better week support.
+
+Added `moment#toJSON`
+
+Bugfix: Fixed parsing of first century dates
+
+Bugfix: Parsing 10Sep2001 should work as expected
+
+Bugfix: Fixed weirdness with `moment.utc()` parsing.
+
+Changed language ordinal method to return the number + ordinal instead of just the ordinal.
+
+Changed two digit year parsing cutoff to match strptime.
+
+Removed `moment#sod` and `moment#eod` in favor of `moment#startOf` and `moment#endOf`.
+
+Removed `moment.humanizeDuration()` in favor of `moment.duration().humanize()`.
+
+Removed the lang data objects from the top level namespace.
+
+Duplicate `Date` passed to `moment()` instead of referencing it.
+
+### 1.7.2 [See discussion](https://github.com/timrwood/moment/issues/456)
+
+Bugfixes
+
+### 1.7.1 [See discussion](https://github.com/timrwood/moment/issues/384)
+
+Bugfixes
+
+### 1.7.0 [See discussion](https://github.com/timrwood/moment/issues/288)
+
+Added `moment.fn.endOf()` and `moment.fn.startOf()`.
+
+Added validation via `moment.fn.isValid()`.
+
+Made formatting method 3x faster. http://jsperf.com/momentjs-cached-format-functions
+
+Add support for month/weekday callbacks in `moment.fn.format()`
+
+Added instance specific languages.
+
+Added two letter weekday abbreviations with the formatting token `dd`.
+
+Various language updates.
+
+Various bugfixes.
+
+### 1.6.0 [See discussion](https://github.com/timrwood/moment/pull/268)
+
+Added Durations.
+
+Revamped parser to support parsing non-separated strings (YYYYMMDD vs YYYY-MM-DD).
+
+Added support for millisecond parsing and formatting tokens (S SS SSS)
+
+Added a getter for `moment.lang()`
+
+Various bugfixes.
+
+There are a few things deprecated in the 1.6.0 release.
+
+1. The format tokens `z` and `zz` (timezone abbreviations like EST CST MST etc) will no longer be supported. Due to inconsistent browser support, we are unable to consistently produce this value. See [this issue](https://github.com/timrwood/moment/issues/162) for more background.
+
+2. The method `moment.fn.native` is deprecated in favor of `moment.fn.toDate`. There continue to be issues with Google Closure Compiler throwing errors when using `native`, even in valid instances.
+
+3. The way to customize am/pm strings is being changed. This would only affect you if you created a custom language file. For more information, see [this issue](https://github.com/timrwood/moment/pull/222).
+
+### 1.5.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=10&page=1&state=closed)
+
+Added UTC mode.
+
+Added automatic ISO8601 parsing.
+
+Various bugfixes.
+
+### 1.4.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=8&state=closed)
+
+Added `moment.fn.toDate` as a replacement for `moment.fn.native`.
+
+Added `moment.fn.sod` and `moment.fn.eod` to get the start and end of day.
+
+Various bugfixes.
+
+### 1.3.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=7&state=closed)
+
+Added support for parsing month names in the current language.
+
+Added escape blocks for parsing tokens.
+
+Added `moment.fn.calendar` to format strings like 'Today 2:30 PM', 'Tomorrow 1:25 AM', and 'Last Sunday 4:30 AM'.
+
+Added `moment.fn.day` as a setter.
+
+Various bugfixes
+
+### 1.2.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=4&state=closed)
+
+Added timezones to parser and formatter.
+
+Added `moment.fn.isDST`.
+
+Added `moment.fn.zone` to get the timezone offset in minutes.
+
+### 1.1.2 [See milestone](https://github.com/timrwood/moment/issues?milestone=6&state=closed)
+
+Various bugfixes
+
+### 1.1.1 [See milestone](https://github.com/timrwood/moment/issues?milestone=5&state=closed)
+
+Added time specific diffs (months, days, hours, etc)
+
+### 1.1.0
+
+Added `moment.fn.format` localized masks. 'L LL LLL LLLL' [issue 29](https://github.com/timrwood/moment/pull/29)
+
+Fixed [issue 31](https://github.com/timrwood/moment/pull/31).
+
+### 1.0.1
+
+Added `moment.version` to get the current version.
+
+Removed `window !== undefined` when checking if module exists to support browserify. [issue 25](https://github.com/timrwood/moment/pull/25)
+
+### 1.0.0
+
+Added convenience methods for getting and setting date parts.
+
+Added better support for `moment.add()`.
+
+Added better lang support in NodeJS.
+
+Renamed library from underscore.date to Moment.js
+
+### 0.6.1
+
+Added Portuguese, Italian, and French language support
+
+### 0.6.0
+
+Added _date.lang() support.
+Added support for passing multiple formats to try to parse a date. _date("07-10-1986", ["MM-DD-YYYY", "YYYY-MM-DD"]);
+Made parse from string and single format 25% faster.
+
+### 0.5.2
+
+Bugfix for [issue 8](https://github.com/timrwood/underscore.date/pull/8) and [issue 9](https://github.com/timrwood/underscore.date/pull/9).
+
+### 0.5.1
+
+Bugfix for [issue 5](https://github.com/timrwood/underscore.date/pull/5).
+
+### 0.5.0
+
+Dropped the redundant `_date.date()` in favor of `_date()`.
+Removed `_date.now()`, as it is a duplicate of `_date()` with no parameters.
+Removed `_date.isLeapYear(yearNumber)`. Use `_date([yearNumber]).isLeapYear()` instead.
+Exposed customization options through the `_date.relativeTime`, `_date.weekdays`, `_date.weekdaysShort`, `_date.months`, `_date.monthsShort`, and `_date.ordinal` variables instead of the `_date.customize()` function.
+
+### 0.4.1
+
+Added date input formats for input strings.
+
+### 0.4.0
+
+Added underscore.date to npm. Removed dependencies on underscore.
+
+### 0.3.2
+
+Added `'z'` and `'zz'` to `_.date().format()`. Cleaned up some redundant code to trim off some bytes.
+
+### 0.3.1
+
+Cleaned up the namespace. Moved all date manipulation and display functions to the _.date() object.
+
+### 0.3.0
+
+Switched to the Underscore methodology of not mucking with the native objects' prototypes.
+Made chaining possible.
+
+### 0.2.1
+
+Changed date names to be a more pseudo standardized 'dddd, MMMM Do YYYY, h:mm:ss a'.
+Added `Date.prototype` functions `add`, `subtract`, `isdst`, and `isleapyear`.
+
+### 0.2.0
+
+Changed function names to be more concise.
+Changed date format from php date format to custom format.
+
+### 0.1.0
+
+Initial release
+
diff --git a/node_modules/moment/LICENSE b/node_modules/moment/LICENSE
new file mode 100644
index 0000000..9ee5374
--- /dev/null
+++ b/node_modules/moment/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) 2011-2016 Tim Wood, Iskren Chernev, Moment.js contributors
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/moment/README.md b/node_modules/moment/README.md
new file mode 100644
index 0000000..6193e5e
--- /dev/null
+++ b/node_modules/moment/README.md
@@ -0,0 +1,58 @@
+[![Join the chat at https://gitter.im/moment/moment](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/moment/moment?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
+[![NPM version][npm-version-image]][npm-url] [![NPM downloads][npm-downloads-image]][npm-url] [![MIT License][license-image]][license-url] [![Build Status][travis-image]][travis-url]
+[![Coverage Status](https://coveralls.io/repos/moment/moment/badge.svg?branch=develop)](https://coveralls.io/r/moment/moment?branch=develop)
+
+A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates.
+
+## [Documentation](http://momentjs.com/docs/)
+
+## Port to ECMAScript 6 (version 2.10.0)
+
+Moment 2.10.0 does not bring any new features, but the code is now written in
+ECMAScript 6 modules and placed inside `src/`. Previously `moment.js`, `locale/*.js` and
+`test/moment/*.js`, `test/locale/*.js` contained the source of the project. Now
+the source is in `src/`, temporary build (ECMAScript 5) files are placed under
+`build/umd/` (for running tests during development), and the `moment.js` and
+`locale/*.js` files are updated only on release.
+
+If you want to use a particular revision of the code, make sure to run
+`grunt transpile update-index`, so `moment.js` and `locales/*.js` are synced
+with `src/*`. We might place that in a commit hook in the future.
+
+## Upgrading to 2.0.0
+
+There are a number of small backwards incompatible changes with version 2.0.0. [See the full descriptions here](https://gist.github.com/timrwood/e72f2eef320ed9e37c51#backwards-incompatible-changes)
+
+ * Changed language ordinal method to return the number + ordinal instead of just the ordinal.
+
+ * Changed two digit year parsing cutoff to match strptime.
+
+ * Removed `moment#sod` and `moment#eod` in favor of `moment#startOf` and `moment#endOf`.
+
+ * Removed `moment.humanizeDuration()` in favor of `moment.duration().humanize()`.
+
+ * Removed the lang data objects from the top level namespace.
+
+ * Duplicate `Date` passed to `moment()` instead of referencing it.
+
+## [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
+
+## [Contributing](https://github.com/moment/moment/blob/develop/CONTRIBUTING.md)
+
+We're looking for co-maintainers! If you want to become a master of time please
+write to [ichernev](https://github.com/ichernev).
+
+## License
+
+Moment.js is freely distributable under the terms of the [MIT license](https://github.com/moment/moment/blob/develop/LICENSE).
+
+[license-image]: http://img.shields.io/badge/license-MIT-blue.svg?style=flat
+[license-url]: LICENSE
+
+[npm-url]: https://npmjs.org/package/moment
+[npm-version-image]: http://img.shields.io/npm/v/moment.svg?style=flat
+[npm-downloads-image]: http://img.shields.io/npm/dm/moment.svg?style=flat
+
+[travis-url]: http://travis-ci.org/moment/moment
+[travis-image]: http://img.shields.io/travis/moment/moment/develop.svg?style=flat
diff --git a/node_modules/moment/ender.js b/node_modules/moment/ender.js
new file mode 100644
index 0000000..71462a7
--- /dev/null
+++ b/node_modules/moment/ender.js
@@ -0,0 +1 @@
+$.ender({ moment: require('moment') })
diff --git a/node_modules/moment/locale/af.js b/node_modules/moment/locale/af.js
new file mode 100644
index 0000000..1a96bf4
--- /dev/null
+++ b/node_modules/moment/locale/af.js
@@ -0,0 +1,73 @@
+//! moment.js locale configuration
+//! locale : afrikaans (af)
+//! author : Werner Mollentze : https://github.com/wernerm
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var af = moment.defineLocale('af', {
+ months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
+ weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
+ weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
+ weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
+ meridiemParse: /vm|nm/i,
+ isPM : function (input) {
+ return /^nm$/i.test(input);
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower ? 'vm' : 'VM';
+ } else {
+ return isLower ? 'nm' : 'NM';
+ }
+ },
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Vandag om] LT',
+ nextDay : '[Môre om] LT',
+ nextWeek : 'dddd [om] LT',
+ lastDay : '[Gister om] LT',
+ lastWeek : '[Laas] dddd [om] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'oor %s',
+ past : '%s gelede',
+ s : '\'n paar sekondes',
+ m : '\'n minuut',
+ mm : '%d minute',
+ h : '\'n uur',
+ hh : '%d ure',
+ d : '\'n dag',
+ dd : '%d dae',
+ M : '\'n maand',
+ MM : '%d maande',
+ y : '\'n jaar',
+ yy : '%d jaar'
+ },
+ ordinalParse: /\d{1,2}(ste|de)/,
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
+ },
+ week : {
+ dow : 1, // Maandag is die eerste dag van die week.
+ doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
+ }
+ });
+
+ return af;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ar-ma.js b/node_modules/moment/locale/ar-ma.js
new file mode 100644
index 0000000..9bddd5a
--- /dev/null
+++ b/node_modules/moment/locale/ar-ma.js
@@ -0,0 +1,59 @@
+//! moment.js locale configuration
+//! locale : Moroccan Arabic (ar-ma)
+//! author : ElFadili Yassine : https://github.com/ElFadiliY
+//! author : Abdel Said : https://github.com/abdelsaid
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var ar_ma = moment.defineLocale('ar-ma', {
+ months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+ monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+ weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'في %s',
+ past : 'منذ %s',
+ s : 'ثوان',
+ m : 'دقيقة',
+ mm : '%d دقائق',
+ h : 'ساعة',
+ hh : '%d ساعات',
+ d : 'يوم',
+ dd : '%d أيام',
+ M : 'شهر',
+ MM : '%d أشهر',
+ y : 'سنة',
+ yy : '%d سنوات'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return ar_ma;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ar-sa.js b/node_modules/moment/locale/ar-sa.js
new file mode 100644
index 0000000..7541c52
--- /dev/null
+++ b/node_modules/moment/locale/ar-sa.js
@@ -0,0 +1,103 @@
+//! moment.js locale configuration
+//! locale : Arabic Saudi Arabia (ar-sa)
+//! author : Suhail Alkowaileet : https://github.com/xsoh
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var symbolMap = {
+ '1': '١',
+ '2': '٢',
+ '3': '٣',
+ '4': '٤',
+ '5': '٥',
+ '6': '٦',
+ '7': '٧',
+ '8': '٨',
+ '9': '٩',
+ '0': '٠'
+ }, numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0'
+ };
+
+ var ar_sa = moment.defineLocale('ar-sa', {
+ months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /ص|م/,
+ isPM : function (input) {
+ return 'م' === input;
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar : {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'في %s',
+ past : 'منذ %s',
+ s : 'ثوان',
+ m : 'دقيقة',
+ mm : '%d دقائق',
+ h : 'ساعة',
+ hh : '%d ساعات',
+ d : 'يوم',
+ dd : '%d أيام',
+ M : 'شهر',
+ MM : '%d أشهر',
+ y : 'سنة',
+ yy : '%d سنوات'
+ },
+ preparse: function (string) {
+ return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
+ return numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return ar_sa;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ar-tn.js b/node_modules/moment/locale/ar-tn.js
new file mode 100644
index 0000000..b4ee8fc
--- /dev/null
+++ b/node_modules/moment/locale/ar-tn.js
@@ -0,0 +1,57 @@
+//! moment.js locale configuration
+//! locale : Tunisian Arabic (ar-tn)
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var ar_tn = moment.defineLocale('ar-tn', {
+ months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: 'في %s',
+ past: 'منذ %s',
+ s: 'ثوان',
+ m: 'دقيقة',
+ mm: '%d دقائق',
+ h: 'ساعة',
+ hh: '%d ساعات',
+ d: 'يوم',
+ dd: '%d أيام',
+ M: 'شهر',
+ MM: '%d أشهر',
+ y: 'سنة',
+ yy: '%d سنوات'
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return ar_tn;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ar.js b/node_modules/moment/locale/ar.js
new file mode 100644
index 0000000..3613c59
--- /dev/null
+++ b/node_modules/moment/locale/ar.js
@@ -0,0 +1,136 @@
+//! moment.js locale configuration
+//! Locale: Arabic (ar)
+//! Author: Abdel Said: https://github.com/abdelsaid
+//! Changes in months, weekdays: Ahmed Elkhatib
+//! Native plural forms: forabi https://github.com/forabi
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var symbolMap = {
+ '1': '١',
+ '2': '٢',
+ '3': '٣',
+ '4': '٤',
+ '5': '٥',
+ '6': '٦',
+ '7': '٧',
+ '8': '٨',
+ '9': '٩',
+ '0': '٠'
+ }, numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0'
+ }, pluralForm = function (n) {
+ return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
+ }, plurals = {
+ s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
+ m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
+ h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
+ d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
+ M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
+ y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
+ }, pluralize = function (u) {
+ return function (number, withoutSuffix, string, isFuture) {
+ var f = pluralForm(number),
+ str = plurals[u][pluralForm(number)];
+ if (f === 2) {
+ str = str[withoutSuffix ? 0 : 1];
+ }
+ return str.replace(/%d/i, number);
+ };
+ }, months = [
+ 'كانون الثاني يناير',
+ 'شباط فبراير',
+ 'آذار مارس',
+ 'نيسان أبريل',
+ 'أيار مايو',
+ 'حزيران يونيو',
+ 'تموز يوليو',
+ 'آب أغسطس',
+ 'أيلول سبتمبر',
+ 'تشرين الأول أكتوبر',
+ 'تشرين الثاني نوفمبر',
+ 'كانون الأول ديسمبر'
+ ];
+
+ var ar = moment.defineLocale('ar', {
+ months : months,
+ monthsShort : months,
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'D/\u200FM/\u200FYYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /ص|م/,
+ isPM : function (input) {
+ return 'م' === input;
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar : {
+ sameDay: '[اليوم عند الساعة] LT',
+ nextDay: '[غدًا عند الساعة] LT',
+ nextWeek: 'dddd [عند الساعة] LT',
+ lastDay: '[أمس عند الساعة] LT',
+ lastWeek: 'dddd [عند الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'بعد %s',
+ past : 'منذ %s',
+ s : pluralize('s'),
+ m : pluralize('m'),
+ mm : pluralize('m'),
+ h : pluralize('h'),
+ hh : pluralize('h'),
+ d : pluralize('d'),
+ dd : pluralize('d'),
+ M : pluralize('M'),
+ MM : pluralize('M'),
+ y : pluralize('y'),
+ yy : pluralize('y')
+ },
+ preparse: function (string) {
+ return string.replace(/\u200f/g, '').replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
+ return numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return ar;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/az.js b/node_modules/moment/locale/az.js
new file mode 100644
index 0000000..5ff9b08
--- /dev/null
+++ b/node_modules/moment/locale/az.js
@@ -0,0 +1,104 @@
+//! moment.js locale configuration
+//! locale : azerbaijani (az)
+//! author : topchiyev : https://github.com/topchiyev
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var suffixes = {
+ 1: '-inci',
+ 5: '-inci',
+ 8: '-inci',
+ 70: '-inci',
+ 80: '-inci',
+ 2: '-nci',
+ 7: '-nci',
+ 20: '-nci',
+ 50: '-nci',
+ 3: '-üncü',
+ 4: '-üncü',
+ 100: '-üncü',
+ 6: '-ncı',
+ 9: '-uncu',
+ 10: '-uncu',
+ 30: '-uncu',
+ 60: '-ıncı',
+ 90: '-ıncı'
+ };
+
+ var az = moment.defineLocale('az', {
+ months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
+ monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
+ weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
+ weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
+ weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[bugün saat] LT',
+ nextDay : '[sabah saat] LT',
+ nextWeek : '[gələn həftə] dddd [saat] LT',
+ lastDay : '[dünən] LT',
+ lastWeek : '[keçən həftə] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s sonra',
+ past : '%s əvvəl',
+ s : 'birneçə saniyyə',
+ m : 'bir dəqiqə',
+ mm : '%d dəqiqə',
+ h : 'bir saat',
+ hh : '%d saat',
+ d : 'bir gün',
+ dd : '%d gün',
+ M : 'bir ay',
+ MM : '%d ay',
+ y : 'bir il',
+ yy : '%d il'
+ },
+ meridiemParse: /gecə|səhər|gündüz|axşam/,
+ isPM : function (input) {
+ return /^(gündüz|axşam)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'gecə';
+ } else if (hour < 12) {
+ return 'səhər';
+ } else if (hour < 17) {
+ return 'gündüz';
+ } else {
+ return 'axşam';
+ }
+ },
+ ordinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
+ ordinal : function (number) {
+ if (number === 0) { // special case for zero
+ return number + '-ıncı';
+ }
+ var a = number % 10,
+ b = number % 100 - a,
+ c = number >= 100 ? 100 : null;
+ return number + (suffixes[a] || suffixes[b] || suffixes[c]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return az;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/be.js b/node_modules/moment/locale/be.js
new file mode 100644
index 0000000..c6294b3
--- /dev/null
+++ b/node_modules/moment/locale/be.js
@@ -0,0 +1,134 @@
+//! moment.js locale configuration
+//! locale : belarusian (be)
+//! author : Dmitry Demidov : https://github.com/demidov91
+//! author: Praleska: http://praleska.pro/
+//! Author : Menelion Elensúle : https://github.com/Oire
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
+ 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
+ 'dd': 'дзень_дні_дзён',
+ 'MM': 'месяц_месяцы_месяцаў',
+ 'yy': 'год_гады_гадоў'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'хвіліна' : 'хвіліну';
+ }
+ else if (key === 'h') {
+ return withoutSuffix ? 'гадзіна' : 'гадзіну';
+ }
+ else {
+ return number + ' ' + plural(format[key], +number);
+ }
+ }
+
+ var be = moment.defineLocale('be', {
+ months : {
+ format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),
+ standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')
+ },
+ monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
+ weekdays : {
+ format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),
+ standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
+ isFormat: /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/
+ },
+ weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+ weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY г.',
+ LLL : 'D MMMM YYYY г., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY г., HH:mm'
+ },
+ calendar : {
+ sameDay: '[Сёння ў] LT',
+ nextDay: '[Заўтра ў] LT',
+ lastDay: '[Учора ў] LT',
+ nextWeek: function () {
+ return '[У] dddd [ў] LT';
+ },
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 5:
+ case 6:
+ return '[У мінулую] dddd [ў] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[У мінулы] dddd [ў] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'праз %s',
+ past : '%s таму',
+ s : 'некалькі секунд',
+ m : relativeTimeWithPlural,
+ mm : relativeTimeWithPlural,
+ h : relativeTimeWithPlural,
+ hh : relativeTimeWithPlural,
+ d : 'дзень',
+ dd : relativeTimeWithPlural,
+ M : 'месяц',
+ MM : relativeTimeWithPlural,
+ y : 'год',
+ yy : relativeTimeWithPlural
+ },
+ meridiemParse: /ночы|раніцы|дня|вечара/,
+ isPM : function (input) {
+ return /^(дня|вечара)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночы';
+ } else if (hour < 12) {
+ return 'раніцы';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечара';
+ }
+ },
+ ordinalParse: /\d{1,2}-(і|ы|га)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ case 'w':
+ case 'W':
+ return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
+ case 'D':
+ return number + '-га';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return be;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/bg.js b/node_modules/moment/locale/bg.js
new file mode 100644
index 0000000..169e123
--- /dev/null
+++ b/node_modules/moment/locale/bg.js
@@ -0,0 +1,90 @@
+//! moment.js locale configuration
+//! locale : bulgarian (bg)
+//! author : Krasen Borisov : https://github.com/kraz
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var bg = moment.defineLocale('bg', {
+ months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
+ monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
+ weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
+ weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
+ weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'D.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd, D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[Днес в] LT',
+ nextDay : '[Утре в] LT',
+ nextWeek : 'dddd [в] LT',
+ lastDay : '[Вчера в] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[В изминалата] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[В изминалия] dddd [в] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'след %s',
+ past : 'преди %s',
+ s : 'няколко секунди',
+ m : 'минута',
+ mm : '%d минути',
+ h : 'час',
+ hh : '%d часа',
+ d : 'ден',
+ dd : '%d дни',
+ M : 'месец',
+ MM : '%d месеца',
+ y : 'година',
+ yy : '%d години'
+ },
+ ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
+ ordinal : function (number) {
+ var lastDigit = number % 10,
+ last2Digits = number % 100;
+ if (number === 0) {
+ return number + '-ев';
+ } else if (last2Digits === 0) {
+ return number + '-ен';
+ } else if (last2Digits > 10 && last2Digits < 20) {
+ return number + '-ти';
+ } else if (lastDigit === 1) {
+ return number + '-ви';
+ } else if (lastDigit === 2) {
+ return number + '-ри';
+ } else if (lastDigit === 7 || lastDigit === 8) {
+ return number + '-ми';
+ } else {
+ return number + '-ти';
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return bg;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/bn.js b/node_modules/moment/locale/bn.js
new file mode 100644
index 0000000..4eca5ee
--- /dev/null
+++ b/node_modules/moment/locale/bn.js
@@ -0,0 +1,113 @@
+//! moment.js locale configuration
+//! locale : Bengali (bn)
+//! author : Kaushik Gandhi : https://github.com/kaushikgandhi
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var symbolMap = {
+ '1': '১',
+ '2': '২',
+ '3': '৩',
+ '4': '৪',
+ '5': '৫',
+ '6': '৬',
+ '7': '৭',
+ '8': '৮',
+ '9': '৯',
+ '0': '০'
+ },
+ numberMap = {
+ '১': '1',
+ '২': '2',
+ '৩': '3',
+ '৪': '4',
+ '৫': '5',
+ '৬': '6',
+ '৭': '7',
+ '৮': '8',
+ '৯': '9',
+ '০': '0'
+ };
+
+ var bn = moment.defineLocale('bn', {
+ months : 'জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
+ monthsShort : 'জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্'.split('_'),
+ weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রবার_শনিবার'.split('_'),
+ weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্র_শনি'.split('_'),
+ weekdaysMin : 'রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm সময়',
+ LTS : 'A h:mm:ss সময়',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm সময়',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'
+ },
+ calendar : {
+ sameDay : '[আজ] LT',
+ nextDay : '[আগামীকাল] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[গতকাল] LT',
+ lastWeek : '[গত] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s পরে',
+ past : '%s আগে',
+ s : 'কয়েক সেকেন্ড',
+ m : 'এক মিনিট',
+ mm : '%d মিনিট',
+ h : 'এক ঘন্টা',
+ hh : '%d ঘন্টা',
+ d : 'এক দিন',
+ dd : '%d দিন',
+ M : 'এক মাস',
+ MM : '%d মাস',
+ y : 'এক বছর',
+ yy : '%d বছর'
+ },
+ preparse: function (string) {
+ return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
+ isPM: function (input) {
+ return /^(দুপুর|বিকাল|রাত)$/.test(input);
+ },
+ //Bengali is a vast language its spoken
+ //in different forms in various parts of the world.
+ //I have just generalized with most common one used
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'রাত';
+ } else if (hour < 10) {
+ return 'সকাল';
+ } else if (hour < 17) {
+ return 'দুপুর';
+ } else if (hour < 20) {
+ return 'বিকাল';
+ } else {
+ return 'রাত';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return bn;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/bo.js b/node_modules/moment/locale/bo.js
new file mode 100644
index 0000000..3ab3389
--- /dev/null
+++ b/node_modules/moment/locale/bo.js
@@ -0,0 +1,110 @@
+//! moment.js locale configuration
+//! locale : tibetan (bo)
+//! author : Thupten N. Chakrishar : https://github.com/vajradog
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var symbolMap = {
+ '1': '༡',
+ '2': '༢',
+ '3': '༣',
+ '4': '༤',
+ '5': '༥',
+ '6': '༦',
+ '7': '༧',
+ '8': '༨',
+ '9': '༩',
+ '0': '༠'
+ },
+ numberMap = {
+ '༡': '1',
+ '༢': '2',
+ '༣': '3',
+ '༤': '4',
+ '༥': '5',
+ '༦': '6',
+ '༧': '7',
+ '༨': '8',
+ '༩': '9',
+ '༠': '0'
+ };
+
+ var bo = moment.defineLocale('bo', {
+ months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
+ monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
+ weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
+ weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
+ weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm',
+ LTS : 'A h:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm'
+ },
+ calendar : {
+ sameDay : '[དི་རིང] LT',
+ nextDay : '[སང་ཉིན] LT',
+ nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
+ lastDay : '[ཁ་སང] LT',
+ lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s ལ་',
+ past : '%s སྔན་ལ',
+ s : 'ལམ་སང',
+ m : 'སྐར་མ་གཅིག',
+ mm : '%d སྐར་མ',
+ h : 'ཆུ་ཚོད་གཅིག',
+ hh : '%d ཆུ་ཚོད',
+ d : 'ཉིན་གཅིག',
+ dd : '%d ཉིན་',
+ M : 'ཟླ་བ་གཅིག',
+ MM : '%d ཟླ་བ',
+ y : 'ལོ་གཅིག',
+ yy : '%d ལོ'
+ },
+ preparse: function (string) {
+ return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
+ isPM: function (input) {
+ return /^(ཉིན་གུང|དགོང་དག|མཚན་མོ)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'མཚན་མོ';
+ } else if (hour < 10) {
+ return 'ཞོགས་ཀས';
+ } else if (hour < 17) {
+ return 'ཉིན་གུང';
+ } else if (hour < 20) {
+ return 'དགོང་དག';
+ } else {
+ return 'མཚན་མོ';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return bo;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/br.js b/node_modules/moment/locale/br.js
new file mode 100644
index 0000000..2896cfb
--- /dev/null
+++ b/node_modules/moment/locale/br.js
@@ -0,0 +1,107 @@
+//! moment.js locale configuration
+//! locale : breton (br)
+//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function relativeTimeWithMutation(number, withoutSuffix, key) {
+ var format = {
+ 'mm': 'munutenn',
+ 'MM': 'miz',
+ 'dd': 'devezh'
+ };
+ return number + ' ' + mutation(format[key], number);
+ }
+ function specialMutationForYears(number) {
+ switch (lastNumber(number)) {
+ case 1:
+ case 3:
+ case 4:
+ case 5:
+ case 9:
+ return number + ' bloaz';
+ default:
+ return number + ' vloaz';
+ }
+ }
+ function lastNumber(number) {
+ if (number > 9) {
+ return lastNumber(number % 10);
+ }
+ return number;
+ }
+ function mutation(text, number) {
+ if (number === 2) {
+ return softMutation(text);
+ }
+ return text;
+ }
+ function softMutation(text) {
+ var mutationTable = {
+ 'm': 'v',
+ 'b': 'v',
+ 'd': 'z'
+ };
+ if (mutationTable[text.charAt(0)] === undefined) {
+ return text;
+ }
+ return mutationTable[text.charAt(0)] + text.substring(1);
+ }
+
+ var br = moment.defineLocale('br', {
+ months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
+ monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
+ weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
+ weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
+ weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h[e]mm A',
+ LTS : 'h[e]mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D [a viz] MMMM YYYY',
+ LLL : 'D [a viz] MMMM YYYY h[e]mm A',
+ LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'
+ },
+ calendar : {
+ sameDay : '[Hiziv da] LT',
+ nextDay : '[Warc\'hoazh da] LT',
+ nextWeek : 'dddd [da] LT',
+ lastDay : '[Dec\'h da] LT',
+ lastWeek : 'dddd [paset da] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'a-benn %s',
+ past : '%s \'zo',
+ s : 'un nebeud segondennoù',
+ m : 'ur vunutenn',
+ mm : relativeTimeWithMutation,
+ h : 'un eur',
+ hh : '%d eur',
+ d : 'un devezh',
+ dd : relativeTimeWithMutation,
+ M : 'ur miz',
+ MM : relativeTimeWithMutation,
+ y : 'ur bloaz',
+ yy : specialMutationForYears
+ },
+ ordinalParse: /\d{1,2}(añ|vet)/,
+ ordinal : function (number) {
+ var output = (number === 1) ? 'añ' : 'vet';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return br;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/bs.js b/node_modules/moment/locale/bs.js
new file mode 100644
index 0000000..e0b3dae
--- /dev/null
+++ b/node_modules/moment/locale/bs.js
@@ -0,0 +1,141 @@
+//! moment.js locale configuration
+//! locale : bosnian (bs)
+//! author : Nedim Cholich : https://github.com/frontyard
+//! based on (hr) translation by Bojan Marković
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ var bs = moment.defineLocale('bs', {
+ months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
+ monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
+ weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
+ weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+ weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[danas u] LT',
+ nextDay : '[sutra u] LT',
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[jučer u] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ return '[prošlu] dddd [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'prije %s',
+ s : 'par sekundi',
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : 'dan',
+ dd : translate,
+ M : 'mjesec',
+ MM : translate,
+ y : 'godinu',
+ yy : translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return bs;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ca.js b/node_modules/moment/locale/ca.js
new file mode 100644
index 0000000..15f75fe
--- /dev/null
+++ b/node_modules/moment/locale/ca.js
@@ -0,0 +1,79 @@
+//! moment.js locale configuration
+//! locale : catalan (ca)
+//! author : Juan G. Hurtado : https://github.com/juanghurtado
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var ca = moment.defineLocale('ca', {
+ months : 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
+ monthsShort : 'gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.'.split('_'),
+ weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
+ weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
+ weekdaysMin : 'Dg_Dl_Dt_Dc_Dj_Dv_Ds'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ nextDay : function () {
+ return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ lastDay : function () {
+ return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ lastWeek : function () {
+ return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'en %s',
+ past : 'fa %s',
+ s : 'uns segons',
+ m : 'un minut',
+ mm : '%d minuts',
+ h : 'una hora',
+ hh : '%d hores',
+ d : 'un dia',
+ dd : '%d dies',
+ M : 'un mes',
+ MM : '%d mesos',
+ y : 'un any',
+ yy : '%d anys'
+ },
+ ordinalParse: /\d{1,2}(r|n|t|è|a)/,
+ ordinal : function (number, period) {
+ var output = (number === 1) ? 'r' :
+ (number === 2) ? 'n' :
+ (number === 3) ? 'r' :
+ (number === 4) ? 't' : 'è';
+ if (period === 'w' || period === 'W') {
+ output = 'a';
+ }
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return ca;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/cs.js b/node_modules/moment/locale/cs.js
new file mode 100644
index 0000000..5854f70
--- /dev/null
+++ b/node_modules/moment/locale/cs.js
@@ -0,0 +1,171 @@
+//! moment.js locale configuration
+//! locale : czech (cs)
+//! author : petrbela : https://github.com/petrbela
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
+ monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
+ function plural(n) {
+ return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
+ }
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'minuty' : 'minut');
+ } else {
+ return result + 'minutami';
+ }
+ break;
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'hodiny' : 'hodin');
+ } else {
+ return result + 'hodinami';
+ }
+ break;
+ case 'd': // a day / in a day / a day ago
+ return (withoutSuffix || isFuture) ? 'den' : 'dnem';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'dny' : 'dní');
+ } else {
+ return result + 'dny';
+ }
+ break;
+ case 'M': // a month / in a month / a month ago
+ return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'měsíce' : 'měsíců');
+ } else {
+ return result + 'měsíci';
+ }
+ break;
+ case 'y': // a year / in a year / a year ago
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'roky' : 'let');
+ } else {
+ return result + 'lety';
+ }
+ break;
+ }
+ }
+
+ var cs = moment.defineLocale('cs', {
+ months : months,
+ monthsShort : monthsShort,
+ monthsParse : (function (months, monthsShort) {
+ var i, _monthsParse = [];
+ for (i = 0; i < 12; i++) {
+ // use custom parser to solve problem with July (červenec)
+ _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
+ }
+ return _monthsParse;
+ }(months, monthsShort)),
+ shortMonthsParse : (function (monthsShort) {
+ var i, _shortMonthsParse = [];
+ for (i = 0; i < 12; i++) {
+ _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');
+ }
+ return _shortMonthsParse;
+ }(monthsShort)),
+ longMonthsParse : (function (months) {
+ var i, _longMonthsParse = [];
+ for (i = 0; i < 12; i++) {
+ _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');
+ }
+ return _longMonthsParse;
+ }(months)),
+ weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
+ weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
+ weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
+ longDateFormat : {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay: '[dnes v] LT',
+ nextDay: '[zítra v] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v neděli v] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [v] LT';
+ case 3:
+ return '[ve středu v] LT';
+ case 4:
+ return '[ve čtvrtek v] LT';
+ case 5:
+ return '[v pátek v] LT';
+ case 6:
+ return '[v sobotu v] LT';
+ }
+ },
+ lastDay: '[včera v] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulou neděli v] LT';
+ case 1:
+ case 2:
+ return '[minulé] dddd [v] LT';
+ case 3:
+ return '[minulou středu v] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [v] LT';
+ case 6:
+ return '[minulou sobotu v] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'před %s',
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinalParse : /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return cs;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/cv.js b/node_modules/moment/locale/cv.js
new file mode 100644
index 0000000..a1d87e1
--- /dev/null
+++ b/node_modules/moment/locale/cv.js
@@ -0,0 +1,63 @@
+//! moment.js locale configuration
+//! locale : chuvash (cv)
+//! author : Anatoly Mironov : https://github.com/mirontoli
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var cv = moment.defineLocale('cv', {
+ months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),
+ monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
+ weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),
+ weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
+ weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
+ LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
+ LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'
+ },
+ calendar : {
+ sameDay: '[Паян] LT [сехетре]',
+ nextDay: '[Ыран] LT [сехетре]',
+ lastDay: '[Ӗнер] LT [сехетре]',
+ nextWeek: '[Ҫитес] dddd LT [сехетре]',
+ lastWeek: '[Иртнӗ] dddd LT [сехетре]',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : function (output) {
+ var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';
+ return output + affix;
+ },
+ past : '%s каялла',
+ s : 'пӗр-ик ҫеккунт',
+ m : 'пӗр минут',
+ mm : '%d минут',
+ h : 'пӗр сехет',
+ hh : '%d сехет',
+ d : 'пӗр кун',
+ dd : '%d кун',
+ M : 'пӗр уйӑх',
+ MM : '%d уйӑх',
+ y : 'пӗр ҫул',
+ yy : '%d ҫул'
+ },
+ ordinalParse: /\d{1,2}-мӗш/,
+ ordinal : '%d-мӗш',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return cv;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/cy.js b/node_modules/moment/locale/cy.js
new file mode 100644
index 0000000..64dfe43
--- /dev/null
+++ b/node_modules/moment/locale/cy.js
@@ -0,0 +1,79 @@
+//! moment.js locale configuration
+//! locale : Welsh (cy)
+//! author : Robert Allen
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var cy = moment.defineLocale('cy', {
+ months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
+ monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
+ weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
+ weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
+ weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
+ // time formats are the same as en-gb
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[Heddiw am] LT',
+ nextDay: '[Yfory am] LT',
+ nextWeek: 'dddd [am] LT',
+ lastDay: '[Ddoe am] LT',
+ lastWeek: 'dddd [diwethaf am] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: 'mewn %s',
+ past: '%s yn ôl',
+ s: 'ychydig eiliadau',
+ m: 'munud',
+ mm: '%d munud',
+ h: 'awr',
+ hh: '%d awr',
+ d: 'diwrnod',
+ dd: '%d diwrnod',
+ M: 'mis',
+ MM: '%d mis',
+ y: 'blwyddyn',
+ yy: '%d flynedd'
+ },
+ ordinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
+ // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
+ ordinal: function (number) {
+ var b = number,
+ output = '',
+ lookup = [
+ '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
+ 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
+ ];
+ if (b > 20) {
+ if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
+ output = 'fed'; // not 30ain, 70ain or 90ain
+ } else {
+ output = 'ain';
+ }
+ } else if (b > 0) {
+ output = lookup[b];
+ }
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return cy;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/da.js b/node_modules/moment/locale/da.js
new file mode 100644
index 0000000..70b4c0d
--- /dev/null
+++ b/node_modules/moment/locale/da.js
@@ -0,0 +1,60 @@
+//! moment.js locale configuration
+//! locale : danish (da)
+//! author : Ulrik Nielsen : https://github.com/mrbase
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var da = moment.defineLocale('da', {
+ months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
+ weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
+ weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY HH:mm',
+ LLLL : 'dddd [d.] D. MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[I dag kl.] LT',
+ nextDay : '[I morgen kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[I går kl.] LT',
+ lastWeek : '[sidste] dddd [kl] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : '%s siden',
+ s : 'få sekunder',
+ m : 'et minut',
+ mm : '%d minutter',
+ h : 'en time',
+ hh : '%d timer',
+ d : 'en dag',
+ dd : '%d dage',
+ M : 'en måned',
+ MM : '%d måneder',
+ y : 'et år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return da;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/de-at.js b/node_modules/moment/locale/de-at.js
new file mode 100644
index 0000000..20da9cf
--- /dev/null
+++ b/node_modules/moment/locale/de-at.js
@@ -0,0 +1,77 @@
+//! moment.js locale configuration
+//! locale : austrian german (de-at)
+//! author : lluchs : https://github.com/lluchs
+//! author: Menelion Elensúle: https://github.com/Oire
+//! author : Martin Groller : https://github.com/MadMG
+//! author : Mikolaj Dadela : https://github.com/mik01aj
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eine Minute', 'einer Minute'],
+ 'h': ['eine Stunde', 'einer Stunde'],
+ 'd': ['ein Tag', 'einem Tag'],
+ 'dd': [number + ' Tage', number + ' Tagen'],
+ 'M': ['ein Monat', 'einem Monat'],
+ 'MM': [number + ' Monate', number + ' Monaten'],
+ 'y': ['ein Jahr', 'einem Jahr'],
+ 'yy': [number + ' Jahre', number + ' Jahren']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ var de_at = moment.defineLocale('de-at', {
+ months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
+ weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+ weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY HH:mm',
+ LLLL : 'dddd, D. MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[heute um] LT [Uhr]',
+ sameElse: 'L',
+ nextDay: '[morgen um] LT [Uhr]',
+ nextWeek: 'dddd [um] LT [Uhr]',
+ lastDay: '[gestern um] LT [Uhr]',
+ lastWeek: '[letzten] dddd [um] LT [Uhr]'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : 'vor %s',
+ s : 'ein paar Sekunden',
+ m : processRelativeTime,
+ mm : '%d Minuten',
+ h : processRelativeTime,
+ hh : '%d Stunden',
+ d : processRelativeTime,
+ dd : processRelativeTime,
+ M : processRelativeTime,
+ MM : processRelativeTime,
+ y : processRelativeTime,
+ yy : processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return de_at;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/de.js b/node_modules/moment/locale/de.js
new file mode 100644
index 0000000..41c81a1
--- /dev/null
+++ b/node_modules/moment/locale/de.js
@@ -0,0 +1,76 @@
+//! moment.js locale configuration
+//! locale : german (de)
+//! author : lluchs : https://github.com/lluchs
+//! author: Menelion Elensúle: https://github.com/Oire
+//! author : Mikolaj Dadela : https://github.com/mik01aj
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eine Minute', 'einer Minute'],
+ 'h': ['eine Stunde', 'einer Stunde'],
+ 'd': ['ein Tag', 'einem Tag'],
+ 'dd': [number + ' Tage', number + ' Tagen'],
+ 'M': ['ein Monat', 'einem Monat'],
+ 'MM': [number + ' Monate', number + ' Monaten'],
+ 'y': ['ein Jahr', 'einem Jahr'],
+ 'yy': [number + ' Jahre', number + ' Jahren']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ var de = moment.defineLocale('de', {
+ months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
+ weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+ weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY HH:mm',
+ LLLL : 'dddd, D. MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[heute um] LT [Uhr]',
+ sameElse: 'L',
+ nextDay: '[morgen um] LT [Uhr]',
+ nextWeek: 'dddd [um] LT [Uhr]',
+ lastDay: '[gestern um] LT [Uhr]',
+ lastWeek: '[letzten] dddd [um] LT [Uhr]'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : 'vor %s',
+ s : 'ein paar Sekunden',
+ m : processRelativeTime,
+ mm : '%d Minuten',
+ h : processRelativeTime,
+ hh : '%d Stunden',
+ d : processRelativeTime,
+ dd : processRelativeTime,
+ M : processRelativeTime,
+ MM : processRelativeTime,
+ y : processRelativeTime,
+ yy : processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return de;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/dv.js b/node_modules/moment/locale/dv.js
new file mode 100644
index 0000000..5fc59b6
--- /dev/null
+++ b/node_modules/moment/locale/dv.js
@@ -0,0 +1,99 @@
+//! moment.js locale configuration
+//! locale : dhivehi (dv)
+//! author : Jawish Hameed : https://github.com/jawish
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var months = [
+ 'ޖެނުއަރީ',
+ 'ފެބްރުއަރީ',
+ 'މާރިޗު',
+ 'އޭޕްރީލު',
+ 'މޭ',
+ 'ޖޫން',
+ 'ޖުލައި',
+ 'އޯގަސްޓު',
+ 'ސެޕްޓެމްބަރު',
+ 'އޮކްޓޯބަރު',
+ 'ނޮވެމްބަރު',
+ 'ޑިސެމްބަރު'
+ ], weekdays = [
+ 'އާދިއްތަ',
+ 'ހޯމަ',
+ 'އަންގާރަ',
+ 'ބުދަ',
+ 'ބުރާސްފަތި',
+ 'ހުކުރު',
+ 'ހޮނިހިރު'
+ ];
+
+ var dv = moment.defineLocale('dv', {
+ months : months,
+ monthsShort : months,
+ weekdays : weekdays,
+ weekdaysShort : weekdays,
+ weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
+ longDateFormat : {
+
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'D/M/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /މކ|މފ/,
+ isPM : function (input) {
+ return '' === input;
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'މކ';
+ } else {
+ return 'މފ';
+ }
+ },
+ calendar : {
+ sameDay : '[މިއަދު] LT',
+ nextDay : '[މާދަމާ] LT',
+ nextWeek : 'dddd LT',
+ lastDay : '[އިއްޔެ] LT',
+ lastWeek : '[ފާއިތުވި] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'ތެރޭގައި %s',
+ past : 'ކުރިން %s',
+ s : 'ސިކުންތުކޮޅެއް',
+ m : 'މިނިޓެއް',
+ mm : 'މިނިޓު %d',
+ h : 'ގަޑިއިރެއް',
+ hh : 'ގަޑިއިރު %d',
+ d : 'ދުވަހެއް',
+ dd : 'ދުވަސް %d',
+ M : 'މަހެއް',
+ MM : 'މަސް %d',
+ y : 'އަހަރެއް',
+ yy : 'އަހަރު %d'
+ },
+ preparse: function (string) {
+ return string.replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/,/g, '،');
+ },
+ week : {
+ dow : 7, // Sunday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return dv;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/el.js b/node_modules/moment/locale/el.js
new file mode 100644
index 0000000..d86666d
--- /dev/null
+++ b/node_modules/moment/locale/el.js
@@ -0,0 +1,98 @@
+//! moment.js locale configuration
+//! locale : modern greek (el)
+//! author : Aggelos Karalias : https://github.com/mehiel
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+ function isFunction(input) {
+ return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
+ }
+
+
+ var el = moment.defineLocale('el', {
+ monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
+ monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
+ months : function (momentToFormat, format) {
+ if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
+ return this._monthsGenitiveEl[momentToFormat.month()];
+ } else {
+ return this._monthsNominativeEl[momentToFormat.month()];
+ }
+ },
+ monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
+ weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
+ weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
+ weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'μμ' : 'ΜΜ';
+ } else {
+ return isLower ? 'πμ' : 'ΠΜ';
+ }
+ },
+ isPM : function (input) {
+ return ((input + '').toLowerCase()[0] === 'μ');
+ },
+ meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendarEl : {
+ sameDay : '[Σήμερα {}] LT',
+ nextDay : '[Αύριο {}] LT',
+ nextWeek : 'dddd [{}] LT',
+ lastDay : '[Χθες {}] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 6:
+ return '[το προηγούμενο] dddd [{}] LT';
+ default:
+ return '[την προηγούμενη] dddd [{}] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ calendar : function (key, mom) {
+ var output = this._calendarEl[key],
+ hours = mom && mom.hours();
+ if (isFunction(output)) {
+ output = output.apply(mom);
+ }
+ return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
+ },
+ relativeTime : {
+ future : 'σε %s',
+ past : '%s πριν',
+ s : 'λίγα δευτερόλεπτα',
+ m : 'ένα λεπτό',
+ mm : '%d λεπτά',
+ h : 'μία ώρα',
+ hh : '%d ώρες',
+ d : 'μία μέρα',
+ dd : '%d μέρες',
+ M : 'ένας μήνας',
+ MM : '%d μήνες',
+ y : 'ένας χρόνος',
+ yy : '%d χρόνια'
+ },
+ ordinalParse: /\d{1,2}η/,
+ ordinal: '%dη',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4st is the first week of the year.
+ }
+ });
+
+ return el;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/en-au.js b/node_modules/moment/locale/en-au.js
new file mode 100644
index 0000000..58608c1
--- /dev/null
+++ b/node_modules/moment/locale/en-au.js
@@ -0,0 +1,66 @@
+//! moment.js locale configuration
+//! locale : australian english (en-au)
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var en_au = moment.defineLocale('en-au', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return en_au;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/en-ca.js b/node_modules/moment/locale/en-ca.js
new file mode 100644
index 0000000..f0ee032
--- /dev/null
+++ b/node_modules/moment/locale/en-ca.js
@@ -0,0 +1,63 @@
+//! moment.js locale configuration
+//! locale : canadian english (en-ca)
+//! author : Jonathan Abourbih : https://github.com/jonbca
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var en_ca = moment.defineLocale('en-ca', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM, YYYY',
+ LLL : 'D MMMM, YYYY h:mm A',
+ LLLL : 'dddd, D MMMM, YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ }
+ });
+
+ return en_ca;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/en-gb.js b/node_modules/moment/locale/en-gb.js
new file mode 100644
index 0000000..47b2c20
--- /dev/null
+++ b/node_modules/moment/locale/en-gb.js
@@ -0,0 +1,67 @@
+//! moment.js locale configuration
+//! locale : great britain english (en-gb)
+//! author : Chris Gedrim : https://github.com/chrisgedrim
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var en_gb = moment.defineLocale('en-gb', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return en_gb;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/en-ie.js b/node_modules/moment/locale/en-ie.js
new file mode 100644
index 0000000..c0ff10c
--- /dev/null
+++ b/node_modules/moment/locale/en-ie.js
@@ -0,0 +1,67 @@
+//! moment.js locale configuration
+//! locale : Irish english (en-ie)
+//! author : Chris Cartlidge : https://github.com/chriscartlidge
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var en_ie = moment.defineLocale('en-ie', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return en_ie;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/en-nz.js b/node_modules/moment/locale/en-nz.js
new file mode 100644
index 0000000..14a50ea
--- /dev/null
+++ b/node_modules/moment/locale/en-nz.js
@@ -0,0 +1,66 @@
+//! moment.js locale configuration
+//! locale : New Zealand english (en-nz)
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var en_nz = moment.defineLocale('en-nz', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return en_nz;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/eo.js b/node_modules/moment/locale/eo.js
new file mode 100644
index 0000000..92772df
--- /dev/null
+++ b/node_modules/moment/locale/eo.js
@@ -0,0 +1,73 @@
+//! moment.js locale configuration
+//! locale : esperanto (eo)
+//! author : Colin Dean : https://github.com/colindean
+//! komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko.
+//! Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni!
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var eo = moment.defineLocale('eo', {
+ months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
+ weekdays : 'Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato'.split('_'),
+ weekdaysShort : 'Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Ĵa_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'D[-an de] MMMM, YYYY',
+ LLL : 'D[-an de] MMMM, YYYY HH:mm',
+ LLLL : 'dddd, [la] D[-an de] MMMM, YYYY HH:mm'
+ },
+ meridiemParse: /[ap]\.t\.m/i,
+ isPM: function (input) {
+ return input.charAt(0).toLowerCase() === 'p';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'p.t.m.' : 'P.T.M.';
+ } else {
+ return isLower ? 'a.t.m.' : 'A.T.M.';
+ }
+ },
+ calendar : {
+ sameDay : '[Hodiaŭ je] LT',
+ nextDay : '[Morgaŭ je] LT',
+ nextWeek : 'dddd [je] LT',
+ lastDay : '[Hieraŭ je] LT',
+ lastWeek : '[pasinta] dddd [je] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'je %s',
+ past : 'antaŭ %s',
+ s : 'sekundoj',
+ m : 'minuto',
+ mm : '%d minutoj',
+ h : 'horo',
+ hh : '%d horoj',
+ d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
+ dd : '%d tagoj',
+ M : 'monato',
+ MM : '%d monatoj',
+ y : 'jaro',
+ yy : '%d jaroj'
+ },
+ ordinalParse: /\d{1,2}a/,
+ ordinal : '%da',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return eo;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/es.js b/node_modules/moment/locale/es.js
new file mode 100644
index 0000000..efb51a3
--- /dev/null
+++ b/node_modules/moment/locale/es.js
@@ -0,0 +1,79 @@
+//! moment.js locale configuration
+//! locale : spanish (es)
+//! author : Julio Napurí : https://github.com/julionc
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
+ monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
+
+ var es = moment.defineLocale('es', {
+ months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return monthsShort[m.month()];
+ } else {
+ return monthsShortDot[m.month()];
+ }
+ },
+ weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+ weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+ weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY H:mm',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ nextDay : function () {
+ return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ lastDay : function () {
+ return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ lastWeek : function () {
+ return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'en %s',
+ past : 'hace %s',
+ s : 'unos segundos',
+ m : 'un minuto',
+ mm : '%d minutos',
+ h : 'una hora',
+ hh : '%d horas',
+ d : 'un día',
+ dd : '%d días',
+ M : 'un mes',
+ MM : '%d meses',
+ y : 'un año',
+ yy : '%d años'
+ },
+ ordinalParse : /\d{1,2}º/,
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return es;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/et.js b/node_modules/moment/locale/et.js
new file mode 100644
index 0000000..09043bf
--- /dev/null
+++ b/node_modules/moment/locale/et.js
@@ -0,0 +1,80 @@
+//! moment.js locale configuration
+//! locale : estonian (et)
+//! author : Henry Kehlmann : https://github.com/madhenry
+//! improvements : Illimar Tambek : https://github.com/ragulka
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
+ 'm' : ['ühe minuti', 'üks minut'],
+ 'mm': [number + ' minuti', number + ' minutit'],
+ 'h' : ['ühe tunni', 'tund aega', 'üks tund'],
+ 'hh': [number + ' tunni', number + ' tundi'],
+ 'd' : ['ühe päeva', 'üks päev'],
+ 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
+ 'MM': [number + ' kuu', number + ' kuud'],
+ 'y' : ['ühe aasta', 'aasta', 'üks aasta'],
+ 'yy': [number + ' aasta', number + ' aastat']
+ };
+ if (withoutSuffix) {
+ return format[key][2] ? format[key][2] : format[key][1];
+ }
+ return isFuture ? format[key][0] : format[key][1];
+ }
+
+ var et = moment.defineLocale('et', {
+ months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
+ monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
+ weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
+ weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
+ weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[Täna,] LT',
+ nextDay : '[Homme,] LT',
+ nextWeek : '[Järgmine] dddd LT',
+ lastDay : '[Eile,] LT',
+ lastWeek : '[Eelmine] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s pärast',
+ past : '%s tagasi',
+ s : processRelativeTime,
+ m : processRelativeTime,
+ mm : processRelativeTime,
+ h : processRelativeTime,
+ hh : processRelativeTime,
+ d : processRelativeTime,
+ dd : '%d päeva',
+ M : processRelativeTime,
+ MM : processRelativeTime,
+ y : processRelativeTime,
+ yy : processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return et;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/eu.js b/node_modules/moment/locale/eu.js
new file mode 100644
index 0000000..52db117
--- /dev/null
+++ b/node_modules/moment/locale/eu.js
@@ -0,0 +1,64 @@
+//! moment.js locale configuration
+//! locale : euskara (eu)
+//! author : Eneko Illarramendi : https://github.com/eillarra
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var eu = moment.defineLocale('eu', {
+ months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
+ monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
+ weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
+ weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
+ weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY[ko] MMMM[ren] D[a]',
+ LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',
+ LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
+ l : 'YYYY-M-D',
+ ll : 'YYYY[ko] MMM D[a]',
+ lll : 'YYYY[ko] MMM D[a] HH:mm',
+ llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'
+ },
+ calendar : {
+ sameDay : '[gaur] LT[etan]',
+ nextDay : '[bihar] LT[etan]',
+ nextWeek : 'dddd LT[etan]',
+ lastDay : '[atzo] LT[etan]',
+ lastWeek : '[aurreko] dddd LT[etan]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s barru',
+ past : 'duela %s',
+ s : 'segundo batzuk',
+ m : 'minutu bat',
+ mm : '%d minutu',
+ h : 'ordu bat',
+ hh : '%d ordu',
+ d : 'egun bat',
+ dd : '%d egun',
+ M : 'hilabete bat',
+ MM : '%d hilabete',
+ y : 'urte bat',
+ yy : '%d urte'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return eu;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/fa.js b/node_modules/moment/locale/fa.js
new file mode 100644
index 0000000..de40e6f
--- /dev/null
+++ b/node_modules/moment/locale/fa.js
@@ -0,0 +1,105 @@
+//! moment.js locale configuration
+//! locale : Persian (fa)
+//! author : Ebrahim Byagowi : https://github.com/ebraminio
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var symbolMap = {
+ '1': '۱',
+ '2': '۲',
+ '3': '۳',
+ '4': '۴',
+ '5': '۵',
+ '6': '۶',
+ '7': '۷',
+ '8': '۸',
+ '9': '۹',
+ '0': '۰'
+ }, numberMap = {
+ '۱': '1',
+ '۲': '2',
+ '۳': '3',
+ '۴': '4',
+ '۵': '5',
+ '۶': '6',
+ '۷': '7',
+ '۸': '8',
+ '۹': '9',
+ '۰': '0'
+ };
+
+ var fa = moment.defineLocale('fa', {
+ months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+ monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+ weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
+ weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
+ weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /قبل از ظهر|بعد از ظهر/,
+ isPM: function (input) {
+ return /بعد از ظهر/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'قبل از ظهر';
+ } else {
+ return 'بعد از ظهر';
+ }
+ },
+ calendar : {
+ sameDay : '[امروز ساعت] LT',
+ nextDay : '[فردا ساعت] LT',
+ nextWeek : 'dddd [ساعت] LT',
+ lastDay : '[دیروز ساعت] LT',
+ lastWeek : 'dddd [پیش] [ساعت] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'در %s',
+ past : '%s پیش',
+ s : 'چندین ثانیه',
+ m : 'یک دقیقه',
+ mm : '%d دقیقه',
+ h : 'یک ساعت',
+ hh : '%d ساعت',
+ d : 'یک روز',
+ dd : '%d روز',
+ M : 'یک ماه',
+ MM : '%d ماه',
+ y : 'یک سال',
+ yy : '%d سال'
+ },
+ preparse: function (string) {
+ return string.replace(/[۰-۹]/g, function (match) {
+ return numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ ordinalParse: /\d{1,2}م/,
+ ordinal : '%dم',
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return fa;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/fi.js b/node_modules/moment/locale/fi.js
new file mode 100644
index 0000000..4f9161b
--- /dev/null
+++ b/node_modules/moment/locale/fi.js
@@ -0,0 +1,107 @@
+//! moment.js locale configuration
+//! locale : finnish (fi)
+//! author : Tarmo Aidantausta : https://github.com/bleadof
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
+ numbersFuture = [
+ 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
+ numbersPast[7], numbersPast[8], numbersPast[9]
+ ];
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = '';
+ switch (key) {
+ case 's':
+ return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
+ case 'm':
+ return isFuture ? 'minuutin' : 'minuutti';
+ case 'mm':
+ result = isFuture ? 'minuutin' : 'minuuttia';
+ break;
+ case 'h':
+ return isFuture ? 'tunnin' : 'tunti';
+ case 'hh':
+ result = isFuture ? 'tunnin' : 'tuntia';
+ break;
+ case 'd':
+ return isFuture ? 'päivän' : 'päivä';
+ case 'dd':
+ result = isFuture ? 'päivän' : 'päivää';
+ break;
+ case 'M':
+ return isFuture ? 'kuukauden' : 'kuukausi';
+ case 'MM':
+ result = isFuture ? 'kuukauden' : 'kuukautta';
+ break;
+ case 'y':
+ return isFuture ? 'vuoden' : 'vuosi';
+ case 'yy':
+ result = isFuture ? 'vuoden' : 'vuotta';
+ break;
+ }
+ result = verbalNumber(number, isFuture) + ' ' + result;
+ return result;
+ }
+ function verbalNumber(number, isFuture) {
+ return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
+ }
+
+ var fi = moment.defineLocale('fi', {
+ months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
+ monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
+ weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
+ weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
+ weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD.MM.YYYY',
+ LL : 'Do MMMM[ta] YYYY',
+ LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',
+ LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
+ l : 'D.M.YYYY',
+ ll : 'Do MMM YYYY',
+ lll : 'Do MMM YYYY, [klo] HH.mm',
+ llll : 'ddd, Do MMM YYYY, [klo] HH.mm'
+ },
+ calendar : {
+ sameDay : '[tänään] [klo] LT',
+ nextDay : '[huomenna] [klo] LT',
+ nextWeek : 'dddd [klo] LT',
+ lastDay : '[eilen] [klo] LT',
+ lastWeek : '[viime] dddd[na] [klo] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s päästä',
+ past : '%s sitten',
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return fi;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/fo.js b/node_modules/moment/locale/fo.js
new file mode 100644
index 0000000..460b6cd
--- /dev/null
+++ b/node_modules/moment/locale/fo.js
@@ -0,0 +1,60 @@
+//! moment.js locale configuration
+//! locale : faroese (fo)
+//! author : Ragnar Johannesen : https://github.com/ragnar123
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var fo = moment.defineLocale('fo', {
+ months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
+ weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
+ weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
+ weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D. MMMM, YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Í dag kl.] LT',
+ nextDay : '[Í morgin kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[Í gjár kl.] LT',
+ lastWeek : '[síðstu] dddd [kl] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'um %s',
+ past : '%s síðani',
+ s : 'fá sekund',
+ m : 'ein minutt',
+ mm : '%d minuttir',
+ h : 'ein tími',
+ hh : '%d tímar',
+ d : 'ein dagur',
+ dd : '%d dagar',
+ M : 'ein mánaði',
+ MM : '%d mánaðir',
+ y : 'eitt ár',
+ yy : '%d ár'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return fo;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/fr-ca.js b/node_modules/moment/locale/fr-ca.js
new file mode 100644
index 0000000..f15ec8d
--- /dev/null
+++ b/node_modules/moment/locale/fr-ca.js
@@ -0,0 +1,58 @@
+//! moment.js locale configuration
+//! locale : canadian french (fr-ca)
+//! author : Jonathan Abourbih : https://github.com/jonbca
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var fr_ca = moment.defineLocale('fr-ca', {
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Aujourd\'hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dans %s',
+ past : 'il y a %s',
+ s : 'quelques secondes',
+ m : 'une minute',
+ mm : '%d minutes',
+ h : 'une heure',
+ hh : '%d heures',
+ d : 'un jour',
+ dd : '%d jours',
+ M : 'un mois',
+ MM : '%d mois',
+ y : 'un an',
+ yy : '%d ans'
+ },
+ ordinalParse: /\d{1,2}(er|e)/,
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : 'e');
+ }
+ });
+
+ return fr_ca;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/fr-ch.js b/node_modules/moment/locale/fr-ch.js
new file mode 100644
index 0000000..9503d80
--- /dev/null
+++ b/node_modules/moment/locale/fr-ch.js
@@ -0,0 +1,62 @@
+//! moment.js locale configuration
+//! locale : swiss french (fr)
+//! author : Gaspard Bucher : https://github.com/gaspard
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var fr_ch = moment.defineLocale('fr-ch', {
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Aujourd\'hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dans %s',
+ past : 'il y a %s',
+ s : 'quelques secondes',
+ m : 'une minute',
+ mm : '%d minutes',
+ h : 'une heure',
+ hh : '%d heures',
+ d : 'un jour',
+ dd : '%d jours',
+ M : 'un mois',
+ MM : '%d mois',
+ y : 'un an',
+ yy : '%d ans'
+ },
+ ordinalParse: /\d{1,2}(er|e)/,
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : 'e');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return fr_ch;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/fr.js b/node_modules/moment/locale/fr.js
new file mode 100644
index 0000000..8ef95c9
--- /dev/null
+++ b/node_modules/moment/locale/fr.js
@@ -0,0 +1,62 @@
+//! moment.js locale configuration
+//! locale : french (fr)
+//! author : John Fischer : https://github.com/jfroffice
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var fr = moment.defineLocale('fr', {
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Aujourd\'hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dans %s',
+ past : 'il y a %s',
+ s : 'quelques secondes',
+ m : 'une minute',
+ mm : '%d minutes',
+ h : 'une heure',
+ hh : '%d heures',
+ d : 'un jour',
+ dd : '%d jours',
+ M : 'un mois',
+ MM : '%d mois',
+ y : 'un an',
+ yy : '%d ans'
+ },
+ ordinalParse: /\d{1,2}(er|)/,
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : '');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return fr;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/fy.js b/node_modules/moment/locale/fy.js
new file mode 100644
index 0000000..d1b709c
--- /dev/null
+++ b/node_modules/moment/locale/fy.js
@@ -0,0 +1,71 @@
+//! moment.js locale configuration
+//! locale : frisian (fy)
+//! author : Robin van der Vliet : https://github.com/robin0van0der0v
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
+ monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
+
+ var fy = moment.defineLocale('fy', {
+ months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return monthsShortWithoutDots[m.month()];
+ } else {
+ return monthsShortWithDots[m.month()];
+ }
+ },
+ weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),
+ weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),
+ weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[hjoed om] LT',
+ nextDay: '[moarn om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[juster om] LT',
+ lastWeek: '[ôfrûne] dddd [om] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'oer %s',
+ past : '%s lyn',
+ s : 'in pear sekonden',
+ m : 'ien minút',
+ mm : '%d minuten',
+ h : 'ien oere',
+ hh : '%d oeren',
+ d : 'ien dei',
+ dd : '%d dagen',
+ M : 'ien moanne',
+ MM : '%d moannen',
+ y : 'ien jier',
+ yy : '%d jierren'
+ },
+ ordinalParse: /\d{1,2}(ste|de)/,
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return fy;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/gd.js b/node_modules/moment/locale/gd.js
new file mode 100644
index 0000000..578e567
--- /dev/null
+++ b/node_modules/moment/locale/gd.js
@@ -0,0 +1,76 @@
+//! moment.js locale configuration
+//! locale : great britain scottish gealic (gd)
+//! author : Jon Ashdown : https://github.com/jonashdown
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var months = [
+ 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'
+ ];
+
+ var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];
+
+ var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];
+
+ var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];
+
+ var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
+
+ var gd = moment.defineLocale('gd', {
+ months : months,
+ monthsShort : monthsShort,
+ monthsParseExact : true,
+ weekdays : weekdays,
+ weekdaysShort : weekdaysShort,
+ weekdaysMin : weekdaysMin,
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[An-diugh aig] LT',
+ nextDay : '[A-màireach aig] LT',
+ nextWeek : 'dddd [aig] LT',
+ lastDay : '[An-dè aig] LT',
+ lastWeek : 'dddd [seo chaidh] [aig] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'ann an %s',
+ past : 'bho chionn %s',
+ s : 'beagan diogan',
+ m : 'mionaid',
+ mm : '%d mionaidean',
+ h : 'uair',
+ hh : '%d uairean',
+ d : 'latha',
+ dd : '%d latha',
+ M : 'mìos',
+ MM : '%d mìosan',
+ y : 'bliadhna',
+ yy : '%d bliadhna'
+ },
+ ordinalParse : /\d{1,2}(d|na|mh)/,
+ ordinal : function (number) {
+ var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return gd;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/gl.js b/node_modules/moment/locale/gl.js
new file mode 100644
index 0000000..ef8e704
--- /dev/null
+++ b/node_modules/moment/locale/gl.js
@@ -0,0 +1,75 @@
+//! moment.js locale configuration
+//! locale : galician (gl)
+//! author : Juan G. Hurtado : https://github.com/juanghurtado
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var gl = moment.defineLocale('gl', {
+ months : 'Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro'.split('_'),
+ monthsShort : 'Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.'.split('_'),
+ weekdays : 'Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado'.split('_'),
+ weekdaysShort : 'Dom._Lun._Mar._Mér._Xov._Ven._Sáb.'.split('_'),
+ weekdaysMin : 'Do_Lu_Ma_Mé_Xo_Ve_Sá'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
+ },
+ nextDay : function () {
+ return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
+ },
+ lastDay : function () {
+ return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
+ },
+ lastWeek : function () {
+ return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : function (str) {
+ if (str === 'uns segundos') {
+ return 'nuns segundos';
+ }
+ return 'en ' + str;
+ },
+ past : 'hai %s',
+ s : 'uns segundos',
+ m : 'un minuto',
+ mm : '%d minutos',
+ h : 'unha hora',
+ hh : '%d horas',
+ d : 'un día',
+ dd : '%d días',
+ M : 'un mes',
+ MM : '%d meses',
+ y : 'un ano',
+ yy : '%d anos'
+ },
+ ordinalParse : /\d{1,2}º/,
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return gl;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/he.js b/node_modules/moment/locale/he.js
new file mode 100644
index 0000000..6a259be
--- /dev/null
+++ b/node_modules/moment/locale/he.js
@@ -0,0 +1,82 @@
+//! moment.js locale configuration
+//! locale : Hebrew (he)
+//! author : Tomer Cohen : https://github.com/tomer
+//! author : Moshe Simantov : https://github.com/DevelopmentIL
+//! author : Tal Ater : https://github.com/TalAter
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var he = moment.defineLocale('he', {
+ months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
+ monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
+ weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
+ weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
+ weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [ב]MMMM YYYY',
+ LLL : 'D [ב]MMMM YYYY HH:mm',
+ LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',
+ l : 'D/M/YYYY',
+ ll : 'D MMM YYYY',
+ lll : 'D MMM YYYY HH:mm',
+ llll : 'ddd, D MMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[היום ב־]LT',
+ nextDay : '[מחר ב־]LT',
+ nextWeek : 'dddd [בשעה] LT',
+ lastDay : '[אתמול ב־]LT',
+ lastWeek : '[ביום] dddd [האחרון בשעה] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'בעוד %s',
+ past : 'לפני %s',
+ s : 'מספר שניות',
+ m : 'דקה',
+ mm : '%d דקות',
+ h : 'שעה',
+ hh : function (number) {
+ if (number === 2) {
+ return 'שעתיים';
+ }
+ return number + ' שעות';
+ },
+ d : 'יום',
+ dd : function (number) {
+ if (number === 2) {
+ return 'יומיים';
+ }
+ return number + ' ימים';
+ },
+ M : 'חודש',
+ MM : function (number) {
+ if (number === 2) {
+ return 'חודשיים';
+ }
+ return number + ' חודשים';
+ },
+ y : 'שנה',
+ yy : function (number) {
+ if (number === 2) {
+ return 'שנתיים';
+ } else if (number % 10 === 0 && number !== 10) {
+ return number + ' שנה';
+ }
+ return number + ' שנים';
+ }
+ }
+ });
+
+ return he;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/hi.js b/node_modules/moment/locale/hi.js
new file mode 100644
index 0000000..0542ef7
--- /dev/null
+++ b/node_modules/moment/locale/hi.js
@@ -0,0 +1,123 @@
+//! moment.js locale configuration
+//! locale : hindi (hi)
+//! author : Mayank Singhal : https://github.com/mayanksinghal
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ var hi = moment.defineLocale('hi', {
+ months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
+ monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
+ weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
+ weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
+ weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm बजे',
+ LTS : 'A h:mm:ss बजे',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm बजे',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[कल] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[कल] LT',
+ lastWeek : '[पिछले] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s में',
+ past : '%s पहले',
+ s : 'कुछ ही क्षण',
+ m : 'एक मिनट',
+ mm : '%d मिनट',
+ h : 'एक घंटा',
+ hh : '%d घंटे',
+ d : 'एक दिन',
+ dd : '%d दिन',
+ M : 'एक महीने',
+ MM : '%d महीने',
+ y : 'एक वर्ष',
+ yy : '%d वर्ष'
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ // Hindi notation for meridiems are quite fuzzy in practice. While there exists
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
+ meridiemParse: /रात|सुबह|दोपहर|शाम/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'रात') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'सुबह') {
+ return hour;
+ } else if (meridiem === 'दोपहर') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'शाम') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'रात';
+ } else if (hour < 10) {
+ return 'सुबह';
+ } else if (hour < 17) {
+ return 'दोपहर';
+ } else if (hour < 20) {
+ return 'शाम';
+ } else {
+ return 'रात';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return hi;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/hr.js b/node_modules/moment/locale/hr.js
new file mode 100644
index 0000000..2692383
--- /dev/null
+++ b/node_modules/moment/locale/hr.js
@@ -0,0 +1,143 @@
+//! moment.js locale configuration
+//! locale : hrvatski (hr)
+//! author : Bojan Marković : https://github.com/bmarkovic
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ var hr = moment.defineLocale('hr', {
+ months : {
+ format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),
+ standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')
+ },
+ monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
+ weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
+ weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+ weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[danas u] LT',
+ nextDay : '[sutra u] LT',
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[jučer u] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ return '[prošlu] dddd [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'prije %s',
+ s : 'par sekundi',
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : 'dan',
+ dd : translate,
+ M : 'mjesec',
+ MM : translate,
+ y : 'godinu',
+ yy : translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return hr;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/hu.js b/node_modules/moment/locale/hu.js
new file mode 100644
index 0000000..2708672
--- /dev/null
+++ b/node_modules/moment/locale/hu.js
@@ -0,0 +1,109 @@
+//! moment.js locale configuration
+//! locale : hungarian (hu)
+//! author : Adam Brunner : https://github.com/adambrunner
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
+ function translate(number, withoutSuffix, key, isFuture) {
+ var num = number,
+ suffix;
+ switch (key) {
+ case 's':
+ return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
+ case 'm':
+ return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'mm':
+ return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'h':
+ return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'hh':
+ return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'd':
+ return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'dd':
+ return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'M':
+ return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'MM':
+ return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'y':
+ return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
+ case 'yy':
+ return num + (isFuture || withoutSuffix ? ' év' : ' éve');
+ }
+ return '';
+ }
+ function week(isFuture) {
+ return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
+ }
+
+ var hu = moment.defineLocale('hu', {
+ months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
+ monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
+ weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
+ weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
+ weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'YYYY.MM.DD.',
+ LL : 'YYYY. MMMM D.',
+ LLL : 'YYYY. MMMM D. H:mm',
+ LLLL : 'YYYY. MMMM D., dddd H:mm'
+ },
+ meridiemParse: /de|du/i,
+ isPM: function (input) {
+ return input.charAt(1).toLowerCase() === 'u';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower === true ? 'de' : 'DE';
+ } else {
+ return isLower === true ? 'du' : 'DU';
+ }
+ },
+ calendar : {
+ sameDay : '[ma] LT[-kor]',
+ nextDay : '[holnap] LT[-kor]',
+ nextWeek : function () {
+ return week.call(this, true);
+ },
+ lastDay : '[tegnap] LT[-kor]',
+ lastWeek : function () {
+ return week.call(this, false);
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s múlva',
+ past : '%s',
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return hu;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/hy-am.js b/node_modules/moment/locale/hy-am.js
new file mode 100644
index 0000000..7350bfb
--- /dev/null
+++ b/node_modules/moment/locale/hy-am.js
@@ -0,0 +1,95 @@
+//! moment.js locale configuration
+//! locale : Armenian (hy-am)
+//! author : Armendarabyan : https://github.com/armendarabyan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var hy_am = moment.defineLocale('hy-am', {
+ months : {
+ format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),
+ standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')
+ },
+ monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
+ weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),
+ weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
+ weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY թ.',
+ LLL : 'D MMMM YYYY թ., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY թ., HH:mm'
+ },
+ calendar : {
+ sameDay: '[այսօր] LT',
+ nextDay: '[վաղը] LT',
+ lastDay: '[երեկ] LT',
+ nextWeek: function () {
+ return 'dddd [օրը ժամը] LT';
+ },
+ lastWeek: function () {
+ return '[անցած] dddd [օրը ժամը] LT';
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : '%s հետո',
+ past : '%s առաջ',
+ s : 'մի քանի վայրկյան',
+ m : 'րոպե',
+ mm : '%d րոպե',
+ h : 'ժամ',
+ hh : '%d ժամ',
+ d : 'օր',
+ dd : '%d օր',
+ M : 'ամիս',
+ MM : '%d ամիս',
+ y : 'տարի',
+ yy : '%d տարի'
+ },
+ meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
+ isPM: function (input) {
+ return /^(ցերեկվա|երեկոյան)$/.test(input);
+ },
+ meridiem : function (hour) {
+ if (hour < 4) {
+ return 'գիշերվա';
+ } else if (hour < 12) {
+ return 'առավոտվա';
+ } else if (hour < 17) {
+ return 'ցերեկվա';
+ } else {
+ return 'երեկոյան';
+ }
+ },
+ ordinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'DDD':
+ case 'w':
+ case 'W':
+ case 'DDDo':
+ if (number === 1) {
+ return number + '-ին';
+ }
+ return number + '-րդ';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return hy_am;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/id.js b/node_modules/moment/locale/id.js
new file mode 100644
index 0000000..09461a5
--- /dev/null
+++ b/node_modules/moment/locale/id.js
@@ -0,0 +1,83 @@
+//! moment.js locale configuration
+//! locale : Bahasa Indonesia (id)
+//! author : Mohammad Satrio Utomo : https://github.com/tyok
+//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var id = moment.defineLocale('id', {
+ months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),
+ weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
+ weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
+ weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /pagi|siang|sore|malam/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'siang') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'sore' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'siang';
+ } else if (hours < 19) {
+ return 'sore';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Besok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kemarin pukul] LT',
+ lastWeek : 'dddd [lalu pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'dalam %s',
+ past : '%s yang lalu',
+ s : 'beberapa detik',
+ m : 'semenit',
+ mm : '%d menit',
+ h : 'sejam',
+ hh : '%d jam',
+ d : 'sehari',
+ dd : '%d hari',
+ M : 'sebulan',
+ MM : '%d bulan',
+ y : 'setahun',
+ yy : '%d tahun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return id;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/is.js b/node_modules/moment/locale/is.js
new file mode 100644
index 0000000..f1ed257
--- /dev/null
+++ b/node_modules/moment/locale/is.js
@@ -0,0 +1,127 @@
+//! moment.js locale configuration
+//! locale : icelandic (is)
+//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function plural(n) {
+ if (n % 100 === 11) {
+ return true;
+ } else if (n % 10 === 1) {
+ return false;
+ }
+ return true;
+ }
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's':
+ return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
+ case 'm':
+ return withoutSuffix ? 'mínúta' : 'mínútu';
+ case 'mm':
+ if (plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
+ } else if (withoutSuffix) {
+ return result + 'mínúta';
+ }
+ return result + 'mínútu';
+ case 'hh':
+ if (plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
+ }
+ return result + 'klukkustund';
+ case 'd':
+ if (withoutSuffix) {
+ return 'dagur';
+ }
+ return isFuture ? 'dag' : 'degi';
+ case 'dd':
+ if (plural(number)) {
+ if (withoutSuffix) {
+ return result + 'dagar';
+ }
+ return result + (isFuture ? 'daga' : 'dögum');
+ } else if (withoutSuffix) {
+ return result + 'dagur';
+ }
+ return result + (isFuture ? 'dag' : 'degi');
+ case 'M':
+ if (withoutSuffix) {
+ return 'mánuður';
+ }
+ return isFuture ? 'mánuð' : 'mánuði';
+ case 'MM':
+ if (plural(number)) {
+ if (withoutSuffix) {
+ return result + 'mánuðir';
+ }
+ return result + (isFuture ? 'mánuði' : 'mánuðum');
+ } else if (withoutSuffix) {
+ return result + 'mánuður';
+ }
+ return result + (isFuture ? 'mánuð' : 'mánuði');
+ case 'y':
+ return withoutSuffix || isFuture ? 'ár' : 'ári';
+ case 'yy':
+ if (plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
+ }
+ return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
+ }
+ }
+
+ var is = moment.defineLocale('is', {
+ months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
+ weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
+ weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
+ weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY [kl.] H:mm',
+ LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'
+ },
+ calendar : {
+ sameDay : '[í dag kl.] LT',
+ nextDay : '[á morgun kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[í gær kl.] LT',
+ lastWeek : '[síðasta] dddd [kl.] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'eftir %s',
+ past : 'fyrir %s síðan',
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : 'klukkustund',
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return is;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/it.js b/node_modules/moment/locale/it.js
new file mode 100644
index 0000000..e8b2c95
--- /dev/null
+++ b/node_modules/moment/locale/it.js
@@ -0,0 +1,70 @@
+//! moment.js locale configuration
+//! locale : italian (it)
+//! author : Lorenzo : https://github.com/aliem
+//! author: Mattia Larentis: https://github.com/nostalgiaz
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var it = moment.defineLocale('it', {
+ months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
+ monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
+ weekdays : 'Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato'.split('_'),
+ weekdaysShort : 'Dom_Lun_Mar_Mer_Gio_Ven_Sab'.split('_'),
+ weekdaysMin : 'Do_Lu_Ma_Me_Gi_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Oggi alle] LT',
+ nextDay: '[Domani alle] LT',
+ nextWeek: 'dddd [alle] LT',
+ lastDay: '[Ieri alle] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[la scorsa] dddd [alle] LT';
+ default:
+ return '[lo scorso] dddd [alle] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : function (s) {
+ return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
+ },
+ past : '%s fa',
+ s : 'alcuni secondi',
+ m : 'un minuto',
+ mm : '%d minuti',
+ h : 'un\'ora',
+ hh : '%d ore',
+ d : 'un giorno',
+ dd : '%d giorni',
+ M : 'un mese',
+ MM : '%d mesi',
+ y : 'un anno',
+ yy : '%d anni'
+ },
+ ordinalParse : /\d{1,2}º/,
+ ordinal: '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return it;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ja.js b/node_modules/moment/locale/ja.js
new file mode 100644
index 0000000..6c6e859
--- /dev/null
+++ b/node_modules/moment/locale/ja.js
@@ -0,0 +1,65 @@
+//! moment.js locale configuration
+//! locale : japanese (ja)
+//! author : LI Long : https://github.com/baryon
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var ja = moment.defineLocale('ja', {
+ months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
+ weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
+ weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
+ longDateFormat : {
+ LT : 'Ah時m分',
+ LTS : 'Ah時m分s秒',
+ L : 'YYYY/MM/DD',
+ LL : 'YYYY年M月D日',
+ LLL : 'YYYY年M月D日Ah時m分',
+ LLLL : 'YYYY年M月D日Ah時m分 dddd'
+ },
+ meridiemParse: /午前|午後/i,
+ isPM : function (input) {
+ return input === '午後';
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return '午前';
+ } else {
+ return '午後';
+ }
+ },
+ calendar : {
+ sameDay : '[今日] LT',
+ nextDay : '[明日] LT',
+ nextWeek : '[来週]dddd LT',
+ lastDay : '[昨日] LT',
+ lastWeek : '[前週]dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s後',
+ past : '%s前',
+ s : '数秒',
+ m : '1分',
+ mm : '%d分',
+ h : '1時間',
+ hh : '%d時間',
+ d : '1日',
+ dd : '%d日',
+ M : '1ヶ月',
+ MM : '%dヶ月',
+ y : '1年',
+ yy : '%d年'
+ }
+ });
+
+ return ja;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/jv.js b/node_modules/moment/locale/jv.js
new file mode 100644
index 0000000..d3b85a4
--- /dev/null
+++ b/node_modules/moment/locale/jv.js
@@ -0,0 +1,83 @@
+//! moment.js locale configuration
+//! locale : Boso Jowo (jv)
+//! author : Rony Lantip : https://github.com/lantip
+//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var jv = moment.defineLocale('jv', {
+ months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
+ weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
+ weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
+ weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /enjing|siyang|sonten|ndalu/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'enjing') {
+ return hour;
+ } else if (meridiem === 'siyang') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'enjing';
+ } else if (hours < 15) {
+ return 'siyang';
+ } else if (hours < 19) {
+ return 'sonten';
+ } else {
+ return 'ndalu';
+ }
+ },
+ calendar : {
+ sameDay : '[Dinten puniko pukul] LT',
+ nextDay : '[Mbenjang pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kala wingi pukul] LT',
+ lastWeek : 'dddd [kepengker pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'wonten ing %s',
+ past : '%s ingkang kepengker',
+ s : 'sawetawis detik',
+ m : 'setunggal menit',
+ mm : '%d menit',
+ h : 'setunggal jam',
+ hh : '%d jam',
+ d : 'sedinten',
+ dd : '%d dinten',
+ M : 'sewulan',
+ MM : '%d wulan',
+ y : 'setaun',
+ yy : '%d taun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return jv;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ka.js b/node_modules/moment/locale/ka.js
new file mode 100644
index 0000000..f052c3a
--- /dev/null
+++ b/node_modules/moment/locale/ka.js
@@ -0,0 +1,89 @@
+//! moment.js locale configuration
+//! locale : Georgian (ka)
+//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var ka = moment.defineLocale('ka', {
+ months : {
+ standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
+ format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
+ },
+ monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
+ weekdays : {
+ standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
+ format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),
+ isFormat: /(წინა|შემდეგ)/
+ },
+ weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
+ weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[დღეს] LT[-ზე]',
+ nextDay : '[ხვალ] LT[-ზე]',
+ lastDay : '[გუშინ] LT[-ზე]',
+ nextWeek : '[შემდეგ] dddd LT[-ზე]',
+ lastWeek : '[წინა] dddd LT-ზე',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : function (s) {
+ return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
+ s.replace(/ი$/, 'ში') :
+ s + 'ში';
+ },
+ past : function (s) {
+ if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
+ return s.replace(/(ი|ე)$/, 'ის წინ');
+ }
+ if ((/წელი/).test(s)) {
+ return s.replace(/წელი$/, 'წლის წინ');
+ }
+ },
+ s : 'რამდენიმე წამი',
+ m : 'წუთი',
+ mm : '%d წუთი',
+ h : 'საათი',
+ hh : '%d საათი',
+ d : 'დღე',
+ dd : '%d დღე',
+ M : 'თვე',
+ MM : '%d თვე',
+ y : 'წელი',
+ yy : '%d წელი'
+ },
+ ordinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
+ ordinal : function (number) {
+ if (number === 0) {
+ return number;
+ }
+ if (number === 1) {
+ return number + '-ლი';
+ }
+ if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
+ return 'მე-' + number;
+ }
+ return number + '-ე';
+ },
+ week : {
+ dow : 1,
+ doy : 7
+ }
+ });
+
+ return ka;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/kk.js b/node_modules/moment/locale/kk.js
new file mode 100644
index 0000000..81acd0b
--- /dev/null
+++ b/node_modules/moment/locale/kk.js
@@ -0,0 +1,87 @@
+//! moment.js locale configuration
+//! locale : kazakh (kk)
+//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var suffixes = {
+ 0: '-ші',
+ 1: '-ші',
+ 2: '-ші',
+ 3: '-ші',
+ 4: '-ші',
+ 5: '-ші',
+ 6: '-шы',
+ 7: '-ші',
+ 8: '-ші',
+ 9: '-шы',
+ 10: '-шы',
+ 20: '-шы',
+ 30: '-шы',
+ 40: '-шы',
+ 50: '-ші',
+ 60: '-шы',
+ 70: '-ші',
+ 80: '-ші',
+ 90: '-шы',
+ 100: '-ші'
+ };
+
+ var kk = moment.defineLocale('kk', {
+ months : 'Қаңтар_Ақпан_Наурыз_Сәуір_Мамыр_Маусым_Шілде_Тамыз_Қыркүйек_Қазан_Қараша_Желтоқсан'.split('_'),
+ monthsShort : 'Қаң_Ақп_Нау_Сәу_Мам_Мау_Шіл_Там_Қыр_Қаз_Қар_Жел'.split('_'),
+ weekdays : 'Жексенбі_Дүйсенбі_Сейсенбі_Сәрсенбі_Бейсенбі_Жұма_Сенбі'.split('_'),
+ weekdaysShort : 'Жек_Дүй_Сей_Сәр_Бей_Жұм_Сен'.split('_'),
+ weekdaysMin : 'Жк_Дй_Сй_Ср_Бй_Жм_Сн'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Бүгін сағат] LT',
+ nextDay : '[Ертең сағат] LT',
+ nextWeek : 'dddd [сағат] LT',
+ lastDay : '[Кеше сағат] LT',
+ lastWeek : '[Өткен аптаның] dddd [сағат] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s ішінде',
+ past : '%s бұрын',
+ s : 'бірнеше секунд',
+ m : 'бір минут',
+ mm : '%d минут',
+ h : 'бір сағат',
+ hh : '%d сағат',
+ d : 'бір күн',
+ dd : '%d күн',
+ M : 'бір ай',
+ MM : '%d ай',
+ y : 'бір жыл',
+ yy : '%d жыл'
+ },
+ ordinalParse: /\d{1,2}-(ші|шы)/,
+ ordinal : function (number) {
+ var a = number % 10,
+ b = number >= 100 ? 100 : null;
+ return number + (suffixes[number] || suffixes[a] || suffixes[b]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return kk;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/km.js b/node_modules/moment/locale/km.js
new file mode 100644
index 0000000..56466c9
--- /dev/null
+++ b/node_modules/moment/locale/km.js
@@ -0,0 +1,58 @@
+//! moment.js locale configuration
+//! locale : khmer (km)
+//! author : Kruy Vanna : https://github.com/kruyvanna
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var km = moment.defineLocale('km', {
+ months: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
+ monthsShort: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
+ weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
+ nextDay: '[ស្អែក ម៉ោង] LT',
+ nextWeek: 'dddd [ម៉ោង] LT',
+ lastDay: '[ម្សិលមិញ ម៉ោង] LT',
+ lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: '%sទៀត',
+ past: '%sមុន',
+ s: 'ប៉ុន្មានវិនាទី',
+ m: 'មួយនាទី',
+ mm: '%d នាទី',
+ h: 'មួយម៉ោង',
+ hh: '%d ម៉ោង',
+ d: 'មួយថ្ងៃ',
+ dd: '%d ថ្ងៃ',
+ M: 'មួយខែ',
+ MM: '%d ខែ',
+ y: 'មួយឆ្នាំ',
+ yy: '%d ឆ្នាំ'
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return km;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ko.js b/node_modules/moment/locale/ko.js
new file mode 100644
index 0000000..151554a
--- /dev/null
+++ b/node_modules/moment/locale/ko.js
@@ -0,0 +1,68 @@
+//! moment.js locale configuration
+//! locale : korean (ko)
+//!
+//! authors
+//!
+//! - Kyungwook, Park : https://github.com/kyungw00k
+//! - Jeeeyul Lee
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var ko = moment.defineLocale('ko', {
+ months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
+ monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
+ weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
+ weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
+ weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
+ longDateFormat : {
+ LT : 'A h시 m분',
+ LTS : 'A h시 m분 s초',
+ L : 'YYYY.MM.DD',
+ LL : 'YYYY년 MMMM D일',
+ LLL : 'YYYY년 MMMM D일 A h시 m분',
+ LLLL : 'YYYY년 MMMM D일 dddd A h시 m분'
+ },
+ calendar : {
+ sameDay : '오늘 LT',
+ nextDay : '내일 LT',
+ nextWeek : 'dddd LT',
+ lastDay : '어제 LT',
+ lastWeek : '지난주 dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s 후',
+ past : '%s 전',
+ s : '몇초',
+ ss : '%d초',
+ m : '일분',
+ mm : '%d분',
+ h : '한시간',
+ hh : '%d시간',
+ d : '하루',
+ dd : '%d일',
+ M : '한달',
+ MM : '%d달',
+ y : '일년',
+ yy : '%d년'
+ },
+ ordinalParse : /\d{1,2}일/,
+ ordinal : '%d일',
+ meridiemParse : /오전|오후/,
+ isPM : function (token) {
+ return token === '오후';
+ },
+ meridiem : function (hour, minute, isUpper) {
+ return hour < 12 ? '오전' : '오후';
+ }
+ });
+
+ return ko;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/lb.js b/node_modules/moment/locale/lb.js
new file mode 100644
index 0000000..6713c08
--- /dev/null
+++ b/node_modules/moment/locale/lb.js
@@ -0,0 +1,134 @@
+//! moment.js locale configuration
+//! locale : Luxembourgish (lb)
+//! author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eng Minutt', 'enger Minutt'],
+ 'h': ['eng Stonn', 'enger Stonn'],
+ 'd': ['een Dag', 'engem Dag'],
+ 'M': ['ee Mount', 'engem Mount'],
+ 'y': ['ee Joer', 'engem Joer']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+ function processFutureTime(string) {
+ var number = string.substr(0, string.indexOf(' '));
+ if (eifelerRegelAppliesToNumber(number)) {
+ return 'a ' + string;
+ }
+ return 'an ' + string;
+ }
+ function processPastTime(string) {
+ var number = string.substr(0, string.indexOf(' '));
+ if (eifelerRegelAppliesToNumber(number)) {
+ return 'viru ' + string;
+ }
+ return 'virun ' + string;
+ }
+ /**
+ * Returns true if the word before the given number loses the '-n' ending.
+ * e.g. 'an 10 Deeg' but 'a 5 Deeg'
+ *
+ * @param number {integer}
+ * @returns {boolean}
+ */
+ function eifelerRegelAppliesToNumber(number) {
+ number = parseInt(number, 10);
+ if (isNaN(number)) {
+ return false;
+ }
+ if (number < 0) {
+ // Negative Number --> always true
+ return true;
+ } else if (number < 10) {
+ // Only 1 digit
+ if (4 <= number && number <= 7) {
+ return true;
+ }
+ return false;
+ } else if (number < 100) {
+ // 2 digits
+ var lastDigit = number % 10, firstDigit = number / 10;
+ if (lastDigit === 0) {
+ return eifelerRegelAppliesToNumber(firstDigit);
+ }
+ return eifelerRegelAppliesToNumber(lastDigit);
+ } else if (number < 10000) {
+ // 3 or 4 digits --> recursively check first digit
+ while (number >= 10) {
+ number = number / 10;
+ }
+ return eifelerRegelAppliesToNumber(number);
+ } else {
+ // Anything larger than 4 digits: recursively check first n-3 digits
+ number = number / 1000;
+ return eifelerRegelAppliesToNumber(number);
+ }
+ }
+
+ var lb = moment.defineLocale('lb', {
+ months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
+ weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
+ weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm [Auer]',
+ LTS: 'H:mm:ss [Auer]',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm [Auer]',
+ LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'
+ },
+ calendar: {
+ sameDay: '[Haut um] LT',
+ sameElse: 'L',
+ nextDay: '[Muer um] LT',
+ nextWeek: 'dddd [um] LT',
+ lastDay: '[Gëschter um] LT',
+ lastWeek: function () {
+ // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
+ switch (this.day()) {
+ case 2:
+ case 4:
+ return '[Leschten] dddd [um] LT';
+ default:
+ return '[Leschte] dddd [um] LT';
+ }
+ }
+ },
+ relativeTime : {
+ future : processFutureTime,
+ past : processPastTime,
+ s : 'e puer Sekonnen',
+ m : processRelativeTime,
+ mm : '%d Minutten',
+ h : processRelativeTime,
+ hh : '%d Stonnen',
+ d : processRelativeTime,
+ dd : '%d Deeg',
+ M : processRelativeTime,
+ MM : '%d Méint',
+ y : processRelativeTime,
+ yy : '%d Joer'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return lb;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/lo.js b/node_modules/moment/locale/lo.js
new file mode 100644
index 0000000..7475f27
--- /dev/null
+++ b/node_modules/moment/locale/lo.js
@@ -0,0 +1,69 @@
+//! moment.js locale configuration
+//! locale : lao (lo)
+//! author : Ryan Hart : https://github.com/ryanhart2
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var lo = moment.defineLocale('lo', {
+ months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
+ monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
+ weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
+ weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
+ weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'ວັນdddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
+ isPM: function (input) {
+ return input === 'ຕອນແລງ';
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ຕອນເຊົ້າ';
+ } else {
+ return 'ຕອນແລງ';
+ }
+ },
+ calendar : {
+ sameDay : '[ມື້ນີ້ເວລາ] LT',
+ nextDay : '[ມື້ອື່ນເວລາ] LT',
+ nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',
+ lastDay : '[ມື້ວານນີ້ເວລາ] LT',
+ lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'ອີກ %s',
+ past : '%sຜ່ານມາ',
+ s : 'ບໍ່ເທົ່າໃດວິນາທີ',
+ m : '1 ນາທີ',
+ mm : '%d ນາທີ',
+ h : '1 ຊົ່ວໂມງ',
+ hh : '%d ຊົ່ວໂມງ',
+ d : '1 ມື້',
+ dd : '%d ມື້',
+ M : '1 ເດືອນ',
+ MM : '%d ເດືອນ',
+ y : '1 ປີ',
+ yy : '%d ປີ'
+ },
+ ordinalParse: /(ທີ່)\d{1,2}/,
+ ordinal : function (number) {
+ return 'ທີ່' + number;
+ }
+ });
+
+ return lo;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/lt.js b/node_modules/moment/locale/lt.js
new file mode 100644
index 0000000..72566bf
--- /dev/null
+++ b/node_modules/moment/locale/lt.js
@@ -0,0 +1,115 @@
+//! moment.js locale configuration
+//! locale : Lithuanian (lt)
+//! author : Mindaugas Mozūras : https://github.com/mmozuras
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var units = {
+ 'm' : 'minutė_minutės_minutę',
+ 'mm': 'minutės_minučių_minutes',
+ 'h' : 'valanda_valandos_valandą',
+ 'hh': 'valandos_valandų_valandas',
+ 'd' : 'diena_dienos_dieną',
+ 'dd': 'dienos_dienų_dienas',
+ 'M' : 'mėnuo_mėnesio_mėnesį',
+ 'MM': 'mėnesiai_mėnesių_mėnesius',
+ 'y' : 'metai_metų_metus',
+ 'yy': 'metai_metų_metus'
+ };
+ function translateSeconds(number, withoutSuffix, key, isFuture) {
+ if (withoutSuffix) {
+ return 'kelios sekundės';
+ } else {
+ return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
+ }
+ }
+ function translateSingular(number, withoutSuffix, key, isFuture) {
+ return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
+ }
+ function special(number) {
+ return number % 10 === 0 || (number > 10 && number < 20);
+ }
+ function forms(key) {
+ return units[key].split('_');
+ }
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ if (number === 1) {
+ return result + translateSingular(number, withoutSuffix, key[0], isFuture);
+ } else if (withoutSuffix) {
+ return result + (special(number) ? forms(key)[1] : forms(key)[0]);
+ } else {
+ if (isFuture) {
+ return result + forms(key)[1];
+ } else {
+ return result + (special(number) ? forms(key)[1] : forms(key)[2]);
+ }
+ }
+ }
+ var lt = moment.defineLocale('lt', {
+ months : {
+ format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
+ standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_')
+ },
+ monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
+ weekdays : {
+ format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),
+ standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),
+ isFormat: /dddd HH:mm/
+ },
+ weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
+ weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY [m.] MMMM D [d.]',
+ LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
+ LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
+ l : 'YYYY-MM-DD',
+ ll : 'YYYY [m.] MMMM D [d.]',
+ lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
+ llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'
+ },
+ calendar : {
+ sameDay : '[Šiandien] LT',
+ nextDay : '[Rytoj] LT',
+ nextWeek : 'dddd LT',
+ lastDay : '[Vakar] LT',
+ lastWeek : '[Praėjusį] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'po %s',
+ past : 'prieš %s',
+ s : translateSeconds,
+ m : translateSingular,
+ mm : translate,
+ h : translateSingular,
+ hh : translate,
+ d : translateSingular,
+ dd : translate,
+ M : translateSingular,
+ MM : translate,
+ y : translateSingular,
+ yy : translate
+ },
+ ordinalParse: /\d{1,2}-oji/,
+ ordinal : function (number) {
+ return number + '-oji';
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return lt;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/lv.js b/node_modules/moment/locale/lv.js
new file mode 100644
index 0000000..d1864a1
--- /dev/null
+++ b/node_modules/moment/locale/lv.js
@@ -0,0 +1,96 @@
+//! moment.js locale configuration
+//! locale : latvian (lv)
+//! author : Kristaps Karlsons : https://github.com/skakri
+//! author : Jānis Elmeris : https://github.com/JanisE
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var units = {
+ 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
+ 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
+ 'h': 'stundas_stundām_stunda_stundas'.split('_'),
+ 'hh': 'stundas_stundām_stunda_stundas'.split('_'),
+ 'd': 'dienas_dienām_diena_dienas'.split('_'),
+ 'dd': 'dienas_dienām_diena_dienas'.split('_'),
+ 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
+ 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
+ 'y': 'gada_gadiem_gads_gadi'.split('_'),
+ 'yy': 'gada_gadiem_gads_gadi'.split('_')
+ };
+ /**
+ * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
+ */
+ function format(forms, number, withoutSuffix) {
+ if (withoutSuffix) {
+ // E.g. "21 minūte", "3 minūtes".
+ return number % 10 === 1 && number !== 11 ? forms[2] : forms[3];
+ } else {
+ // E.g. "21 minūtes" as in "pēc 21 minūtes".
+ // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
+ return number % 10 === 1 && number !== 11 ? forms[0] : forms[1];
+ }
+ }
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ return number + ' ' + format(units[key], number, withoutSuffix);
+ }
+ function relativeTimeWithSingular(number, withoutSuffix, key) {
+ return format(units[key], number, withoutSuffix);
+ }
+ function relativeSeconds(number, withoutSuffix) {
+ return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
+ }
+
+ var lv = moment.defineLocale('lv', {
+ months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
+ weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
+ weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY.',
+ LL : 'YYYY. [gada] D. MMMM',
+ LLL : 'YYYY. [gada] D. MMMM, HH:mm',
+ LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'
+ },
+ calendar : {
+ sameDay : '[Šodien pulksten] LT',
+ nextDay : '[Rīt pulksten] LT',
+ nextWeek : 'dddd [pulksten] LT',
+ lastDay : '[Vakar pulksten] LT',
+ lastWeek : '[Pagājušā] dddd [pulksten] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'pēc %s',
+ past : 'pirms %s',
+ s : relativeSeconds,
+ m : relativeTimeWithSingular,
+ mm : relativeTimeWithPlural,
+ h : relativeTimeWithSingular,
+ hh : relativeTimeWithPlural,
+ d : relativeTimeWithSingular,
+ dd : relativeTimeWithPlural,
+ M : relativeTimeWithSingular,
+ MM : relativeTimeWithPlural,
+ y : relativeTimeWithSingular,
+ yy : relativeTimeWithPlural
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return lv;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/me.js b/node_modules/moment/locale/me.js
new file mode 100644
index 0000000..e2c1f75
--- /dev/null
+++ b/node_modules/moment/locale/me.js
@@ -0,0 +1,109 @@
+//! moment.js locale configuration
+//! locale : Montenegrin (me)
+//! author : Miodrag Nikač : https://github.com/miodragnikac
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var translator = {
+ words: { //Different grammatical cases
+ m: ['jedan minut', 'jednog minuta'],
+ mm: ['minut', 'minuta', 'minuta'],
+ h: ['jedan sat', 'jednog sata'],
+ hh: ['sat', 'sata', 'sati'],
+ dd: ['dan', 'dana', 'dana'],
+ MM: ['mjesec', 'mjeseca', 'mjeseci'],
+ yy: ['godina', 'godine', 'godina']
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
+ }
+ }
+ };
+
+ var me = moment.defineLocale('me', {
+ months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
+ monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
+ weekdays: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],
+ weekdaysShort: ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'],
+ weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar: {
+ sameDay: '[danas u] LT',
+ nextDay: '[sjutra u] LT',
+
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[juče u] LT',
+ lastWeek : function () {
+ var lastWeekDays = [
+ '[prošle] [nedjelje] [u] LT',
+ '[prošlog] [ponedjeljka] [u] LT',
+ '[prošlog] [utorka] [u] LT',
+ '[prošle] [srijede] [u] LT',
+ '[prošlog] [četvrtka] [u] LT',
+ '[prošlog] [petka] [u] LT',
+ '[prošle] [subote] [u] LT'
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'prije %s',
+ s : 'nekoliko sekundi',
+ m : translator.translate,
+ mm : translator.translate,
+ h : translator.translate,
+ hh : translator.translate,
+ d : 'dan',
+ dd : translator.translate,
+ M : 'mjesec',
+ MM : translator.translate,
+ y : 'godinu',
+ yy : translator.translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return me;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/mk.js b/node_modules/moment/locale/mk.js
new file mode 100644
index 0000000..89b5414
--- /dev/null
+++ b/node_modules/moment/locale/mk.js
@@ -0,0 +1,90 @@
+//! moment.js locale configuration
+//! locale : macedonian (mk)
+//! author : Borislav Mickov : https://github.com/B0k0
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var mk = moment.defineLocale('mk', {
+ months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
+ monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
+ weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
+ weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
+ weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'D.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd, D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[Денес во] LT',
+ nextDay : '[Утре во] LT',
+ nextWeek : '[Во] dddd [во] LT',
+ lastDay : '[Вчера во] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[Изминатата] dddd [во] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[Изминатиот] dddd [во] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'после %s',
+ past : 'пред %s',
+ s : 'неколку секунди',
+ m : 'минута',
+ mm : '%d минути',
+ h : 'час',
+ hh : '%d часа',
+ d : 'ден',
+ dd : '%d дена',
+ M : 'месец',
+ MM : '%d месеци',
+ y : 'година',
+ yy : '%d години'
+ },
+ ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
+ ordinal : function (number) {
+ var lastDigit = number % 10,
+ last2Digits = number % 100;
+ if (number === 0) {
+ return number + '-ев';
+ } else if (last2Digits === 0) {
+ return number + '-ен';
+ } else if (last2Digits > 10 && last2Digits < 20) {
+ return number + '-ти';
+ } else if (lastDigit === 1) {
+ return number + '-ви';
+ } else if (lastDigit === 2) {
+ return number + '-ри';
+ } else if (lastDigit === 7 || lastDigit === 8) {
+ return number + '-ми';
+ } else {
+ return number + '-ти';
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return mk;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ml.js b/node_modules/moment/locale/ml.js
new file mode 100644
index 0000000..9e241f2
--- /dev/null
+++ b/node_modules/moment/locale/ml.js
@@ -0,0 +1,71 @@
+//! moment.js locale configuration
+//! locale : malayalam (ml)
+//! author : Floyd Pink : https://github.com/floydpink
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var ml = moment.defineLocale('ml', {
+ months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
+ monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
+ weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
+ weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
+ weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm -നു',
+ LTS : 'A h:mm:ss -നു',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm -നു',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'
+ },
+ calendar : {
+ sameDay : '[ഇന്ന്] LT',
+ nextDay : '[നാളെ] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[ഇന്നലെ] LT',
+ lastWeek : '[കഴിഞ്ഞ] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s കഴിഞ്ഞ്',
+ past : '%s മുൻപ്',
+ s : 'അൽപ നിമിഷങ്ങൾ',
+ m : 'ഒരു മിനിറ്റ്',
+ mm : '%d മിനിറ്റ്',
+ h : 'ഒരു മണിക്കൂർ',
+ hh : '%d മണിക്കൂർ',
+ d : 'ഒരു ദിവസം',
+ dd : '%d ദിവസം',
+ M : 'ഒരു മാസം',
+ MM : '%d മാസം',
+ y : 'ഒരു വർഷം',
+ yy : '%d വർഷം'
+ },
+ meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
+ isPM : function (input) {
+ return /^(ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'രാത്രി';
+ } else if (hour < 12) {
+ return 'രാവിലെ';
+ } else if (hour < 17) {
+ return 'ഉച്ച കഴിഞ്ഞ്';
+ } else if (hour < 20) {
+ return 'വൈകുന്നേരം';
+ } else {
+ return 'രാത്രി';
+ }
+ }
+ });
+
+ return ml;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/mr.js b/node_modules/moment/locale/mr.js
new file mode 100644
index 0000000..77a3fa2
--- /dev/null
+++ b/node_modules/moment/locale/mr.js
@@ -0,0 +1,158 @@
+//! moment.js locale configuration
+//! locale : Marathi (mr)
+//! author : Harshad Kale : https://github.com/kalehv
+//! author : Vivek Athalye : https://github.com/vnathalye
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ function relativeTimeMr(number, withoutSuffix, string, isFuture)
+ {
+ var output = '';
+ if (withoutSuffix) {
+ switch (string) {
+ case 's': output = 'काही सेकंद'; break;
+ case 'm': output = 'एक मिनिट'; break;
+ case 'mm': output = '%d मिनिटे'; break;
+ case 'h': output = 'एक तास'; break;
+ case 'hh': output = '%d तास'; break;
+ case 'd': output = 'एक दिवस'; break;
+ case 'dd': output = '%d दिवस'; break;
+ case 'M': output = 'एक महिना'; break;
+ case 'MM': output = '%d महिने'; break;
+ case 'y': output = 'एक वर्ष'; break;
+ case 'yy': output = '%d वर्षे'; break;
+ }
+ }
+ else {
+ switch (string) {
+ case 's': output = 'काही सेकंदां'; break;
+ case 'm': output = 'एका मिनिटा'; break;
+ case 'mm': output = '%d मिनिटां'; break;
+ case 'h': output = 'एका तासा'; break;
+ case 'hh': output = '%d तासां'; break;
+ case 'd': output = 'एका दिवसा'; break;
+ case 'dd': output = '%d दिवसां'; break;
+ case 'M': output = 'एका महिन्या'; break;
+ case 'MM': output = '%d महिन्यां'; break;
+ case 'y': output = 'एका वर्षा'; break;
+ case 'yy': output = '%d वर्षां'; break;
+ }
+ }
+ return output.replace(/%d/i, number);
+ }
+
+ var mr = moment.defineLocale('mr', {
+ months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
+ monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
+ weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
+ weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
+ weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm वाजता',
+ LTS : 'A h:mm:ss वाजता',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm वाजता',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[उद्या] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[काल] LT',
+ lastWeek: '[मागील] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future: '%sमध्ये',
+ past: '%sपूर्वी',
+ s: relativeTimeMr,
+ m: relativeTimeMr,
+ mm: relativeTimeMr,
+ h: relativeTimeMr,
+ hh: relativeTimeMr,
+ d: relativeTimeMr,
+ dd: relativeTimeMr,
+ M: relativeTimeMr,
+ MM: relativeTimeMr,
+ y: relativeTimeMr,
+ yy: relativeTimeMr
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'रात्री') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'सकाळी') {
+ return hour;
+ } else if (meridiem === 'दुपारी') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'सायंकाळी') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'रात्री';
+ } else if (hour < 10) {
+ return 'सकाळी';
+ } else if (hour < 17) {
+ return 'दुपारी';
+ } else if (hour < 20) {
+ return 'सायंकाळी';
+ } else {
+ return 'रात्री';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return mr;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ms-my.js b/node_modules/moment/locale/ms-my.js
new file mode 100644
index 0000000..38c3138
--- /dev/null
+++ b/node_modules/moment/locale/ms-my.js
@@ -0,0 +1,82 @@
+//! moment.js locale configuration
+//! locale : Bahasa Malaysia (ms-MY)
+//! author : Weldan Jamili : https://github.com/weldan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var ms_my = moment.defineLocale('ms-my', {
+ months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
+ weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
+ weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
+ weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /pagi|tengahari|petang|malam/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'tengahari') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'petang' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'tengahari';
+ } else if (hours < 19) {
+ return 'petang';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Esok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kelmarin pukul] LT',
+ lastWeek : 'dddd [lepas pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'dalam %s',
+ past : '%s yang lepas',
+ s : 'beberapa saat',
+ m : 'seminit',
+ mm : '%d minit',
+ h : 'sejam',
+ hh : '%d jam',
+ d : 'sehari',
+ dd : '%d hari',
+ M : 'sebulan',
+ MM : '%d bulan',
+ y : 'setahun',
+ yy : '%d tahun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return ms_my;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ms.js b/node_modules/moment/locale/ms.js
new file mode 100644
index 0000000..fbbb734
--- /dev/null
+++ b/node_modules/moment/locale/ms.js
@@ -0,0 +1,82 @@
+//! moment.js locale configuration
+//! locale : Bahasa Malaysia (ms-MY)
+//! author : Weldan Jamili : https://github.com/weldan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var ms = moment.defineLocale('ms', {
+ months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
+ weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
+ weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
+ weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /pagi|tengahari|petang|malam/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'tengahari') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'petang' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'tengahari';
+ } else if (hours < 19) {
+ return 'petang';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Esok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kelmarin pukul] LT',
+ lastWeek : 'dddd [lepas pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'dalam %s',
+ past : '%s yang lepas',
+ s : 'beberapa saat',
+ m : 'seminit',
+ mm : '%d minit',
+ h : 'sejam',
+ hh : '%d jam',
+ d : 'sehari',
+ dd : '%d hari',
+ M : 'sebulan',
+ MM : '%d bulan',
+ y : 'setahun',
+ yy : '%d tahun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return ms;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/my.js b/node_modules/moment/locale/my.js
new file mode 100644
index 0000000..71e99f0
--- /dev/null
+++ b/node_modules/moment/locale/my.js
@@ -0,0 +1,93 @@
+//! moment.js locale configuration
+//! locale : Burmese (my)
+//! author : Squar team, mysquar.com
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var symbolMap = {
+ '1': '၁',
+ '2': '၂',
+ '3': '၃',
+ '4': '၄',
+ '5': '၅',
+ '6': '၆',
+ '7': '၇',
+ '8': '၈',
+ '9': '၉',
+ '0': '၀'
+ }, numberMap = {
+ '၁': '1',
+ '၂': '2',
+ '၃': '3',
+ '၄': '4',
+ '၅': '5',
+ '၆': '6',
+ '၇': '7',
+ '၈': '8',
+ '၉': '9',
+ '၀': '0'
+ };
+
+ var my = moment.defineLocale('my', {
+ months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
+ monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
+ weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
+ weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
+ weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
+
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[ယနေ.] LT [မှာ]',
+ nextDay: '[မနက်ဖြန်] LT [မှာ]',
+ nextWeek: 'dddd LT [မှာ]',
+ lastDay: '[မနေ.က] LT [မှာ]',
+ lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: 'လာမည့် %s မှာ',
+ past: 'လွန်ခဲ့သော %s က',
+ s: 'စက္ကန်.အနည်းငယ်',
+ m: 'တစ်မိနစ်',
+ mm: '%d မိနစ်',
+ h: 'တစ်နာရီ',
+ hh: '%d နာရီ',
+ d: 'တစ်ရက်',
+ dd: '%d ရက်',
+ M: 'တစ်လ',
+ MM: '%d လ',
+ y: 'တစ်နှစ်',
+ yy: '%d နှစ်'
+ },
+ preparse: function (string) {
+ return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return my;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/nb.js b/node_modules/moment/locale/nb.js
new file mode 100644
index 0000000..b8d76c6
--- /dev/null
+++ b/node_modules/moment/locale/nb.js
@@ -0,0 +1,61 @@
+//! moment.js locale configuration
+//! locale : norwegian bokmål (nb)
+//! authors : Espen Hovlandsdal : https://github.com/rexxars
+//! Sigurd Gartmann : https://github.com/sigurdga
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var nb = moment.defineLocale('nb', {
+ months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
+ weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
+ weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),
+ weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY [kl.] HH:mm',
+ LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
+ },
+ calendar : {
+ sameDay: '[i dag kl.] LT',
+ nextDay: '[i morgen kl.] LT',
+ nextWeek: 'dddd [kl.] LT',
+ lastDay: '[i går kl.] LT',
+ lastWeek: '[forrige] dddd [kl.] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'for %s siden',
+ s : 'noen sekunder',
+ m : 'ett minutt',
+ mm : '%d minutter',
+ h : 'en time',
+ hh : '%d timer',
+ d : 'en dag',
+ dd : '%d dager',
+ M : 'en måned',
+ MM : '%d måneder',
+ y : 'ett år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return nb;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ne.js b/node_modules/moment/locale/ne.js
new file mode 100644
index 0000000..3476401
--- /dev/null
+++ b/node_modules/moment/locale/ne.js
@@ -0,0 +1,121 @@
+//! moment.js locale configuration
+//! locale : nepali/nepalese
+//! author : suvash : https://github.com/suvash
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ var ne = moment.defineLocale('ne', {
+ months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
+ monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
+ weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
+ weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
+ weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
+ longDateFormat : {
+ LT : 'Aको h:mm बजे',
+ LTS : 'Aको h:mm:ss बजे',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, Aको h:mm बजे',
+ LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'राति') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'बिहान') {
+ return hour;
+ } else if (meridiem === 'दिउँसो') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'साँझ') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 3) {
+ return 'राति';
+ } else if (hour < 12) {
+ return 'बिहान';
+ } else if (hour < 16) {
+ return 'दिउँसो';
+ } else if (hour < 20) {
+ return 'साँझ';
+ } else {
+ return 'राति';
+ }
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[भोलि] LT',
+ nextWeek : '[आउँदो] dddd[,] LT',
+ lastDay : '[हिजो] LT',
+ lastWeek : '[गएको] dddd[,] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%sमा',
+ past : '%s अगाडि',
+ s : 'केही क्षण',
+ m : 'एक मिनेट',
+ mm : '%d मिनेट',
+ h : 'एक घण्टा',
+ hh : '%d घण्टा',
+ d : 'एक दिन',
+ dd : '%d दिन',
+ M : 'एक महिना',
+ MM : '%d महिना',
+ y : 'एक बर्ष',
+ yy : '%d बर्ष'
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return ne;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/nl.js b/node_modules/moment/locale/nl.js
new file mode 100644
index 0000000..1ae4700
--- /dev/null
+++ b/node_modules/moment/locale/nl.js
@@ -0,0 +1,71 @@
+//! moment.js locale configuration
+//! locale : dutch (nl)
+//! author : Joris Röling : https://github.com/jjupiter
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
+ monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
+
+ var nl = moment.defineLocale('nl', {
+ months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return monthsShortWithoutDots[m.month()];
+ } else {
+ return monthsShortWithDots[m.month()];
+ }
+ },
+ weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
+ weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
+ weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[vandaag om] LT',
+ nextDay: '[morgen om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[gisteren om] LT',
+ lastWeek: '[afgelopen] dddd [om] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'over %s',
+ past : '%s geleden',
+ s : 'een paar seconden',
+ m : 'één minuut',
+ mm : '%d minuten',
+ h : 'één uur',
+ hh : '%d uur',
+ d : 'één dag',
+ dd : '%d dagen',
+ M : 'één maand',
+ MM : '%d maanden',
+ y : 'één jaar',
+ yy : '%d jaar'
+ },
+ ordinalParse: /\d{1,2}(ste|de)/,
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return nl;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/nn.js b/node_modules/moment/locale/nn.js
new file mode 100644
index 0000000..3910bb9
--- /dev/null
+++ b/node_modules/moment/locale/nn.js
@@ -0,0 +1,60 @@
+//! moment.js locale configuration
+//! locale : norwegian nynorsk (nn)
+//! author : https://github.com/mechuwind
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var nn = moment.defineLocale('nn', {
+ months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
+ weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
+ weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
+ weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY [kl.] H:mm',
+ LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
+ },
+ calendar : {
+ sameDay: '[I dag klokka] LT',
+ nextDay: '[I morgon klokka] LT',
+ nextWeek: 'dddd [klokka] LT',
+ lastDay: '[I går klokka] LT',
+ lastWeek: '[Føregåande] dddd [klokka] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'for %s sidan',
+ s : 'nokre sekund',
+ m : 'eit minutt',
+ mm : '%d minutt',
+ h : 'ein time',
+ hh : '%d timar',
+ d : 'ein dag',
+ dd : '%d dagar',
+ M : 'ein månad',
+ MM : '%d månader',
+ y : 'eit år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return nn;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/pl.js b/node_modules/moment/locale/pl.js
new file mode 100644
index 0000000..fa81579
--- /dev/null
+++ b/node_modules/moment/locale/pl.js
@@ -0,0 +1,105 @@
+//! moment.js locale configuration
+//! locale : polish (pl)
+//! author : Rafal Hirsz : https://github.com/evoL
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
+ monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
+ function plural(n) {
+ return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
+ }
+ function translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'minuta' : 'minutę';
+ case 'mm':
+ return result + (plural(number) ? 'minuty' : 'minut');
+ case 'h':
+ return withoutSuffix ? 'godzina' : 'godzinę';
+ case 'hh':
+ return result + (plural(number) ? 'godziny' : 'godzin');
+ case 'MM':
+ return result + (plural(number) ? 'miesiące' : 'miesięcy');
+ case 'yy':
+ return result + (plural(number) ? 'lata' : 'lat');
+ }
+ }
+
+ var pl = moment.defineLocale('pl', {
+ months : function (momentToFormat, format) {
+ if (format === '') {
+ // Hack: if format empty we know this is used to generate
+ // RegExp by moment. Give then back both valid forms of months
+ // in RegExp ready format.
+ return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';
+ } else if (/D MMMM/.test(format)) {
+ return monthsSubjective[momentToFormat.month()];
+ } else {
+ return monthsNominative[momentToFormat.month()];
+ }
+ },
+ monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
+ weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
+ weekdaysShort : 'nie_pon_wt_śr_czw_pt_sb'.split('_'),
+ weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Dziś o] LT',
+ nextDay: '[Jutro o] LT',
+ nextWeek: '[W] dddd [o] LT',
+ lastDay: '[Wczoraj o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[W zeszłą niedzielę o] LT';
+ case 3:
+ return '[W zeszłą środę o] LT';
+ case 6:
+ return '[W zeszłą sobotę o] LT';
+ default:
+ return '[W zeszły] dddd [o] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : '%s temu',
+ s : 'kilka sekund',
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : '1 dzień',
+ dd : '%d dni',
+ M : 'miesiąc',
+ MM : translate,
+ y : 'rok',
+ yy : translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return pl;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/pt-br.js b/node_modules/moment/locale/pt-br.js
new file mode 100644
index 0000000..06747f6
--- /dev/null
+++ b/node_modules/moment/locale/pt-br.js
@@ -0,0 +1,60 @@
+//! moment.js locale configuration
+//! locale : brazilian portuguese (pt-br)
+//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var pt_br = moment.defineLocale('pt-br', {
+ months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),
+ monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
+ weekdays : 'Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado'.split('_'),
+ weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
+ weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'
+ },
+ calendar : {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return (this.day() === 0 || this.day() === 6) ?
+ '[Último] dddd [às] LT' : // Saturday + Sunday
+ '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'em %s',
+ past : '%s atrás',
+ s : 'poucos segundos',
+ m : 'um minuto',
+ mm : '%d minutos',
+ h : 'uma hora',
+ hh : '%d horas',
+ d : 'um dia',
+ dd : '%d dias',
+ M : 'um mês',
+ MM : '%d meses',
+ y : 'um ano',
+ yy : '%d anos'
+ },
+ ordinalParse: /\d{1,2}º/,
+ ordinal : '%dº'
+ });
+
+ return pt_br;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/pt.js b/node_modules/moment/locale/pt.js
new file mode 100644
index 0000000..bdb913f
--- /dev/null
+++ b/node_modules/moment/locale/pt.js
@@ -0,0 +1,64 @@
+//! moment.js locale configuration
+//! locale : portuguese (pt)
+//! author : Jefferson : https://github.com/jalex79
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var pt = moment.defineLocale('pt', {
+ months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),
+ monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
+ weekdays : 'Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado'.split('_'),
+ weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
+ weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY HH:mm',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return (this.day() === 0 || this.day() === 6) ?
+ '[Último] dddd [às] LT' : // Saturday + Sunday
+ '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'em %s',
+ past : 'há %s',
+ s : 'segundos',
+ m : 'um minuto',
+ mm : '%d minutos',
+ h : 'uma hora',
+ hh : '%d horas',
+ d : 'um dia',
+ dd : '%d dias',
+ M : 'um mês',
+ MM : '%d meses',
+ y : 'um ano',
+ yy : '%d anos'
+ },
+ ordinalParse: /\d{1,2}º/,
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return pt;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ro.js b/node_modules/moment/locale/ro.js
new file mode 100644
index 0000000..fb92267
--- /dev/null
+++ b/node_modules/moment/locale/ro.js
@@ -0,0 +1,74 @@
+//! moment.js locale configuration
+//! locale : romanian (ro)
+//! author : Vlad Gurdiga : https://github.com/gurdiga
+//! author : Valentin Agachi : https://github.com/avaly
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': 'minute',
+ 'hh': 'ore',
+ 'dd': 'zile',
+ 'MM': 'luni',
+ 'yy': 'ani'
+ },
+ separator = ' ';
+ if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
+ separator = ' de ';
+ }
+ return number + separator + format[key];
+ }
+
+ var ro = moment.defineLocale('ro', {
+ months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
+ monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
+ weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
+ weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
+ weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd, D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay: '[azi la] LT',
+ nextDay: '[mâine la] LT',
+ nextWeek: 'dddd [la] LT',
+ lastDay: '[ieri la] LT',
+ lastWeek: '[fosta] dddd [la] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'peste %s',
+ past : '%s în urmă',
+ s : 'câteva secunde',
+ m : 'un minut',
+ mm : relativeTimeWithPlural,
+ h : 'o oră',
+ hh : relativeTimeWithPlural,
+ d : 'o zi',
+ dd : relativeTimeWithPlural,
+ M : 'o lună',
+ MM : relativeTimeWithPlural,
+ y : 'un an',
+ yy : relativeTimeWithPlural
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return ro;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ru.js b/node_modules/moment/locale/ru.js
new file mode 100644
index 0000000..442ddf8
--- /dev/null
+++ b/node_modules/moment/locale/ru.js
@@ -0,0 +1,166 @@
+//! moment.js locale configuration
+//! locale : russian (ru)
+//! author : Viktorminator : https://github.com/Viktorminator
+//! Author : Menelion Elensúle : https://github.com/Oire
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
+ 'hh': 'час_часа_часов',
+ 'dd': 'день_дня_дней',
+ 'MM': 'месяц_месяца_месяцев',
+ 'yy': 'год_года_лет'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'минута' : 'минуту';
+ }
+ else {
+ return number + ' ' + plural(format[key], +number);
+ }
+ }
+ var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
+
+ var ru = moment.defineLocale('ru', {
+ months : {
+ format: 'Января_Февраля_Марта_Апреля_Мая_Июня_Июля_Августа_Сентября_Октября_Ноября_Декабря'.split('_'),
+ standalone: 'Январь_Февраль_Март_Апрель_Май_Июнь_Июль_Август_Сентябрь_Октябрь_Ноябрь_Декабрь'.split('_')
+ },
+ monthsShort : {
+ format: 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_'),
+ standalone: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_')
+ },
+ weekdays : {
+ standalone: 'Воскресенье_Понедельник_Вторник_Среда_Четверг_Пятница_Суббота'.split('_'),
+ format: 'Воскресенье_Понедельник_Вторник_Среду_Четверг_Пятницу_Субботу'.split('_'),
+ isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
+ },
+ weekdaysShort : 'Вс_Пн_Вт_Ср_Чт_Пт_Сб'.split('_'),
+ weekdaysMin : 'Вс_Пн_Вт_Ср_Чт_Пт_Сб'.split('_'),
+ monthsParse : monthsParse,
+ longMonthsParse : monthsParse,
+ shortMonthsParse : monthsParse,
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY г.',
+ LLL : 'D MMMM YYYY г., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY г., HH:mm'
+ },
+ calendar : {
+ sameDay: '[Сегодня в] LT',
+ nextDay: '[Завтра в] LT',
+ lastDay: '[Вчера в] LT',
+ nextWeek: function (now) {
+ if (now.week() !== this.week()) {
+ switch (this.day()) {
+ case 0:
+ return '[В следующее] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[В следующий] dddd [в] LT';
+ case 3:
+ case 5:
+ case 6:
+ return '[В следующую] dddd [в] LT';
+ }
+ } else {
+ if (this.day() === 2) {
+ return '[Во] dddd [в] LT';
+ } else {
+ return '[В] dddd [в] LT';
+ }
+ }
+ },
+ lastWeek: function (now) {
+ if (now.week() !== this.week()) {
+ switch (this.day()) {
+ case 0:
+ return '[В прошлое] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[В прошлый] dddd [в] LT';
+ case 3:
+ case 5:
+ case 6:
+ return '[В прошлую] dddd [в] LT';
+ }
+ } else {
+ if (this.day() === 2) {
+ return '[Во] dddd [в] LT';
+ } else {
+ return '[В] dddd [в] LT';
+ }
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'через %s',
+ past : '%s назад',
+ s : 'несколько секунд',
+ m : relativeTimeWithPlural,
+ mm : relativeTimeWithPlural,
+ h : 'час',
+ hh : relativeTimeWithPlural,
+ d : 'день',
+ dd : relativeTimeWithPlural,
+ M : 'месяц',
+ MM : relativeTimeWithPlural,
+ y : 'год',
+ yy : relativeTimeWithPlural
+ },
+ meridiemParse: /ночи|утра|дня|вечера/i,
+ isPM : function (input) {
+ return /^(дня|вечера)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночи';
+ } else if (hour < 12) {
+ return 'утра';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечера';
+ }
+ },
+ ordinalParse: /\d{1,2}-(й|го|я)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ case 'w':
+ case 'W':
+ return number + '-я';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return ru;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/se.js b/node_modules/moment/locale/se.js
new file mode 100644
index 0000000..06be0d6
--- /dev/null
+++ b/node_modules/moment/locale/se.js
@@ -0,0 +1,61 @@
+//! moment.js locale configuration
+//! locale : Northern Sami (se)
+//! authors : Bård Rolstad Henriksen : https://github.com/karamell
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+
+ var se = moment.defineLocale('se', {
+ months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),
+ monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
+ weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),
+ weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
+ weekdaysMin : 's_v_m_g_d_b_L'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'MMMM D. [b.] YYYY',
+ LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',
+ LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'
+ },
+ calendar : {
+ sameDay: '[otne ti] LT',
+ nextDay: '[ihttin ti] LT',
+ nextWeek: 'dddd [ti] LT',
+ lastDay: '[ikte ti] LT',
+ lastWeek: '[ovddit] dddd [ti] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : '%s geažes',
+ past : 'maŋit %s',
+ s : 'moadde sekunddat',
+ m : 'okta minuhta',
+ mm : '%d minuhtat',
+ h : 'okta diimmu',
+ hh : '%d diimmut',
+ d : 'okta beaivi',
+ dd : '%d beaivvit',
+ M : 'okta mánnu',
+ MM : '%d mánut',
+ y : 'okta jahki',
+ yy : '%d jagit'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return se;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/si.js b/node_modules/moment/locale/si.js
new file mode 100644
index 0000000..d86c9e3
--- /dev/null
+++ b/node_modules/moment/locale/si.js
@@ -0,0 +1,66 @@
+//! moment.js locale configuration
+//! locale : Sinhalese (si)
+//! author : Sampath Sitinamaluwa : https://github.com/sampathsris
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ /*jshint -W100*/
+ var si = moment.defineLocale('si', {
+ months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),
+ monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),
+ weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),
+ weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන'.split('_'),
+ weekdaysMin : 'ඉ_ස_අ_බ_බ්ර_සි_සෙ'.split('_'),
+ longDateFormat : {
+ LT : 'a h:mm',
+ LTS : 'a h:mm:ss',
+ L : 'YYYY/MM/DD',
+ LL : 'YYYY MMMM D',
+ LLL : 'YYYY MMMM D, a h:mm',
+ LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'
+ },
+ calendar : {
+ sameDay : '[අද] LT[ට]',
+ nextDay : '[හෙට] LT[ට]',
+ nextWeek : 'dddd LT[ට]',
+ lastDay : '[ඊයේ] LT[ට]',
+ lastWeek : '[පසුගිය] dddd LT[ට]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%sකින්',
+ past : '%sකට පෙර',
+ s : 'තත්පර කිහිපය',
+ m : 'මිනිත්තුව',
+ mm : 'මිනිත්තු %d',
+ h : 'පැය',
+ hh : 'පැය %d',
+ d : 'දිනය',
+ dd : 'දින %d',
+ M : 'මාසය',
+ MM : 'මාස %d',
+ y : 'වසර',
+ yy : 'වසර %d'
+ },
+ ordinalParse: /\d{1,2} වැනි/,
+ ordinal : function (number) {
+ return number + ' වැනි';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'ප.ව.' : 'පස් වරු';
+ } else {
+ return isLower ? 'පෙ.ව.' : 'පෙර වරු';
+ }
+ }
+ });
+
+ return si;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/sk.js b/node_modules/moment/locale/sk.js
new file mode 100644
index 0000000..52838a3
--- /dev/null
+++ b/node_modules/moment/locale/sk.js
@@ -0,0 +1,150 @@
+//! moment.js locale configuration
+//! locale : slovak (sk)
+//! author : Martin Minka : https://github.com/k2s
+//! based on work of petrbela : https://github.com/petrbela
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
+ monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
+ function plural(n) {
+ return (n > 1) && (n < 5);
+ }
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'minúty' : 'minút');
+ } else {
+ return result + 'minútami';
+ }
+ break;
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'hodiny' : 'hodín');
+ } else {
+ return result + 'hodinami';
+ }
+ break;
+ case 'd': // a day / in a day / a day ago
+ return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'dni' : 'dní');
+ } else {
+ return result + 'dňami';
+ }
+ break;
+ case 'M': // a month / in a month / a month ago
+ return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'mesiace' : 'mesiacov');
+ } else {
+ return result + 'mesiacmi';
+ }
+ break;
+ case 'y': // a year / in a year / a year ago
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'roky' : 'rokov');
+ } else {
+ return result + 'rokmi';
+ }
+ break;
+ }
+ }
+
+ var sk = moment.defineLocale('sk', {
+ months : months,
+ monthsShort : monthsShort,
+ weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
+ weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
+ weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
+ longDateFormat : {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay: '[dnes o] LT',
+ nextDay: '[zajtra o] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [o] LT';
+ case 3:
+ return '[v stredu o] LT';
+ case 4:
+ return '[vo štvrtok o] LT';
+ case 5:
+ return '[v piatok o] LT';
+ case 6:
+ return '[v sobotu o] LT';
+ }
+ },
+ lastDay: '[včera o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulú nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[minulý] dddd [o] LT';
+ case 3:
+ return '[minulú stredu o] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [o] LT';
+ case 6:
+ return '[minulú sobotu o] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'pred %s',
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return sk;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/sl.js b/node_modules/moment/locale/sl.js
new file mode 100644
index 0000000..68d261e
--- /dev/null
+++ b/node_modules/moment/locale/sl.js
@@ -0,0 +1,160 @@
+//! moment.js locale configuration
+//! locale : slovenian (sl)
+//! author : Robert Sedovšek : https://github.com/sedovsek
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's':
+ return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';
+ case 'm':
+ return withoutSuffix ? 'ena minuta' : 'eno minuto';
+ case 'mm':
+ if (number === 1) {
+ result += withoutSuffix ? 'minuta' : 'minuto';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'minute' : 'minutami';
+ } else {
+ result += withoutSuffix || isFuture ? 'minut' : 'minutami';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'ena ura' : 'eno uro';
+ case 'hh':
+ if (number === 1) {
+ result += withoutSuffix ? 'ura' : 'uro';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'uri' : 'urama';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'ure' : 'urami';
+ } else {
+ result += withoutSuffix || isFuture ? 'ur' : 'urami';
+ }
+ return result;
+ case 'd':
+ return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
+ case 'dd':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'dan' : 'dnem';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
+ } else {
+ result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
+ }
+ return result;
+ case 'M':
+ return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
+ case 'MM':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
+ } else {
+ result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
+ }
+ return result;
+ case 'y':
+ return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
+ case 'yy':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'leto' : 'letom';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'leti' : 'letoma';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'leta' : 'leti';
+ } else {
+ result += withoutSuffix || isFuture ? 'let' : 'leti';
+ }
+ return result;
+ }
+ }
+
+ var sl = moment.defineLocale('sl', {
+ months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
+ weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
+ weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
+ weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[danes ob] LT',
+ nextDay : '[jutri ob] LT',
+
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[v] [nedeljo] [ob] LT';
+ case 3:
+ return '[v] [sredo] [ob] LT';
+ case 6:
+ return '[v] [soboto] [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[v] dddd [ob] LT';
+ }
+ },
+ lastDay : '[včeraj ob] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[prejšnjo] [nedeljo] [ob] LT';
+ case 3:
+ return '[prejšnjo] [sredo] [ob] LT';
+ case 6:
+ return '[prejšnjo] [soboto] [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prejšnji] dddd [ob] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'čez %s',
+ past : 'pred %s',
+ s : processRelativeTime,
+ m : processRelativeTime,
+ mm : processRelativeTime,
+ h : processRelativeTime,
+ hh : processRelativeTime,
+ d : processRelativeTime,
+ dd : processRelativeTime,
+ M : processRelativeTime,
+ MM : processRelativeTime,
+ y : processRelativeTime,
+ yy : processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return sl;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/sq.js b/node_modules/moment/locale/sq.js
new file mode 100644
index 0000000..69dca20
--- /dev/null
+++ b/node_modules/moment/locale/sq.js
@@ -0,0 +1,69 @@
+//! moment.js locale configuration
+//! locale : Albanian (sq)
+//! author : Flakërim Ismani : https://github.com/flakerimi
+//! author: Menelion Elensúle: https://github.com/Oire (tests)
+//! author : Oerd Cukalla : https://github.com/oerd (fixes)
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var sq = moment.defineLocale('sq', {
+ months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
+ monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
+ weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
+ weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
+ weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
+ meridiemParse: /PD|MD/,
+ isPM: function (input) {
+ return input.charAt(0) === 'M';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ return hours < 12 ? 'PD' : 'MD';
+ },
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Sot në] LT',
+ nextDay : '[Nesër në] LT',
+ nextWeek : 'dddd [në] LT',
+ lastDay : '[Dje në] LT',
+ lastWeek : 'dddd [e kaluar në] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'në %s',
+ past : '%s më parë',
+ s : 'disa sekonda',
+ m : 'një minutë',
+ mm : '%d minuta',
+ h : 'një orë',
+ hh : '%d orë',
+ d : 'një ditë',
+ dd : '%d ditë',
+ M : 'një muaj',
+ MM : '%d muaj',
+ y : 'një vit',
+ yy : '%d vite'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return sq;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/sr-cyrl.js b/node_modules/moment/locale/sr-cyrl.js
new file mode 100644
index 0000000..c72cca7
--- /dev/null
+++ b/node_modules/moment/locale/sr-cyrl.js
@@ -0,0 +1,108 @@
+//! moment.js locale configuration
+//! locale : Serbian-cyrillic (sr-cyrl)
+//! author : Milan Janačković : https://github.com/milan-j
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var translator = {
+ words: { //Different grammatical cases
+ m: ['један минут', 'једне минуте'],
+ mm: ['минут', 'минуте', 'минута'],
+ h: ['један сат', 'једног сата'],
+ hh: ['сат', 'сата', 'сати'],
+ dd: ['дан', 'дана', 'дана'],
+ MM: ['месец', 'месеца', 'месеци'],
+ yy: ['година', 'године', 'година']
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
+ }
+ }
+ };
+
+ var sr_cyrl = moment.defineLocale('sr-cyrl', {
+ months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
+ monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
+ weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
+ weekdaysShort: ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],
+ weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar: {
+ sameDay: '[данас у] LT',
+ nextDay: '[сутра у] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[у] [недељу] [у] LT';
+ case 3:
+ return '[у] [среду] [у] LT';
+ case 6:
+ return '[у] [суботу] [у] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[у] dddd [у] LT';
+ }
+ },
+ lastDay : '[јуче у] LT',
+ lastWeek : function () {
+ var lastWeekDays = [
+ '[прошле] [недеље] [у] LT',
+ '[прошлог] [понедељка] [у] LT',
+ '[прошлог] [уторка] [у] LT',
+ '[прошле] [среде] [у] LT',
+ '[прошлог] [четвртка] [у] LT',
+ '[прошлог] [петка] [у] LT',
+ '[прошле] [суботе] [у] LT'
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'за %s',
+ past : 'пре %s',
+ s : 'неколико секунди',
+ m : translator.translate,
+ mm : translator.translate,
+ h : translator.translate,
+ hh : translator.translate,
+ d : 'дан',
+ dd : translator.translate,
+ M : 'месец',
+ MM : translator.translate,
+ y : 'годину',
+ yy : translator.translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return sr_cyrl;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/sr.js b/node_modules/moment/locale/sr.js
new file mode 100644
index 0000000..4dab6f4
--- /dev/null
+++ b/node_modules/moment/locale/sr.js
@@ -0,0 +1,108 @@
+//! moment.js locale configuration
+//! locale : Serbian-latin (sr)
+//! author : Milan Janačković : https://github.com/milan-j
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var translator = {
+ words: { //Different grammatical cases
+ m: ['jedan minut', 'jedne minute'],
+ mm: ['minut', 'minute', 'minuta'],
+ h: ['jedan sat', 'jednog sata'],
+ hh: ['sat', 'sata', 'sati'],
+ dd: ['dan', 'dana', 'dana'],
+ MM: ['mesec', 'meseca', 'meseci'],
+ yy: ['godina', 'godine', 'godina']
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
+ }
+ }
+ };
+
+ var sr = moment.defineLocale('sr', {
+ months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
+ monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
+ weekdays: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],
+ weekdaysShort: ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'],
+ weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar: {
+ sameDay: '[danas u] LT',
+ nextDay: '[sutra u] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedelju] [u] LT';
+ case 3:
+ return '[u] [sredu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[juče u] LT',
+ lastWeek : function () {
+ var lastWeekDays = [
+ '[prošle] [nedelje] [u] LT',
+ '[prošlog] [ponedeljka] [u] LT',
+ '[prošlog] [utorka] [u] LT',
+ '[prošle] [srede] [u] LT',
+ '[prošlog] [četvrtka] [u] LT',
+ '[prošlog] [petka] [u] LT',
+ '[prošle] [subote] [u] LT'
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'pre %s',
+ s : 'nekoliko sekundi',
+ m : translator.translate,
+ mm : translator.translate,
+ h : translator.translate,
+ hh : translator.translate,
+ d : 'dan',
+ dd : translator.translate,
+ M : 'mesec',
+ MM : translator.translate,
+ y : 'godinu',
+ yy : translator.translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return sr;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/sv.js b/node_modules/moment/locale/sv.js
new file mode 100644
index 0000000..5af3bb7
--- /dev/null
+++ b/node_modules/moment/locale/sv.js
@@ -0,0 +1,67 @@
+//! moment.js locale configuration
+//! locale : swedish (sv)
+//! author : Jens Alm : https://github.com/ulmus
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var sv = moment.defineLocale('sv', {
+ months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
+ weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
+ weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Idag] LT',
+ nextDay: '[Imorgon] LT',
+ lastDay: '[Igår] LT',
+ nextWeek: '[På] dddd LT',
+ lastWeek: '[I] dddd[s] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'för %s sedan',
+ s : 'några sekunder',
+ m : 'en minut',
+ mm : '%d minuter',
+ h : 'en timme',
+ hh : '%d timmar',
+ d : 'en dag',
+ dd : '%d dagar',
+ M : 'en månad',
+ MM : '%d månader',
+ y : 'ett år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}(e|a)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'e' :
+ (b === 1) ? 'a' :
+ (b === 2) ? 'a' :
+ (b === 3) ? 'e' : 'e';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return sv;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/sw.js b/node_modules/moment/locale/sw.js
new file mode 100644
index 0000000..8017f7d
--- /dev/null
+++ b/node_modules/moment/locale/sw.js
@@ -0,0 +1,58 @@
+//! moment.js locale configuration
+//! locale : swahili (sw)
+//! author : Fahad Kassim : https://github.com/fadsel
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var sw = moment.defineLocale('sw', {
+ months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
+ weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),
+ weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
+ weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[leo saa] LT',
+ nextDay : '[kesho saa] LT',
+ nextWeek : '[wiki ijayo] dddd [saat] LT',
+ lastDay : '[jana] LT',
+ lastWeek : '[wiki iliyopita] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s baadaye',
+ past : 'tokea %s',
+ s : 'hivi punde',
+ m : 'dakika moja',
+ mm : 'dakika %d',
+ h : 'saa limoja',
+ hh : 'masaa %d',
+ d : 'siku moja',
+ dd : 'masiku %d',
+ M : 'mwezi mmoja',
+ MM : 'miezi %d',
+ y : 'mwaka mmoja',
+ yy : 'miaka %d'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return sw;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/ta.js b/node_modules/moment/locale/ta.js
new file mode 100644
index 0000000..2766509
--- /dev/null
+++ b/node_modules/moment/locale/ta.js
@@ -0,0 +1,129 @@
+//! moment.js locale configuration
+//! locale : tamil (ta)
+//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var symbolMap = {
+ '1': '௧',
+ '2': '௨',
+ '3': '௩',
+ '4': '௪',
+ '5': '௫',
+ '6': '௬',
+ '7': '௭',
+ '8': '௮',
+ '9': '௯',
+ '0': '௦'
+ }, numberMap = {
+ '௧': '1',
+ '௨': '2',
+ '௩': '3',
+ '௪': '4',
+ '௫': '5',
+ '௬': '6',
+ '௭': '7',
+ '௮': '8',
+ '௯': '9',
+ '௦': '0'
+ };
+
+ var ta = moment.defineLocale('ta', {
+ months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
+ monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
+ weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
+ weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
+ weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, HH:mm',
+ LLLL : 'dddd, D MMMM YYYY, HH:mm'
+ },
+ calendar : {
+ sameDay : '[இன்று] LT',
+ nextDay : '[நாளை] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[நேற்று] LT',
+ lastWeek : '[கடந்த வாரம்] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s இல்',
+ past : '%s முன்',
+ s : 'ஒரு சில விநாடிகள்',
+ m : 'ஒரு நிமிடம்',
+ mm : '%d நிமிடங்கள்',
+ h : 'ஒரு மணி நேரம்',
+ hh : '%d மணி நேரம்',
+ d : 'ஒரு நாள்',
+ dd : '%d நாட்கள்',
+ M : 'ஒரு மாதம்',
+ MM : '%d மாதங்கள்',
+ y : 'ஒரு வருடம்',
+ yy : '%d ஆண்டுகள்'
+ },
+ ordinalParse: /\d{1,2}வது/,
+ ordinal : function (number) {
+ return number + 'வது';
+ },
+ preparse: function (string) {
+ return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ // refer http://ta.wikipedia.org/s/1er1
+ meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 2) {
+ return ' யாமம்';
+ } else if (hour < 6) {
+ return ' வைகறை'; // வைகறை
+ } else if (hour < 10) {
+ return ' காலை'; // காலை
+ } else if (hour < 14) {
+ return ' நண்பகல்'; // நண்பகல்
+ } else if (hour < 18) {
+ return ' எற்பாடு'; // எற்பாடு
+ } else if (hour < 22) {
+ return ' மாலை'; // மாலை
+ } else {
+ return ' யாமம்';
+ }
+ },
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'யாமம்') {
+ return hour < 2 ? hour : hour + 12;
+ } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
+ return hour;
+ } else if (meridiem === 'நண்பகல்') {
+ return hour >= 10 ? hour : hour + 12;
+ } else {
+ return hour + 12;
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return ta;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/te.js b/node_modules/moment/locale/te.js
new file mode 100644
index 0000000..775651d
--- /dev/null
+++ b/node_modules/moment/locale/te.js
@@ -0,0 +1,88 @@
+//! moment.js locale configuration
+//! locale : telugu (te)
+//! author : Krishna Chaitanya Thota : https://github.com/kcthota
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var te = moment.defineLocale('te', {
+ months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),
+ monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),
+ weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),
+ weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
+ weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm',
+ LTS : 'A h:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm'
+ },
+ calendar : {
+ sameDay : '[నేడు] LT',
+ nextDay : '[రేపు] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[నిన్న] LT',
+ lastWeek : '[గత] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s లో',
+ past : '%s క్రితం',
+ s : 'కొన్ని క్షణాలు',
+ m : 'ఒక నిమిషం',
+ mm : '%d నిమిషాలు',
+ h : 'ఒక గంట',
+ hh : '%d గంటలు',
+ d : 'ఒక రోజు',
+ dd : '%d రోజులు',
+ M : 'ఒక నెల',
+ MM : '%d నెలలు',
+ y : 'ఒక సంవత్సరం',
+ yy : '%d సంవత్సరాలు'
+ },
+ ordinalParse : /\d{1,2}వ/,
+ ordinal : '%dవ',
+ meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'రాత్రి') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'ఉదయం') {
+ return hour;
+ } else if (meridiem === 'మధ్యాహ్నం') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'సాయంత్రం') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'రాత్రి';
+ } else if (hour < 10) {
+ return 'ఉదయం';
+ } else if (hour < 17) {
+ return 'మధ్యాహ్నం';
+ } else if (hour < 20) {
+ return 'సాయంత్రం';
+ } else {
+ return 'రాత్రి';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return te;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/th.js b/node_modules/moment/locale/th.js
new file mode 100644
index 0000000..ac32542
--- /dev/null
+++ b/node_modules/moment/locale/th.js
@@ -0,0 +1,65 @@
+//! moment.js locale configuration
+//! locale : thai (th)
+//! author : Kridsada Thanabulpong : https://github.com/sirn
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var th = moment.defineLocale('th', {
+ months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
+ monthsShort : 'มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา'.split('_'),
+ weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
+ weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
+ weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
+ longDateFormat : {
+ LT : 'H นาฬิกา m นาที',
+ LTS : 'H นาฬิกา m นาที s วินาที',
+ L : 'YYYY/MM/DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY เวลา H นาฬิกา m นาที',
+ LLLL : 'วันddddที่ D MMMM YYYY เวลา H นาฬิกา m นาที'
+ },
+ meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
+ isPM: function (input) {
+ return input === 'หลังเที่ยง';
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ก่อนเที่ยง';
+ } else {
+ return 'หลังเที่ยง';
+ }
+ },
+ calendar : {
+ sameDay : '[วันนี้ เวลา] LT',
+ nextDay : '[พรุ่งนี้ เวลา] LT',
+ nextWeek : 'dddd[หน้า เวลา] LT',
+ lastDay : '[เมื่อวานนี้ เวลา] LT',
+ lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'อีก %s',
+ past : '%sที่แล้ว',
+ s : 'ไม่กี่วินาที',
+ m : '1 นาที',
+ mm : '%d นาที',
+ h : '1 ชั่วโมง',
+ hh : '%d ชั่วโมง',
+ d : '1 วัน',
+ dd : '%d วัน',
+ M : '1 เดือน',
+ MM : '%d เดือน',
+ y : '1 ปี',
+ yy : '%d ปี'
+ }
+ });
+
+ return th;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/tl-ph.js b/node_modules/moment/locale/tl-ph.js
new file mode 100644
index 0000000..d101fd9
--- /dev/null
+++ b/node_modules/moment/locale/tl-ph.js
@@ -0,0 +1,62 @@
+//! moment.js locale configuration
+//! locale : Tagalog/Filipino (tl-ph)
+//! author : Dan Hagman
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var tl_ph = moment.defineLocale('tl-ph', {
+ months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
+ monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
+ weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
+ weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
+ weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'MM/D/YYYY',
+ LL : 'MMMM D, YYYY',
+ LLL : 'MMMM D, YYYY HH:mm',
+ LLLL : 'dddd, MMMM DD, YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Ngayon sa] LT',
+ nextDay: '[Bukas sa] LT',
+ nextWeek: 'dddd [sa] LT',
+ lastDay: '[Kahapon sa] LT',
+ lastWeek: 'dddd [huling linggo] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'sa loob ng %s',
+ past : '%s ang nakalipas',
+ s : 'ilang segundo',
+ m : 'isang minuto',
+ mm : '%d minuto',
+ h : 'isang oras',
+ hh : '%d oras',
+ d : 'isang araw',
+ dd : '%d araw',
+ M : 'isang buwan',
+ MM : '%d buwan',
+ y : 'isang taon',
+ yy : '%d taon'
+ },
+ ordinalParse: /\d{1,2}/,
+ ordinal : function (number) {
+ return number;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return tl_ph;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/tlh.js b/node_modules/moment/locale/tlh.js
new file mode 100644
index 0000000..4ae53ef
--- /dev/null
+++ b/node_modules/moment/locale/tlh.js
@@ -0,0 +1,119 @@
+//! moment.js locale configuration
+//! locale : Klingon (tlh)
+//! author : Dominika Kruk : https://github.com/amaranthrose
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
+
+ function translateFuture(output) {
+ var time = output;
+ time = (output.indexOf('jaj') !== -1) ?
+ time.slice(0, -3) + 'leS' :
+ (output.indexOf('jar') !== -1) ?
+ time.slice(0, -3) + 'waQ' :
+ (output.indexOf('DIS') !== -1) ?
+ time.slice(0, -3) + 'nem' :
+ time + ' pIq';
+ return time;
+ }
+
+ function translatePast(output) {
+ var time = output;
+ time = (output.indexOf('jaj') !== -1) ?
+ time.slice(0, -3) + 'Hu’' :
+ (output.indexOf('jar') !== -1) ?
+ time.slice(0, -3) + 'wen' :
+ (output.indexOf('DIS') !== -1) ?
+ time.slice(0, -3) + 'ben' :
+ time + ' ret';
+ return time;
+ }
+
+ function translate(number, withoutSuffix, string, isFuture) {
+ var numberNoun = numberAsNoun(number);
+ switch (string) {
+ case 'mm':
+ return numberNoun + ' tup';
+ case 'hh':
+ return numberNoun + ' rep';
+ case 'dd':
+ return numberNoun + ' jaj';
+ case 'MM':
+ return numberNoun + ' jar';
+ case 'yy':
+ return numberNoun + ' DIS';
+ }
+ }
+
+ function numberAsNoun(number) {
+ var hundred = Math.floor((number % 1000) / 100),
+ ten = Math.floor((number % 100) / 10),
+ one = number % 10,
+ word = '';
+ if (hundred > 0) {
+ word += numbersNouns[hundred] + 'vatlh';
+ }
+ if (ten > 0) {
+ word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';
+ }
+ if (one > 0) {
+ word += ((word !== '') ? ' ' : '') + numbersNouns[one];
+ }
+ return (word === '') ? 'pagh' : word;
+ }
+
+ var tlh = moment.defineLocale('tlh', {
+ months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),
+ monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),
+ weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
+ weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
+ weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[DaHjaj] LT',
+ nextDay: '[wa’leS] LT',
+ nextWeek: 'LLL',
+ lastDay: '[wa’Hu’] LT',
+ lastWeek: 'LLL',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : translateFuture,
+ past : translatePast,
+ s : 'puS lup',
+ m : 'wa’ tup',
+ mm : translate,
+ h : 'wa’ rep',
+ hh : translate,
+ d : 'wa’ jaj',
+ dd : translate,
+ M : 'wa’ jar',
+ MM : translate,
+ y : 'wa’ DIS',
+ yy : translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return tlh;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/tr.js b/node_modules/moment/locale/tr.js
new file mode 100644
index 0000000..638edbb
--- /dev/null
+++ b/node_modules/moment/locale/tr.js
@@ -0,0 +1,90 @@
+//! moment.js locale configuration
+//! locale : turkish (tr)
+//! authors : Erhan Gundogan : https://github.com/erhangundogan,
+//! Burak Yiğit Kaya: https://github.com/BYK
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var suffixes = {
+ 1: '\'inci',
+ 5: '\'inci',
+ 8: '\'inci',
+ 70: '\'inci',
+ 80: '\'inci',
+ 2: '\'nci',
+ 7: '\'nci',
+ 20: '\'nci',
+ 50: '\'nci',
+ 3: '\'üncü',
+ 4: '\'üncü',
+ 100: '\'üncü',
+ 6: '\'ncı',
+ 9: '\'uncu',
+ 10: '\'uncu',
+ 30: '\'uncu',
+ 60: '\'ıncı',
+ 90: '\'ıncı'
+ };
+
+ var tr = moment.defineLocale('tr', {
+ months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
+ monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
+ weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
+ weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
+ weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[bugün saat] LT',
+ nextDay : '[yarın saat] LT',
+ nextWeek : '[haftaya] dddd [saat] LT',
+ lastDay : '[dün] LT',
+ lastWeek : '[geçen hafta] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s sonra',
+ past : '%s önce',
+ s : 'birkaç saniye',
+ m : 'bir dakika',
+ mm : '%d dakika',
+ h : 'bir saat',
+ hh : '%d saat',
+ d : 'bir gün',
+ dd : '%d gün',
+ M : 'bir ay',
+ MM : '%d ay',
+ y : 'bir yıl',
+ yy : '%d yıl'
+ },
+ ordinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,
+ ordinal : function (number) {
+ if (number === 0) { // special case for zero
+ return number + '\'ıncı';
+ }
+ var a = number % 10,
+ b = number % 100 - a,
+ c = number >= 100 ? 100 : null;
+ return number + (suffixes[a] || suffixes[b] || suffixes[c]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return tr;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/tzl.js b/node_modules/moment/locale/tzl.js
new file mode 100644
index 0000000..498f7c0
--- /dev/null
+++ b/node_modules/moment/locale/tzl.js
@@ -0,0 +1,87 @@
+//! moment.js locale configuration
+//! locale : talossan (tzl)
+//! author : Robin van der Vliet : https://github.com/robin0van0der0v with the help of Iustì Canun
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+
+ // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
+ // This is currently too difficult (maybe even impossible) to add.
+ var tzl = moment.defineLocale('tzl', {
+ months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),
+ monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
+ weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
+ weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
+ weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM [dallas] YYYY',
+ LLL : 'D. MMMM [dallas] YYYY HH.mm',
+ LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'd\'o' : 'D\'O';
+ } else {
+ return isLower ? 'd\'a' : 'D\'A';
+ }
+ },
+ calendar : {
+ sameDay : '[oxhi à] LT',
+ nextDay : '[demà à] LT',
+ nextWeek : 'dddd [à] LT',
+ lastDay : '[ieiri à] LT',
+ lastWeek : '[sür el] dddd [lasteu à] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'osprei %s',
+ past : 'ja%s',
+ s : processRelativeTime,
+ m : processRelativeTime,
+ mm : processRelativeTime,
+ h : processRelativeTime,
+ hh : processRelativeTime,
+ d : processRelativeTime,
+ dd : processRelativeTime,
+ M : processRelativeTime,
+ MM : processRelativeTime,
+ y : processRelativeTime,
+ yy : processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 's': ['viensas secunds', '\'iensas secunds'],
+ 'm': ['\'n míut', '\'iens míut'],
+ 'mm': [number + ' míuts', '' + number + ' míuts'],
+ 'h': ['\'n þora', '\'iensa þora'],
+ 'hh': [number + ' þoras', '' + number + ' þoras'],
+ 'd': ['\'n ziua', '\'iensa ziua'],
+ 'dd': [number + ' ziuas', '' + number + ' ziuas'],
+ 'M': ['\'n mes', '\'iens mes'],
+ 'MM': [number + ' mesen', '' + number + ' mesen'],
+ 'y': ['\'n ar', '\'iens ar'],
+ 'yy': [number + ' ars', '' + number + ' ars']
+ };
+ return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);
+ }
+
+ return tzl;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/tzm-latn.js b/node_modules/moment/locale/tzm-latn.js
new file mode 100644
index 0000000..712f5f5
--- /dev/null
+++ b/node_modules/moment/locale/tzm-latn.js
@@ -0,0 +1,58 @@
+//! moment.js locale configuration
+//! locale : Morocco Central Atlas Tamaziɣt in Latin (tzm-latn)
+//! author : Abdel Said : https://github.com/abdelsaid
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var tzm_latn = moment.defineLocale('tzm-latn', {
+ months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
+ monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
+ weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[asdkh g] LT',
+ nextDay: '[aska g] LT',
+ nextWeek: 'dddd [g] LT',
+ lastDay: '[assant g] LT',
+ lastWeek: 'dddd [g] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dadkh s yan %s',
+ past : 'yan %s',
+ s : 'imik',
+ m : 'minuḍ',
+ mm : '%d minuḍ',
+ h : 'saɛa',
+ hh : '%d tassaɛin',
+ d : 'ass',
+ dd : '%d ossan',
+ M : 'ayowr',
+ MM : '%d iyyirn',
+ y : 'asgas',
+ yy : '%d isgasn'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return tzm_latn;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/tzm.js b/node_modules/moment/locale/tzm.js
new file mode 100644
index 0000000..6b8acc0
--- /dev/null
+++ b/node_modules/moment/locale/tzm.js
@@ -0,0 +1,58 @@
+//! moment.js locale configuration
+//! locale : Morocco Central Atlas Tamaziɣt (tzm)
+//! author : Abdel Said : https://github.com/abdelsaid
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var tzm = moment.defineLocale('tzm', {
+ months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
+ monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
+ weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
+ nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
+ nextWeek: 'dddd [ⴴ] LT',
+ lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
+ lastWeek: 'dddd [ⴴ] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
+ past : 'ⵢⴰⵏ %s',
+ s : 'ⵉⵎⵉⴽ',
+ m : 'ⵎⵉⵏⵓⴺ',
+ mm : '%d ⵎⵉⵏⵓⴺ',
+ h : 'ⵙⴰⵄⴰ',
+ hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
+ d : 'ⴰⵙⵙ',
+ dd : '%d oⵙⵙⴰⵏ',
+ M : 'ⴰⵢoⵓⵔ',
+ MM : '%d ⵉⵢⵢⵉⵔⵏ',
+ y : 'ⴰⵙⴳⴰⵙ',
+ yy : '%d ⵉⵙⴳⴰⵙⵏ'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return tzm;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/uk.js b/node_modules/moment/locale/uk.js
new file mode 100644
index 0000000..80c3497
--- /dev/null
+++ b/node_modules/moment/locale/uk.js
@@ -0,0 +1,146 @@
+//! moment.js locale configuration
+//! locale : ukrainian (uk)
+//! author : zemlanin : https://github.com/zemlanin
+//! Author : Menelion Elensúle : https://github.com/Oire
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ function plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
+ 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
+ 'dd': 'день_дні_днів',
+ 'MM': 'місяць_місяці_місяців',
+ 'yy': 'рік_роки_років'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'хвилина' : 'хвилину';
+ }
+ else if (key === 'h') {
+ return withoutSuffix ? 'година' : 'годину';
+ }
+ else {
+ return number + ' ' + plural(format[key], +number);
+ }
+ }
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = {
+ 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
+ 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
+ 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
+ },
+ nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
+ 'accusative' :
+ ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
+ 'genitive' :
+ 'nominative');
+ return weekdays[nounCase][m.day()];
+ }
+ function processHoursFunction(str) {
+ return function () {
+ return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
+ };
+ }
+
+ var uk = moment.defineLocale('uk', {
+ months : {
+ 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),
+ 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')
+ },
+ monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
+ weekdays : weekdaysCaseReplace,
+ weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY р.',
+ LLL : 'D MMMM YYYY р., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY р., HH:mm'
+ },
+ calendar : {
+ sameDay: processHoursFunction('[Сьогодні '),
+ nextDay: processHoursFunction('[Завтра '),
+ lastDay: processHoursFunction('[Вчора '),
+ nextWeek: processHoursFunction('[У] dddd ['),
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 5:
+ case 6:
+ return processHoursFunction('[Минулої] dddd [').call(this);
+ case 1:
+ case 2:
+ case 4:
+ return processHoursFunction('[Минулого] dddd [').call(this);
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'за %s',
+ past : '%s тому',
+ s : 'декілька секунд',
+ m : relativeTimeWithPlural,
+ mm : relativeTimeWithPlural,
+ h : 'годину',
+ hh : relativeTimeWithPlural,
+ d : 'день',
+ dd : relativeTimeWithPlural,
+ M : 'місяць',
+ MM : relativeTimeWithPlural,
+ y : 'рік',
+ yy : relativeTimeWithPlural
+ },
+ // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
+ meridiemParse: /ночі|ранку|дня|вечора/,
+ isPM: function (input) {
+ return /^(дня|вечора)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночі';
+ } else if (hour < 12) {
+ return 'ранку';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечора';
+ }
+ },
+ ordinalParse: /\d{1,2}-(й|го)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ case 'w':
+ case 'W':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ return uk;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/uz.js b/node_modules/moment/locale/uz.js
new file mode 100644
index 0000000..fcf594e
--- /dev/null
+++ b/node_modules/moment/locale/uz.js
@@ -0,0 +1,58 @@
+//! moment.js locale configuration
+//! locale : uzbek (uz)
+//! author : Sardor Muminov : https://github.com/muminoff
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var uz = moment.defineLocale('uz', {
+ months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
+ monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
+ weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
+ weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
+ weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'D MMMM YYYY, dddd HH:mm'
+ },
+ calendar : {
+ sameDay : '[Бугун соат] LT [да]',
+ nextDay : '[Эртага] LT [да]',
+ nextWeek : 'dddd [куни соат] LT [да]',
+ lastDay : '[Кеча соат] LT [да]',
+ lastWeek : '[Утган] dddd [куни соат] LT [да]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'Якин %s ичида',
+ past : 'Бир неча %s олдин',
+ s : 'фурсат',
+ m : 'бир дакика',
+ mm : '%d дакика',
+ h : 'бир соат',
+ hh : '%d соат',
+ d : 'бир кун',
+ dd : '%d кун',
+ M : 'бир ой',
+ MM : '%d ой',
+ y : 'бир йил',
+ yy : '%d йил'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return uz;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/vi.js b/node_modules/moment/locale/vi.js
new file mode 100644
index 0000000..0e7ba8c
--- /dev/null
+++ b/node_modules/moment/locale/vi.js
@@ -0,0 +1,66 @@
+//! moment.js locale configuration
+//! locale : vietnamese (vi)
+//! author : Bang Nguyen : https://github.com/bangnk
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var vi = moment.defineLocale('vi', {
+ months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),
+ monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
+ weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
+ weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
+ weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM [năm] YYYY',
+ LLL : 'D MMMM [năm] YYYY HH:mm',
+ LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',
+ l : 'DD/M/YYYY',
+ ll : 'D MMM YYYY',
+ lll : 'D MMM YYYY HH:mm',
+ llll : 'ddd, D MMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Hôm nay lúc] LT',
+ nextDay: '[Ngày mai lúc] LT',
+ nextWeek: 'dddd [tuần tới lúc] LT',
+ lastDay: '[Hôm qua lúc] LT',
+ lastWeek: 'dddd [tuần rồi lúc] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : '%s tới',
+ past : '%s trước',
+ s : 'vài giây',
+ m : 'một phút',
+ mm : '%d phút',
+ h : 'một giờ',
+ hh : '%d giờ',
+ d : 'một ngày',
+ dd : '%d ngày',
+ M : 'một tháng',
+ MM : '%d tháng',
+ y : 'một năm',
+ yy : '%d năm'
+ },
+ ordinalParse: /\d{1,2}/,
+ ordinal : function (number) {
+ return number;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return vi;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/zh-cn.js b/node_modules/moment/locale/zh-cn.js
new file mode 100644
index 0000000..aec5ede
--- /dev/null
+++ b/node_modules/moment/locale/zh-cn.js
@@ -0,0 +1,127 @@
+//! moment.js locale configuration
+//! locale : chinese (zh-cn)
+//! author : suupic : https://github.com/suupic
+//! author : Zeno Zeng : https://github.com/zenozeng
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var zh_cn = moment.defineLocale('zh-cn', {
+ months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
+ weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat : {
+ LT : 'Ah点mm分',
+ LTS : 'Ah点m分s秒',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY年MMMD日',
+ LLL : 'YYYY年MMMD日Ah点mm分',
+ LLLL : 'YYYY年MMMD日ddddAh点mm分',
+ l : 'YYYY-MM-DD',
+ ll : 'YYYY年MMMD日',
+ lll : 'YYYY年MMMD日Ah点mm分',
+ llll : 'YYYY年MMMD日ddddAh点mm分'
+ },
+ meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '凌晨' || meridiem === '早上' ||
+ meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ } else {
+ // '中午'
+ return hour >= 11 ? hour : hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 600) {
+ return '凌晨';
+ } else if (hm < 900) {
+ return '早上';
+ } else if (hm < 1130) {
+ return '上午';
+ } else if (hm < 1230) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar : {
+ sameDay : function () {
+ return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT';
+ },
+ nextDay : function () {
+ return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT';
+ },
+ lastDay : function () {
+ return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT';
+ },
+ nextWeek : function () {
+ var startOfWeek, prefix;
+ startOfWeek = moment().startOf('week');
+ prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';
+ return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
+ },
+ lastWeek : function () {
+ var startOfWeek, prefix;
+ startOfWeek = moment().startOf('week');
+ prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]';
+ return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
+ },
+ sameElse : 'LL'
+ },
+ ordinalParse: /\d{1,2}(日|月|周)/,
+ ordinal : function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + '日';
+ case 'M':
+ return number + '月';
+ case 'w':
+ case 'W':
+ return number + '周';
+ default:
+ return number;
+ }
+ },
+ relativeTime : {
+ future : '%s内',
+ past : '%s前',
+ s : '几秒',
+ m : '1 分钟',
+ mm : '%d 分钟',
+ h : '1 小时',
+ hh : '%d 小时',
+ d : '1 天',
+ dd : '%d 天',
+ M : '1 个月',
+ MM : '%d 个月',
+ y : '1 年',
+ yy : '%d 年'
+ },
+ week : {
+ // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ return zh_cn;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/locale/zh-tw.js b/node_modules/moment/locale/zh-tw.js
new file mode 100644
index 0000000..bf3a333
--- /dev/null
+++ b/node_modules/moment/locale/zh-tw.js
@@ -0,0 +1,101 @@
+//! moment.js locale configuration
+//! locale : traditional chinese (zh-tw)
+//! author : Ben : https://github.com/ben-lin
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+
+ var zh_tw = moment.defineLocale('zh-tw', {
+ months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
+ weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat : {
+ LT : 'Ah點mm分',
+ LTS : 'Ah點m分s秒',
+ L : 'YYYY年MMMD日',
+ LL : 'YYYY年MMMD日',
+ LLL : 'YYYY年MMMD日Ah點mm分',
+ LLLL : 'YYYY年MMMD日ddddAh點mm分',
+ l : 'YYYY年MMMD日',
+ ll : 'YYYY年MMMD日',
+ lll : 'YYYY年MMMD日Ah點mm分',
+ llll : 'YYYY年MMMD日ddddAh點mm分'
+ },
+ meridiemParse: /早上|上午|中午|下午|晚上/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '早上' || meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '中午') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 900) {
+ return '早上';
+ } else if (hm < 1130) {
+ return '上午';
+ } else if (hm < 1230) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar : {
+ sameDay : '[今天]LT',
+ nextDay : '[明天]LT',
+ nextWeek : '[下]ddddLT',
+ lastDay : '[昨天]LT',
+ lastWeek : '[上]ddddLT',
+ sameElse : 'L'
+ },
+ ordinalParse: /\d{1,2}(日|月|週)/,
+ ordinal : function (number, period) {
+ switch (period) {
+ case 'd' :
+ case 'D' :
+ case 'DDD' :
+ return number + '日';
+ case 'M' :
+ return number + '月';
+ case 'w' :
+ case 'W' :
+ return number + '週';
+ default :
+ return number;
+ }
+ },
+ relativeTime : {
+ future : '%s內',
+ past : '%s前',
+ s : '幾秒',
+ m : '一分鐘',
+ mm : '%d分鐘',
+ h : '一小時',
+ hh : '%d小時',
+ d : '一天',
+ dd : '%d天',
+ M : '一個月',
+ MM : '%d個月',
+ y : '一年',
+ yy : '%d年'
+ }
+ });
+
+ return zh_tw;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/min/locales.js b/node_modules/moment/min/locales.js
new file mode 100644
index 0000000..94ae713
--- /dev/null
+++ b/node_modules/moment/min/locales.js
@@ -0,0 +1,7548 @@
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['moment'], factory) :
+ factory(global.moment)
+}(this, function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+ //! locale : afrikaans (af)
+ //! author : Werner Mollentze : https://github.com/wernerm
+
+ var af = moment.defineLocale('af', {
+ months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
+ weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
+ weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
+ weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
+ meridiemParse: /vm|nm/i,
+ isPM : function (input) {
+ return /^nm$/i.test(input);
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower ? 'vm' : 'VM';
+ } else {
+ return isLower ? 'nm' : 'NM';
+ }
+ },
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Vandag om] LT',
+ nextDay : '[Môre om] LT',
+ nextWeek : 'dddd [om] LT',
+ lastDay : '[Gister om] LT',
+ lastWeek : '[Laas] dddd [om] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'oor %s',
+ past : '%s gelede',
+ s : '\'n paar sekondes',
+ m : '\'n minuut',
+ mm : '%d minute',
+ h : '\'n uur',
+ hh : '%d ure',
+ d : '\'n dag',
+ dd : '%d dae',
+ M : '\'n maand',
+ MM : '%d maande',
+ y : '\'n jaar',
+ yy : '%d jaar'
+ },
+ ordinalParse: /\d{1,2}(ste|de)/,
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
+ },
+ week : {
+ dow : 1, // Maandag is die eerste dag van die week.
+ doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Moroccan Arabic (ar-ma)
+ //! author : ElFadili Yassine : https://github.com/ElFadiliY
+ //! author : Abdel Said : https://github.com/abdelsaid
+
+ var ar_ma = moment.defineLocale('ar-ma', {
+ months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+ monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+ weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'في %s',
+ past : 'منذ %s',
+ s : 'ثوان',
+ m : 'دقيقة',
+ mm : '%d دقائق',
+ h : 'ساعة',
+ hh : '%d ساعات',
+ d : 'يوم',
+ dd : '%d أيام',
+ M : 'شهر',
+ MM : '%d أشهر',
+ y : 'سنة',
+ yy : '%d سنوات'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Arabic Saudi Arabia (ar-sa)
+ //! author : Suhail Alkowaileet : https://github.com/xsoh
+
+ var ar_sa__symbolMap = {
+ '1': '١',
+ '2': '٢',
+ '3': '٣',
+ '4': '٤',
+ '5': '٥',
+ '6': '٦',
+ '7': '٧',
+ '8': '٨',
+ '9': '٩',
+ '0': '٠'
+ }, ar_sa__numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0'
+ };
+
+ var ar_sa = moment.defineLocale('ar-sa', {
+ months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /ص|م/,
+ isPM : function (input) {
+ return 'م' === input;
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar : {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'في %s',
+ past : 'منذ %s',
+ s : 'ثوان',
+ m : 'دقيقة',
+ mm : '%d دقائق',
+ h : 'ساعة',
+ hh : '%d ساعات',
+ d : 'يوم',
+ dd : '%d أيام',
+ M : 'شهر',
+ MM : '%d أشهر',
+ y : 'سنة',
+ yy : '%d سنوات'
+ },
+ preparse: function (string) {
+ return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
+ return ar_sa__numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return ar_sa__symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Tunisian Arabic (ar-tn)
+
+ var ar_tn = moment.defineLocale('ar-tn', {
+ months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: 'في %s',
+ past: 'منذ %s',
+ s: 'ثوان',
+ m: 'دقيقة',
+ mm: '%d دقائق',
+ h: 'ساعة',
+ hh: '%d ساعات',
+ d: 'يوم',
+ dd: '%d أيام',
+ M: 'شهر',
+ MM: '%d أشهر',
+ y: 'سنة',
+ yy: '%d سنوات'
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! Locale: Arabic (ar)
+ //! Author: Abdel Said: https://github.com/abdelsaid
+ //! Changes in months, weekdays: Ahmed Elkhatib
+ //! Native plural forms: forabi https://github.com/forabi
+
+ var ar__symbolMap = {
+ '1': '١',
+ '2': '٢',
+ '3': '٣',
+ '4': '٤',
+ '5': '٥',
+ '6': '٦',
+ '7': '٧',
+ '8': '٨',
+ '9': '٩',
+ '0': '٠'
+ }, ar__numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0'
+ }, pluralForm = function (n) {
+ return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
+ }, plurals = {
+ s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
+ m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
+ h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
+ d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
+ M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
+ y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
+ }, pluralize = function (u) {
+ return function (number, withoutSuffix, string, isFuture) {
+ var f = pluralForm(number),
+ str = plurals[u][pluralForm(number)];
+ if (f === 2) {
+ str = str[withoutSuffix ? 0 : 1];
+ }
+ return str.replace(/%d/i, number);
+ };
+ }, ar__months = [
+ 'كانون الثاني يناير',
+ 'شباط فبراير',
+ 'آذار مارس',
+ 'نيسان أبريل',
+ 'أيار مايو',
+ 'حزيران يونيو',
+ 'تموز يوليو',
+ 'آب أغسطس',
+ 'أيلول سبتمبر',
+ 'تشرين الأول أكتوبر',
+ 'تشرين الثاني نوفمبر',
+ 'كانون الأول ديسمبر'
+ ];
+
+ var ar = moment.defineLocale('ar', {
+ months : ar__months,
+ monthsShort : ar__months,
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'D/\u200FM/\u200FYYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /ص|م/,
+ isPM : function (input) {
+ return 'م' === input;
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar : {
+ sameDay: '[اليوم عند الساعة] LT',
+ nextDay: '[غدًا عند الساعة] LT',
+ nextWeek: 'dddd [عند الساعة] LT',
+ lastDay: '[أمس عند الساعة] LT',
+ lastWeek: 'dddd [عند الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'بعد %s',
+ past : 'منذ %s',
+ s : pluralize('s'),
+ m : pluralize('m'),
+ mm : pluralize('m'),
+ h : pluralize('h'),
+ hh : pluralize('h'),
+ d : pluralize('d'),
+ dd : pluralize('d'),
+ M : pluralize('M'),
+ MM : pluralize('M'),
+ y : pluralize('y'),
+ yy : pluralize('y')
+ },
+ preparse: function (string) {
+ return string.replace(/\u200f/g, '').replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
+ return ar__numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return ar__symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : azerbaijani (az)
+ //! author : topchiyev : https://github.com/topchiyev
+
+ var az__suffixes = {
+ 1: '-inci',
+ 5: '-inci',
+ 8: '-inci',
+ 70: '-inci',
+ 80: '-inci',
+ 2: '-nci',
+ 7: '-nci',
+ 20: '-nci',
+ 50: '-nci',
+ 3: '-üncü',
+ 4: '-üncü',
+ 100: '-üncü',
+ 6: '-ncı',
+ 9: '-uncu',
+ 10: '-uncu',
+ 30: '-uncu',
+ 60: '-ıncı',
+ 90: '-ıncı'
+ };
+
+ var az = moment.defineLocale('az', {
+ months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
+ monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
+ weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
+ weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
+ weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[bugün saat] LT',
+ nextDay : '[sabah saat] LT',
+ nextWeek : '[gələn həftə] dddd [saat] LT',
+ lastDay : '[dünən] LT',
+ lastWeek : '[keçən həftə] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s sonra',
+ past : '%s əvvəl',
+ s : 'birneçə saniyyə',
+ m : 'bir dəqiqə',
+ mm : '%d dəqiqə',
+ h : 'bir saat',
+ hh : '%d saat',
+ d : 'bir gün',
+ dd : '%d gün',
+ M : 'bir ay',
+ MM : '%d ay',
+ y : 'bir il',
+ yy : '%d il'
+ },
+ meridiemParse: /gecə|səhər|gündüz|axşam/,
+ isPM : function (input) {
+ return /^(gündüz|axşam)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'gecə';
+ } else if (hour < 12) {
+ return 'səhər';
+ } else if (hour < 17) {
+ return 'gündüz';
+ } else {
+ return 'axşam';
+ }
+ },
+ ordinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
+ ordinal : function (number) {
+ if (number === 0) { // special case for zero
+ return number + '-ıncı';
+ }
+ var a = number % 10,
+ b = number % 100 - a,
+ c = number >= 100 ? 100 : null;
+ return number + (az__suffixes[a] || az__suffixes[b] || az__suffixes[c]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : belarusian (be)
+ //! author : Dmitry Demidov : https://github.com/demidov91
+ //! author: Praleska: http://praleska.pro/
+ //! Author : Menelion Elensúle : https://github.com/Oire
+
+ function be__plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+ function be__relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
+ 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
+ 'dd': 'дзень_дні_дзён',
+ 'MM': 'месяц_месяцы_месяцаў',
+ 'yy': 'год_гады_гадоў'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'хвіліна' : 'хвіліну';
+ }
+ else if (key === 'h') {
+ return withoutSuffix ? 'гадзіна' : 'гадзіну';
+ }
+ else {
+ return number + ' ' + be__plural(format[key], +number);
+ }
+ }
+
+ var be = moment.defineLocale('be', {
+ months : {
+ format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),
+ standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')
+ },
+ monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
+ weekdays : {
+ format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),
+ standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
+ isFormat: /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/
+ },
+ weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+ weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY г.',
+ LLL : 'D MMMM YYYY г., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY г., HH:mm'
+ },
+ calendar : {
+ sameDay: '[Сёння ў] LT',
+ nextDay: '[Заўтра ў] LT',
+ lastDay: '[Учора ў] LT',
+ nextWeek: function () {
+ return '[У] dddd [ў] LT';
+ },
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 5:
+ case 6:
+ return '[У мінулую] dddd [ў] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[У мінулы] dddd [ў] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'праз %s',
+ past : '%s таму',
+ s : 'некалькі секунд',
+ m : be__relativeTimeWithPlural,
+ mm : be__relativeTimeWithPlural,
+ h : be__relativeTimeWithPlural,
+ hh : be__relativeTimeWithPlural,
+ d : 'дзень',
+ dd : be__relativeTimeWithPlural,
+ M : 'месяц',
+ MM : be__relativeTimeWithPlural,
+ y : 'год',
+ yy : be__relativeTimeWithPlural
+ },
+ meridiemParse: /ночы|раніцы|дня|вечара/,
+ isPM : function (input) {
+ return /^(дня|вечара)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночы';
+ } else if (hour < 12) {
+ return 'раніцы';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечара';
+ }
+ },
+ ordinalParse: /\d{1,2}-(і|ы|га)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ case 'w':
+ case 'W':
+ return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
+ case 'D':
+ return number + '-га';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : bulgarian (bg)
+ //! author : Krasen Borisov : https://github.com/kraz
+
+ var bg = moment.defineLocale('bg', {
+ months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
+ monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
+ weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
+ weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
+ weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'D.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd, D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[Днес в] LT',
+ nextDay : '[Утре в] LT',
+ nextWeek : 'dddd [в] LT',
+ lastDay : '[Вчера в] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[В изминалата] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[В изминалия] dddd [в] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'след %s',
+ past : 'преди %s',
+ s : 'няколко секунди',
+ m : 'минута',
+ mm : '%d минути',
+ h : 'час',
+ hh : '%d часа',
+ d : 'ден',
+ dd : '%d дни',
+ M : 'месец',
+ MM : '%d месеца',
+ y : 'година',
+ yy : '%d години'
+ },
+ ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
+ ordinal : function (number) {
+ var lastDigit = number % 10,
+ last2Digits = number % 100;
+ if (number === 0) {
+ return number + '-ев';
+ } else if (last2Digits === 0) {
+ return number + '-ен';
+ } else if (last2Digits > 10 && last2Digits < 20) {
+ return number + '-ти';
+ } else if (lastDigit === 1) {
+ return number + '-ви';
+ } else if (lastDigit === 2) {
+ return number + '-ри';
+ } else if (lastDigit === 7 || lastDigit === 8) {
+ return number + '-ми';
+ } else {
+ return number + '-ти';
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Bengali (bn)
+ //! author : Kaushik Gandhi : https://github.com/kaushikgandhi
+
+ var bn__symbolMap = {
+ '1': '১',
+ '2': '২',
+ '3': '৩',
+ '4': '৪',
+ '5': '৫',
+ '6': '৬',
+ '7': '৭',
+ '8': '৮',
+ '9': '৯',
+ '0': '০'
+ },
+ bn__numberMap = {
+ '১': '1',
+ '২': '2',
+ '৩': '3',
+ '৪': '4',
+ '৫': '5',
+ '৬': '6',
+ '৭': '7',
+ '৮': '8',
+ '৯': '9',
+ '০': '0'
+ };
+
+ var bn = moment.defineLocale('bn', {
+ months : 'জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
+ monthsShort : 'জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্'.split('_'),
+ weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রবার_শনিবার'.split('_'),
+ weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্র_শনি'.split('_'),
+ weekdaysMin : 'রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm সময়',
+ LTS : 'A h:mm:ss সময়',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm সময়',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'
+ },
+ calendar : {
+ sameDay : '[আজ] LT',
+ nextDay : '[আগামীকাল] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[গতকাল] LT',
+ lastWeek : '[গত] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s পরে',
+ past : '%s আগে',
+ s : 'কয়েক সেকেন্ড',
+ m : 'এক মিনিট',
+ mm : '%d মিনিট',
+ h : 'এক ঘন্টা',
+ hh : '%d ঘন্টা',
+ d : 'এক দিন',
+ dd : '%d দিন',
+ M : 'এক মাস',
+ MM : '%d মাস',
+ y : 'এক বছর',
+ yy : '%d বছর'
+ },
+ preparse: function (string) {
+ return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
+ return bn__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return bn__symbolMap[match];
+ });
+ },
+ meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
+ isPM: function (input) {
+ return /^(দুপুর|বিকাল|রাত)$/.test(input);
+ },
+ //Bengali is a vast language its spoken
+ //in different forms in various parts of the world.
+ //I have just generalized with most common one used
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'রাত';
+ } else if (hour < 10) {
+ return 'সকাল';
+ } else if (hour < 17) {
+ return 'দুপুর';
+ } else if (hour < 20) {
+ return 'বিকাল';
+ } else {
+ return 'রাত';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : tibetan (bo)
+ //! author : Thupten N. Chakrishar : https://github.com/vajradog
+
+ var bo__symbolMap = {
+ '1': '༡',
+ '2': '༢',
+ '3': '༣',
+ '4': '༤',
+ '5': '༥',
+ '6': '༦',
+ '7': '༧',
+ '8': '༨',
+ '9': '༩',
+ '0': '༠'
+ },
+ bo__numberMap = {
+ '༡': '1',
+ '༢': '2',
+ '༣': '3',
+ '༤': '4',
+ '༥': '5',
+ '༦': '6',
+ '༧': '7',
+ '༨': '8',
+ '༩': '9',
+ '༠': '0'
+ };
+
+ var bo = moment.defineLocale('bo', {
+ months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
+ monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
+ weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
+ weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
+ weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm',
+ LTS : 'A h:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm'
+ },
+ calendar : {
+ sameDay : '[དི་རིང] LT',
+ nextDay : '[སང་ཉིན] LT',
+ nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
+ lastDay : '[ཁ་སང] LT',
+ lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s ལ་',
+ past : '%s སྔན་ལ',
+ s : 'ལམ་སང',
+ m : 'སྐར་མ་གཅིག',
+ mm : '%d སྐར་མ',
+ h : 'ཆུ་ཚོད་གཅིག',
+ hh : '%d ཆུ་ཚོད',
+ d : 'ཉིན་གཅིག',
+ dd : '%d ཉིན་',
+ M : 'ཟླ་བ་གཅིག',
+ MM : '%d ཟླ་བ',
+ y : 'ལོ་གཅིག',
+ yy : '%d ལོ'
+ },
+ preparse: function (string) {
+ return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
+ return bo__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return bo__symbolMap[match];
+ });
+ },
+ meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
+ isPM: function (input) {
+ return /^(ཉིན་གུང|དགོང་དག|མཚན་མོ)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'མཚན་མོ';
+ } else if (hour < 10) {
+ return 'ཞོགས་ཀས';
+ } else if (hour < 17) {
+ return 'ཉིན་གུང';
+ } else if (hour < 20) {
+ return 'དགོང་དག';
+ } else {
+ return 'མཚན་མོ';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : breton (br)
+ //! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
+
+ function relativeTimeWithMutation(number, withoutSuffix, key) {
+ var format = {
+ 'mm': 'munutenn',
+ 'MM': 'miz',
+ 'dd': 'devezh'
+ };
+ return number + ' ' + mutation(format[key], number);
+ }
+ function specialMutationForYears(number) {
+ switch (lastNumber(number)) {
+ case 1:
+ case 3:
+ case 4:
+ case 5:
+ case 9:
+ return number + ' bloaz';
+ default:
+ return number + ' vloaz';
+ }
+ }
+ function lastNumber(number) {
+ if (number > 9) {
+ return lastNumber(number % 10);
+ }
+ return number;
+ }
+ function mutation(text, number) {
+ if (number === 2) {
+ return softMutation(text);
+ }
+ return text;
+ }
+ function softMutation(text) {
+ var mutationTable = {
+ 'm': 'v',
+ 'b': 'v',
+ 'd': 'z'
+ };
+ if (mutationTable[text.charAt(0)] === undefined) {
+ return text;
+ }
+ return mutationTable[text.charAt(0)] + text.substring(1);
+ }
+
+ var br = moment.defineLocale('br', {
+ months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
+ monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
+ weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
+ weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
+ weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h[e]mm A',
+ LTS : 'h[e]mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D [a viz] MMMM YYYY',
+ LLL : 'D [a viz] MMMM YYYY h[e]mm A',
+ LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'
+ },
+ calendar : {
+ sameDay : '[Hiziv da] LT',
+ nextDay : '[Warc\'hoazh da] LT',
+ nextWeek : 'dddd [da] LT',
+ lastDay : '[Dec\'h da] LT',
+ lastWeek : 'dddd [paset da] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'a-benn %s',
+ past : '%s \'zo',
+ s : 'un nebeud segondennoù',
+ m : 'ur vunutenn',
+ mm : relativeTimeWithMutation,
+ h : 'un eur',
+ hh : '%d eur',
+ d : 'un devezh',
+ dd : relativeTimeWithMutation,
+ M : 'ur miz',
+ MM : relativeTimeWithMutation,
+ y : 'ur bloaz',
+ yy : specialMutationForYears
+ },
+ ordinalParse: /\d{1,2}(añ|vet)/,
+ ordinal : function (number) {
+ var output = (number === 1) ? 'añ' : 'vet';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : bosnian (bs)
+ //! author : Nedim Cholich : https://github.com/frontyard
+ //! based on (hr) translation by Bojan Marković
+
+ function bs__translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ var bs = moment.defineLocale('bs', {
+ months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
+ monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
+ weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
+ weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+ weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[danas u] LT',
+ nextDay : '[sutra u] LT',
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[jučer u] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ return '[prošlu] dddd [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'prije %s',
+ s : 'par sekundi',
+ m : bs__translate,
+ mm : bs__translate,
+ h : bs__translate,
+ hh : bs__translate,
+ d : 'dan',
+ dd : bs__translate,
+ M : 'mjesec',
+ MM : bs__translate,
+ y : 'godinu',
+ yy : bs__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : catalan (ca)
+ //! author : Juan G. Hurtado : https://github.com/juanghurtado
+
+ var ca = moment.defineLocale('ca', {
+ months : 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
+ monthsShort : 'gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.'.split('_'),
+ weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
+ weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
+ weekdaysMin : 'Dg_Dl_Dt_Dc_Dj_Dv_Ds'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ nextDay : function () {
+ return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ lastDay : function () {
+ return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ lastWeek : function () {
+ return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'en %s',
+ past : 'fa %s',
+ s : 'uns segons',
+ m : 'un minut',
+ mm : '%d minuts',
+ h : 'una hora',
+ hh : '%d hores',
+ d : 'un dia',
+ dd : '%d dies',
+ M : 'un mes',
+ MM : '%d mesos',
+ y : 'un any',
+ yy : '%d anys'
+ },
+ ordinalParse: /\d{1,2}(r|n|t|è|a)/,
+ ordinal : function (number, period) {
+ var output = (number === 1) ? 'r' :
+ (number === 2) ? 'n' :
+ (number === 3) ? 'r' :
+ (number === 4) ? 't' : 'è';
+ if (period === 'w' || period === 'W') {
+ output = 'a';
+ }
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : czech (cs)
+ //! author : petrbela : https://github.com/petrbela
+
+ var cs__months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
+ cs__monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
+ function cs__plural(n) {
+ return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
+ }
+ function cs__translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (cs__plural(number) ? 'minuty' : 'minut');
+ } else {
+ return result + 'minutami';
+ }
+ break;
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (cs__plural(number) ? 'hodiny' : 'hodin');
+ } else {
+ return result + 'hodinami';
+ }
+ break;
+ case 'd': // a day / in a day / a day ago
+ return (withoutSuffix || isFuture) ? 'den' : 'dnem';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (cs__plural(number) ? 'dny' : 'dní');
+ } else {
+ return result + 'dny';
+ }
+ break;
+ case 'M': // a month / in a month / a month ago
+ return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (cs__plural(number) ? 'měsíce' : 'měsíců');
+ } else {
+ return result + 'měsíci';
+ }
+ break;
+ case 'y': // a year / in a year / a year ago
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (cs__plural(number) ? 'roky' : 'let');
+ } else {
+ return result + 'lety';
+ }
+ break;
+ }
+ }
+
+ var cs = moment.defineLocale('cs', {
+ months : cs__months,
+ monthsShort : cs__monthsShort,
+ monthsParse : (function (months, monthsShort) {
+ var i, _monthsParse = [];
+ for (i = 0; i < 12; i++) {
+ // use custom parser to solve problem with July (červenec)
+ _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
+ }
+ return _monthsParse;
+ }(cs__months, cs__monthsShort)),
+ shortMonthsParse : (function (monthsShort) {
+ var i, _shortMonthsParse = [];
+ for (i = 0; i < 12; i++) {
+ _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');
+ }
+ return _shortMonthsParse;
+ }(cs__monthsShort)),
+ longMonthsParse : (function (months) {
+ var i, _longMonthsParse = [];
+ for (i = 0; i < 12; i++) {
+ _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');
+ }
+ return _longMonthsParse;
+ }(cs__months)),
+ weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
+ weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
+ weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
+ longDateFormat : {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay: '[dnes v] LT',
+ nextDay: '[zítra v] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v neděli v] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [v] LT';
+ case 3:
+ return '[ve středu v] LT';
+ case 4:
+ return '[ve čtvrtek v] LT';
+ case 5:
+ return '[v pátek v] LT';
+ case 6:
+ return '[v sobotu v] LT';
+ }
+ },
+ lastDay: '[včera v] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulou neděli v] LT';
+ case 1:
+ case 2:
+ return '[minulé] dddd [v] LT';
+ case 3:
+ return '[minulou středu v] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [v] LT';
+ case 6:
+ return '[minulou sobotu v] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'před %s',
+ s : cs__translate,
+ m : cs__translate,
+ mm : cs__translate,
+ h : cs__translate,
+ hh : cs__translate,
+ d : cs__translate,
+ dd : cs__translate,
+ M : cs__translate,
+ MM : cs__translate,
+ y : cs__translate,
+ yy : cs__translate
+ },
+ ordinalParse : /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : chuvash (cv)
+ //! author : Anatoly Mironov : https://github.com/mirontoli
+
+ var cv = moment.defineLocale('cv', {
+ months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),
+ monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
+ weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),
+ weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
+ weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
+ LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
+ LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'
+ },
+ calendar : {
+ sameDay: '[Паян] LT [сехетре]',
+ nextDay: '[Ыран] LT [сехетре]',
+ lastDay: '[Ӗнер] LT [сехетре]',
+ nextWeek: '[Ҫитес] dddd LT [сехетре]',
+ lastWeek: '[Иртнӗ] dddd LT [сехетре]',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : function (output) {
+ var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';
+ return output + affix;
+ },
+ past : '%s каялла',
+ s : 'пӗр-ик ҫеккунт',
+ m : 'пӗр минут',
+ mm : '%d минут',
+ h : 'пӗр сехет',
+ hh : '%d сехет',
+ d : 'пӗр кун',
+ dd : '%d кун',
+ M : 'пӗр уйӑх',
+ MM : '%d уйӑх',
+ y : 'пӗр ҫул',
+ yy : '%d ҫул'
+ },
+ ordinalParse: /\d{1,2}-мӗш/,
+ ordinal : '%d-мӗш',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Welsh (cy)
+ //! author : Robert Allen
+
+ var cy = moment.defineLocale('cy', {
+ months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
+ monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
+ weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
+ weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
+ weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
+ // time formats are the same as en-gb
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[Heddiw am] LT',
+ nextDay: '[Yfory am] LT',
+ nextWeek: 'dddd [am] LT',
+ lastDay: '[Ddoe am] LT',
+ lastWeek: 'dddd [diwethaf am] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: 'mewn %s',
+ past: '%s yn ôl',
+ s: 'ychydig eiliadau',
+ m: 'munud',
+ mm: '%d munud',
+ h: 'awr',
+ hh: '%d awr',
+ d: 'diwrnod',
+ dd: '%d diwrnod',
+ M: 'mis',
+ MM: '%d mis',
+ y: 'blwyddyn',
+ yy: '%d flynedd'
+ },
+ ordinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
+ // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
+ ordinal: function (number) {
+ var b = number,
+ output = '',
+ lookup = [
+ '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
+ 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
+ ];
+ if (b > 20) {
+ if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
+ output = 'fed'; // not 30ain, 70ain or 90ain
+ } else {
+ output = 'ain';
+ }
+ } else if (b > 0) {
+ output = lookup[b];
+ }
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : danish (da)
+ //! author : Ulrik Nielsen : https://github.com/mrbase
+
+ var da = moment.defineLocale('da', {
+ months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
+ weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
+ weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY HH:mm',
+ LLLL : 'dddd [d.] D. MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[I dag kl.] LT',
+ nextDay : '[I morgen kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[I går kl.] LT',
+ lastWeek : '[sidste] dddd [kl] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : '%s siden',
+ s : 'få sekunder',
+ m : 'et minut',
+ mm : '%d minutter',
+ h : 'en time',
+ hh : '%d timer',
+ d : 'en dag',
+ dd : '%d dage',
+ M : 'en måned',
+ MM : '%d måneder',
+ y : 'et år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : austrian german (de-at)
+ //! author : lluchs : https://github.com/lluchs
+ //! author: Menelion Elensúle: https://github.com/Oire
+ //! author : Martin Groller : https://github.com/MadMG
+ //! author : Mikolaj Dadela : https://github.com/mik01aj
+
+ function de_at__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eine Minute', 'einer Minute'],
+ 'h': ['eine Stunde', 'einer Stunde'],
+ 'd': ['ein Tag', 'einem Tag'],
+ 'dd': [number + ' Tage', number + ' Tagen'],
+ 'M': ['ein Monat', 'einem Monat'],
+ 'MM': [number + ' Monate', number + ' Monaten'],
+ 'y': ['ein Jahr', 'einem Jahr'],
+ 'yy': [number + ' Jahre', number + ' Jahren']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ var de_at = moment.defineLocale('de-at', {
+ months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
+ weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+ weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY HH:mm',
+ LLLL : 'dddd, D. MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[heute um] LT [Uhr]',
+ sameElse: 'L',
+ nextDay: '[morgen um] LT [Uhr]',
+ nextWeek: 'dddd [um] LT [Uhr]',
+ lastDay: '[gestern um] LT [Uhr]',
+ lastWeek: '[letzten] dddd [um] LT [Uhr]'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : 'vor %s',
+ s : 'ein paar Sekunden',
+ m : de_at__processRelativeTime,
+ mm : '%d Minuten',
+ h : de_at__processRelativeTime,
+ hh : '%d Stunden',
+ d : de_at__processRelativeTime,
+ dd : de_at__processRelativeTime,
+ M : de_at__processRelativeTime,
+ MM : de_at__processRelativeTime,
+ y : de_at__processRelativeTime,
+ yy : de_at__processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : german (de)
+ //! author : lluchs : https://github.com/lluchs
+ //! author: Menelion Elensúle: https://github.com/Oire
+ //! author : Mikolaj Dadela : https://github.com/mik01aj
+
+ function de__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eine Minute', 'einer Minute'],
+ 'h': ['eine Stunde', 'einer Stunde'],
+ 'd': ['ein Tag', 'einem Tag'],
+ 'dd': [number + ' Tage', number + ' Tagen'],
+ 'M': ['ein Monat', 'einem Monat'],
+ 'MM': [number + ' Monate', number + ' Monaten'],
+ 'y': ['ein Jahr', 'einem Jahr'],
+ 'yy': [number + ' Jahre', number + ' Jahren']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ var de = moment.defineLocale('de', {
+ months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
+ weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+ weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY HH:mm',
+ LLLL : 'dddd, D. MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[heute um] LT [Uhr]',
+ sameElse: 'L',
+ nextDay: '[morgen um] LT [Uhr]',
+ nextWeek: 'dddd [um] LT [Uhr]',
+ lastDay: '[gestern um] LT [Uhr]',
+ lastWeek: '[letzten] dddd [um] LT [Uhr]'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : 'vor %s',
+ s : 'ein paar Sekunden',
+ m : de__processRelativeTime,
+ mm : '%d Minuten',
+ h : de__processRelativeTime,
+ hh : '%d Stunden',
+ d : de__processRelativeTime,
+ dd : de__processRelativeTime,
+ M : de__processRelativeTime,
+ MM : de__processRelativeTime,
+ y : de__processRelativeTime,
+ yy : de__processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : dhivehi (dv)
+ //! author : Jawish Hameed : https://github.com/jawish
+
+ var dv__months = [
+ 'ޖެނުއަރީ',
+ 'ފެބްރުއަރީ',
+ 'މާރިޗު',
+ 'އޭޕްރީލު',
+ 'މޭ',
+ 'ޖޫން',
+ 'ޖުލައި',
+ 'އޯގަސްޓު',
+ 'ސެޕްޓެމްބަރު',
+ 'އޮކްޓޯބަރު',
+ 'ނޮވެމްބަރު',
+ 'ޑިސެމްބަރު'
+ ], dv__weekdays = [
+ 'އާދިއްތަ',
+ 'ހޯމަ',
+ 'އަންގާރަ',
+ 'ބުދަ',
+ 'ބުރާސްފަތި',
+ 'ހުކުރު',
+ 'ހޮނިހިރު'
+ ];
+
+ var dv = moment.defineLocale('dv', {
+ months : dv__months,
+ monthsShort : dv__months,
+ weekdays : dv__weekdays,
+ weekdaysShort : dv__weekdays,
+ weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
+ longDateFormat : {
+
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'D/M/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /މކ|މފ/,
+ isPM : function (input) {
+ return '' === input;
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'މކ';
+ } else {
+ return 'މފ';
+ }
+ },
+ calendar : {
+ sameDay : '[މިއަދު] LT',
+ nextDay : '[މާދަމާ] LT',
+ nextWeek : 'dddd LT',
+ lastDay : '[އިއްޔެ] LT',
+ lastWeek : '[ފާއިތުވި] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'ތެރޭގައި %s',
+ past : 'ކުރިން %s',
+ s : 'ސިކުންތުކޮޅެއް',
+ m : 'މިނިޓެއް',
+ mm : 'މިނިޓު %d',
+ h : 'ގަޑިއިރެއް',
+ hh : 'ގަޑިއިރު %d',
+ d : 'ދުވަހެއް',
+ dd : 'ދުވަސް %d',
+ M : 'މަހެއް',
+ MM : 'މަސް %d',
+ y : 'އަހަރެއް',
+ yy : 'އަހަރު %d'
+ },
+ preparse: function (string) {
+ return string.replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/,/g, '،');
+ },
+ week : {
+ dow : 7, // Sunday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ function isFunction(input) {
+ return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
+ }
+
+ //! moment.js locale configuration
+ //! locale : modern greek (el)
+ //! author : Aggelos Karalias : https://github.com/mehiel
+
+ var el = moment.defineLocale('el', {
+ monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
+ monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
+ months : function (momentToFormat, format) {
+ if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
+ return this._monthsGenitiveEl[momentToFormat.month()];
+ } else {
+ return this._monthsNominativeEl[momentToFormat.month()];
+ }
+ },
+ monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
+ weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
+ weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
+ weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'μμ' : 'ΜΜ';
+ } else {
+ return isLower ? 'πμ' : 'ΠΜ';
+ }
+ },
+ isPM : function (input) {
+ return ((input + '').toLowerCase()[0] === 'μ');
+ },
+ meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendarEl : {
+ sameDay : '[Σήμερα {}] LT',
+ nextDay : '[Αύριο {}] LT',
+ nextWeek : 'dddd [{}] LT',
+ lastDay : '[Χθες {}] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 6:
+ return '[το προηγούμενο] dddd [{}] LT';
+ default:
+ return '[την προηγούμενη] dddd [{}] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ calendar : function (key, mom) {
+ var output = this._calendarEl[key],
+ hours = mom && mom.hours();
+ if (isFunction(output)) {
+ output = output.apply(mom);
+ }
+ return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
+ },
+ relativeTime : {
+ future : 'σε %s',
+ past : '%s πριν',
+ s : 'λίγα δευτερόλεπτα',
+ m : 'ένα λεπτό',
+ mm : '%d λεπτά',
+ h : 'μία ώρα',
+ hh : '%d ώρες',
+ d : 'μία μέρα',
+ dd : '%d μέρες',
+ M : 'ένας μήνας',
+ MM : '%d μήνες',
+ y : 'ένας χρόνος',
+ yy : '%d χρόνια'
+ },
+ ordinalParse: /\d{1,2}η/,
+ ordinal: '%dη',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : australian english (en-au)
+
+ var en_au = moment.defineLocale('en-au', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : canadian english (en-ca)
+ //! author : Jonathan Abourbih : https://github.com/jonbca
+
+ var en_ca = moment.defineLocale('en-ca', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM, YYYY',
+ LLL : 'D MMMM, YYYY h:mm A',
+ LLLL : 'dddd, D MMMM, YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : great britain english (en-gb)
+ //! author : Chris Gedrim : https://github.com/chrisgedrim
+
+ var en_gb = moment.defineLocale('en-gb', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Irish english (en-ie)
+ //! author : Chris Cartlidge : https://github.com/chriscartlidge
+
+ var en_ie = moment.defineLocale('en-ie', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : New Zealand english (en-nz)
+
+ var en_nz = moment.defineLocale('en-nz', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : esperanto (eo)
+ //! author : Colin Dean : https://github.com/colindean
+ //! komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko.
+ //! Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni!
+
+ var eo = moment.defineLocale('eo', {
+ months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
+ weekdays : 'Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato'.split('_'),
+ weekdaysShort : 'Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Ĵa_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'D[-an de] MMMM, YYYY',
+ LLL : 'D[-an de] MMMM, YYYY HH:mm',
+ LLLL : 'dddd, [la] D[-an de] MMMM, YYYY HH:mm'
+ },
+ meridiemParse: /[ap]\.t\.m/i,
+ isPM: function (input) {
+ return input.charAt(0).toLowerCase() === 'p';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'p.t.m.' : 'P.T.M.';
+ } else {
+ return isLower ? 'a.t.m.' : 'A.T.M.';
+ }
+ },
+ calendar : {
+ sameDay : '[Hodiaŭ je] LT',
+ nextDay : '[Morgaŭ je] LT',
+ nextWeek : 'dddd [je] LT',
+ lastDay : '[Hieraŭ je] LT',
+ lastWeek : '[pasinta] dddd [je] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'je %s',
+ past : 'antaŭ %s',
+ s : 'sekundoj',
+ m : 'minuto',
+ mm : '%d minutoj',
+ h : 'horo',
+ hh : '%d horoj',
+ d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
+ dd : '%d tagoj',
+ M : 'monato',
+ MM : '%d monatoj',
+ y : 'jaro',
+ yy : '%d jaroj'
+ },
+ ordinalParse: /\d{1,2}a/,
+ ordinal : '%da',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : spanish (es)
+ //! author : Julio Napurí : https://github.com/julionc
+
+ var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
+ es__monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
+
+ var es = moment.defineLocale('es', {
+ months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return es__monthsShort[m.month()];
+ } else {
+ return monthsShortDot[m.month()];
+ }
+ },
+ weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+ weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+ weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY H:mm',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ nextDay : function () {
+ return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ lastDay : function () {
+ return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ lastWeek : function () {
+ return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'en %s',
+ past : 'hace %s',
+ s : 'unos segundos',
+ m : 'un minuto',
+ mm : '%d minutos',
+ h : 'una hora',
+ hh : '%d horas',
+ d : 'un día',
+ dd : '%d días',
+ M : 'un mes',
+ MM : '%d meses',
+ y : 'un año',
+ yy : '%d años'
+ },
+ ordinalParse : /\d{1,2}º/,
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : estonian (et)
+ //! author : Henry Kehlmann : https://github.com/madhenry
+ //! improvements : Illimar Tambek : https://github.com/ragulka
+
+ function et__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
+ 'm' : ['ühe minuti', 'üks minut'],
+ 'mm': [number + ' minuti', number + ' minutit'],
+ 'h' : ['ühe tunni', 'tund aega', 'üks tund'],
+ 'hh': [number + ' tunni', number + ' tundi'],
+ 'd' : ['ühe päeva', 'üks päev'],
+ 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
+ 'MM': [number + ' kuu', number + ' kuud'],
+ 'y' : ['ühe aasta', 'aasta', 'üks aasta'],
+ 'yy': [number + ' aasta', number + ' aastat']
+ };
+ if (withoutSuffix) {
+ return format[key][2] ? format[key][2] : format[key][1];
+ }
+ return isFuture ? format[key][0] : format[key][1];
+ }
+
+ var et = moment.defineLocale('et', {
+ months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
+ monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
+ weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
+ weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
+ weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[Täna,] LT',
+ nextDay : '[Homme,] LT',
+ nextWeek : '[Järgmine] dddd LT',
+ lastDay : '[Eile,] LT',
+ lastWeek : '[Eelmine] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s pärast',
+ past : '%s tagasi',
+ s : et__processRelativeTime,
+ m : et__processRelativeTime,
+ mm : et__processRelativeTime,
+ h : et__processRelativeTime,
+ hh : et__processRelativeTime,
+ d : et__processRelativeTime,
+ dd : '%d päeva',
+ M : et__processRelativeTime,
+ MM : et__processRelativeTime,
+ y : et__processRelativeTime,
+ yy : et__processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : euskara (eu)
+ //! author : Eneko Illarramendi : https://github.com/eillarra
+
+ var eu = moment.defineLocale('eu', {
+ months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
+ monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
+ weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
+ weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
+ weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY[ko] MMMM[ren] D[a]',
+ LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',
+ LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
+ l : 'YYYY-M-D',
+ ll : 'YYYY[ko] MMM D[a]',
+ lll : 'YYYY[ko] MMM D[a] HH:mm',
+ llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'
+ },
+ calendar : {
+ sameDay : '[gaur] LT[etan]',
+ nextDay : '[bihar] LT[etan]',
+ nextWeek : 'dddd LT[etan]',
+ lastDay : '[atzo] LT[etan]',
+ lastWeek : '[aurreko] dddd LT[etan]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s barru',
+ past : 'duela %s',
+ s : 'segundo batzuk',
+ m : 'minutu bat',
+ mm : '%d minutu',
+ h : 'ordu bat',
+ hh : '%d ordu',
+ d : 'egun bat',
+ dd : '%d egun',
+ M : 'hilabete bat',
+ MM : '%d hilabete',
+ y : 'urte bat',
+ yy : '%d urte'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Persian (fa)
+ //! author : Ebrahim Byagowi : https://github.com/ebraminio
+
+ var fa__symbolMap = {
+ '1': '۱',
+ '2': '۲',
+ '3': '۳',
+ '4': '۴',
+ '5': '۵',
+ '6': '۶',
+ '7': '۷',
+ '8': '۸',
+ '9': '۹',
+ '0': '۰'
+ }, fa__numberMap = {
+ '۱': '1',
+ '۲': '2',
+ '۳': '3',
+ '۴': '4',
+ '۵': '5',
+ '۶': '6',
+ '۷': '7',
+ '۸': '8',
+ '۹': '9',
+ '۰': '0'
+ };
+
+ var fa = moment.defineLocale('fa', {
+ months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+ monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+ weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
+ weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
+ weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /قبل از ظهر|بعد از ظهر/,
+ isPM: function (input) {
+ return /بعد از ظهر/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'قبل از ظهر';
+ } else {
+ return 'بعد از ظهر';
+ }
+ },
+ calendar : {
+ sameDay : '[امروز ساعت] LT',
+ nextDay : '[فردا ساعت] LT',
+ nextWeek : 'dddd [ساعت] LT',
+ lastDay : '[دیروز ساعت] LT',
+ lastWeek : 'dddd [پیش] [ساعت] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'در %s',
+ past : '%s پیش',
+ s : 'چندین ثانیه',
+ m : 'یک دقیقه',
+ mm : '%d دقیقه',
+ h : 'یک ساعت',
+ hh : '%d ساعت',
+ d : 'یک روز',
+ dd : '%d روز',
+ M : 'یک ماه',
+ MM : '%d ماه',
+ y : 'یک سال',
+ yy : '%d سال'
+ },
+ preparse: function (string) {
+ return string.replace(/[۰-۹]/g, function (match) {
+ return fa__numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return fa__symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ ordinalParse: /\d{1,2}م/,
+ ordinal : '%dم',
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : finnish (fi)
+ //! author : Tarmo Aidantausta : https://github.com/bleadof
+
+ var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
+ numbersFuture = [
+ 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
+ numbersPast[7], numbersPast[8], numbersPast[9]
+ ];
+ function fi__translate(number, withoutSuffix, key, isFuture) {
+ var result = '';
+ switch (key) {
+ case 's':
+ return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
+ case 'm':
+ return isFuture ? 'minuutin' : 'minuutti';
+ case 'mm':
+ result = isFuture ? 'minuutin' : 'minuuttia';
+ break;
+ case 'h':
+ return isFuture ? 'tunnin' : 'tunti';
+ case 'hh':
+ result = isFuture ? 'tunnin' : 'tuntia';
+ break;
+ case 'd':
+ return isFuture ? 'päivän' : 'päivä';
+ case 'dd':
+ result = isFuture ? 'päivän' : 'päivää';
+ break;
+ case 'M':
+ return isFuture ? 'kuukauden' : 'kuukausi';
+ case 'MM':
+ result = isFuture ? 'kuukauden' : 'kuukautta';
+ break;
+ case 'y':
+ return isFuture ? 'vuoden' : 'vuosi';
+ case 'yy':
+ result = isFuture ? 'vuoden' : 'vuotta';
+ break;
+ }
+ result = verbalNumber(number, isFuture) + ' ' + result;
+ return result;
+ }
+ function verbalNumber(number, isFuture) {
+ return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
+ }
+
+ var fi = moment.defineLocale('fi', {
+ months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
+ monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
+ weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
+ weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
+ weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD.MM.YYYY',
+ LL : 'Do MMMM[ta] YYYY',
+ LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',
+ LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
+ l : 'D.M.YYYY',
+ ll : 'Do MMM YYYY',
+ lll : 'Do MMM YYYY, [klo] HH.mm',
+ llll : 'ddd, Do MMM YYYY, [klo] HH.mm'
+ },
+ calendar : {
+ sameDay : '[tänään] [klo] LT',
+ nextDay : '[huomenna] [klo] LT',
+ nextWeek : 'dddd [klo] LT',
+ lastDay : '[eilen] [klo] LT',
+ lastWeek : '[viime] dddd[na] [klo] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s päästä',
+ past : '%s sitten',
+ s : fi__translate,
+ m : fi__translate,
+ mm : fi__translate,
+ h : fi__translate,
+ hh : fi__translate,
+ d : fi__translate,
+ dd : fi__translate,
+ M : fi__translate,
+ MM : fi__translate,
+ y : fi__translate,
+ yy : fi__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : faroese (fo)
+ //! author : Ragnar Johannesen : https://github.com/ragnar123
+
+ var fo = moment.defineLocale('fo', {
+ months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
+ weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
+ weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
+ weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D. MMMM, YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Í dag kl.] LT',
+ nextDay : '[Í morgin kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[Í gjár kl.] LT',
+ lastWeek : '[síðstu] dddd [kl] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'um %s',
+ past : '%s síðani',
+ s : 'fá sekund',
+ m : 'ein minutt',
+ mm : '%d minuttir',
+ h : 'ein tími',
+ hh : '%d tímar',
+ d : 'ein dagur',
+ dd : '%d dagar',
+ M : 'ein mánaði',
+ MM : '%d mánaðir',
+ y : 'eitt ár',
+ yy : '%d ár'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : canadian french (fr-ca)
+ //! author : Jonathan Abourbih : https://github.com/jonbca
+
+ var fr_ca = moment.defineLocale('fr-ca', {
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Aujourd\'hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dans %s',
+ past : 'il y a %s',
+ s : 'quelques secondes',
+ m : 'une minute',
+ mm : '%d minutes',
+ h : 'une heure',
+ hh : '%d heures',
+ d : 'un jour',
+ dd : '%d jours',
+ M : 'un mois',
+ MM : '%d mois',
+ y : 'un an',
+ yy : '%d ans'
+ },
+ ordinalParse: /\d{1,2}(er|e)/,
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : 'e');
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : swiss french (fr)
+ //! author : Gaspard Bucher : https://github.com/gaspard
+
+ var fr_ch = moment.defineLocale('fr-ch', {
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Aujourd\'hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dans %s',
+ past : 'il y a %s',
+ s : 'quelques secondes',
+ m : 'une minute',
+ mm : '%d minutes',
+ h : 'une heure',
+ hh : '%d heures',
+ d : 'un jour',
+ dd : '%d jours',
+ M : 'un mois',
+ MM : '%d mois',
+ y : 'un an',
+ yy : '%d ans'
+ },
+ ordinalParse: /\d{1,2}(er|e)/,
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : 'e');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : french (fr)
+ //! author : John Fischer : https://github.com/jfroffice
+
+ var fr = moment.defineLocale('fr', {
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Aujourd\'hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dans %s',
+ past : 'il y a %s',
+ s : 'quelques secondes',
+ m : 'une minute',
+ mm : '%d minutes',
+ h : 'une heure',
+ hh : '%d heures',
+ d : 'un jour',
+ dd : '%d jours',
+ M : 'un mois',
+ MM : '%d mois',
+ y : 'un an',
+ yy : '%d ans'
+ },
+ ordinalParse: /\d{1,2}(er|)/,
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : '');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : frisian (fy)
+ //! author : Robin van der Vliet : https://github.com/robin0van0der0v
+
+ var fy__monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
+ fy__monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
+
+ var fy = moment.defineLocale('fy', {
+ months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return fy__monthsShortWithoutDots[m.month()];
+ } else {
+ return fy__monthsShortWithDots[m.month()];
+ }
+ },
+ weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),
+ weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),
+ weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[hjoed om] LT',
+ nextDay: '[moarn om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[juster om] LT',
+ lastWeek: '[ôfrûne] dddd [om] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'oer %s',
+ past : '%s lyn',
+ s : 'in pear sekonden',
+ m : 'ien minút',
+ mm : '%d minuten',
+ h : 'ien oere',
+ hh : '%d oeren',
+ d : 'ien dei',
+ dd : '%d dagen',
+ M : 'ien moanne',
+ MM : '%d moannen',
+ y : 'ien jier',
+ yy : '%d jierren'
+ },
+ ordinalParse: /\d{1,2}(ste|de)/,
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : great britain scottish gealic (gd)
+ //! author : Jon Ashdown : https://github.com/jonashdown
+
+ var gd__months = [
+ 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'
+ ];
+
+ var gd__monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];
+
+ var gd__weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];
+
+ var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];
+
+ var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
+
+ var gd = moment.defineLocale('gd', {
+ months : gd__months,
+ monthsShort : gd__monthsShort,
+ monthsParseExact : true,
+ weekdays : gd__weekdays,
+ weekdaysShort : weekdaysShort,
+ weekdaysMin : weekdaysMin,
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[An-diugh aig] LT',
+ nextDay : '[A-màireach aig] LT',
+ nextWeek : 'dddd [aig] LT',
+ lastDay : '[An-dè aig] LT',
+ lastWeek : 'dddd [seo chaidh] [aig] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'ann an %s',
+ past : 'bho chionn %s',
+ s : 'beagan diogan',
+ m : 'mionaid',
+ mm : '%d mionaidean',
+ h : 'uair',
+ hh : '%d uairean',
+ d : 'latha',
+ dd : '%d latha',
+ M : 'mìos',
+ MM : '%d mìosan',
+ y : 'bliadhna',
+ yy : '%d bliadhna'
+ },
+ ordinalParse : /\d{1,2}(d|na|mh)/,
+ ordinal : function (number) {
+ var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : galician (gl)
+ //! author : Juan G. Hurtado : https://github.com/juanghurtado
+
+ var gl = moment.defineLocale('gl', {
+ months : 'Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro'.split('_'),
+ monthsShort : 'Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.'.split('_'),
+ weekdays : 'Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado'.split('_'),
+ weekdaysShort : 'Dom._Lun._Mar._Mér._Xov._Ven._Sáb.'.split('_'),
+ weekdaysMin : 'Do_Lu_Ma_Mé_Xo_Ve_Sá'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
+ },
+ nextDay : function () {
+ return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
+ },
+ lastDay : function () {
+ return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
+ },
+ lastWeek : function () {
+ return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : function (str) {
+ if (str === 'uns segundos') {
+ return 'nuns segundos';
+ }
+ return 'en ' + str;
+ },
+ past : 'hai %s',
+ s : 'uns segundos',
+ m : 'un minuto',
+ mm : '%d minutos',
+ h : 'unha hora',
+ hh : '%d horas',
+ d : 'un día',
+ dd : '%d días',
+ M : 'un mes',
+ MM : '%d meses',
+ y : 'un ano',
+ yy : '%d anos'
+ },
+ ordinalParse : /\d{1,2}º/,
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Hebrew (he)
+ //! author : Tomer Cohen : https://github.com/tomer
+ //! author : Moshe Simantov : https://github.com/DevelopmentIL
+ //! author : Tal Ater : https://github.com/TalAter
+
+ var he = moment.defineLocale('he', {
+ months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
+ monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
+ weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
+ weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
+ weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [ב]MMMM YYYY',
+ LLL : 'D [ב]MMMM YYYY HH:mm',
+ LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',
+ l : 'D/M/YYYY',
+ ll : 'D MMM YYYY',
+ lll : 'D MMM YYYY HH:mm',
+ llll : 'ddd, D MMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[היום ב־]LT',
+ nextDay : '[מחר ב־]LT',
+ nextWeek : 'dddd [בשעה] LT',
+ lastDay : '[אתמול ב־]LT',
+ lastWeek : '[ביום] dddd [האחרון בשעה] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'בעוד %s',
+ past : 'לפני %s',
+ s : 'מספר שניות',
+ m : 'דקה',
+ mm : '%d דקות',
+ h : 'שעה',
+ hh : function (number) {
+ if (number === 2) {
+ return 'שעתיים';
+ }
+ return number + ' שעות';
+ },
+ d : 'יום',
+ dd : function (number) {
+ if (number === 2) {
+ return 'יומיים';
+ }
+ return number + ' ימים';
+ },
+ M : 'חודש',
+ MM : function (number) {
+ if (number === 2) {
+ return 'חודשיים';
+ }
+ return number + ' חודשים';
+ },
+ y : 'שנה',
+ yy : function (number) {
+ if (number === 2) {
+ return 'שנתיים';
+ } else if (number % 10 === 0 && number !== 10) {
+ return number + ' שנה';
+ }
+ return number + ' שנים';
+ }
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : hindi (hi)
+ //! author : Mayank Singhal : https://github.com/mayanksinghal
+
+ var hi__symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ hi__numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ var hi = moment.defineLocale('hi', {
+ months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
+ monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
+ weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
+ weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
+ weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm बजे',
+ LTS : 'A h:mm:ss बजे',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm बजे',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[कल] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[कल] LT',
+ lastWeek : '[पिछले] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s में',
+ past : '%s पहले',
+ s : 'कुछ ही क्षण',
+ m : 'एक मिनट',
+ mm : '%d मिनट',
+ h : 'एक घंटा',
+ hh : '%d घंटे',
+ d : 'एक दिन',
+ dd : '%d दिन',
+ M : 'एक महीने',
+ MM : '%d महीने',
+ y : 'एक वर्ष',
+ yy : '%d वर्ष'
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return hi__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return hi__symbolMap[match];
+ });
+ },
+ // Hindi notation for meridiems are quite fuzzy in practice. While there exists
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
+ meridiemParse: /रात|सुबह|दोपहर|शाम/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'रात') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'सुबह') {
+ return hour;
+ } else if (meridiem === 'दोपहर') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'शाम') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'रात';
+ } else if (hour < 10) {
+ return 'सुबह';
+ } else if (hour < 17) {
+ return 'दोपहर';
+ } else if (hour < 20) {
+ return 'शाम';
+ } else {
+ return 'रात';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : hrvatski (hr)
+ //! author : Bojan Marković : https://github.com/bmarkovic
+
+ function hr__translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ var hr = moment.defineLocale('hr', {
+ months : {
+ format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),
+ standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')
+ },
+ monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
+ weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
+ weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+ weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[danas u] LT',
+ nextDay : '[sutra u] LT',
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[jučer u] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ return '[prošlu] dddd [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'prije %s',
+ s : 'par sekundi',
+ m : hr__translate,
+ mm : hr__translate,
+ h : hr__translate,
+ hh : hr__translate,
+ d : 'dan',
+ dd : hr__translate,
+ M : 'mjesec',
+ MM : hr__translate,
+ y : 'godinu',
+ yy : hr__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : hungarian (hu)
+ //! author : Adam Brunner : https://github.com/adambrunner
+
+ var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
+ function hu__translate(number, withoutSuffix, key, isFuture) {
+ var num = number,
+ suffix;
+ switch (key) {
+ case 's':
+ return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
+ case 'm':
+ return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'mm':
+ return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'h':
+ return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'hh':
+ return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'd':
+ return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'dd':
+ return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'M':
+ return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'MM':
+ return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'y':
+ return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
+ case 'yy':
+ return num + (isFuture || withoutSuffix ? ' év' : ' éve');
+ }
+ return '';
+ }
+ function week(isFuture) {
+ return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
+ }
+
+ var hu = moment.defineLocale('hu', {
+ months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
+ monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
+ weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
+ weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
+ weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'YYYY.MM.DD.',
+ LL : 'YYYY. MMMM D.',
+ LLL : 'YYYY. MMMM D. H:mm',
+ LLLL : 'YYYY. MMMM D., dddd H:mm'
+ },
+ meridiemParse: /de|du/i,
+ isPM: function (input) {
+ return input.charAt(1).toLowerCase() === 'u';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower === true ? 'de' : 'DE';
+ } else {
+ return isLower === true ? 'du' : 'DU';
+ }
+ },
+ calendar : {
+ sameDay : '[ma] LT[-kor]',
+ nextDay : '[holnap] LT[-kor]',
+ nextWeek : function () {
+ return week.call(this, true);
+ },
+ lastDay : '[tegnap] LT[-kor]',
+ lastWeek : function () {
+ return week.call(this, false);
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s múlva',
+ past : '%s',
+ s : hu__translate,
+ m : hu__translate,
+ mm : hu__translate,
+ h : hu__translate,
+ hh : hu__translate,
+ d : hu__translate,
+ dd : hu__translate,
+ M : hu__translate,
+ MM : hu__translate,
+ y : hu__translate,
+ yy : hu__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Armenian (hy-am)
+ //! author : Armendarabyan : https://github.com/armendarabyan
+
+ var hy_am = moment.defineLocale('hy-am', {
+ months : {
+ format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),
+ standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')
+ },
+ monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
+ weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),
+ weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
+ weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY թ.',
+ LLL : 'D MMMM YYYY թ., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY թ., HH:mm'
+ },
+ calendar : {
+ sameDay: '[այսօր] LT',
+ nextDay: '[վաղը] LT',
+ lastDay: '[երեկ] LT',
+ nextWeek: function () {
+ return 'dddd [օրը ժամը] LT';
+ },
+ lastWeek: function () {
+ return '[անցած] dddd [օրը ժամը] LT';
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : '%s հետո',
+ past : '%s առաջ',
+ s : 'մի քանի վայրկյան',
+ m : 'րոպե',
+ mm : '%d րոպե',
+ h : 'ժամ',
+ hh : '%d ժամ',
+ d : 'օր',
+ dd : '%d օր',
+ M : 'ամիս',
+ MM : '%d ամիս',
+ y : 'տարի',
+ yy : '%d տարի'
+ },
+ meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
+ isPM: function (input) {
+ return /^(ցերեկվա|երեկոյան)$/.test(input);
+ },
+ meridiem : function (hour) {
+ if (hour < 4) {
+ return 'գիշերվա';
+ } else if (hour < 12) {
+ return 'առավոտվա';
+ } else if (hour < 17) {
+ return 'ցերեկվա';
+ } else {
+ return 'երեկոյան';
+ }
+ },
+ ordinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'DDD':
+ case 'w':
+ case 'W':
+ case 'DDDo':
+ if (number === 1) {
+ return number + '-ին';
+ }
+ return number + '-րդ';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Bahasa Indonesia (id)
+ //! author : Mohammad Satrio Utomo : https://github.com/tyok
+ //! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
+
+ var id = moment.defineLocale('id', {
+ months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),
+ weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
+ weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
+ weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /pagi|siang|sore|malam/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'siang') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'sore' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'siang';
+ } else if (hours < 19) {
+ return 'sore';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Besok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kemarin pukul] LT',
+ lastWeek : 'dddd [lalu pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'dalam %s',
+ past : '%s yang lalu',
+ s : 'beberapa detik',
+ m : 'semenit',
+ mm : '%d menit',
+ h : 'sejam',
+ hh : '%d jam',
+ d : 'sehari',
+ dd : '%d hari',
+ M : 'sebulan',
+ MM : '%d bulan',
+ y : 'setahun',
+ yy : '%d tahun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : icelandic (is)
+ //! author : Hinrik Örn Sigurðsson : https://github.com/hinrik
+
+ function is__plural(n) {
+ if (n % 100 === 11) {
+ return true;
+ } else if (n % 10 === 1) {
+ return false;
+ }
+ return true;
+ }
+ function is__translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's':
+ return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
+ case 'm':
+ return withoutSuffix ? 'mínúta' : 'mínútu';
+ case 'mm':
+ if (is__plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
+ } else if (withoutSuffix) {
+ return result + 'mínúta';
+ }
+ return result + 'mínútu';
+ case 'hh':
+ if (is__plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
+ }
+ return result + 'klukkustund';
+ case 'd':
+ if (withoutSuffix) {
+ return 'dagur';
+ }
+ return isFuture ? 'dag' : 'degi';
+ case 'dd':
+ if (is__plural(number)) {
+ if (withoutSuffix) {
+ return result + 'dagar';
+ }
+ return result + (isFuture ? 'daga' : 'dögum');
+ } else if (withoutSuffix) {
+ return result + 'dagur';
+ }
+ return result + (isFuture ? 'dag' : 'degi');
+ case 'M':
+ if (withoutSuffix) {
+ return 'mánuður';
+ }
+ return isFuture ? 'mánuð' : 'mánuði';
+ case 'MM':
+ if (is__plural(number)) {
+ if (withoutSuffix) {
+ return result + 'mánuðir';
+ }
+ return result + (isFuture ? 'mánuði' : 'mánuðum');
+ } else if (withoutSuffix) {
+ return result + 'mánuður';
+ }
+ return result + (isFuture ? 'mánuð' : 'mánuði');
+ case 'y':
+ return withoutSuffix || isFuture ? 'ár' : 'ári';
+ case 'yy':
+ if (is__plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
+ }
+ return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
+ }
+ }
+
+ var is = moment.defineLocale('is', {
+ months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
+ weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
+ weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
+ weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY [kl.] H:mm',
+ LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'
+ },
+ calendar : {
+ sameDay : '[í dag kl.] LT',
+ nextDay : '[á morgun kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[í gær kl.] LT',
+ lastWeek : '[síðasta] dddd [kl.] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'eftir %s',
+ past : 'fyrir %s síðan',
+ s : is__translate,
+ m : is__translate,
+ mm : is__translate,
+ h : 'klukkustund',
+ hh : is__translate,
+ d : is__translate,
+ dd : is__translate,
+ M : is__translate,
+ MM : is__translate,
+ y : is__translate,
+ yy : is__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : italian (it)
+ //! author : Lorenzo : https://github.com/aliem
+ //! author: Mattia Larentis: https://github.com/nostalgiaz
+
+ var it = moment.defineLocale('it', {
+ months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
+ monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
+ weekdays : 'Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato'.split('_'),
+ weekdaysShort : 'Dom_Lun_Mar_Mer_Gio_Ven_Sab'.split('_'),
+ weekdaysMin : 'Do_Lu_Ma_Me_Gi_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Oggi alle] LT',
+ nextDay: '[Domani alle] LT',
+ nextWeek: 'dddd [alle] LT',
+ lastDay: '[Ieri alle] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[la scorsa] dddd [alle] LT';
+ default:
+ return '[lo scorso] dddd [alle] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : function (s) {
+ return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
+ },
+ past : '%s fa',
+ s : 'alcuni secondi',
+ m : 'un minuto',
+ mm : '%d minuti',
+ h : 'un\'ora',
+ hh : '%d ore',
+ d : 'un giorno',
+ dd : '%d giorni',
+ M : 'un mese',
+ MM : '%d mesi',
+ y : 'un anno',
+ yy : '%d anni'
+ },
+ ordinalParse : /\d{1,2}º/,
+ ordinal: '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : japanese (ja)
+ //! author : LI Long : https://github.com/baryon
+
+ var ja = moment.defineLocale('ja', {
+ months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
+ weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
+ weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
+ longDateFormat : {
+ LT : 'Ah時m分',
+ LTS : 'Ah時m分s秒',
+ L : 'YYYY/MM/DD',
+ LL : 'YYYY年M月D日',
+ LLL : 'YYYY年M月D日Ah時m分',
+ LLLL : 'YYYY年M月D日Ah時m分 dddd'
+ },
+ meridiemParse: /午前|午後/i,
+ isPM : function (input) {
+ return input === '午後';
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return '午前';
+ } else {
+ return '午後';
+ }
+ },
+ calendar : {
+ sameDay : '[今日] LT',
+ nextDay : '[明日] LT',
+ nextWeek : '[来週]dddd LT',
+ lastDay : '[昨日] LT',
+ lastWeek : '[前週]dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s後',
+ past : '%s前',
+ s : '数秒',
+ m : '1分',
+ mm : '%d分',
+ h : '1時間',
+ hh : '%d時間',
+ d : '1日',
+ dd : '%d日',
+ M : '1ヶ月',
+ MM : '%dヶ月',
+ y : '1年',
+ yy : '%d年'
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Boso Jowo (jv)
+ //! author : Rony Lantip : https://github.com/lantip
+ //! reference: http://jv.wikipedia.org/wiki/Basa_Jawa
+
+ var jv = moment.defineLocale('jv', {
+ months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
+ weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
+ weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
+ weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /enjing|siyang|sonten|ndalu/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'enjing') {
+ return hour;
+ } else if (meridiem === 'siyang') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'enjing';
+ } else if (hours < 15) {
+ return 'siyang';
+ } else if (hours < 19) {
+ return 'sonten';
+ } else {
+ return 'ndalu';
+ }
+ },
+ calendar : {
+ sameDay : '[Dinten puniko pukul] LT',
+ nextDay : '[Mbenjang pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kala wingi pukul] LT',
+ lastWeek : 'dddd [kepengker pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'wonten ing %s',
+ past : '%s ingkang kepengker',
+ s : 'sawetawis detik',
+ m : 'setunggal menit',
+ mm : '%d menit',
+ h : 'setunggal jam',
+ hh : '%d jam',
+ d : 'sedinten',
+ dd : '%d dinten',
+ M : 'sewulan',
+ MM : '%d wulan',
+ y : 'setaun',
+ yy : '%d taun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Georgian (ka)
+ //! author : Irakli Janiashvili : https://github.com/irakli-janiashvili
+
+ var ka = moment.defineLocale('ka', {
+ months : {
+ standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
+ format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
+ },
+ monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
+ weekdays : {
+ standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
+ format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),
+ isFormat: /(წინა|შემდეგ)/
+ },
+ weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
+ weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[დღეს] LT[-ზე]',
+ nextDay : '[ხვალ] LT[-ზე]',
+ lastDay : '[გუშინ] LT[-ზე]',
+ nextWeek : '[შემდეგ] dddd LT[-ზე]',
+ lastWeek : '[წინა] dddd LT-ზე',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : function (s) {
+ return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
+ s.replace(/ი$/, 'ში') :
+ s + 'ში';
+ },
+ past : function (s) {
+ if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
+ return s.replace(/(ი|ე)$/, 'ის წინ');
+ }
+ if ((/წელი/).test(s)) {
+ return s.replace(/წელი$/, 'წლის წინ');
+ }
+ },
+ s : 'რამდენიმე წამი',
+ m : 'წუთი',
+ mm : '%d წუთი',
+ h : 'საათი',
+ hh : '%d საათი',
+ d : 'დღე',
+ dd : '%d დღე',
+ M : 'თვე',
+ MM : '%d თვე',
+ y : 'წელი',
+ yy : '%d წელი'
+ },
+ ordinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
+ ordinal : function (number) {
+ if (number === 0) {
+ return number;
+ }
+ if (number === 1) {
+ return number + '-ლი';
+ }
+ if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
+ return 'მე-' + number;
+ }
+ return number + '-ე';
+ },
+ week : {
+ dow : 1,
+ doy : 7
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : kazakh (kk)
+ //! authors : Nurlan Rakhimzhanov : https://github.com/nurlan
+
+ var kk__suffixes = {
+ 0: '-ші',
+ 1: '-ші',
+ 2: '-ші',
+ 3: '-ші',
+ 4: '-ші',
+ 5: '-ші',
+ 6: '-шы',
+ 7: '-ші',
+ 8: '-ші',
+ 9: '-шы',
+ 10: '-шы',
+ 20: '-шы',
+ 30: '-шы',
+ 40: '-шы',
+ 50: '-ші',
+ 60: '-шы',
+ 70: '-ші',
+ 80: '-ші',
+ 90: '-шы',
+ 100: '-ші'
+ };
+
+ var kk = moment.defineLocale('kk', {
+ months : 'Қаңтар_Ақпан_Наурыз_Сәуір_Мамыр_Маусым_Шілде_Тамыз_Қыркүйек_Қазан_Қараша_Желтоқсан'.split('_'),
+ monthsShort : 'Қаң_Ақп_Нау_Сәу_Мам_Мау_Шіл_Там_Қыр_Қаз_Қар_Жел'.split('_'),
+ weekdays : 'Жексенбі_Дүйсенбі_Сейсенбі_Сәрсенбі_Бейсенбі_Жұма_Сенбі'.split('_'),
+ weekdaysShort : 'Жек_Дүй_Сей_Сәр_Бей_Жұм_Сен'.split('_'),
+ weekdaysMin : 'Жк_Дй_Сй_Ср_Бй_Жм_Сн'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Бүгін сағат] LT',
+ nextDay : '[Ертең сағат] LT',
+ nextWeek : 'dddd [сағат] LT',
+ lastDay : '[Кеше сағат] LT',
+ lastWeek : '[Өткен аптаның] dddd [сағат] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s ішінде',
+ past : '%s бұрын',
+ s : 'бірнеше секунд',
+ m : 'бір минут',
+ mm : '%d минут',
+ h : 'бір сағат',
+ hh : '%d сағат',
+ d : 'бір күн',
+ dd : '%d күн',
+ M : 'бір ай',
+ MM : '%d ай',
+ y : 'бір жыл',
+ yy : '%d жыл'
+ },
+ ordinalParse: /\d{1,2}-(ші|шы)/,
+ ordinal : function (number) {
+ var a = number % 10,
+ b = number >= 100 ? 100 : null;
+ return number + (kk__suffixes[number] || kk__suffixes[a] || kk__suffixes[b]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : khmer (km)
+ //! author : Kruy Vanna : https://github.com/kruyvanna
+
+ var km = moment.defineLocale('km', {
+ months: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
+ monthsShort: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
+ weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
+ nextDay: '[ស្អែក ម៉ោង] LT',
+ nextWeek: 'dddd [ម៉ោង] LT',
+ lastDay: '[ម្សិលមិញ ម៉ោង] LT',
+ lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: '%sទៀត',
+ past: '%sមុន',
+ s: 'ប៉ុន្មានវិនាទី',
+ m: 'មួយនាទី',
+ mm: '%d នាទី',
+ h: 'មួយម៉ោង',
+ hh: '%d ម៉ោង',
+ d: 'មួយថ្ងៃ',
+ dd: '%d ថ្ងៃ',
+ M: 'មួយខែ',
+ MM: '%d ខែ',
+ y: 'មួយឆ្នាំ',
+ yy: '%d ឆ្នាំ'
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : korean (ko)
+ //!
+ //! authors
+ //!
+ //! - Kyungwook, Park : https://github.com/kyungw00k
+ //! - Jeeeyul Lee
+
+ var ko = moment.defineLocale('ko', {
+ months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
+ monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
+ weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
+ weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
+ weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
+ longDateFormat : {
+ LT : 'A h시 m분',
+ LTS : 'A h시 m분 s초',
+ L : 'YYYY.MM.DD',
+ LL : 'YYYY년 MMMM D일',
+ LLL : 'YYYY년 MMMM D일 A h시 m분',
+ LLLL : 'YYYY년 MMMM D일 dddd A h시 m분'
+ },
+ calendar : {
+ sameDay : '오늘 LT',
+ nextDay : '내일 LT',
+ nextWeek : 'dddd LT',
+ lastDay : '어제 LT',
+ lastWeek : '지난주 dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s 후',
+ past : '%s 전',
+ s : '몇초',
+ ss : '%d초',
+ m : '일분',
+ mm : '%d분',
+ h : '한시간',
+ hh : '%d시간',
+ d : '하루',
+ dd : '%d일',
+ M : '한달',
+ MM : '%d달',
+ y : '일년',
+ yy : '%d년'
+ },
+ ordinalParse : /\d{1,2}일/,
+ ordinal : '%d일',
+ meridiemParse : /오전|오후/,
+ isPM : function (token) {
+ return token === '오후';
+ },
+ meridiem : function (hour, minute, isUpper) {
+ return hour < 12 ? '오전' : '오후';
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Luxembourgish (lb)
+ //! author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz
+
+ function lb__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eng Minutt', 'enger Minutt'],
+ 'h': ['eng Stonn', 'enger Stonn'],
+ 'd': ['een Dag', 'engem Dag'],
+ 'M': ['ee Mount', 'engem Mount'],
+ 'y': ['ee Joer', 'engem Joer']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+ function processFutureTime(string) {
+ var number = string.substr(0, string.indexOf(' '));
+ if (eifelerRegelAppliesToNumber(number)) {
+ return 'a ' + string;
+ }
+ return 'an ' + string;
+ }
+ function processPastTime(string) {
+ var number = string.substr(0, string.indexOf(' '));
+ if (eifelerRegelAppliesToNumber(number)) {
+ return 'viru ' + string;
+ }
+ return 'virun ' + string;
+ }
+ /**
+ * Returns true if the word before the given number loses the '-n' ending.
+ * e.g. 'an 10 Deeg' but 'a 5 Deeg'
+ *
+ * @param number {integer}
+ * @returns {boolean}
+ */
+ function eifelerRegelAppliesToNumber(number) {
+ number = parseInt(number, 10);
+ if (isNaN(number)) {
+ return false;
+ }
+ if (number < 0) {
+ // Negative Number --> always true
+ return true;
+ } else if (number < 10) {
+ // Only 1 digit
+ if (4 <= number && number <= 7) {
+ return true;
+ }
+ return false;
+ } else if (number < 100) {
+ // 2 digits
+ var lastDigit = number % 10, firstDigit = number / 10;
+ if (lastDigit === 0) {
+ return eifelerRegelAppliesToNumber(firstDigit);
+ }
+ return eifelerRegelAppliesToNumber(lastDigit);
+ } else if (number < 10000) {
+ // 3 or 4 digits --> recursively check first digit
+ while (number >= 10) {
+ number = number / 10;
+ }
+ return eifelerRegelAppliesToNumber(number);
+ } else {
+ // Anything larger than 4 digits: recursively check first n-3 digits
+ number = number / 1000;
+ return eifelerRegelAppliesToNumber(number);
+ }
+ }
+
+ var lb = moment.defineLocale('lb', {
+ months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
+ weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
+ weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm [Auer]',
+ LTS: 'H:mm:ss [Auer]',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm [Auer]',
+ LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'
+ },
+ calendar: {
+ sameDay: '[Haut um] LT',
+ sameElse: 'L',
+ nextDay: '[Muer um] LT',
+ nextWeek: 'dddd [um] LT',
+ lastDay: '[Gëschter um] LT',
+ lastWeek: function () {
+ // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
+ switch (this.day()) {
+ case 2:
+ case 4:
+ return '[Leschten] dddd [um] LT';
+ default:
+ return '[Leschte] dddd [um] LT';
+ }
+ }
+ },
+ relativeTime : {
+ future : processFutureTime,
+ past : processPastTime,
+ s : 'e puer Sekonnen',
+ m : lb__processRelativeTime,
+ mm : '%d Minutten',
+ h : lb__processRelativeTime,
+ hh : '%d Stonnen',
+ d : lb__processRelativeTime,
+ dd : '%d Deeg',
+ M : lb__processRelativeTime,
+ MM : '%d Méint',
+ y : lb__processRelativeTime,
+ yy : '%d Joer'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : lao (lo)
+ //! author : Ryan Hart : https://github.com/ryanhart2
+
+ var lo = moment.defineLocale('lo', {
+ months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
+ monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
+ weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
+ weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
+ weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'ວັນdddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
+ isPM: function (input) {
+ return input === 'ຕອນແລງ';
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ຕອນເຊົ້າ';
+ } else {
+ return 'ຕອນແລງ';
+ }
+ },
+ calendar : {
+ sameDay : '[ມື້ນີ້ເວລາ] LT',
+ nextDay : '[ມື້ອື່ນເວລາ] LT',
+ nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',
+ lastDay : '[ມື້ວານນີ້ເວລາ] LT',
+ lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'ອີກ %s',
+ past : '%sຜ່ານມາ',
+ s : 'ບໍ່ເທົ່າໃດວິນາທີ',
+ m : '1 ນາທີ',
+ mm : '%d ນາທີ',
+ h : '1 ຊົ່ວໂມງ',
+ hh : '%d ຊົ່ວໂມງ',
+ d : '1 ມື້',
+ dd : '%d ມື້',
+ M : '1 ເດືອນ',
+ MM : '%d ເດືອນ',
+ y : '1 ປີ',
+ yy : '%d ປີ'
+ },
+ ordinalParse: /(ທີ່)\d{1,2}/,
+ ordinal : function (number) {
+ return 'ທີ່' + number;
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Lithuanian (lt)
+ //! author : Mindaugas Mozūras : https://github.com/mmozuras
+
+ var lt__units = {
+ 'm' : 'minutė_minutės_minutę',
+ 'mm': 'minutės_minučių_minutes',
+ 'h' : 'valanda_valandos_valandą',
+ 'hh': 'valandos_valandų_valandas',
+ 'd' : 'diena_dienos_dieną',
+ 'dd': 'dienos_dienų_dienas',
+ 'M' : 'mėnuo_mėnesio_mėnesį',
+ 'MM': 'mėnesiai_mėnesių_mėnesius',
+ 'y' : 'metai_metų_metus',
+ 'yy': 'metai_metų_metus'
+ };
+ function translateSeconds(number, withoutSuffix, key, isFuture) {
+ if (withoutSuffix) {
+ return 'kelios sekundės';
+ } else {
+ return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
+ }
+ }
+ function translateSingular(number, withoutSuffix, key, isFuture) {
+ return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
+ }
+ function special(number) {
+ return number % 10 === 0 || (number > 10 && number < 20);
+ }
+ function forms(key) {
+ return lt__units[key].split('_');
+ }
+ function lt__translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ if (number === 1) {
+ return result + translateSingular(number, withoutSuffix, key[0], isFuture);
+ } else if (withoutSuffix) {
+ return result + (special(number) ? forms(key)[1] : forms(key)[0]);
+ } else {
+ if (isFuture) {
+ return result + forms(key)[1];
+ } else {
+ return result + (special(number) ? forms(key)[1] : forms(key)[2]);
+ }
+ }
+ }
+ var lt = moment.defineLocale('lt', {
+ months : {
+ format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
+ standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_')
+ },
+ monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
+ weekdays : {
+ format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),
+ standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),
+ isFormat: /dddd HH:mm/
+ },
+ weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
+ weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY [m.] MMMM D [d.]',
+ LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
+ LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
+ l : 'YYYY-MM-DD',
+ ll : 'YYYY [m.] MMMM D [d.]',
+ lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
+ llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'
+ },
+ calendar : {
+ sameDay : '[Šiandien] LT',
+ nextDay : '[Rytoj] LT',
+ nextWeek : 'dddd LT',
+ lastDay : '[Vakar] LT',
+ lastWeek : '[Praėjusį] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'po %s',
+ past : 'prieš %s',
+ s : translateSeconds,
+ m : translateSingular,
+ mm : lt__translate,
+ h : translateSingular,
+ hh : lt__translate,
+ d : translateSingular,
+ dd : lt__translate,
+ M : translateSingular,
+ MM : lt__translate,
+ y : translateSingular,
+ yy : lt__translate
+ },
+ ordinalParse: /\d{1,2}-oji/,
+ ordinal : function (number) {
+ return number + '-oji';
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : latvian (lv)
+ //! author : Kristaps Karlsons : https://github.com/skakri
+ //! author : Jānis Elmeris : https://github.com/JanisE
+
+ var lv__units = {
+ 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
+ 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
+ 'h': 'stundas_stundām_stunda_stundas'.split('_'),
+ 'hh': 'stundas_stundām_stunda_stundas'.split('_'),
+ 'd': 'dienas_dienām_diena_dienas'.split('_'),
+ 'dd': 'dienas_dienām_diena_dienas'.split('_'),
+ 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
+ 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
+ 'y': 'gada_gadiem_gads_gadi'.split('_'),
+ 'yy': 'gada_gadiem_gads_gadi'.split('_')
+ };
+ /**
+ * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
+ */
+ function format(forms, number, withoutSuffix) {
+ if (withoutSuffix) {
+ // E.g. "21 minūte", "3 minūtes".
+ return number % 10 === 1 && number !== 11 ? forms[2] : forms[3];
+ } else {
+ // E.g. "21 minūtes" as in "pēc 21 minūtes".
+ // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
+ return number % 10 === 1 && number !== 11 ? forms[0] : forms[1];
+ }
+ }
+ function lv__relativeTimeWithPlural(number, withoutSuffix, key) {
+ return number + ' ' + format(lv__units[key], number, withoutSuffix);
+ }
+ function relativeTimeWithSingular(number, withoutSuffix, key) {
+ return format(lv__units[key], number, withoutSuffix);
+ }
+ function relativeSeconds(number, withoutSuffix) {
+ return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
+ }
+
+ var lv = moment.defineLocale('lv', {
+ months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
+ weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
+ weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY.',
+ LL : 'YYYY. [gada] D. MMMM',
+ LLL : 'YYYY. [gada] D. MMMM, HH:mm',
+ LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'
+ },
+ calendar : {
+ sameDay : '[Šodien pulksten] LT',
+ nextDay : '[Rīt pulksten] LT',
+ nextWeek : 'dddd [pulksten] LT',
+ lastDay : '[Vakar pulksten] LT',
+ lastWeek : '[Pagājušā] dddd [pulksten] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'pēc %s',
+ past : 'pirms %s',
+ s : relativeSeconds,
+ m : relativeTimeWithSingular,
+ mm : lv__relativeTimeWithPlural,
+ h : relativeTimeWithSingular,
+ hh : lv__relativeTimeWithPlural,
+ d : relativeTimeWithSingular,
+ dd : lv__relativeTimeWithPlural,
+ M : relativeTimeWithSingular,
+ MM : lv__relativeTimeWithPlural,
+ y : relativeTimeWithSingular,
+ yy : lv__relativeTimeWithPlural
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Montenegrin (me)
+ //! author : Miodrag Nikač : https://github.com/miodragnikac
+
+ var me__translator = {
+ words: { //Different grammatical cases
+ m: ['jedan minut', 'jednog minuta'],
+ mm: ['minut', 'minuta', 'minuta'],
+ h: ['jedan sat', 'jednog sata'],
+ hh: ['sat', 'sata', 'sati'],
+ dd: ['dan', 'dana', 'dana'],
+ MM: ['mjesec', 'mjeseca', 'mjeseci'],
+ yy: ['godina', 'godine', 'godina']
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = me__translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return number + ' ' + me__translator.correctGrammaticalCase(number, wordKey);
+ }
+ }
+ };
+
+ var me = moment.defineLocale('me', {
+ months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
+ monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
+ weekdays: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],
+ weekdaysShort: ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'],
+ weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar: {
+ sameDay: '[danas u] LT',
+ nextDay: '[sjutra u] LT',
+
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[juče u] LT',
+ lastWeek : function () {
+ var lastWeekDays = [
+ '[prošle] [nedjelje] [u] LT',
+ '[prošlog] [ponedjeljka] [u] LT',
+ '[prošlog] [utorka] [u] LT',
+ '[prošle] [srijede] [u] LT',
+ '[prošlog] [četvrtka] [u] LT',
+ '[prošlog] [petka] [u] LT',
+ '[prošle] [subote] [u] LT'
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'prije %s',
+ s : 'nekoliko sekundi',
+ m : me__translator.translate,
+ mm : me__translator.translate,
+ h : me__translator.translate,
+ hh : me__translator.translate,
+ d : 'dan',
+ dd : me__translator.translate,
+ M : 'mjesec',
+ MM : me__translator.translate,
+ y : 'godinu',
+ yy : me__translator.translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : macedonian (mk)
+ //! author : Borislav Mickov : https://github.com/B0k0
+
+ var mk = moment.defineLocale('mk', {
+ months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
+ monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
+ weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
+ weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
+ weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'D.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd, D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[Денес во] LT',
+ nextDay : '[Утре во] LT',
+ nextWeek : '[Во] dddd [во] LT',
+ lastDay : '[Вчера во] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[Изминатата] dddd [во] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[Изминатиот] dddd [во] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'после %s',
+ past : 'пред %s',
+ s : 'неколку секунди',
+ m : 'минута',
+ mm : '%d минути',
+ h : 'час',
+ hh : '%d часа',
+ d : 'ден',
+ dd : '%d дена',
+ M : 'месец',
+ MM : '%d месеци',
+ y : 'година',
+ yy : '%d години'
+ },
+ ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
+ ordinal : function (number) {
+ var lastDigit = number % 10,
+ last2Digits = number % 100;
+ if (number === 0) {
+ return number + '-ев';
+ } else if (last2Digits === 0) {
+ return number + '-ен';
+ } else if (last2Digits > 10 && last2Digits < 20) {
+ return number + '-ти';
+ } else if (lastDigit === 1) {
+ return number + '-ви';
+ } else if (lastDigit === 2) {
+ return number + '-ри';
+ } else if (lastDigit === 7 || lastDigit === 8) {
+ return number + '-ми';
+ } else {
+ return number + '-ти';
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : malayalam (ml)
+ //! author : Floyd Pink : https://github.com/floydpink
+
+ var ml = moment.defineLocale('ml', {
+ months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
+ monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
+ weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
+ weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
+ weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm -നു',
+ LTS : 'A h:mm:ss -നു',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm -നു',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'
+ },
+ calendar : {
+ sameDay : '[ഇന്ന്] LT',
+ nextDay : '[നാളെ] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[ഇന്നലെ] LT',
+ lastWeek : '[കഴിഞ്ഞ] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s കഴിഞ്ഞ്',
+ past : '%s മുൻപ്',
+ s : 'അൽപ നിമിഷങ്ങൾ',
+ m : 'ഒരു മിനിറ്റ്',
+ mm : '%d മിനിറ്റ്',
+ h : 'ഒരു മണിക്കൂർ',
+ hh : '%d മണിക്കൂർ',
+ d : 'ഒരു ദിവസം',
+ dd : '%d ദിവസം',
+ M : 'ഒരു മാസം',
+ MM : '%d മാസം',
+ y : 'ഒരു വർഷം',
+ yy : '%d വർഷം'
+ },
+ meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
+ isPM : function (input) {
+ return /^(ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'രാത്രി';
+ } else if (hour < 12) {
+ return 'രാവിലെ';
+ } else if (hour < 17) {
+ return 'ഉച്ച കഴിഞ്ഞ്';
+ } else if (hour < 20) {
+ return 'വൈകുന്നേരം';
+ } else {
+ return 'രാത്രി';
+ }
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Marathi (mr)
+ //! author : Harshad Kale : https://github.com/kalehv
+ //! author : Vivek Athalye : https://github.com/vnathalye
+
+ var mr__symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ mr__numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ function relativeTimeMr(number, withoutSuffix, string, isFuture)
+ {
+ var output = '';
+ if (withoutSuffix) {
+ switch (string) {
+ case 's': output = 'काही सेकंद'; break;
+ case 'm': output = 'एक मिनिट'; break;
+ case 'mm': output = '%d मिनिटे'; break;
+ case 'h': output = 'एक तास'; break;
+ case 'hh': output = '%d तास'; break;
+ case 'd': output = 'एक दिवस'; break;
+ case 'dd': output = '%d दिवस'; break;
+ case 'M': output = 'एक महिना'; break;
+ case 'MM': output = '%d महिने'; break;
+ case 'y': output = 'एक वर्ष'; break;
+ case 'yy': output = '%d वर्षे'; break;
+ }
+ }
+ else {
+ switch (string) {
+ case 's': output = 'काही सेकंदां'; break;
+ case 'm': output = 'एका मिनिटा'; break;
+ case 'mm': output = '%d मिनिटां'; break;
+ case 'h': output = 'एका तासा'; break;
+ case 'hh': output = '%d तासां'; break;
+ case 'd': output = 'एका दिवसा'; break;
+ case 'dd': output = '%d दिवसां'; break;
+ case 'M': output = 'एका महिन्या'; break;
+ case 'MM': output = '%d महिन्यां'; break;
+ case 'y': output = 'एका वर्षा'; break;
+ case 'yy': output = '%d वर्षां'; break;
+ }
+ }
+ return output.replace(/%d/i, number);
+ }
+
+ var mr = moment.defineLocale('mr', {
+ months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
+ monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
+ weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
+ weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
+ weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm वाजता',
+ LTS : 'A h:mm:ss वाजता',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm वाजता',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[उद्या] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[काल] LT',
+ lastWeek: '[मागील] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future: '%sमध्ये',
+ past: '%sपूर्वी',
+ s: relativeTimeMr,
+ m: relativeTimeMr,
+ mm: relativeTimeMr,
+ h: relativeTimeMr,
+ hh: relativeTimeMr,
+ d: relativeTimeMr,
+ dd: relativeTimeMr,
+ M: relativeTimeMr,
+ MM: relativeTimeMr,
+ y: relativeTimeMr,
+ yy: relativeTimeMr
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return mr__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return mr__symbolMap[match];
+ });
+ },
+ meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'रात्री') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'सकाळी') {
+ return hour;
+ } else if (meridiem === 'दुपारी') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'सायंकाळी') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'रात्री';
+ } else if (hour < 10) {
+ return 'सकाळी';
+ } else if (hour < 17) {
+ return 'दुपारी';
+ } else if (hour < 20) {
+ return 'सायंकाळी';
+ } else {
+ return 'रात्री';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Bahasa Malaysia (ms-MY)
+ //! author : Weldan Jamili : https://github.com/weldan
+
+ var ms_my = moment.defineLocale('ms-my', {
+ months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
+ weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
+ weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
+ weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /pagi|tengahari|petang|malam/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'tengahari') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'petang' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'tengahari';
+ } else if (hours < 19) {
+ return 'petang';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Esok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kelmarin pukul] LT',
+ lastWeek : 'dddd [lepas pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'dalam %s',
+ past : '%s yang lepas',
+ s : 'beberapa saat',
+ m : 'seminit',
+ mm : '%d minit',
+ h : 'sejam',
+ hh : '%d jam',
+ d : 'sehari',
+ dd : '%d hari',
+ M : 'sebulan',
+ MM : '%d bulan',
+ y : 'setahun',
+ yy : '%d tahun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Bahasa Malaysia (ms-MY)
+ //! author : Weldan Jamili : https://github.com/weldan
+
+ var ms = moment.defineLocale('ms', {
+ months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
+ weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
+ weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
+ weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /pagi|tengahari|petang|malam/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'tengahari') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'petang' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'tengahari';
+ } else if (hours < 19) {
+ return 'petang';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Esok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kelmarin pukul] LT',
+ lastWeek : 'dddd [lepas pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'dalam %s',
+ past : '%s yang lepas',
+ s : 'beberapa saat',
+ m : 'seminit',
+ mm : '%d minit',
+ h : 'sejam',
+ hh : '%d jam',
+ d : 'sehari',
+ dd : '%d hari',
+ M : 'sebulan',
+ MM : '%d bulan',
+ y : 'setahun',
+ yy : '%d tahun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Burmese (my)
+ //! author : Squar team, mysquar.com
+
+ var my__symbolMap = {
+ '1': '၁',
+ '2': '၂',
+ '3': '၃',
+ '4': '၄',
+ '5': '၅',
+ '6': '၆',
+ '7': '၇',
+ '8': '၈',
+ '9': '၉',
+ '0': '၀'
+ }, my__numberMap = {
+ '၁': '1',
+ '၂': '2',
+ '၃': '3',
+ '၄': '4',
+ '၅': '5',
+ '၆': '6',
+ '၇': '7',
+ '၈': '8',
+ '၉': '9',
+ '၀': '0'
+ };
+
+ var my = moment.defineLocale('my', {
+ months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
+ monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
+ weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
+ weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
+ weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
+
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[ယနေ.] LT [မှာ]',
+ nextDay: '[မနက်ဖြန်] LT [မှာ]',
+ nextWeek: 'dddd LT [မှာ]',
+ lastDay: '[မနေ.က] LT [မှာ]',
+ lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: 'လာမည့် %s မှာ',
+ past: 'လွန်ခဲ့သော %s က',
+ s: 'စက္ကန်.အနည်းငယ်',
+ m: 'တစ်မိနစ်',
+ mm: '%d မိနစ်',
+ h: 'တစ်နာရီ',
+ hh: '%d နာရီ',
+ d: 'တစ်ရက်',
+ dd: '%d ရက်',
+ M: 'တစ်လ',
+ MM: '%d လ',
+ y: 'တစ်နှစ်',
+ yy: '%d နှစ်'
+ },
+ preparse: function (string) {
+ return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
+ return my__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return my__symbolMap[match];
+ });
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : norwegian bokmål (nb)
+ //! authors : Espen Hovlandsdal : https://github.com/rexxars
+ //! Sigurd Gartmann : https://github.com/sigurdga
+
+ var nb = moment.defineLocale('nb', {
+ months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
+ weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
+ weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),
+ weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY [kl.] HH:mm',
+ LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
+ },
+ calendar : {
+ sameDay: '[i dag kl.] LT',
+ nextDay: '[i morgen kl.] LT',
+ nextWeek: 'dddd [kl.] LT',
+ lastDay: '[i går kl.] LT',
+ lastWeek: '[forrige] dddd [kl.] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'for %s siden',
+ s : 'noen sekunder',
+ m : 'ett minutt',
+ mm : '%d minutter',
+ h : 'en time',
+ hh : '%d timer',
+ d : 'en dag',
+ dd : '%d dager',
+ M : 'en måned',
+ MM : '%d måneder',
+ y : 'ett år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : nepali/nepalese
+ //! author : suvash : https://github.com/suvash
+
+ var ne__symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ ne__numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ var ne = moment.defineLocale('ne', {
+ months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
+ monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
+ weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
+ weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
+ weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
+ longDateFormat : {
+ LT : 'Aको h:mm बजे',
+ LTS : 'Aको h:mm:ss बजे',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, Aको h:mm बजे',
+ LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return ne__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return ne__symbolMap[match];
+ });
+ },
+ meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'राति') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'बिहान') {
+ return hour;
+ } else if (meridiem === 'दिउँसो') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'साँझ') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 3) {
+ return 'राति';
+ } else if (hour < 12) {
+ return 'बिहान';
+ } else if (hour < 16) {
+ return 'दिउँसो';
+ } else if (hour < 20) {
+ return 'साँझ';
+ } else {
+ return 'राति';
+ }
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[भोलि] LT',
+ nextWeek : '[आउँदो] dddd[,] LT',
+ lastDay : '[हिजो] LT',
+ lastWeek : '[गएको] dddd[,] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%sमा',
+ past : '%s अगाडि',
+ s : 'केही क्षण',
+ m : 'एक मिनेट',
+ mm : '%d मिनेट',
+ h : 'एक घण्टा',
+ hh : '%d घण्टा',
+ d : 'एक दिन',
+ dd : '%d दिन',
+ M : 'एक महिना',
+ MM : '%d महिना',
+ y : 'एक बर्ष',
+ yy : '%d बर्ष'
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : dutch (nl)
+ //! author : Joris Röling : https://github.com/jjupiter
+
+ var nl__monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
+ nl__monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
+
+ var nl = moment.defineLocale('nl', {
+ months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return nl__monthsShortWithoutDots[m.month()];
+ } else {
+ return nl__monthsShortWithDots[m.month()];
+ }
+ },
+ weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
+ weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
+ weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[vandaag om] LT',
+ nextDay: '[morgen om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[gisteren om] LT',
+ lastWeek: '[afgelopen] dddd [om] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'over %s',
+ past : '%s geleden',
+ s : 'een paar seconden',
+ m : 'één minuut',
+ mm : '%d minuten',
+ h : 'één uur',
+ hh : '%d uur',
+ d : 'één dag',
+ dd : '%d dagen',
+ M : 'één maand',
+ MM : '%d maanden',
+ y : 'één jaar',
+ yy : '%d jaar'
+ },
+ ordinalParse: /\d{1,2}(ste|de)/,
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : norwegian nynorsk (nn)
+ //! author : https://github.com/mechuwind
+
+ var nn = moment.defineLocale('nn', {
+ months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
+ weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
+ weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
+ weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY [kl.] H:mm',
+ LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
+ },
+ calendar : {
+ sameDay: '[I dag klokka] LT',
+ nextDay: '[I morgon klokka] LT',
+ nextWeek: 'dddd [klokka] LT',
+ lastDay: '[I går klokka] LT',
+ lastWeek: '[Føregåande] dddd [klokka] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'for %s sidan',
+ s : 'nokre sekund',
+ m : 'eit minutt',
+ mm : '%d minutt',
+ h : 'ein time',
+ hh : '%d timar',
+ d : 'ein dag',
+ dd : '%d dagar',
+ M : 'ein månad',
+ MM : '%d månader',
+ y : 'eit år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : polish (pl)
+ //! author : Rafal Hirsz : https://github.com/evoL
+
+ var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
+ monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
+ function pl__plural(n) {
+ return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
+ }
+ function pl__translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'minuta' : 'minutę';
+ case 'mm':
+ return result + (pl__plural(number) ? 'minuty' : 'minut');
+ case 'h':
+ return withoutSuffix ? 'godzina' : 'godzinę';
+ case 'hh':
+ return result + (pl__plural(number) ? 'godziny' : 'godzin');
+ case 'MM':
+ return result + (pl__plural(number) ? 'miesiące' : 'miesięcy');
+ case 'yy':
+ return result + (pl__plural(number) ? 'lata' : 'lat');
+ }
+ }
+
+ var pl = moment.defineLocale('pl', {
+ months : function (momentToFormat, format) {
+ if (format === '') {
+ // Hack: if format empty we know this is used to generate
+ // RegExp by moment. Give then back both valid forms of months
+ // in RegExp ready format.
+ return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';
+ } else if (/D MMMM/.test(format)) {
+ return monthsSubjective[momentToFormat.month()];
+ } else {
+ return monthsNominative[momentToFormat.month()];
+ }
+ },
+ monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
+ weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
+ weekdaysShort : 'nie_pon_wt_śr_czw_pt_sb'.split('_'),
+ weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Dziś o] LT',
+ nextDay: '[Jutro o] LT',
+ nextWeek: '[W] dddd [o] LT',
+ lastDay: '[Wczoraj o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[W zeszłą niedzielę o] LT';
+ case 3:
+ return '[W zeszłą środę o] LT';
+ case 6:
+ return '[W zeszłą sobotę o] LT';
+ default:
+ return '[W zeszły] dddd [o] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : '%s temu',
+ s : 'kilka sekund',
+ m : pl__translate,
+ mm : pl__translate,
+ h : pl__translate,
+ hh : pl__translate,
+ d : '1 dzień',
+ dd : '%d dni',
+ M : 'miesiąc',
+ MM : pl__translate,
+ y : 'rok',
+ yy : pl__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : brazilian portuguese (pt-br)
+ //! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
+
+ var pt_br = moment.defineLocale('pt-br', {
+ months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),
+ monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
+ weekdays : 'Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado'.split('_'),
+ weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
+ weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'
+ },
+ calendar : {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return (this.day() === 0 || this.day() === 6) ?
+ '[Último] dddd [às] LT' : // Saturday + Sunday
+ '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'em %s',
+ past : '%s atrás',
+ s : 'poucos segundos',
+ m : 'um minuto',
+ mm : '%d minutos',
+ h : 'uma hora',
+ hh : '%d horas',
+ d : 'um dia',
+ dd : '%d dias',
+ M : 'um mês',
+ MM : '%d meses',
+ y : 'um ano',
+ yy : '%d anos'
+ },
+ ordinalParse: /\d{1,2}º/,
+ ordinal : '%dº'
+ });
+
+ //! moment.js locale configuration
+ //! locale : portuguese (pt)
+ //! author : Jefferson : https://github.com/jalex79
+
+ var pt = moment.defineLocale('pt', {
+ months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),
+ monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
+ weekdays : 'Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado'.split('_'),
+ weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
+ weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY HH:mm',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return (this.day() === 0 || this.day() === 6) ?
+ '[Último] dddd [às] LT' : // Saturday + Sunday
+ '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'em %s',
+ past : 'há %s',
+ s : 'segundos',
+ m : 'um minuto',
+ mm : '%d minutos',
+ h : 'uma hora',
+ hh : '%d horas',
+ d : 'um dia',
+ dd : '%d dias',
+ M : 'um mês',
+ MM : '%d meses',
+ y : 'um ano',
+ yy : '%d anos'
+ },
+ ordinalParse: /\d{1,2}º/,
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : romanian (ro)
+ //! author : Vlad Gurdiga : https://github.com/gurdiga
+ //! author : Valentin Agachi : https://github.com/avaly
+
+ function ro__relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': 'minute',
+ 'hh': 'ore',
+ 'dd': 'zile',
+ 'MM': 'luni',
+ 'yy': 'ani'
+ },
+ separator = ' ';
+ if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
+ separator = ' de ';
+ }
+ return number + separator + format[key];
+ }
+
+ var ro = moment.defineLocale('ro', {
+ months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
+ monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
+ weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
+ weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
+ weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd, D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay: '[azi la] LT',
+ nextDay: '[mâine la] LT',
+ nextWeek: 'dddd [la] LT',
+ lastDay: '[ieri la] LT',
+ lastWeek: '[fosta] dddd [la] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'peste %s',
+ past : '%s în urmă',
+ s : 'câteva secunde',
+ m : 'un minut',
+ mm : ro__relativeTimeWithPlural,
+ h : 'o oră',
+ hh : ro__relativeTimeWithPlural,
+ d : 'o zi',
+ dd : ro__relativeTimeWithPlural,
+ M : 'o lună',
+ MM : ro__relativeTimeWithPlural,
+ y : 'un an',
+ yy : ro__relativeTimeWithPlural
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : russian (ru)
+ //! author : Viktorminator : https://github.com/Viktorminator
+ //! Author : Menelion Elensúle : https://github.com/Oire
+
+ function ru__plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+ function ru__relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
+ 'hh': 'час_часа_часов',
+ 'dd': 'день_дня_дней',
+ 'MM': 'месяц_месяца_месяцев',
+ 'yy': 'год_года_лет'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'минута' : 'минуту';
+ }
+ else {
+ return number + ' ' + ru__plural(format[key], +number);
+ }
+ }
+ var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
+
+ var ru = moment.defineLocale('ru', {
+ months : {
+ format: 'Января_Февраля_Марта_Апреля_Мая_Июня_Июля_Августа_Сентября_Октября_Ноября_Декабря'.split('_'),
+ standalone: 'Январь_Февраль_Март_Апрель_Май_Июнь_Июль_Август_Сентябрь_Октябрь_Ноябрь_Декабрь'.split('_')
+ },
+ monthsShort : {
+ format: 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_'),
+ standalone: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_')
+ },
+ weekdays : {
+ standalone: 'Воскресенье_Понедельник_Вторник_Среда_Четверг_Пятница_Суббота'.split('_'),
+ format: 'Воскресенье_Понедельник_Вторник_Среду_Четверг_Пятницу_Субботу'.split('_'),
+ isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
+ },
+ weekdaysShort : 'Вс_Пн_Вт_Ср_Чт_Пт_Сб'.split('_'),
+ weekdaysMin : 'Вс_Пн_Вт_Ср_Чт_Пт_Сб'.split('_'),
+ monthsParse : monthsParse,
+ longMonthsParse : monthsParse,
+ shortMonthsParse : monthsParse,
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY г.',
+ LLL : 'D MMMM YYYY г., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY г., HH:mm'
+ },
+ calendar : {
+ sameDay: '[Сегодня в] LT',
+ nextDay: '[Завтра в] LT',
+ lastDay: '[Вчера в] LT',
+ nextWeek: function (now) {
+ if (now.week() !== this.week()) {
+ switch (this.day()) {
+ case 0:
+ return '[В следующее] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[В следующий] dddd [в] LT';
+ case 3:
+ case 5:
+ case 6:
+ return '[В следующую] dddd [в] LT';
+ }
+ } else {
+ if (this.day() === 2) {
+ return '[Во] dddd [в] LT';
+ } else {
+ return '[В] dddd [в] LT';
+ }
+ }
+ },
+ lastWeek: function (now) {
+ if (now.week() !== this.week()) {
+ switch (this.day()) {
+ case 0:
+ return '[В прошлое] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[В прошлый] dddd [в] LT';
+ case 3:
+ case 5:
+ case 6:
+ return '[В прошлую] dddd [в] LT';
+ }
+ } else {
+ if (this.day() === 2) {
+ return '[Во] dddd [в] LT';
+ } else {
+ return '[В] dddd [в] LT';
+ }
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'через %s',
+ past : '%s назад',
+ s : 'несколько секунд',
+ m : ru__relativeTimeWithPlural,
+ mm : ru__relativeTimeWithPlural,
+ h : 'час',
+ hh : ru__relativeTimeWithPlural,
+ d : 'день',
+ dd : ru__relativeTimeWithPlural,
+ M : 'месяц',
+ MM : ru__relativeTimeWithPlural,
+ y : 'год',
+ yy : ru__relativeTimeWithPlural
+ },
+ meridiemParse: /ночи|утра|дня|вечера/i,
+ isPM : function (input) {
+ return /^(дня|вечера)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночи';
+ } else if (hour < 12) {
+ return 'утра';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечера';
+ }
+ },
+ ordinalParse: /\d{1,2}-(й|го|я)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ case 'w':
+ case 'W':
+ return number + '-я';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Northern Sami (se)
+ //! authors : Bård Rolstad Henriksen : https://github.com/karamell
+
+
+ var se = moment.defineLocale('se', {
+ months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),
+ monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
+ weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),
+ weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
+ weekdaysMin : 's_v_m_g_d_b_L'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'MMMM D. [b.] YYYY',
+ LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',
+ LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'
+ },
+ calendar : {
+ sameDay: '[otne ti] LT',
+ nextDay: '[ihttin ti] LT',
+ nextWeek: 'dddd [ti] LT',
+ lastDay: '[ikte ti] LT',
+ lastWeek: '[ovddit] dddd [ti] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : '%s geažes',
+ past : 'maŋit %s',
+ s : 'moadde sekunddat',
+ m : 'okta minuhta',
+ mm : '%d minuhtat',
+ h : 'okta diimmu',
+ hh : '%d diimmut',
+ d : 'okta beaivi',
+ dd : '%d beaivvit',
+ M : 'okta mánnu',
+ MM : '%d mánut',
+ y : 'okta jahki',
+ yy : '%d jagit'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Sinhalese (si)
+ //! author : Sampath Sitinamaluwa : https://github.com/sampathsris
+
+ /*jshint -W100*/
+ var si = moment.defineLocale('si', {
+ months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),
+ monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),
+ weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),
+ weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන'.split('_'),
+ weekdaysMin : 'ඉ_ස_අ_බ_බ්ර_සි_සෙ'.split('_'),
+ longDateFormat : {
+ LT : 'a h:mm',
+ LTS : 'a h:mm:ss',
+ L : 'YYYY/MM/DD',
+ LL : 'YYYY MMMM D',
+ LLL : 'YYYY MMMM D, a h:mm',
+ LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'
+ },
+ calendar : {
+ sameDay : '[අද] LT[ට]',
+ nextDay : '[හෙට] LT[ට]',
+ nextWeek : 'dddd LT[ට]',
+ lastDay : '[ඊයේ] LT[ට]',
+ lastWeek : '[පසුගිය] dddd LT[ට]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%sකින්',
+ past : '%sකට පෙර',
+ s : 'තත්පර කිහිපය',
+ m : 'මිනිත්තුව',
+ mm : 'මිනිත්තු %d',
+ h : 'පැය',
+ hh : 'පැය %d',
+ d : 'දිනය',
+ dd : 'දින %d',
+ M : 'මාසය',
+ MM : 'මාස %d',
+ y : 'වසර',
+ yy : 'වසර %d'
+ },
+ ordinalParse: /\d{1,2} වැනි/,
+ ordinal : function (number) {
+ return number + ' වැනි';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'ප.ව.' : 'පස් වරු';
+ } else {
+ return isLower ? 'පෙ.ව.' : 'පෙර වරු';
+ }
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : slovak (sk)
+ //! author : Martin Minka : https://github.com/k2s
+ //! based on work of petrbela : https://github.com/petrbela
+
+ var sk__months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
+ sk__monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
+ function sk__plural(n) {
+ return (n > 1) && (n < 5);
+ }
+ function sk__translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (sk__plural(number) ? 'minúty' : 'minút');
+ } else {
+ return result + 'minútami';
+ }
+ break;
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (sk__plural(number) ? 'hodiny' : 'hodín');
+ } else {
+ return result + 'hodinami';
+ }
+ break;
+ case 'd': // a day / in a day / a day ago
+ return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (sk__plural(number) ? 'dni' : 'dní');
+ } else {
+ return result + 'dňami';
+ }
+ break;
+ case 'M': // a month / in a month / a month ago
+ return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (sk__plural(number) ? 'mesiace' : 'mesiacov');
+ } else {
+ return result + 'mesiacmi';
+ }
+ break;
+ case 'y': // a year / in a year / a year ago
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (sk__plural(number) ? 'roky' : 'rokov');
+ } else {
+ return result + 'rokmi';
+ }
+ break;
+ }
+ }
+
+ var sk = moment.defineLocale('sk', {
+ months : sk__months,
+ monthsShort : sk__monthsShort,
+ weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
+ weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
+ weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
+ longDateFormat : {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay: '[dnes o] LT',
+ nextDay: '[zajtra o] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [o] LT';
+ case 3:
+ return '[v stredu o] LT';
+ case 4:
+ return '[vo štvrtok o] LT';
+ case 5:
+ return '[v piatok o] LT';
+ case 6:
+ return '[v sobotu o] LT';
+ }
+ },
+ lastDay: '[včera o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulú nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[minulý] dddd [o] LT';
+ case 3:
+ return '[minulú stredu o] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [o] LT';
+ case 6:
+ return '[minulú sobotu o] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'pred %s',
+ s : sk__translate,
+ m : sk__translate,
+ mm : sk__translate,
+ h : sk__translate,
+ hh : sk__translate,
+ d : sk__translate,
+ dd : sk__translate,
+ M : sk__translate,
+ MM : sk__translate,
+ y : sk__translate,
+ yy : sk__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : slovenian (sl)
+ //! author : Robert Sedovšek : https://github.com/sedovsek
+
+ function sl__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's':
+ return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';
+ case 'm':
+ return withoutSuffix ? 'ena minuta' : 'eno minuto';
+ case 'mm':
+ if (number === 1) {
+ result += withoutSuffix ? 'minuta' : 'minuto';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'minute' : 'minutami';
+ } else {
+ result += withoutSuffix || isFuture ? 'minut' : 'minutami';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'ena ura' : 'eno uro';
+ case 'hh':
+ if (number === 1) {
+ result += withoutSuffix ? 'ura' : 'uro';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'uri' : 'urama';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'ure' : 'urami';
+ } else {
+ result += withoutSuffix || isFuture ? 'ur' : 'urami';
+ }
+ return result;
+ case 'd':
+ return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
+ case 'dd':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'dan' : 'dnem';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
+ } else {
+ result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
+ }
+ return result;
+ case 'M':
+ return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
+ case 'MM':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
+ } else {
+ result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
+ }
+ return result;
+ case 'y':
+ return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
+ case 'yy':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'leto' : 'letom';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'leti' : 'letoma';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'leta' : 'leti';
+ } else {
+ result += withoutSuffix || isFuture ? 'let' : 'leti';
+ }
+ return result;
+ }
+ }
+
+ var sl = moment.defineLocale('sl', {
+ months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
+ weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
+ weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
+ weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[danes ob] LT',
+ nextDay : '[jutri ob] LT',
+
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[v] [nedeljo] [ob] LT';
+ case 3:
+ return '[v] [sredo] [ob] LT';
+ case 6:
+ return '[v] [soboto] [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[v] dddd [ob] LT';
+ }
+ },
+ lastDay : '[včeraj ob] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[prejšnjo] [nedeljo] [ob] LT';
+ case 3:
+ return '[prejšnjo] [sredo] [ob] LT';
+ case 6:
+ return '[prejšnjo] [soboto] [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prejšnji] dddd [ob] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'čez %s',
+ past : 'pred %s',
+ s : sl__processRelativeTime,
+ m : sl__processRelativeTime,
+ mm : sl__processRelativeTime,
+ h : sl__processRelativeTime,
+ hh : sl__processRelativeTime,
+ d : sl__processRelativeTime,
+ dd : sl__processRelativeTime,
+ M : sl__processRelativeTime,
+ MM : sl__processRelativeTime,
+ y : sl__processRelativeTime,
+ yy : sl__processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Albanian (sq)
+ //! author : Flakërim Ismani : https://github.com/flakerimi
+ //! author: Menelion Elensúle: https://github.com/Oire (tests)
+ //! author : Oerd Cukalla : https://github.com/oerd (fixes)
+
+ var sq = moment.defineLocale('sq', {
+ months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
+ monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
+ weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
+ weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
+ weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
+ meridiemParse: /PD|MD/,
+ isPM: function (input) {
+ return input.charAt(0) === 'M';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ return hours < 12 ? 'PD' : 'MD';
+ },
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Sot në] LT',
+ nextDay : '[Nesër në] LT',
+ nextWeek : 'dddd [në] LT',
+ lastDay : '[Dje në] LT',
+ lastWeek : 'dddd [e kaluar në] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'në %s',
+ past : '%s më parë',
+ s : 'disa sekonda',
+ m : 'një minutë',
+ mm : '%d minuta',
+ h : 'një orë',
+ hh : '%d orë',
+ d : 'një ditë',
+ dd : '%d ditë',
+ M : 'një muaj',
+ MM : '%d muaj',
+ y : 'një vit',
+ yy : '%d vite'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Serbian-cyrillic (sr-cyrl)
+ //! author : Milan Janačković : https://github.com/milan-j
+
+ var sr_cyrl__translator = {
+ words: { //Different grammatical cases
+ m: ['један минут', 'једне минуте'],
+ mm: ['минут', 'минуте', 'минута'],
+ h: ['један сат', 'једног сата'],
+ hh: ['сат', 'сата', 'сати'],
+ dd: ['дан', 'дана', 'дана'],
+ MM: ['месец', 'месеца', 'месеци'],
+ yy: ['година', 'године', 'година']
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = sr_cyrl__translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return number + ' ' + sr_cyrl__translator.correctGrammaticalCase(number, wordKey);
+ }
+ }
+ };
+
+ var sr_cyrl = moment.defineLocale('sr-cyrl', {
+ months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
+ monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
+ weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
+ weekdaysShort: ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],
+ weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar: {
+ sameDay: '[данас у] LT',
+ nextDay: '[сутра у] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[у] [недељу] [у] LT';
+ case 3:
+ return '[у] [среду] [у] LT';
+ case 6:
+ return '[у] [суботу] [у] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[у] dddd [у] LT';
+ }
+ },
+ lastDay : '[јуче у] LT',
+ lastWeek : function () {
+ var lastWeekDays = [
+ '[прошле] [недеље] [у] LT',
+ '[прошлог] [понедељка] [у] LT',
+ '[прошлог] [уторка] [у] LT',
+ '[прошле] [среде] [у] LT',
+ '[прошлог] [четвртка] [у] LT',
+ '[прошлог] [петка] [у] LT',
+ '[прошле] [суботе] [у] LT'
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'за %s',
+ past : 'пре %s',
+ s : 'неколико секунди',
+ m : sr_cyrl__translator.translate,
+ mm : sr_cyrl__translator.translate,
+ h : sr_cyrl__translator.translate,
+ hh : sr_cyrl__translator.translate,
+ d : 'дан',
+ dd : sr_cyrl__translator.translate,
+ M : 'месец',
+ MM : sr_cyrl__translator.translate,
+ y : 'годину',
+ yy : sr_cyrl__translator.translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Serbian-latin (sr)
+ //! author : Milan Janačković : https://github.com/milan-j
+
+ var sr__translator = {
+ words: { //Different grammatical cases
+ m: ['jedan minut', 'jedne minute'],
+ mm: ['minut', 'minute', 'minuta'],
+ h: ['jedan sat', 'jednog sata'],
+ hh: ['sat', 'sata', 'sati'],
+ dd: ['dan', 'dana', 'dana'],
+ MM: ['mesec', 'meseca', 'meseci'],
+ yy: ['godina', 'godine', 'godina']
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = sr__translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return number + ' ' + sr__translator.correctGrammaticalCase(number, wordKey);
+ }
+ }
+ };
+
+ var sr = moment.defineLocale('sr', {
+ months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
+ monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
+ weekdays: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],
+ weekdaysShort: ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'],
+ weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar: {
+ sameDay: '[danas u] LT',
+ nextDay: '[sutra u] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedelju] [u] LT';
+ case 3:
+ return '[u] [sredu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[juče u] LT',
+ lastWeek : function () {
+ var lastWeekDays = [
+ '[prošle] [nedelje] [u] LT',
+ '[prošlog] [ponedeljka] [u] LT',
+ '[prošlog] [utorka] [u] LT',
+ '[prošle] [srede] [u] LT',
+ '[prošlog] [četvrtka] [u] LT',
+ '[prošlog] [petka] [u] LT',
+ '[prošle] [subote] [u] LT'
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'pre %s',
+ s : 'nekoliko sekundi',
+ m : sr__translator.translate,
+ mm : sr__translator.translate,
+ h : sr__translator.translate,
+ hh : sr__translator.translate,
+ d : 'dan',
+ dd : sr__translator.translate,
+ M : 'mesec',
+ MM : sr__translator.translate,
+ y : 'godinu',
+ yy : sr__translator.translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : swedish (sv)
+ //! author : Jens Alm : https://github.com/ulmus
+
+ var sv = moment.defineLocale('sv', {
+ months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
+ weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
+ weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Idag] LT',
+ nextDay: '[Imorgon] LT',
+ lastDay: '[Igår] LT',
+ nextWeek: '[På] dddd LT',
+ lastWeek: '[I] dddd[s] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'för %s sedan',
+ s : 'några sekunder',
+ m : 'en minut',
+ mm : '%d minuter',
+ h : 'en timme',
+ hh : '%d timmar',
+ d : 'en dag',
+ dd : '%d dagar',
+ M : 'en månad',
+ MM : '%d månader',
+ y : 'ett år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}(e|a)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'e' :
+ (b === 1) ? 'a' :
+ (b === 2) ? 'a' :
+ (b === 3) ? 'e' : 'e';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : swahili (sw)
+ //! author : Fahad Kassim : https://github.com/fadsel
+
+ var sw = moment.defineLocale('sw', {
+ months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
+ weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),
+ weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
+ weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[leo saa] LT',
+ nextDay : '[kesho saa] LT',
+ nextWeek : '[wiki ijayo] dddd [saat] LT',
+ lastDay : '[jana] LT',
+ lastWeek : '[wiki iliyopita] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s baadaye',
+ past : 'tokea %s',
+ s : 'hivi punde',
+ m : 'dakika moja',
+ mm : 'dakika %d',
+ h : 'saa limoja',
+ hh : 'masaa %d',
+ d : 'siku moja',
+ dd : 'masiku %d',
+ M : 'mwezi mmoja',
+ MM : 'miezi %d',
+ y : 'mwaka mmoja',
+ yy : 'miaka %d'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : tamil (ta)
+ //! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
+
+ var ta__symbolMap = {
+ '1': '௧',
+ '2': '௨',
+ '3': '௩',
+ '4': '௪',
+ '5': '௫',
+ '6': '௬',
+ '7': '௭',
+ '8': '௮',
+ '9': '௯',
+ '0': '௦'
+ }, ta__numberMap = {
+ '௧': '1',
+ '௨': '2',
+ '௩': '3',
+ '௪': '4',
+ '௫': '5',
+ '௬': '6',
+ '௭': '7',
+ '௮': '8',
+ '௯': '9',
+ '௦': '0'
+ };
+
+ var ta = moment.defineLocale('ta', {
+ months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
+ monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
+ weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
+ weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
+ weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, HH:mm',
+ LLLL : 'dddd, D MMMM YYYY, HH:mm'
+ },
+ calendar : {
+ sameDay : '[இன்று] LT',
+ nextDay : '[நாளை] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[நேற்று] LT',
+ lastWeek : '[கடந்த வாரம்] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s இல்',
+ past : '%s முன்',
+ s : 'ஒரு சில விநாடிகள்',
+ m : 'ஒரு நிமிடம்',
+ mm : '%d நிமிடங்கள்',
+ h : 'ஒரு மணி நேரம்',
+ hh : '%d மணி நேரம்',
+ d : 'ஒரு நாள்',
+ dd : '%d நாட்கள்',
+ M : 'ஒரு மாதம்',
+ MM : '%d மாதங்கள்',
+ y : 'ஒரு வருடம்',
+ yy : '%d ஆண்டுகள்'
+ },
+ ordinalParse: /\d{1,2}வது/,
+ ordinal : function (number) {
+ return number + 'வது';
+ },
+ preparse: function (string) {
+ return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
+ return ta__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return ta__symbolMap[match];
+ });
+ },
+ // refer http://ta.wikipedia.org/s/1er1
+ meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 2) {
+ return ' யாமம்';
+ } else if (hour < 6) {
+ return ' வைகறை'; // வைகறை
+ } else if (hour < 10) {
+ return ' காலை'; // காலை
+ } else if (hour < 14) {
+ return ' நண்பகல்'; // நண்பகல்
+ } else if (hour < 18) {
+ return ' எற்பாடு'; // எற்பாடு
+ } else if (hour < 22) {
+ return ' மாலை'; // மாலை
+ } else {
+ return ' யாமம்';
+ }
+ },
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'யாமம்') {
+ return hour < 2 ? hour : hour + 12;
+ } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
+ return hour;
+ } else if (meridiem === 'நண்பகல்') {
+ return hour >= 10 ? hour : hour + 12;
+ } else {
+ return hour + 12;
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : telugu (te)
+ //! author : Krishna Chaitanya Thota : https://github.com/kcthota
+
+ var te = moment.defineLocale('te', {
+ months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),
+ monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),
+ weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),
+ weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
+ weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm',
+ LTS : 'A h:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm'
+ },
+ calendar : {
+ sameDay : '[నేడు] LT',
+ nextDay : '[రేపు] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[నిన్న] LT',
+ lastWeek : '[గత] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s లో',
+ past : '%s క్రితం',
+ s : 'కొన్ని క్షణాలు',
+ m : 'ఒక నిమిషం',
+ mm : '%d నిమిషాలు',
+ h : 'ఒక గంట',
+ hh : '%d గంటలు',
+ d : 'ఒక రోజు',
+ dd : '%d రోజులు',
+ M : 'ఒక నెల',
+ MM : '%d నెలలు',
+ y : 'ఒక సంవత్సరం',
+ yy : '%d సంవత్సరాలు'
+ },
+ ordinalParse : /\d{1,2}వ/,
+ ordinal : '%dవ',
+ meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'రాత్రి') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'ఉదయం') {
+ return hour;
+ } else if (meridiem === 'మధ్యాహ్నం') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'సాయంత్రం') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'రాత్రి';
+ } else if (hour < 10) {
+ return 'ఉదయం';
+ } else if (hour < 17) {
+ return 'మధ్యాహ్నం';
+ } else if (hour < 20) {
+ return 'సాయంత్రం';
+ } else {
+ return 'రాత్రి';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : thai (th)
+ //! author : Kridsada Thanabulpong : https://github.com/sirn
+
+ var th = moment.defineLocale('th', {
+ months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
+ monthsShort : 'มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา'.split('_'),
+ weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
+ weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
+ weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
+ longDateFormat : {
+ LT : 'H นาฬิกา m นาที',
+ LTS : 'H นาฬิกา m นาที s วินาที',
+ L : 'YYYY/MM/DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY เวลา H นาฬิกา m นาที',
+ LLLL : 'วันddddที่ D MMMM YYYY เวลา H นาฬิกา m นาที'
+ },
+ meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
+ isPM: function (input) {
+ return input === 'หลังเที่ยง';
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ก่อนเที่ยง';
+ } else {
+ return 'หลังเที่ยง';
+ }
+ },
+ calendar : {
+ sameDay : '[วันนี้ เวลา] LT',
+ nextDay : '[พรุ่งนี้ เวลา] LT',
+ nextWeek : 'dddd[หน้า เวลา] LT',
+ lastDay : '[เมื่อวานนี้ เวลา] LT',
+ lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'อีก %s',
+ past : '%sที่แล้ว',
+ s : 'ไม่กี่วินาที',
+ m : '1 นาที',
+ mm : '%d นาที',
+ h : '1 ชั่วโมง',
+ hh : '%d ชั่วโมง',
+ d : '1 วัน',
+ dd : '%d วัน',
+ M : '1 เดือน',
+ MM : '%d เดือน',
+ y : '1 ปี',
+ yy : '%d ปี'
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Tagalog/Filipino (tl-ph)
+ //! author : Dan Hagman
+
+ var tl_ph = moment.defineLocale('tl-ph', {
+ months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
+ monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
+ weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
+ weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
+ weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'MM/D/YYYY',
+ LL : 'MMMM D, YYYY',
+ LLL : 'MMMM D, YYYY HH:mm',
+ LLLL : 'dddd, MMMM DD, YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Ngayon sa] LT',
+ nextDay: '[Bukas sa] LT',
+ nextWeek: 'dddd [sa] LT',
+ lastDay: '[Kahapon sa] LT',
+ lastWeek: 'dddd [huling linggo] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'sa loob ng %s',
+ past : '%s ang nakalipas',
+ s : 'ilang segundo',
+ m : 'isang minuto',
+ mm : '%d minuto',
+ h : 'isang oras',
+ hh : '%d oras',
+ d : 'isang araw',
+ dd : '%d araw',
+ M : 'isang buwan',
+ MM : '%d buwan',
+ y : 'isang taon',
+ yy : '%d taon'
+ },
+ ordinalParse: /\d{1,2}/,
+ ordinal : function (number) {
+ return number;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Klingon (tlh)
+ //! author : Dominika Kruk : https://github.com/amaranthrose
+
+ var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
+
+ function translateFuture(output) {
+ var time = output;
+ time = (output.indexOf('jaj') !== -1) ?
+ time.slice(0, -3) + 'leS' :
+ (output.indexOf('jar') !== -1) ?
+ time.slice(0, -3) + 'waQ' :
+ (output.indexOf('DIS') !== -1) ?
+ time.slice(0, -3) + 'nem' :
+ time + ' pIq';
+ return time;
+ }
+
+ function translatePast(output) {
+ var time = output;
+ time = (output.indexOf('jaj') !== -1) ?
+ time.slice(0, -3) + 'Hu’' :
+ (output.indexOf('jar') !== -1) ?
+ time.slice(0, -3) + 'wen' :
+ (output.indexOf('DIS') !== -1) ?
+ time.slice(0, -3) + 'ben' :
+ time + ' ret';
+ return time;
+ }
+
+ function tlh__translate(number, withoutSuffix, string, isFuture) {
+ var numberNoun = numberAsNoun(number);
+ switch (string) {
+ case 'mm':
+ return numberNoun + ' tup';
+ case 'hh':
+ return numberNoun + ' rep';
+ case 'dd':
+ return numberNoun + ' jaj';
+ case 'MM':
+ return numberNoun + ' jar';
+ case 'yy':
+ return numberNoun + ' DIS';
+ }
+ }
+
+ function numberAsNoun(number) {
+ var hundred = Math.floor((number % 1000) / 100),
+ ten = Math.floor((number % 100) / 10),
+ one = number % 10,
+ word = '';
+ if (hundred > 0) {
+ word += numbersNouns[hundred] + 'vatlh';
+ }
+ if (ten > 0) {
+ word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';
+ }
+ if (one > 0) {
+ word += ((word !== '') ? ' ' : '') + numbersNouns[one];
+ }
+ return (word === '') ? 'pagh' : word;
+ }
+
+ var tlh = moment.defineLocale('tlh', {
+ months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),
+ monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),
+ weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
+ weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
+ weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[DaHjaj] LT',
+ nextDay: '[wa’leS] LT',
+ nextWeek: 'LLL',
+ lastDay: '[wa’Hu’] LT',
+ lastWeek: 'LLL',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : translateFuture,
+ past : translatePast,
+ s : 'puS lup',
+ m : 'wa’ tup',
+ mm : tlh__translate,
+ h : 'wa’ rep',
+ hh : tlh__translate,
+ d : 'wa’ jaj',
+ dd : tlh__translate,
+ M : 'wa’ jar',
+ MM : tlh__translate,
+ y : 'wa’ DIS',
+ yy : tlh__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : turkish (tr)
+ //! authors : Erhan Gundogan : https://github.com/erhangundogan,
+ //! Burak Yiğit Kaya: https://github.com/BYK
+
+ var tr__suffixes = {
+ 1: '\'inci',
+ 5: '\'inci',
+ 8: '\'inci',
+ 70: '\'inci',
+ 80: '\'inci',
+ 2: '\'nci',
+ 7: '\'nci',
+ 20: '\'nci',
+ 50: '\'nci',
+ 3: '\'üncü',
+ 4: '\'üncü',
+ 100: '\'üncü',
+ 6: '\'ncı',
+ 9: '\'uncu',
+ 10: '\'uncu',
+ 30: '\'uncu',
+ 60: '\'ıncı',
+ 90: '\'ıncı'
+ };
+
+ var tr = moment.defineLocale('tr', {
+ months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
+ monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
+ weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
+ weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
+ weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[bugün saat] LT',
+ nextDay : '[yarın saat] LT',
+ nextWeek : '[haftaya] dddd [saat] LT',
+ lastDay : '[dün] LT',
+ lastWeek : '[geçen hafta] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s sonra',
+ past : '%s önce',
+ s : 'birkaç saniye',
+ m : 'bir dakika',
+ mm : '%d dakika',
+ h : 'bir saat',
+ hh : '%d saat',
+ d : 'bir gün',
+ dd : '%d gün',
+ M : 'bir ay',
+ MM : '%d ay',
+ y : 'bir yıl',
+ yy : '%d yıl'
+ },
+ ordinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,
+ ordinal : function (number) {
+ if (number === 0) { // special case for zero
+ return number + '\'ıncı';
+ }
+ var a = number % 10,
+ b = number % 100 - a,
+ c = number >= 100 ? 100 : null;
+ return number + (tr__suffixes[a] || tr__suffixes[b] || tr__suffixes[c]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : talossan (tzl)
+ //! author : Robin van der Vliet : https://github.com/robin0van0der0v with the help of Iustì Canun
+
+
+ // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
+ // This is currently too difficult (maybe even impossible) to add.
+ var tzl = moment.defineLocale('tzl', {
+ months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),
+ monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
+ weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
+ weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
+ weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM [dallas] YYYY',
+ LLL : 'D. MMMM [dallas] YYYY HH.mm',
+ LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'd\'o' : 'D\'O';
+ } else {
+ return isLower ? 'd\'a' : 'D\'A';
+ }
+ },
+ calendar : {
+ sameDay : '[oxhi à] LT',
+ nextDay : '[demà à] LT',
+ nextWeek : 'dddd [à] LT',
+ lastDay : '[ieiri à] LT',
+ lastWeek : '[sür el] dddd [lasteu à] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'osprei %s',
+ past : 'ja%s',
+ s : tzl__processRelativeTime,
+ m : tzl__processRelativeTime,
+ mm : tzl__processRelativeTime,
+ h : tzl__processRelativeTime,
+ hh : tzl__processRelativeTime,
+ d : tzl__processRelativeTime,
+ dd : tzl__processRelativeTime,
+ M : tzl__processRelativeTime,
+ MM : tzl__processRelativeTime,
+ y : tzl__processRelativeTime,
+ yy : tzl__processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ function tzl__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 's': ['viensas secunds', '\'iensas secunds'],
+ 'm': ['\'n míut', '\'iens míut'],
+ 'mm': [number + ' míuts', '' + number + ' míuts'],
+ 'h': ['\'n þora', '\'iensa þora'],
+ 'hh': [number + ' þoras', '' + number + ' þoras'],
+ 'd': ['\'n ziua', '\'iensa ziua'],
+ 'dd': [number + ' ziuas', '' + number + ' ziuas'],
+ 'M': ['\'n mes', '\'iens mes'],
+ 'MM': [number + ' mesen', '' + number + ' mesen'],
+ 'y': ['\'n ar', '\'iens ar'],
+ 'yy': [number + ' ars', '' + number + ' ars']
+ };
+ return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);
+ }
+
+ //! moment.js locale configuration
+ //! locale : Morocco Central Atlas Tamaziɣt in Latin (tzm-latn)
+ //! author : Abdel Said : https://github.com/abdelsaid
+
+ var tzm_latn = moment.defineLocale('tzm-latn', {
+ months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
+ monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
+ weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[asdkh g] LT',
+ nextDay: '[aska g] LT',
+ nextWeek: 'dddd [g] LT',
+ lastDay: '[assant g] LT',
+ lastWeek: 'dddd [g] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dadkh s yan %s',
+ past : 'yan %s',
+ s : 'imik',
+ m : 'minuḍ',
+ mm : '%d minuḍ',
+ h : 'saɛa',
+ hh : '%d tassaɛin',
+ d : 'ass',
+ dd : '%d ossan',
+ M : 'ayowr',
+ MM : '%d iyyirn',
+ y : 'asgas',
+ yy : '%d isgasn'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Morocco Central Atlas Tamaziɣt (tzm)
+ //! author : Abdel Said : https://github.com/abdelsaid
+
+ var tzm = moment.defineLocale('tzm', {
+ months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
+ monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
+ weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
+ nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
+ nextWeek: 'dddd [ⴴ] LT',
+ lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
+ lastWeek: 'dddd [ⴴ] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
+ past : 'ⵢⴰⵏ %s',
+ s : 'ⵉⵎⵉⴽ',
+ m : 'ⵎⵉⵏⵓⴺ',
+ mm : '%d ⵎⵉⵏⵓⴺ',
+ h : 'ⵙⴰⵄⴰ',
+ hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
+ d : 'ⴰⵙⵙ',
+ dd : '%d oⵙⵙⴰⵏ',
+ M : 'ⴰⵢoⵓⵔ',
+ MM : '%d ⵉⵢⵢⵉⵔⵏ',
+ y : 'ⴰⵙⴳⴰⵙ',
+ yy : '%d ⵉⵙⴳⴰⵙⵏ'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : ukrainian (uk)
+ //! author : zemlanin : https://github.com/zemlanin
+ //! Author : Menelion Elensúle : https://github.com/Oire
+
+ function uk__plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+ function uk__relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
+ 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
+ 'dd': 'день_дні_днів',
+ 'MM': 'місяць_місяці_місяців',
+ 'yy': 'рік_роки_років'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'хвилина' : 'хвилину';
+ }
+ else if (key === 'h') {
+ return withoutSuffix ? 'година' : 'годину';
+ }
+ else {
+ return number + ' ' + uk__plural(format[key], +number);
+ }
+ }
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = {
+ 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
+ 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
+ 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
+ },
+ nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
+ 'accusative' :
+ ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
+ 'genitive' :
+ 'nominative');
+ return weekdays[nounCase][m.day()];
+ }
+ function processHoursFunction(str) {
+ return function () {
+ return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
+ };
+ }
+
+ var uk = moment.defineLocale('uk', {
+ months : {
+ 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),
+ 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')
+ },
+ monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
+ weekdays : weekdaysCaseReplace,
+ weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY р.',
+ LLL : 'D MMMM YYYY р., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY р., HH:mm'
+ },
+ calendar : {
+ sameDay: processHoursFunction('[Сьогодні '),
+ nextDay: processHoursFunction('[Завтра '),
+ lastDay: processHoursFunction('[Вчора '),
+ nextWeek: processHoursFunction('[У] dddd ['),
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 5:
+ case 6:
+ return processHoursFunction('[Минулої] dddd [').call(this);
+ case 1:
+ case 2:
+ case 4:
+ return processHoursFunction('[Минулого] dddd [').call(this);
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'за %s',
+ past : '%s тому',
+ s : 'декілька секунд',
+ m : uk__relativeTimeWithPlural,
+ mm : uk__relativeTimeWithPlural,
+ h : 'годину',
+ hh : uk__relativeTimeWithPlural,
+ d : 'день',
+ dd : uk__relativeTimeWithPlural,
+ M : 'місяць',
+ MM : uk__relativeTimeWithPlural,
+ y : 'рік',
+ yy : uk__relativeTimeWithPlural
+ },
+ // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
+ meridiemParse: /ночі|ранку|дня|вечора/,
+ isPM: function (input) {
+ return /^(дня|вечора)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночі';
+ } else if (hour < 12) {
+ return 'ранку';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечора';
+ }
+ },
+ ordinalParse: /\d{1,2}-(й|го)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ case 'w':
+ case 'W':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : uzbek (uz)
+ //! author : Sardor Muminov : https://github.com/muminoff
+
+ var uz = moment.defineLocale('uz', {
+ months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
+ monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
+ weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
+ weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
+ weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'D MMMM YYYY, dddd HH:mm'
+ },
+ calendar : {
+ sameDay : '[Бугун соат] LT [да]',
+ nextDay : '[Эртага] LT [да]',
+ nextWeek : 'dddd [куни соат] LT [да]',
+ lastDay : '[Кеча соат] LT [да]',
+ lastWeek : '[Утган] dddd [куни соат] LT [да]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'Якин %s ичида',
+ past : 'Бир неча %s олдин',
+ s : 'фурсат',
+ m : 'бир дакика',
+ mm : '%d дакика',
+ h : 'бир соат',
+ hh : '%d соат',
+ d : 'бир кун',
+ dd : '%d кун',
+ M : 'бир ой',
+ MM : '%d ой',
+ y : 'бир йил',
+ yy : '%d йил'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : vietnamese (vi)
+ //! author : Bang Nguyen : https://github.com/bangnk
+
+ var vi = moment.defineLocale('vi', {
+ months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),
+ monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
+ weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
+ weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
+ weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM [năm] YYYY',
+ LLL : 'D MMMM [năm] YYYY HH:mm',
+ LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',
+ l : 'DD/M/YYYY',
+ ll : 'D MMM YYYY',
+ lll : 'D MMM YYYY HH:mm',
+ llll : 'ddd, D MMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Hôm nay lúc] LT',
+ nextDay: '[Ngày mai lúc] LT',
+ nextWeek: 'dddd [tuần tới lúc] LT',
+ lastDay: '[Hôm qua lúc] LT',
+ lastWeek: 'dddd [tuần rồi lúc] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : '%s tới',
+ past : '%s trước',
+ s : 'vài giây',
+ m : 'một phút',
+ mm : '%d phút',
+ h : 'một giờ',
+ hh : '%d giờ',
+ d : 'một ngày',
+ dd : '%d ngày',
+ M : 'một tháng',
+ MM : '%d tháng',
+ y : 'một năm',
+ yy : '%d năm'
+ },
+ ordinalParse: /\d{1,2}/,
+ ordinal : function (number) {
+ return number;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : chinese (zh-cn)
+ //! author : suupic : https://github.com/suupic
+ //! author : Zeno Zeng : https://github.com/zenozeng
+
+ var zh_cn = moment.defineLocale('zh-cn', {
+ months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
+ weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat : {
+ LT : 'Ah点mm分',
+ LTS : 'Ah点m分s秒',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY年MMMD日',
+ LLL : 'YYYY年MMMD日Ah点mm分',
+ LLLL : 'YYYY年MMMD日ddddAh点mm分',
+ l : 'YYYY-MM-DD',
+ ll : 'YYYY年MMMD日',
+ lll : 'YYYY年MMMD日Ah点mm分',
+ llll : 'YYYY年MMMD日ddddAh点mm分'
+ },
+ meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '凌晨' || meridiem === '早上' ||
+ meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ } else {
+ // '中午'
+ return hour >= 11 ? hour : hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 600) {
+ return '凌晨';
+ } else if (hm < 900) {
+ return '早上';
+ } else if (hm < 1130) {
+ return '上午';
+ } else if (hm < 1230) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar : {
+ sameDay : function () {
+ return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT';
+ },
+ nextDay : function () {
+ return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT';
+ },
+ lastDay : function () {
+ return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT';
+ },
+ nextWeek : function () {
+ var startOfWeek, prefix;
+ startOfWeek = moment().startOf('week');
+ prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';
+ return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
+ },
+ lastWeek : function () {
+ var startOfWeek, prefix;
+ startOfWeek = moment().startOf('week');
+ prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]';
+ return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
+ },
+ sameElse : 'LL'
+ },
+ ordinalParse: /\d{1,2}(日|月|周)/,
+ ordinal : function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + '日';
+ case 'M':
+ return number + '月';
+ case 'w':
+ case 'W':
+ return number + '周';
+ default:
+ return number;
+ }
+ },
+ relativeTime : {
+ future : '%s内',
+ past : '%s前',
+ s : '几秒',
+ m : '1 分钟',
+ mm : '%d 分钟',
+ h : '1 小时',
+ hh : '%d 小时',
+ d : '1 天',
+ dd : '%d 天',
+ M : '1 个月',
+ MM : '%d 个月',
+ y : '1 年',
+ yy : '%d 年'
+ },
+ week : {
+ // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : traditional chinese (zh-tw)
+ //! author : Ben : https://github.com/ben-lin
+
+ var zh_tw = moment.defineLocale('zh-tw', {
+ months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
+ weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat : {
+ LT : 'Ah點mm分',
+ LTS : 'Ah點m分s秒',
+ L : 'YYYY年MMMD日',
+ LL : 'YYYY年MMMD日',
+ LLL : 'YYYY年MMMD日Ah點mm分',
+ LLLL : 'YYYY年MMMD日ddddAh點mm分',
+ l : 'YYYY年MMMD日',
+ ll : 'YYYY年MMMD日',
+ lll : 'YYYY年MMMD日Ah點mm分',
+ llll : 'YYYY年MMMD日ddddAh點mm分'
+ },
+ meridiemParse: /早上|上午|中午|下午|晚上/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '早上' || meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '中午') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 900) {
+ return '早上';
+ } else if (hm < 1130) {
+ return '上午';
+ } else if (hm < 1230) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar : {
+ sameDay : '[今天]LT',
+ nextDay : '[明天]LT',
+ nextWeek : '[下]ddddLT',
+ lastDay : '[昨天]LT',
+ lastWeek : '[上]ddddLT',
+ sameElse : 'L'
+ },
+ ordinalParse: /\d{1,2}(日|月|週)/,
+ ordinal : function (number, period) {
+ switch (period) {
+ case 'd' :
+ case 'D' :
+ case 'DDD' :
+ return number + '日';
+ case 'M' :
+ return number + '月';
+ case 'w' :
+ case 'W' :
+ return number + '週';
+ default :
+ return number;
+ }
+ },
+ relativeTime : {
+ future : '%s內',
+ past : '%s前',
+ s : '幾秒',
+ m : '一分鐘',
+ mm : '%d分鐘',
+ h : '一小時',
+ hh : '%d小時',
+ d : '一天',
+ dd : '%d天',
+ M : '一個月',
+ MM : '%d個月',
+ y : '一年',
+ yy : '%d年'
+ }
+ });
+
+ moment.locale('en');
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/min/locales.min.js b/node_modules/moment/min/locales.min.js
new file mode 100644
index 0000000..3ccc1e3
--- /dev/null
+++ b/node_modules/moment/min/locales.min.js
@@ -0,0 +1,72 @@
+!function(a,b){"object"==typeof exports&&"undefined"!=typeof module&&"function"==typeof require?b(require("../moment")):"function"==typeof define&&define.amd?define(["moment"],b):b(a.moment)}(this,function(a){"use strict";
+//! moment.js locale configuration
+//! locale : belarusian (be)
+//! author : Dmitry Demidov : https://github.com/demidov91
+//! author: Praleska: http://praleska.pro/
+//! Author : Menelion Elensúle : https://github.com/Oire
+function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:c?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:c?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===d?c?"хвіліна":"хвіліну":"h"===d?c?"гадзіна":"гадзіну":a+" "+b(e[d],+a)}
+//! moment.js locale configuration
+//! locale : breton (br)
+//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
+function d(a,b,c){var d={mm:"munutenn",MM:"miz",dd:"devezh"};return a+" "+g(d[c],a)}function e(a){switch(f(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}function f(a){return a>9?f(a%10):a}function g(a,b){return 2===b?h(a):a}function h(a){var b={m:"v",b:"v",d:"z"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)}
+//! moment.js locale configuration
+//! locale : bosnian (bs)
+//! author : Nedim Cholich : https://github.com/frontyard
+//! based on (hr) translation by Bojan Marković
+function i(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function j(a){return a>1&&5>a&&1!==~~(a/10)}function k(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"pár sekund":"pár sekundami";case"m":return b?"minuta":d?"minutu":"minutou";case"mm":return b||d?e+(j(a)?"minuty":"minut"):e+"minutami";break;case"h":return b?"hodina":d?"hodinu":"hodinou";case"hh":return b||d?e+(j(a)?"hodiny":"hodin"):e+"hodinami";break;case"d":return b||d?"den":"dnem";case"dd":return b||d?e+(j(a)?"dny":"dní"):e+"dny";break;case"M":return b||d?"měsíc":"měsícem";case"MM":return b||d?e+(j(a)?"měsíce":"měsíců"):e+"měsíci";break;case"y":return b||d?"rok":"rokem";case"yy":return b||d?e+(j(a)?"roky":"let"):e+"lety"}}
+//! moment.js locale configuration
+//! locale : austrian german (de-at)
+//! author : lluchs : https://github.com/lluchs
+//! author: Menelion Elensúle: https://github.com/Oire
+//! author : Martin Groller : https://github.com/MadMG
+//! author : Mikolaj Dadela : https://github.com/mik01aj
+function l(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]}
+//! moment.js locale configuration
+//! locale : german (de)
+//! author : lluchs : https://github.com/lluchs
+//! author: Menelion Elensúle: https://github.com/Oire
+//! author : Mikolaj Dadela : https://github.com/mik01aj
+function m(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]}function n(a){return a instanceof Function||"[object Function]"===Object.prototype.toString.call(a)}
+//! moment.js locale configuration
+//! locale : estonian (et)
+//! author : Henry Kehlmann : https://github.com/madhenry
+//! improvements : Illimar Tambek : https://github.com/ragulka
+function o(a,b,c,d){var e={s:["mõne sekundi","mõni sekund","paar sekundit"],m:["ühe minuti","üks minut"],mm:[a+" minuti",a+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[a+" tunni",a+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[a+" kuu",a+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[a+" aasta",a+" aastat"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}function p(a,b,c,d){var e="";switch(c){case"s":return d?"muutaman sekunnin":"muutama sekunti";case"m":return d?"minuutin":"minuutti";case"mm":e=d?"minuutin":"minuuttia";break;case"h":return d?"tunnin":"tunti";case"hh":e=d?"tunnin":"tuntia";break;case"d":return d?"päivän":"päivä";case"dd":e=d?"päivän":"päivää";break;case"M":return d?"kuukauden":"kuukausi";case"MM":e=d?"kuukauden":"kuukautta";break;case"y":return d?"vuoden":"vuosi";case"yy":e=d?"vuoden":"vuotta"}return e=q(a,d)+" "+e}function q(a,b){return 10>a?b?va[a]:ua[a]:a}
+//! moment.js locale configuration
+//! locale : hrvatski (hr)
+//! author : Bojan Marković : https://github.com/bmarkovic
+function r(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function s(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function t(a){return(a?"":"[múlt] ")+"["+Fa[this.day()]+"] LT[-kor]"}
+//! moment.js locale configuration
+//! locale : icelandic (is)
+//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik
+function u(a){return a%100===11?!0:a%10===1?!1:!0}function v(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return b?"mínúta":"mínútu";case"mm":return u(a)?e+(b||d?"mínútur":"mínútum"):b?e+"mínúta":e+"mínútu";case"hh":return u(a)?e+(b||d?"klukkustundir":"klukkustundum"):e+"klukkustund";case"d":return b?"dagur":d?"dag":"degi";case"dd":return u(a)?b?e+"dagar":e+(d?"daga":"dögum"):b?e+"dagur":e+(d?"dag":"degi");case"M":return b?"mánuður":d?"mánuð":"mánuði";case"MM":return u(a)?b?e+"mánuðir":e+(d?"mánuði":"mánuðum"):b?e+"mánuður":e+(d?"mánuð":"mánuði");case"y":return b||d?"ár":"ári";case"yy":return u(a)?e+(b||d?"ár":"árum"):e+(b||d?"ár":"ári")}}
+//! moment.js locale configuration
+//! locale : Luxembourgish (lb)
+//! author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz
+function w(a,b,c,d){var e={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return b?e[c][0]:e[c][1]}function x(a){var b=a.substr(0,a.indexOf(" "));return z(b)?"a "+a:"an "+a}function y(a){var b=a.substr(0,a.indexOf(" "));return z(b)?"viru "+a:"virun "+a}function z(a){if(a=parseInt(a,10),isNaN(a))return!1;if(0>a)return!0;if(10>a)return a>=4&&7>=a?!0:!1;if(100>a){var b=a%10,c=a/10;return z(0===b?c:b)}if(1e4>a){for(;a>=10;)a/=10;return z(a)}return a/=1e3,z(a)}function A(a,b,c,d){return b?"kelios sekundės":d?"kelių sekundžių":"kelias sekundes"}function B(a,b,c,d){return b?D(c)[0]:d?D(c)[1]:D(c)[2]}function C(a){return a%10===0||a>10&&20>a}function D(a){return Ha[a].split("_")}function E(a,b,c,d){var e=a+" ";return 1===a?e+B(a,b,c[0],d):b?e+(C(a)?D(c)[1]:D(c)[0]):d?e+D(c)[1]:e+(C(a)?D(c)[1]:D(c)[2])}function F(a,b,c){return c?b%10===1&&11!==b?a[2]:a[3]:b%10===1&&11!==b?a[0]:a[1]}function G(a,b,c){return a+" "+F(Ia[c],a,b)}function H(a,b,c){return F(Ia[c],a,b)}function I(a,b){return b?"dažas sekundes":"dažām sekundēm"}function J(a,b,c,d){var e="";if(b)switch(c){case"s":e="काही सेकंद";break;case"m":e="एक मिनिट";break;case"mm":e="%d मिनिटे";break;case"h":e="एक तास";break;case"hh":e="%d तास";break;case"d":e="एक दिवस";break;case"dd":e="%d दिवस";break;case"M":e="एक महिना";break;case"MM":e="%d महिने";break;case"y":e="एक वर्ष";break;case"yy":e="%d वर्षे"}else switch(c){case"s":e="काही सेकंदां";break;case"m":e="एका मिनिटा";break;case"mm":e="%d मिनिटां";break;case"h":e="एका तासा";break;case"hh":e="%d तासां";break;case"d":e="एका दिवसा";break;case"dd":e="%d दिवसां";break;case"M":e="एका महिन्या";break;case"MM":e="%d महिन्यां";break;case"y":e="एका वर्षा";break;case"yy":e="%d वर्षां"}return e.replace(/%d/i,a)}function K(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function L(a,b,c){var d=a+" ";switch(c){case"m":return b?"minuta":"minutę";case"mm":return d+(K(a)?"minuty":"minut");case"h":return b?"godzina":"godzinę";case"hh":return d+(K(a)?"godziny":"godzin");case"MM":return d+(K(a)?"miesiące":"miesięcy");case"yy":return d+(K(a)?"lata":"lat")}}
+//! moment.js locale configuration
+//! locale : romanian (ro)
+//! author : Vlad Gurdiga : https://github.com/gurdiga
+//! author : Valentin Agachi : https://github.com/avaly
+function M(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]}
+//! moment.js locale configuration
+//! locale : russian (ru)
+//! author : Viktorminator : https://github.com/Viktorminator
+//! Author : Menelion Elensúle : https://github.com/Oire
+function N(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function O(a,b,c){var d={mm:b?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===c?b?"минута":"минуту":a+" "+N(d[c],+a)}function P(a){return a>1&&5>a}function Q(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"pár sekúnd":"pár sekundami";case"m":return b?"minúta":d?"minútu":"minútou";case"mm":return b||d?e+(P(a)?"minúty":"minút"):e+"minútami";break;case"h":return b?"hodina":d?"hodinu":"hodinou";case"hh":return b||d?e+(P(a)?"hodiny":"hodín"):e+"hodinami";break;case"d":return b||d?"deň":"dňom";case"dd":return b||d?e+(P(a)?"dni":"dní"):e+"dňami";break;case"M":return b||d?"mesiac":"mesiacom";case"MM":return b||d?e+(P(a)?"mesiace":"mesiacov"):e+"mesiacmi";break;case"y":return b||d?"rok":"rokom";case"yy":return b||d?e+(P(a)?"roky":"rokov"):e+"rokmi"}}
+//! moment.js locale configuration
+//! locale : slovenian (sl)
+//! author : Robert Sedovšek : https://github.com/sedovsek
+function R(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nekaj sekund":"nekaj sekundami";case"m":return b?"ena minuta":"eno minuto";case"mm":return e+=1===a?b?"minuta":"minuto":2===a?b||d?"minuti":"minutama":5>a?b||d?"minute":"minutami":b||d?"minut":"minutami";case"h":return b?"ena ura":"eno uro";case"hh":return e+=1===a?b?"ura":"uro":2===a?b||d?"uri":"urama":5>a?b||d?"ure":"urami":b||d?"ur":"urami";case"d":return b||d?"en dan":"enim dnem";case"dd":return e+=1===a?b||d?"dan":"dnem":2===a?b||d?"dni":"dnevoma":b||d?"dni":"dnevi";case"M":return b||d?"en mesec":"enim mesecem";case"MM":return e+=1===a?b||d?"mesec":"mesecem":2===a?b||d?"meseca":"mesecema":5>a?b||d?"mesece":"meseci":b||d?"mesecev":"meseci";case"y":return b||d?"eno leto":"enim letom";case"yy":return e+=1===a?b||d?"leto":"letom":2===a?b||d?"leti":"letoma":5>a?b||d?"leta":"leti":b||d?"let":"leti"}}function S(a){var b=a;return b=-1!==a.indexOf("jaj")?b.slice(0,-3)+"leS":-1!==a.indexOf("jar")?b.slice(0,-3)+"waQ":-1!==a.indexOf("DIS")?b.slice(0,-3)+"nem":b+" pIq"}function T(a){var b=a;return b=-1!==a.indexOf("jaj")?b.slice(0,-3)+"Hu’":-1!==a.indexOf("jar")?b.slice(0,-3)+"wen":-1!==a.indexOf("DIS")?b.slice(0,-3)+"ben":b+" ret"}function U(a,b,c,d){var e=V(a);switch(c){case"mm":return e+" tup";case"hh":return e+" rep";case"dd":return e+" jaj";case"MM":return e+" jar";case"yy":return e+" DIS"}}function V(a){var b=Math.floor(a%1e3/100),c=Math.floor(a%100/10),d=a%10,e="";return b>0&&(e+=_a[b]+"vatlh"),c>0&&(e+=(""!==e?" ":"")+_a[c]+"maH"),d>0&&(e+=(""!==e?" ":"")+_a[d]),""===e?"pagh":e}function W(a,b,c,d){var e={s:["viensas secunds","'iensas secunds"],m:["'n míut","'iens míut"],mm:[a+" míuts",""+a+" míuts"],h:["'n þora","'iensa þora"],hh:[a+" þoras",""+a+" þoras"],d:["'n ziua","'iensa ziua"],dd:[a+" ziuas",""+a+" ziuas"],M:["'n mes","'iens mes"],MM:[a+" mesen",""+a+" mesen"],y:["'n ar","'iens ar"],yy:[a+" ars",""+a+" ars"]};return d?e[c][0]:b?e[c][0]:e[c][1]}
+//! moment.js locale configuration
+//! locale : ukrainian (uk)
+//! author : zemlanin : https://github.com/zemlanin
+//! Author : Menelion Elensúle : https://github.com/Oire
+function X(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function Y(a,b,c){var d={mm:b?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:b?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===c?b?"хвилина":"хвилину":"h"===c?b?"година":"годину":a+" "+X(d[c],+a)}function Z(a,b){var c={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function $(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}
+//! moment.js locale configuration
+//! locale : afrikaans (af)
+//! author : Werner Mollentze : https://github.com/wernerm
+var _=(a.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(a){return/^nm$/i.test(a)},meridiem:function(a,b,c){return 12>a?c?"vm":"VM":c?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}),a.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}}),{1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"}),aa={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},ba=(a.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return aa[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return _[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}),a.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}}),{1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"}),ca={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},da=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},ea={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},fa=function(a){return function(b,c,d,e){var f=da(b),g=ea[a][da(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},ga=["كانون الثاني يناير","شباط فبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوفمبر","كانون الأول ديسمبر"],ha=(a.defineLocale("ar",{months:ga,monthsShort:ga,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:fa("s"),m:fa("m"),mm:fa("m"),h:fa("h"),hh:fa("h"),d:fa("d"),dd:fa("d"),M:fa("M"),MM:fa("M"),y:fa("y"),yy:fa("y")},preparse:function(a){return a.replace(/\u200f/g,"").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return ca[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return ba[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}),{1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"}),ia=(a.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(a){return/^(gündüz|axşam)$/.test(a)},meridiem:function(a,b,c){return 4>a?"gecə":12>a?"səhər":17>a?"gündüz":"axşam"},ordinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(a){if(0===a)return a+"-ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(ha[b]||ha[c]||ha[d])},week:{dow:1,doy:7}}),a.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:c,mm:c,h:c,hh:c,d:"дзень",dd:c,M:"месяц",MM:c,y:"год",yy:c},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(a){return/^(дня|вечара)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночы":12>a?"раніцы":17>a?"дня":"вечара"},ordinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+"-ы":a+"-і";case"D":return a+"-га";default:return a}},week:{dow:1,doy:7}}),a.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}}),{1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"}),ja={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"},ka=(a.defineLocale("bn",{months:"জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্র_শনি".split("_"),weekdaysMin:"রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return ja[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return ia[a]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,isPM:function(a){return/^(দুপুর|বিকাল|রাত)$/.test(a)},meridiem:function(a,b,c){return 4>a?"রাত":10>a?"সকাল":17>a?"দুপুর":20>a?"বিকাল":"রাত"},week:{dow:0,doy:6}}),{1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"}),la={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"},ma=(a.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return la[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return ka[a]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,isPM:function(a){return/^(ཉིན་གུང|དགོང་དག|མཚན་མོ)$/.test(a)},meridiem:function(a,b,c){return 4>a?"མཚན་མོ":10>a?"ཞོགས་ཀས":17>a?"ཉིན་གུང":20>a?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}}),a.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:d,h:"un eur",hh:"%d eur",d:"un devezh",dd:d,M:"ur miz",MM:d,y:"ur bloaz",yy:e},ordinalParse:/\d{1,2}(añ|vet)/,ordinal:function(a){var b=1===a?"añ":"vet";return a+b},week:{dow:1,doy:4}}),a.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:i,mm:i,h:i,hh:i,d:"dan",dd:i,M:"mjesec",MM:i,y:"godinu",yy:i},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.defineLocale("ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?"r":2===a?"n":3===a?"r":4===a?"t":"è";return("w"===b||"W"===b)&&(c="a"),a+c},week:{dow:1,doy:4}}),"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_")),na="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),oa=(a.defineLocale("cs",{months:ma,monthsShort:na,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(ma,na),shortMonthsParse:function(a){var b,c=[];for(b=0;12>b;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(na),longMonthsParse:function(a){var b,c=[];for(b=0;12>b;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(ma),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:k,m:k,mm:k,h:k,hh:k,d:k,dd:k,M:k,MM:k,y:k,yy:k},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?"рен":/ҫул$/i.exec(a)?"тан":"ран";return a+b},past:"%s каялла",s:"пӗр-ик ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},ordinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}}),a.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},ordinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(a){var b=a,c="",d=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return b>20?c=40===b||50===b||60===b||80===b||100===b?"fed":"ain":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}}),a.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY HH:mm"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:l,mm:"%d Minuten",h:l,hh:"%d Stunden",d:l,dd:l,M:l,MM:l,y:l,yy:l},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:m,mm:"%d Minuten",h:m,hh:"%d Stunden",d:m,dd:m,M:m,MM:m,y:m,yy:m},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"]),pa=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"],qa=(a.defineLocale("dv",{months:oa,monthsShort:oa,weekdays:pa,weekdaysShort:pa,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(a){return""===a},meridiem:function(a,b,c){return 12>a?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(a){return a.replace(/،/g,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:7,doy:12}}),a.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return n(c)&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}}),a.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}),a.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"D MMMM, YYYY",LLL:"D MMMM, YYYY h:mm A",LLLL:"dddd, D MMMM, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}),a.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}),a.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}),a.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),weekdaysShort:"Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Ĵa_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-an de] MMMM, YYYY",LLL:"D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-an de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(a){return"p"===a.charAt(0).toLowerCase()},meridiem:function(a,b,c){return a>11?c?"p.t.m.":"P.T.M.":c?"a.t.m.":"A.T.M.";
+},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"je %s",past:"antaŭ %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},ordinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}}),"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_")),ra="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),sa=(a.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?ra[a.month()]:qa[a.month()]},weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:o,m:o,mm:o,h:o,hh:o,d:o,dd:"%d päeva",M:o,MM:o,y:o,yy:o},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),{1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"}),ta={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"},ua=(a.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysShort:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return 12>a?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return ta[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return sa[a]}).replace(/,/g,"،")},ordinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}}),"nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" ")),va=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",ua[7],ua[8],ua[9]],wa=(a.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:p,m:p,mm:p,h:p,hh:p,d:p,dd:p,M:p,MM:p,y:p,yy:p},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(a){return a+(1===a?"er":"e")}}),a.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(a){return a+(1===a?"er":"e")},week:{dow:1,doy:4}}),a.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,doy:4}}),"jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_")),xa="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),ya=(a.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?xa[a.month()]:wa[a.month()]},weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}),["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"]),za=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],Aa=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],Ba=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],Ca=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],Da=(a.defineLocale("gd",{months:ya,monthsShort:za,monthsParseExact:!0,weekdays:Aa,weekdaysShort:Ba,weekdaysMin:Ca,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},ordinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(a){var b=1===a?"d":a%10===2?"na":"mh";return a+b},week:{dow:1,doy:4}}),a.defineLocale("gl",{months:"Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),monthsShort:"Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),weekdays:"Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),weekdaysShort:"Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(a){return"uns segundos"===a?"nuns segundos":"en "+a},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:7}}),a.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיים":a+" שעות"},d:"יום",dd:function(a){return 2===a?"יומיים":a+" ימים"},M:"חודש",MM:function(a){return 2===a?"חודשיים":a+" חודשים"},y:"שנה",yy:function(a){return 2===a?"שנתיים":a%10===0&&10!==a?a+" שנה":a+" שנים"}}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),Ea={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},Fa=(a.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return Ea[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Da[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात"===b?4>a?a:a+12:"सुबह"===b?a:"दोपहर"===b?a>=10?a:a+12:"शाम"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"रात":10>a?"सुबह":17>a?"दोपहर":20>a?"शाम":"रात"},week:{dow:0,doy:6}}),a.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:r,mm:r,h:r,hh:r,d:"dan",dd:r,M:"mjesec",MM:r,y:"godinu",yy:r},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),"vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ")),Ga=(a.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(a){return"u"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return t.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return t.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(a){return/^(ցերեկվա|երեկոյան)$/.test(a)},meridiem:function(a){return 4>a?"գիշերվա":12>a?"առավոտվա":17>a?"ցերեկվա":"երեկոյան"},ordinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(a,b){switch(b){case"DDD":case"w":case"W":case"DDDo":return 1===a?a+"-ին":a+"-րդ";default:return a}},week:{dow:1,doy:7}}),a.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"siang"===b?a>=11?a:a+12:"sore"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),a.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:v,m:v,mm:v,h:"klukkustund",hh:v,d:v,dd:v,M:v,MM:v,y:v,yy:v},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"Do_Lu_Ma_Me_Gi_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",LTS:"Ah時m分s秒",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah時m分",LLLL:"YYYY年M月D日Ah時m分 dddd"},meridiemParse:/午前|午後/i,isPM:function(a){return"午後"===a},meridiem:function(a,b,c){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),a.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(a,b){return 12===a&&(a=0),"enjing"===b?a:"siyang"===b?a>=11?a:a+12:"sonten"===b||"ndalu"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"enjing":15>a?"siyang":19>a?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}}),a.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,"ში"):a+"ში"},past:function(a){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(a)?a.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},ordinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(a){return 0===a?a:1===a?a+"-ლი":20>a||100>=a&&a%20===0||a%100===0?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}}),{0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"}),Ha=(a.defineLocale("kk",{months:"Қаңтар_Ақпан_Наурыз_Сәуір_Мамыр_Маусым_Шілде_Тамыз_Қыркүйек_Қазан_Қараша_Желтоқсан".split("_"),monthsShort:"Қаң_Ақп_Нау_Сәу_Мам_Мау_Шіл_Там_Қыр_Қаз_Қар_Жел".split("_"),weekdays:"Жексенбі_Дүйсенбі_Сейсенбі_Сәрсенбі_Бейсенбі_Жұма_Сенбі".split("_"),weekdaysShort:"Жек_Дүй_Сей_Сәр_Бей_Жұм_Сен".split("_"),weekdaysMin:"Жк_Дй_Сй_Ср_Бй_Жм_Сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},ordinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(Ga[a]||Ga[b]||Ga[c])},week:{dow:1,doy:7}}),a.defineLocale("km",{months:"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysMin:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},week:{dow:1,doy:4}}),a.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h시 m분",LTS:"A h시 m분 s초",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h시 m분",LLLL:"YYYY년 MMMM D일 dddd A h시 m분"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇초",ss:"%d초",m:"일분",mm:"%d분",h:"한시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한달",MM:"%d달",y:"일년",yy:"%d년"},ordinalParse:/\d{1,2}일/,ordinal:"%d일",meridiemParse:/오전|오후/,isPM:function(a){return"오후"===a},meridiem:function(a,b,c){return 12>a?"오전":"오후"}}),a.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:x,past:y,s:"e puer Sekonnen",m:w,mm:"%d Minutten",h:w,hh:"%d Stonnen",d:w,dd:"%d Deeg",M:w,MM:"%d Méint",y:w,yy:"%d Joer"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(a){return"ຕອນແລງ"===a},meridiem:function(a,b,c){return 12>a?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},ordinalParse:/(ທີ່)\d{1,2}/,ordinal:function(a){return"ທີ່"+a}}),{m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"}),Ia=(a.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_")
+},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:A,m:B,mm:E,h:B,hh:E,d:B,dd:E,M:B,MM:E,y:B,yy:E},ordinalParse:/\d{1,2}-oji/,ordinal:function(a){return a+"-oji"},week:{dow:1,doy:4}}),{m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")}),Ja=(a.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:I,m:H,mm:G,h:H,hh:G,d:H,dd:G,M:H,MM:G,y:H,yy:G},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),{words:{m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=Ja.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+Ja.correctGrammaticalCase(a,d)}}),Ka=(a.defineLocale("me",{months:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],monthsShort:["jan.","feb.","mar.","apr.","maj","jun","jul","avg.","sep.","okt.","nov.","dec."],weekdays:["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"],weekdaysShort:["ned.","pon.","uto.","sri.","čet.","pet.","sub."],weekdaysMin:["ne","po","ut","sr","če","pe","su"],longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",m:Ja.translate,mm:Ja.translate,h:Ja.translate,hh:Ja.translate,d:"dan",dd:Ja.translate,M:"mjesec",MM:Ja.translate,y:"godinu",yy:Ja.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}}),a.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,isPM:function(a){return/^(ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി)$/.test(a)},meridiem:function(a,b,c){return 4>a?"രാത്രി":12>a?"രാവിലെ":17>a?"ഉച്ച കഴിഞ്ഞ്":20>a?"വൈകുന്നേരം":"രാത്രി"}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),La={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},Ma=(a.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:J,m:J,mm:J,h:J,hh:J,d:J,dd:J,M:J,MM:J,y:J,yy:J},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return La[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Ka[a]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात्री"===b?4>a?a:a+12:"सकाळी"===b?a:"दुपारी"===b?a>=10?a:a+12:"सायंकाळी"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"रात्री":10>a?"सकाळी":17>a?"दुपारी":20>a?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}}),a.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),a.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),{1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"}),Na={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"},Oa=(a.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(a){return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(a){return Na[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Ma[a]})},week:{dow:1,doy:4}}),a.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),Pa={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},Qa=(a.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return Pa[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Oa[a]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(a,b){return 12===a&&(a=0),"राति"===b?4>a?a:a+12:"बिहान"===b?a:"दिउँसो"===b?a>=10?a:a+12:"साँझ"===b?a+12:void 0},meridiem:function(a,b,c){return 3>a?"राति":12>a?"बिहान":16>a?"दिउँसो":20>a?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}}),"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_")),Ra="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Sa=(a.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?Ra[a.month()]:Qa[a.month()]},weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}),a.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),"styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_")),Ta="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),Ua=(a.defineLocale("pl",{months:function(a,b){return""===b?"("+Ta[a.month()]+"|"+Sa[a.month()]+")":/D MMMM/.test(b)?Ta[a.month()]:Sa[a.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:L,mm:L,h:L,hh:L,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:L,y:"rok",yy:L},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº"}),a.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:M,h:"o oră",hh:M,d:"o zi",dd:M,M:"o lună",MM:M,y:"un an",yy:M},week:{dow:1,doy:7}}),[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i]),Va=(a.defineLocale("ru",{months:{format:"Января_Февраля_Марта_Апреля_Мая_Июня_Июля_Августа_Сентября_Октября_Ноября_Декабря".split("_"),standalone:"Январь_Февраль_Март_Апрель_Май_Июнь_Июль_Август_Сентябрь_Октябрь_Ноябрь_Декабрь".split("_")},monthsShort:{format:"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек".split("_"),standalone:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_")},weekdays:{standalone:"Воскресенье_Понедельник_Вторник_Среда_Четверг_Пятница_Суббота".split("_"),format:"Воскресенье_Понедельник_Вторник_Среду_Четверг_Пятницу_Субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"Вс_Пн_Вт_Ср_Чт_Пт_Сб".split("_"),weekdaysMin:"Вс_Пн_Вт_Ср_Чт_Пт_Сб".split("_"),monthsParse:Ua,longMonthsParse:Ua,shortMonthsParse:Ua,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В следующее] dddd [в] LT";case 1:case 2:case 4:return"[В следующий] dddd [в] LT";case 3:case 5:case 6:return"[В следующую] dddd [в] LT"}},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:O,mm:O,h:"час",hh:O,d:"день",dd:O,M:"месяц",MM:O,y:"год",yy:O},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночи":12>a?"утра":17>a?"дня":"вечера"},ordinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-я";default:return a}},week:{dow:1,doy:7}}),a.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්ර_සි_සෙ".split("_"),longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},ordinalParse:/\d{1,2} වැනි/,ordinal:function(a){return a+" වැනි"},meridiem:function(a,b,c){return a>11?c?"ප.ව.":"පස් වරු":c?"පෙ.ව.":"පෙර වරු"}}),"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_")),Wa="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"),Xa=(a.defineLocale("sk",{months:Va,monthsShort:Wa,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:Q,m:Q,mm:Q,h:Q,hh:Q,d:Q,dd:Q,M:Q,MM:Q,y:Q,yy:Q},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:R,m:R,mm:R,h:R,hh:R,d:R,dd:R,M:R,MM:R,y:R,yy:R},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),meridiemParse:/PD|MD/,isPM:function(a){return"M"===a.charAt(0)},meridiem:function(a,b,c){return 12>a?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),{words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=Xa.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+Xa.correctGrammaticalCase(a,d)}}),Ya=(a.defineLocale("sr-cyrl",{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],monthsShort:["јан.","феб.","мар.","апр.","мај","јун","јул","авг.","сеп.","окт.","нов.","дец."],weekdays:["недеља","понедељак","уторак","среда","четвртак","петак","субота"],weekdaysShort:["нед.","пон.","уто.","сре.","чет.","пет.","суб."],weekdaysMin:["не","по","ут","ср","че","пе","су"],longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:Xa.translate,mm:Xa.translate,h:Xa.translate,hh:Xa.translate,d:"дан",dd:Xa.translate,M:"месец",MM:Xa.translate,y:"годину",yy:Xa.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),{words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=Ya.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+Ya.correctGrammaticalCase(a,d)}}),Za=(a.defineLocale("sr",{months:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],monthsShort:["jan.","feb.","mar.","apr.","maj","jun","jul","avg.","sep.","okt.","nov.","dec."],weekdays:["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],weekdaysShort:["ned.","pon.","uto.","sre.","čet.","pet.","sub."],weekdaysMin:["ne","po","ut","sr","če","pe","su"],longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:Ya.translate,mm:Ya.translate,h:Ya.translate,hh:Ya.translate,d:"dan",dd:Ya.translate,M:"mesec",MM:Ya.translate,y:"godinu",yy:Ya.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",
+lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e";return a+c},week:{dow:1,doy:4}}),a.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}}),{1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"}),$a={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"},_a=(a.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},ordinalParse:/\d{1,2}வது/,ordinal:function(a){return a+"வது"},preparse:function(a){return a.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(a){return $a[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Za[a]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(a,b,c){return 2>a?" யாமம்":6>a?" வைகறை":10>a?" காலை":14>a?" நண்பகல்":18>a?" எற்பாடு":22>a?" மாலை":" யாமம்"},meridiemHour:function(a,b){return 12===a&&(a=0),"யாமம்"===b?2>a?a:a+12:"வைகறை"===b||"காலை"===b?a:"நண்பகல்"===b&&a>=10?a:a+12},week:{dow:0,doy:6}}),a.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},ordinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(a,b){return 12===a&&(a=0),"రాత్రి"===b?4>a?a:a+12:"ఉదయం"===b?a:"మధ్యాహ్నం"===b?a>=10?a:a+12:"సాయంత్రం"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"రాత్రి":10>a?"ఉదయం":17>a?"మధ్యాహ్నం":20>a?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}}),a.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),longDateFormat:{LT:"H นาฬิกา m นาที",LTS:"H นาฬิกา m นาที s วินาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H นาฬิกา m นาที",LLLL:"วันddddที่ D MMMM YYYY เวลา H นาฬิกา m นาที"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return"หลังเที่ยง"===a},meridiem:function(a,b,c){return 12>a?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),a.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"[Ngayon sa] LT",nextDay:"[Bukas sa] LT",nextWeek:"dddd [sa] LT",lastDay:"[Kahapon sa] LT",lastWeek:"dddd [huling linggo] LT",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},ordinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),"pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_")),ab=(a.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:S,past:T,s:"puS lup",m:"wa’ tup",mm:U,h:"wa’ rep",hh:U,d:"wa’ jaj",dd:U,M:"wa’ jar",MM:U,y:"wa’ DIS",yy:U},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),{1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"});a.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+"'ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(ab[b]||ab[c]||ab[d])},week:{dow:1,doy:7}}),a.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiem:function(a,b,c){return a>11?c?"d'o":"D'O":c?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:W,m:W,mm:W,h:W,hh:W,d:W,dd:W,M:W,MM:W,y:W,yy:W},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}}),a.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}}),a.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:Z,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:$("[Сьогодні "),nextDay:$("[Завтра "),lastDay:$("[Вчора "),nextWeek:$("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return $("[Минулої] dddd [").call(this);case 1:case 2:case 4:return $("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:Y,mm:Y,h:"годину",hh:Y,d:"день",dd:Y,M:"місяць",MM:Y,y:"рік",yy:Y},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночі":12>a?"ранку":17>a?"дня":"вечора"},ordinalParse:/\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a+"-й";case"D":return a+"-го";default:return a}},week:{dow:1,doy:7}}),a.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}}),a.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},ordinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),a.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm分",LTS:"Ah点m分s秒",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日Ah点mm分",LLLL:"YYYY年MMMD日ddddAh点mm分",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日Ah点mm分",llll:"YYYY年MMMD日ddddAh点mm分"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"下午"===b||"晚上"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?"凌晨":900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var b,c;return b=a().startOf("week"),c=this.unix()-b.unix()>=604800?"[下]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},lastWeek:function(){var b,c;return b=a().startOf("week"),c=this.unix()=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinalParse:/\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"一分鐘",mm:"%d分鐘",h:"一小時",hh:"%d小時",d:"一天",dd:"%d天",M:"一個月",MM:"%d個月",y:"一年",yy:"%d年"}});a.locale("en")});
\ No newline at end of file
diff --git a/node_modules/moment/min/moment-with-locales.js b/node_modules/moment/min/moment-with-locales.js
new file mode 100644
index 0000000..411d8c7
--- /dev/null
+++ b/node_modules/moment/min/moment-with-locales.js
@@ -0,0 +1,11144 @@
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+ typeof define === 'function' && define.amd ? define(factory) :
+ global.moment = factory()
+}(this, function () { 'use strict';
+
+ var hookCallback;
+
+ function utils_hooks__hooks () {
+ return hookCallback.apply(null, arguments);
+ }
+
+ // This is done to register the method called with moment()
+ // without creating circular dependencies.
+ function setHookCallback (callback) {
+ hookCallback = callback;
+ }
+
+ function isArray(input) {
+ return Object.prototype.toString.call(input) === '[object Array]';
+ }
+
+ function isDate(input) {
+ return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
+ }
+
+ function map(arr, fn) {
+ var res = [], i;
+ for (i = 0; i < arr.length; ++i) {
+ res.push(fn(arr[i], i));
+ }
+ return res;
+ }
+
+ function hasOwnProp(a, b) {
+ return Object.prototype.hasOwnProperty.call(a, b);
+ }
+
+ function extend(a, b) {
+ for (var i in b) {
+ if (hasOwnProp(b, i)) {
+ a[i] = b[i];
+ }
+ }
+
+ if (hasOwnProp(b, 'toString')) {
+ a.toString = b.toString;
+ }
+
+ if (hasOwnProp(b, 'valueOf')) {
+ a.valueOf = b.valueOf;
+ }
+
+ return a;
+ }
+
+ function create_utc__createUTC (input, format, locale, strict) {
+ return createLocalOrUTC(input, format, locale, strict, true).utc();
+ }
+
+ function defaultParsingFlags() {
+ // We need to deep clone this object.
+ return {
+ empty : false,
+ unusedTokens : [],
+ unusedInput : [],
+ overflow : -2,
+ charsLeftOver : 0,
+ nullInput : false,
+ invalidMonth : null,
+ invalidFormat : false,
+ userInvalidated : false,
+ iso : false
+ };
+ }
+
+ function getParsingFlags(m) {
+ if (m._pf == null) {
+ m._pf = defaultParsingFlags();
+ }
+ return m._pf;
+ }
+
+ function valid__isValid(m) {
+ if (m._isValid == null) {
+ var flags = getParsingFlags(m);
+ m._isValid = !isNaN(m._d.getTime()) &&
+ flags.overflow < 0 &&
+ !flags.empty &&
+ !flags.invalidMonth &&
+ !flags.invalidWeekday &&
+ !flags.nullInput &&
+ !flags.invalidFormat &&
+ !flags.userInvalidated;
+
+ if (m._strict) {
+ m._isValid = m._isValid &&
+ flags.charsLeftOver === 0 &&
+ flags.unusedTokens.length === 0 &&
+ flags.bigHour === undefined;
+ }
+ }
+ return m._isValid;
+ }
+
+ function valid__createInvalid (flags) {
+ var m = create_utc__createUTC(NaN);
+ if (flags != null) {
+ extend(getParsingFlags(m), flags);
+ }
+ else {
+ getParsingFlags(m).userInvalidated = true;
+ }
+
+ return m;
+ }
+
+ function isUndefined(input) {
+ return input === void 0;
+ }
+
+ // Plugins that add properties should also add the key here (null value),
+ // so we can properly clone ourselves.
+ var momentProperties = utils_hooks__hooks.momentProperties = [];
+
+ function copyConfig(to, from) {
+ var i, prop, val;
+
+ if (!isUndefined(from._isAMomentObject)) {
+ to._isAMomentObject = from._isAMomentObject;
+ }
+ if (!isUndefined(from._i)) {
+ to._i = from._i;
+ }
+ if (!isUndefined(from._f)) {
+ to._f = from._f;
+ }
+ if (!isUndefined(from._l)) {
+ to._l = from._l;
+ }
+ if (!isUndefined(from._strict)) {
+ to._strict = from._strict;
+ }
+ if (!isUndefined(from._tzm)) {
+ to._tzm = from._tzm;
+ }
+ if (!isUndefined(from._isUTC)) {
+ to._isUTC = from._isUTC;
+ }
+ if (!isUndefined(from._offset)) {
+ to._offset = from._offset;
+ }
+ if (!isUndefined(from._pf)) {
+ to._pf = getParsingFlags(from);
+ }
+ if (!isUndefined(from._locale)) {
+ to._locale = from._locale;
+ }
+
+ if (momentProperties.length > 0) {
+ for (i in momentProperties) {
+ prop = momentProperties[i];
+ val = from[prop];
+ if (!isUndefined(val)) {
+ to[prop] = val;
+ }
+ }
+ }
+
+ return to;
+ }
+
+ var updateInProgress = false;
+
+ // Moment prototype object
+ function Moment(config) {
+ copyConfig(this, config);
+ this._d = new Date(config._d != null ? config._d.getTime() : NaN);
+ // Prevent infinite loop in case updateOffset creates new moment
+ // objects.
+ if (updateInProgress === false) {
+ updateInProgress = true;
+ utils_hooks__hooks.updateOffset(this);
+ updateInProgress = false;
+ }
+ }
+
+ function isMoment (obj) {
+ return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
+ }
+
+ function absFloor (number) {
+ if (number < 0) {
+ return Math.ceil(number);
+ } else {
+ return Math.floor(number);
+ }
+ }
+
+ function toInt(argumentForCoercion) {
+ var coercedNumber = +argumentForCoercion,
+ value = 0;
+
+ if (coercedNumber !== 0 && isFinite(coercedNumber)) {
+ value = absFloor(coercedNumber);
+ }
+
+ return value;
+ }
+
+ // compare two arrays, return the number of differences
+ function compareArrays(array1, array2, dontConvert) {
+ var len = Math.min(array1.length, array2.length),
+ lengthDiff = Math.abs(array1.length - array2.length),
+ diffs = 0,
+ i;
+ for (i = 0; i < len; i++) {
+ if ((dontConvert && array1[i] !== array2[i]) ||
+ (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
+ diffs++;
+ }
+ }
+ return diffs + lengthDiff;
+ }
+
+ function Locale() {
+ }
+
+ // internal storage for locale config files
+ var locales = {};
+ var globalLocale;
+
+ function normalizeLocale(key) {
+ return key ? key.toLowerCase().replace('_', '-') : key;
+ }
+
+ // pick the locale from the array
+ // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
+ // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
+ function chooseLocale(names) {
+ var i = 0, j, next, locale, split;
+
+ while (i < names.length) {
+ split = normalizeLocale(names[i]).split('-');
+ j = split.length;
+ next = normalizeLocale(names[i + 1]);
+ next = next ? next.split('-') : null;
+ while (j > 0) {
+ locale = loadLocale(split.slice(0, j).join('-'));
+ if (locale) {
+ return locale;
+ }
+ if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
+ //the next array item is better than a shallower substring of this one
+ break;
+ }
+ j--;
+ }
+ i++;
+ }
+ return null;
+ }
+
+ function loadLocale(name) {
+ var oldLocale = null;
+ // TODO: Find a better way to register and load all the locales in Node
+ if (!locales[name] && (typeof module !== 'undefined') &&
+ module && module.exports) {
+ try {
+ oldLocale = globalLocale._abbr;
+ require('./locale/' + name);
+ // because defineLocale currently also sets the global locale, we
+ // want to undo that for lazy loaded locales
+ locale_locales__getSetGlobalLocale(oldLocale);
+ } catch (e) { }
+ }
+ return locales[name];
+ }
+
+ // This function will load locale and then set the global locale. If
+ // no arguments are passed in, it will simply return the current global
+ // locale key.
+ function locale_locales__getSetGlobalLocale (key, values) {
+ var data;
+ if (key) {
+ if (isUndefined(values)) {
+ data = locale_locales__getLocale(key);
+ }
+ else {
+ data = defineLocale(key, values);
+ }
+
+ if (data) {
+ // moment.duration._locale = moment._locale = data;
+ globalLocale = data;
+ }
+ }
+
+ return globalLocale._abbr;
+ }
+
+ function defineLocale (name, values) {
+ if (values !== null) {
+ values.abbr = name;
+ locales[name] = locales[name] || new Locale();
+ locales[name].set(values);
+
+ // backwards compat for now: also set the locale
+ locale_locales__getSetGlobalLocale(name);
+
+ return locales[name];
+ } else {
+ // useful for testing
+ delete locales[name];
+ return null;
+ }
+ }
+
+ // returns locale data
+ function locale_locales__getLocale (key) {
+ var locale;
+
+ if (key && key._locale && key._locale._abbr) {
+ key = key._locale._abbr;
+ }
+
+ if (!key) {
+ return globalLocale;
+ }
+
+ if (!isArray(key)) {
+ //short-circuit everything else
+ locale = loadLocale(key);
+ if (locale) {
+ return locale;
+ }
+ key = [key];
+ }
+
+ return chooseLocale(key);
+ }
+
+ var aliases = {};
+
+ function addUnitAlias (unit, shorthand) {
+ var lowerCase = unit.toLowerCase();
+ aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
+ }
+
+ function normalizeUnits(units) {
+ return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
+ }
+
+ function normalizeObjectUnits(inputObject) {
+ var normalizedInput = {},
+ normalizedProp,
+ prop;
+
+ for (prop in inputObject) {
+ if (hasOwnProp(inputObject, prop)) {
+ normalizedProp = normalizeUnits(prop);
+ if (normalizedProp) {
+ normalizedInput[normalizedProp] = inputObject[prop];
+ }
+ }
+ }
+
+ return normalizedInput;
+ }
+
+ function isFunction(input) {
+ return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
+ }
+
+ function makeGetSet (unit, keepTime) {
+ return function (value) {
+ if (value != null) {
+ get_set__set(this, unit, value);
+ utils_hooks__hooks.updateOffset(this, keepTime);
+ return this;
+ } else {
+ return get_set__get(this, unit);
+ }
+ };
+ }
+
+ function get_set__get (mom, unit) {
+ return mom.isValid() ?
+ mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
+ }
+
+ function get_set__set (mom, unit, value) {
+ if (mom.isValid()) {
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
+ }
+ }
+
+ // MOMENTS
+
+ function getSet (units, value) {
+ var unit;
+ if (typeof units === 'object') {
+ for (unit in units) {
+ this.set(unit, units[unit]);
+ }
+ } else {
+ units = normalizeUnits(units);
+ if (isFunction(this[units])) {
+ return this[units](value);
+ }
+ }
+ return this;
+ }
+
+ function zeroFill(number, targetLength, forceSign) {
+ var absNumber = '' + Math.abs(number),
+ zerosToFill = targetLength - absNumber.length,
+ sign = number >= 0;
+ return (sign ? (forceSign ? '+' : '') : '-') +
+ Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
+ }
+
+ var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
+
+ var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
+
+ var formatFunctions = {};
+
+ var formatTokenFunctions = {};
+
+ // token: 'M'
+ // padded: ['MM', 2]
+ // ordinal: 'Mo'
+ // callback: function () { this.month() + 1 }
+ function addFormatToken (token, padded, ordinal, callback) {
+ var func = callback;
+ if (typeof callback === 'string') {
+ func = function () {
+ return this[callback]();
+ };
+ }
+ if (token) {
+ formatTokenFunctions[token] = func;
+ }
+ if (padded) {
+ formatTokenFunctions[padded[0]] = function () {
+ return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
+ };
+ }
+ if (ordinal) {
+ formatTokenFunctions[ordinal] = function () {
+ return this.localeData().ordinal(func.apply(this, arguments), token);
+ };
+ }
+ }
+
+ function removeFormattingTokens(input) {
+ if (input.match(/\[[\s\S]/)) {
+ return input.replace(/^\[|\]$/g, '');
+ }
+ return input.replace(/\\/g, '');
+ }
+
+ function makeFormatFunction(format) {
+ var array = format.match(formattingTokens), i, length;
+
+ for (i = 0, length = array.length; i < length; i++) {
+ if (formatTokenFunctions[array[i]]) {
+ array[i] = formatTokenFunctions[array[i]];
+ } else {
+ array[i] = removeFormattingTokens(array[i]);
+ }
+ }
+
+ return function (mom) {
+ var output = '';
+ for (i = 0; i < length; i++) {
+ output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];
+ }
+ return output;
+ };
+ }
+
+ // format date using native date object
+ function formatMoment(m, format) {
+ if (!m.isValid()) {
+ return m.localeData().invalidDate();
+ }
+
+ format = expandFormat(format, m.localeData());
+ formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
+
+ return formatFunctions[format](m);
+ }
+
+ function expandFormat(format, locale) {
+ var i = 5;
+
+ function replaceLongDateFormatTokens(input) {
+ return locale.longDateFormat(input) || input;
+ }
+
+ localFormattingTokens.lastIndex = 0;
+ while (i >= 0 && localFormattingTokens.test(format)) {
+ format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
+ localFormattingTokens.lastIndex = 0;
+ i -= 1;
+ }
+
+ return format;
+ }
+
+ var match1 = /\d/; // 0 - 9
+ var match2 = /\d\d/; // 00 - 99
+ var match3 = /\d{3}/; // 000 - 999
+ var match4 = /\d{4}/; // 0000 - 9999
+ var match6 = /[+-]?\d{6}/; // -999999 - 999999
+ var match1to2 = /\d\d?/; // 0 - 99
+ var match3to4 = /\d\d\d\d?/; // 999 - 9999
+ var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999
+ var match1to3 = /\d{1,3}/; // 0 - 999
+ var match1to4 = /\d{1,4}/; // 0 - 9999
+ var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999
+
+ var matchUnsigned = /\d+/; // 0 - inf
+ var matchSigned = /[+-]?\d+/; // -inf - inf
+
+ var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
+ var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
+
+ var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
+
+ // any word (or two) characters or numbers including two/three word month in arabic.
+ // includes scottish gaelic two word and hyphenated months
+ var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i;
+
+
+ var regexes = {};
+
+ function addRegexToken (token, regex, strictRegex) {
+ regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
+ return (isStrict && strictRegex) ? strictRegex : regex;
+ };
+ }
+
+ function getParseRegexForToken (token, config) {
+ if (!hasOwnProp(regexes, token)) {
+ return new RegExp(unescapeFormat(token));
+ }
+
+ return regexes[token](config._strict, config._locale);
+ }
+
+ // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
+ function unescapeFormat(s) {
+ return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
+ return p1 || p2 || p3 || p4;
+ }));
+ }
+
+ function regexEscape(s) {
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+ }
+
+ var tokens = {};
+
+ function addParseToken (token, callback) {
+ var i, func = callback;
+ if (typeof token === 'string') {
+ token = [token];
+ }
+ if (typeof callback === 'number') {
+ func = function (input, array) {
+ array[callback] = toInt(input);
+ };
+ }
+ for (i = 0; i < token.length; i++) {
+ tokens[token[i]] = func;
+ }
+ }
+
+ function addWeekParseToken (token, callback) {
+ addParseToken(token, function (input, array, config, token) {
+ config._w = config._w || {};
+ callback(input, config._w, config, token);
+ });
+ }
+
+ function addTimeToArrayFromToken(token, input, config) {
+ if (input != null && hasOwnProp(tokens, token)) {
+ tokens[token](input, config._a, config, token);
+ }
+ }
+
+ var YEAR = 0;
+ var MONTH = 1;
+ var DATE = 2;
+ var HOUR = 3;
+ var MINUTE = 4;
+ var SECOND = 5;
+ var MILLISECOND = 6;
+ var WEEK = 7;
+ var WEEKDAY = 8;
+
+ function daysInMonth(year, month) {
+ return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();
+ }
+
+ // FORMATTING
+
+ addFormatToken('M', ['MM', 2], 'Mo', function () {
+ return this.month() + 1;
+ });
+
+ addFormatToken('MMM', 0, 0, function (format) {
+ return this.localeData().monthsShort(this, format);
+ });
+
+ addFormatToken('MMMM', 0, 0, function (format) {
+ return this.localeData().months(this, format);
+ });
+
+ // ALIASES
+
+ addUnitAlias('month', 'M');
+
+ // PARSING
+
+ addRegexToken('M', match1to2);
+ addRegexToken('MM', match1to2, match2);
+ addRegexToken('MMM', function (isStrict, locale) {
+ return locale.monthsShortRegex(isStrict);
+ });
+ addRegexToken('MMMM', function (isStrict, locale) {
+ return locale.monthsRegex(isStrict);
+ });
+
+ addParseToken(['M', 'MM'], function (input, array) {
+ array[MONTH] = toInt(input) - 1;
+ });
+
+ addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
+ var month = config._locale.monthsParse(input, token, config._strict);
+ // if we didn't find a month name, mark the date as invalid.
+ if (month != null) {
+ array[MONTH] = month;
+ } else {
+ getParsingFlags(config).invalidMonth = input;
+ }
+ });
+
+ // LOCALES
+
+ var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/;
+ var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
+ function localeMonths (m, format) {
+ return isArray(this._months) ? this._months[m.month()] :
+ this._months[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
+ }
+
+ var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
+ function localeMonthsShort (m, format) {
+ return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
+ this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
+ }
+
+ function localeMonthsParse (monthName, format, strict) {
+ var i, mom, regex;
+
+ if (!this._monthsParse) {
+ this._monthsParse = [];
+ this._longMonthsParse = [];
+ this._shortMonthsParse = [];
+ }
+
+ for (i = 0; i < 12; i++) {
+ // make the regex if we don't have it already
+ mom = create_utc__createUTC([2000, i]);
+ if (strict && !this._longMonthsParse[i]) {
+ this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
+ this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
+ }
+ if (!strict && !this._monthsParse[i]) {
+ regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
+ this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
+ }
+ // test the regex
+ if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
+ return i;
+ } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
+ return i;
+ } else if (!strict && this._monthsParse[i].test(monthName)) {
+ return i;
+ }
+ }
+ }
+
+ // MOMENTS
+
+ function setMonth (mom, value) {
+ var dayOfMonth;
+
+ if (!mom.isValid()) {
+ // No op
+ return mom;
+ }
+
+ // TODO: Move this out of here!
+ if (typeof value === 'string') {
+ value = mom.localeData().monthsParse(value);
+ // TODO: Another silent failure?
+ if (typeof value !== 'number') {
+ return mom;
+ }
+ }
+
+ dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
+ return mom;
+ }
+
+ function getSetMonth (value) {
+ if (value != null) {
+ setMonth(this, value);
+ utils_hooks__hooks.updateOffset(this, true);
+ return this;
+ } else {
+ return get_set__get(this, 'Month');
+ }
+ }
+
+ function getDaysInMonth () {
+ return daysInMonth(this.year(), this.month());
+ }
+
+ var defaultMonthsShortRegex = matchWord;
+ function monthsShortRegex (isStrict) {
+ if (this._monthsParseExact) {
+ if (!hasOwnProp(this, '_monthsRegex')) {
+ computeMonthsParse.call(this);
+ }
+ if (isStrict) {
+ return this._monthsShortStrictRegex;
+ } else {
+ return this._monthsShortRegex;
+ }
+ } else {
+ return this._monthsShortStrictRegex && isStrict ?
+ this._monthsShortStrictRegex : this._monthsShortRegex;
+ }
+ }
+
+ var defaultMonthsRegex = matchWord;
+ function monthsRegex (isStrict) {
+ if (this._monthsParseExact) {
+ if (!hasOwnProp(this, '_monthsRegex')) {
+ computeMonthsParse.call(this);
+ }
+ if (isStrict) {
+ return this._monthsStrictRegex;
+ } else {
+ return this._monthsRegex;
+ }
+ } else {
+ return this._monthsStrictRegex && isStrict ?
+ this._monthsStrictRegex : this._monthsRegex;
+ }
+ }
+
+ function computeMonthsParse () {
+ function cmpLenRev(a, b) {
+ return b.length - a.length;
+ }
+
+ var shortPieces = [], longPieces = [], mixedPieces = [],
+ i, mom;
+ for (i = 0; i < 12; i++) {
+ // make the regex if we don't have it already
+ mom = create_utc__createUTC([2000, i]);
+ shortPieces.push(this.monthsShort(mom, ''));
+ longPieces.push(this.months(mom, ''));
+ mixedPieces.push(this.months(mom, ''));
+ mixedPieces.push(this.monthsShort(mom, ''));
+ }
+ // Sorting makes sure if one month (or abbr) is a prefix of another it
+ // will match the longer piece.
+ shortPieces.sort(cmpLenRev);
+ longPieces.sort(cmpLenRev);
+ mixedPieces.sort(cmpLenRev);
+ for (i = 0; i < 12; i++) {
+ shortPieces[i] = regexEscape(shortPieces[i]);
+ longPieces[i] = regexEscape(longPieces[i]);
+ mixedPieces[i] = regexEscape(mixedPieces[i]);
+ }
+
+ this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
+ this._monthsShortRegex = this._monthsRegex;
+ this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')$', 'i');
+ this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')$', 'i');
+ }
+
+ function checkOverflow (m) {
+ var overflow;
+ var a = m._a;
+
+ if (a && getParsingFlags(m).overflow === -2) {
+ overflow =
+ a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :
+ a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
+ a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
+ a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :
+ a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :
+ a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
+ -1;
+
+ if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
+ overflow = DATE;
+ }
+ if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
+ overflow = WEEK;
+ }
+ if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
+ overflow = WEEKDAY;
+ }
+
+ getParsingFlags(m).overflow = overflow;
+ }
+
+ return m;
+ }
+
+ function warn(msg) {
+ if (utils_hooks__hooks.suppressDeprecationWarnings === false &&
+ (typeof console !== 'undefined') && console.warn) {
+ console.warn('Deprecation warning: ' + msg);
+ }
+ }
+
+ function deprecate(msg, fn) {
+ var firstTime = true;
+
+ return extend(function () {
+ if (firstTime) {
+ warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack);
+ firstTime = false;
+ }
+ return fn.apply(this, arguments);
+ }, fn);
+ }
+
+ var deprecations = {};
+
+ function deprecateSimple(name, msg) {
+ if (!deprecations[name]) {
+ warn(msg);
+ deprecations[name] = true;
+ }
+ }
+
+ utils_hooks__hooks.suppressDeprecationWarnings = false;
+
+ // iso 8601 regex
+ // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
+ var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/;
+ var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/;
+
+ var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
+
+ var isoDates = [
+ ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
+ ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
+ ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
+ ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
+ ['YYYY-DDD', /\d{4}-\d{3}/],
+ ['YYYY-MM', /\d{4}-\d\d/, false],
+ ['YYYYYYMMDD', /[+-]\d{10}/],
+ ['YYYYMMDD', /\d{8}/],
+ // YYYYMM is NOT allowed by the standard
+ ['GGGG[W]WWE', /\d{4}W\d{3}/],
+ ['GGGG[W]WW', /\d{4}W\d{2}/, false],
+ ['YYYYDDD', /\d{7}/]
+ ];
+
+ // iso time formats and regexes
+ var isoTimes = [
+ ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
+ ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
+ ['HH:mm:ss', /\d\d:\d\d:\d\d/],
+ ['HH:mm', /\d\d:\d\d/],
+ ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
+ ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
+ ['HHmmss', /\d\d\d\d\d\d/],
+ ['HHmm', /\d\d\d\d/],
+ ['HH', /\d\d/]
+ ];
+
+ var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
+
+ // date from iso format
+ function configFromISO(config) {
+ var i, l,
+ string = config._i,
+ match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
+ allowTime, dateFormat, timeFormat, tzFormat;
+
+ if (match) {
+ getParsingFlags(config).iso = true;
+
+ for (i = 0, l = isoDates.length; i < l; i++) {
+ if (isoDates[i][1].exec(match[1])) {
+ dateFormat = isoDates[i][0];
+ allowTime = isoDates[i][2] !== false;
+ break;
+ }
+ }
+ if (dateFormat == null) {
+ config._isValid = false;
+ return;
+ }
+ if (match[3]) {
+ for (i = 0, l = isoTimes.length; i < l; i++) {
+ if (isoTimes[i][1].exec(match[3])) {
+ // match[2] should be 'T' or space
+ timeFormat = (match[2] || ' ') + isoTimes[i][0];
+ break;
+ }
+ }
+ if (timeFormat == null) {
+ config._isValid = false;
+ return;
+ }
+ }
+ if (!allowTime && timeFormat != null) {
+ config._isValid = false;
+ return;
+ }
+ if (match[4]) {
+ if (tzRegex.exec(match[4])) {
+ tzFormat = 'Z';
+ } else {
+ config._isValid = false;
+ return;
+ }
+ }
+ config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
+ configFromStringAndFormat(config);
+ } else {
+ config._isValid = false;
+ }
+ }
+
+ // date from iso format or fallback
+ function configFromString(config) {
+ var matched = aspNetJsonRegex.exec(config._i);
+
+ if (matched !== null) {
+ config._d = new Date(+matched[1]);
+ return;
+ }
+
+ configFromISO(config);
+ if (config._isValid === false) {
+ delete config._isValid;
+ utils_hooks__hooks.createFromInputFallback(config);
+ }
+ }
+
+ utils_hooks__hooks.createFromInputFallback = deprecate(
+ 'moment construction falls back to js Date. This is ' +
+ 'discouraged and will be removed in upcoming major ' +
+ 'release. Please refer to ' +
+ 'https://github.com/moment/moment/issues/1407 for more info.',
+ function (config) {
+ config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
+ }
+ );
+
+ function createDate (y, m, d, h, M, s, ms) {
+ //can't just apply() to create a date:
+ //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply
+ var date = new Date(y, m, d, h, M, s, ms);
+
+ //the date constructor remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
+ date.setFullYear(y);
+ }
+ return date;
+ }
+
+ function createUTCDate (y) {
+ var date = new Date(Date.UTC.apply(null, arguments));
+
+ //the Date.UTC function remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
+ date.setUTCFullYear(y);
+ }
+ return date;
+ }
+
+ // FORMATTING
+
+ addFormatToken('Y', 0, 0, function () {
+ var y = this.year();
+ return y <= 9999 ? '' + y : '+' + y;
+ });
+
+ addFormatToken(0, ['YY', 2], 0, function () {
+ return this.year() % 100;
+ });
+
+ addFormatToken(0, ['YYYY', 4], 0, 'year');
+ addFormatToken(0, ['YYYYY', 5], 0, 'year');
+ addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
+
+ // ALIASES
+
+ addUnitAlias('year', 'y');
+
+ // PARSING
+
+ addRegexToken('Y', matchSigned);
+ addRegexToken('YY', match1to2, match2);
+ addRegexToken('YYYY', match1to4, match4);
+ addRegexToken('YYYYY', match1to6, match6);
+ addRegexToken('YYYYYY', match1to6, match6);
+
+ addParseToken(['YYYYY', 'YYYYYY'], YEAR);
+ addParseToken('YYYY', function (input, array) {
+ array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input);
+ });
+ addParseToken('YY', function (input, array) {
+ array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input);
+ });
+ addParseToken('Y', function (input, array) {
+ array[YEAR] = parseInt(input, 10);
+ });
+
+ // HELPERS
+
+ function daysInYear(year) {
+ return isLeapYear(year) ? 366 : 365;
+ }
+
+ function isLeapYear(year) {
+ return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
+ }
+
+ // HOOKS
+
+ utils_hooks__hooks.parseTwoDigitYear = function (input) {
+ return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
+ };
+
+ // MOMENTS
+
+ var getSetYear = makeGetSet('FullYear', false);
+
+ function getIsLeapYear () {
+ return isLeapYear(this.year());
+ }
+
+ // start-of-first-week - start-of-year
+ function firstWeekOffset(year, dow, doy) {
+ var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
+ fwd = 7 + dow - doy,
+ // first-week day local weekday -- which local weekday is fwd
+ fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
+
+ return -fwdlw + fwd - 1;
+ }
+
+ //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
+ function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
+ var localWeekday = (7 + weekday - dow) % 7,
+ weekOffset = firstWeekOffset(year, dow, doy),
+ dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
+ resYear, resDayOfYear;
+
+ if (dayOfYear <= 0) {
+ resYear = year - 1;
+ resDayOfYear = daysInYear(resYear) + dayOfYear;
+ } else if (dayOfYear > daysInYear(year)) {
+ resYear = year + 1;
+ resDayOfYear = dayOfYear - daysInYear(year);
+ } else {
+ resYear = year;
+ resDayOfYear = dayOfYear;
+ }
+
+ return {
+ year: resYear,
+ dayOfYear: resDayOfYear
+ };
+ }
+
+ function weekOfYear(mom, dow, doy) {
+ var weekOffset = firstWeekOffset(mom.year(), dow, doy),
+ week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
+ resWeek, resYear;
+
+ if (week < 1) {
+ resYear = mom.year() - 1;
+ resWeek = week + weeksInYear(resYear, dow, doy);
+ } else if (week > weeksInYear(mom.year(), dow, doy)) {
+ resWeek = week - weeksInYear(mom.year(), dow, doy);
+ resYear = mom.year() + 1;
+ } else {
+ resYear = mom.year();
+ resWeek = week;
+ }
+
+ return {
+ week: resWeek,
+ year: resYear
+ };
+ }
+
+ function weeksInYear(year, dow, doy) {
+ var weekOffset = firstWeekOffset(year, dow, doy),
+ weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
+ return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
+ }
+
+ // Pick the first defined of two or three arguments.
+ function defaults(a, b, c) {
+ if (a != null) {
+ return a;
+ }
+ if (b != null) {
+ return b;
+ }
+ return c;
+ }
+
+ function currentDateArray(config) {
+ // hooks is actually the exported moment object
+ var nowValue = new Date(utils_hooks__hooks.now());
+ if (config._useUTC) {
+ return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
+ }
+ return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
+ }
+
+ // convert an array to a date.
+ // the array should mirror the parameters below
+ // note: all values past the year are optional and will default to the lowest possible value.
+ // [year, month, day , hour, minute, second, millisecond]
+ function configFromArray (config) {
+ var i, date, input = [], currentDate, yearToUse;
+
+ if (config._d) {
+ return;
+ }
+
+ currentDate = currentDateArray(config);
+
+ //compute day of the year from weeks and weekdays
+ if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
+ dayOfYearFromWeekInfo(config);
+ }
+
+ //if the day of the year is set, figure out what it is
+ if (config._dayOfYear) {
+ yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
+
+ if (config._dayOfYear > daysInYear(yearToUse)) {
+ getParsingFlags(config)._overflowDayOfYear = true;
+ }
+
+ date = createUTCDate(yearToUse, 0, config._dayOfYear);
+ config._a[MONTH] = date.getUTCMonth();
+ config._a[DATE] = date.getUTCDate();
+ }
+
+ // Default to current date.
+ // * if no year, month, day of month are given, default to today
+ // * if day of month is given, default month and year
+ // * if month is given, default only year
+ // * if year is given, don't default anything
+ for (i = 0; i < 3 && config._a[i] == null; ++i) {
+ config._a[i] = input[i] = currentDate[i];
+ }
+
+ // Zero out whatever was not defaulted, including time
+ for (; i < 7; i++) {
+ config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
+ }
+
+ // Check for 24:00:00.000
+ if (config._a[HOUR] === 24 &&
+ config._a[MINUTE] === 0 &&
+ config._a[SECOND] === 0 &&
+ config._a[MILLISECOND] === 0) {
+ config._nextDay = true;
+ config._a[HOUR] = 0;
+ }
+
+ config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
+ // Apply timezone offset from input. The actual utcOffset can be changed
+ // with parseZone.
+ if (config._tzm != null) {
+ config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
+ }
+
+ if (config._nextDay) {
+ config._a[HOUR] = 24;
+ }
+ }
+
+ function dayOfYearFromWeekInfo(config) {
+ var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
+
+ w = config._w;
+ if (w.GG != null || w.W != null || w.E != null) {
+ dow = 1;
+ doy = 4;
+
+ // TODO: We need to take the current isoWeekYear, but that depends on
+ // how we interpret now (local, utc, fixed offset). So create
+ // a now version of current config (take local/utc/offset flags, and
+ // create now).
+ weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year);
+ week = defaults(w.W, 1);
+ weekday = defaults(w.E, 1);
+ if (weekday < 1 || weekday > 7) {
+ weekdayOverflow = true;
+ }
+ } else {
+ dow = config._locale._week.dow;
+ doy = config._locale._week.doy;
+
+ weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year);
+ week = defaults(w.w, 1);
+
+ if (w.d != null) {
+ // weekday -- low day numbers are considered next week
+ weekday = w.d;
+ if (weekday < 0 || weekday > 6) {
+ weekdayOverflow = true;
+ }
+ } else if (w.e != null) {
+ // local weekday -- counting starts from begining of week
+ weekday = w.e + dow;
+ if (w.e < 0 || w.e > 6) {
+ weekdayOverflow = true;
+ }
+ } else {
+ // default to begining of week
+ weekday = dow;
+ }
+ }
+ if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
+ getParsingFlags(config)._overflowWeeks = true;
+ } else if (weekdayOverflow != null) {
+ getParsingFlags(config)._overflowWeekday = true;
+ } else {
+ temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
+ config._a[YEAR] = temp.year;
+ config._dayOfYear = temp.dayOfYear;
+ }
+ }
+
+ // constant that refers to the ISO standard
+ utils_hooks__hooks.ISO_8601 = function () {};
+
+ // date from string and format string
+ function configFromStringAndFormat(config) {
+ // TODO: Move this to another part of the creation flow to prevent circular deps
+ if (config._f === utils_hooks__hooks.ISO_8601) {
+ configFromISO(config);
+ return;
+ }
+
+ config._a = [];
+ getParsingFlags(config).empty = true;
+
+ // This array is used to make a Date, either with `new Date` or `Date.UTC`
+ var string = '' + config._i,
+ i, parsedInput, tokens, token, skipped,
+ stringLength = string.length,
+ totalParsedInputLength = 0;
+
+ tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
+
+ for (i = 0; i < tokens.length; i++) {
+ token = tokens[i];
+ parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
+ // console.log('token', token, 'parsedInput', parsedInput,
+ // 'regex', getParseRegexForToken(token, config));
+ if (parsedInput) {
+ skipped = string.substr(0, string.indexOf(parsedInput));
+ if (skipped.length > 0) {
+ getParsingFlags(config).unusedInput.push(skipped);
+ }
+ string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
+ totalParsedInputLength += parsedInput.length;
+ }
+ // don't parse if it's not a known token
+ if (formatTokenFunctions[token]) {
+ if (parsedInput) {
+ getParsingFlags(config).empty = false;
+ }
+ else {
+ getParsingFlags(config).unusedTokens.push(token);
+ }
+ addTimeToArrayFromToken(token, parsedInput, config);
+ }
+ else if (config._strict && !parsedInput) {
+ getParsingFlags(config).unusedTokens.push(token);
+ }
+ }
+
+ // add remaining unparsed input length to the string
+ getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
+ if (string.length > 0) {
+ getParsingFlags(config).unusedInput.push(string);
+ }
+
+ // clear _12h flag if hour is <= 12
+ if (getParsingFlags(config).bigHour === true &&
+ config._a[HOUR] <= 12 &&
+ config._a[HOUR] > 0) {
+ getParsingFlags(config).bigHour = undefined;
+ }
+ // handle meridiem
+ config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
+
+ configFromArray(config);
+ checkOverflow(config);
+ }
+
+
+ function meridiemFixWrap (locale, hour, meridiem) {
+ var isPm;
+
+ if (meridiem == null) {
+ // nothing to do
+ return hour;
+ }
+ if (locale.meridiemHour != null) {
+ return locale.meridiemHour(hour, meridiem);
+ } else if (locale.isPM != null) {
+ // Fallback
+ isPm = locale.isPM(meridiem);
+ if (isPm && hour < 12) {
+ hour += 12;
+ }
+ if (!isPm && hour === 12) {
+ hour = 0;
+ }
+ return hour;
+ } else {
+ // this is not supposed to happen
+ return hour;
+ }
+ }
+
+ // date from string and array of format strings
+ function configFromStringAndArray(config) {
+ var tempConfig,
+ bestMoment,
+
+ scoreToBeat,
+ i,
+ currentScore;
+
+ if (config._f.length === 0) {
+ getParsingFlags(config).invalidFormat = true;
+ config._d = new Date(NaN);
+ return;
+ }
+
+ for (i = 0; i < config._f.length; i++) {
+ currentScore = 0;
+ tempConfig = copyConfig({}, config);
+ if (config._useUTC != null) {
+ tempConfig._useUTC = config._useUTC;
+ }
+ tempConfig._f = config._f[i];
+ configFromStringAndFormat(tempConfig);
+
+ if (!valid__isValid(tempConfig)) {
+ continue;
+ }
+
+ // if there is any input that was not parsed add a penalty for that format
+ currentScore += getParsingFlags(tempConfig).charsLeftOver;
+
+ //or tokens
+ currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
+
+ getParsingFlags(tempConfig).score = currentScore;
+
+ if (scoreToBeat == null || currentScore < scoreToBeat) {
+ scoreToBeat = currentScore;
+ bestMoment = tempConfig;
+ }
+ }
+
+ extend(config, bestMoment || tempConfig);
+ }
+
+ function configFromObject(config) {
+ if (config._d) {
+ return;
+ }
+
+ var i = normalizeObjectUnits(config._i);
+ config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
+ return obj && parseInt(obj, 10);
+ });
+
+ configFromArray(config);
+ }
+
+ function createFromConfig (config) {
+ var res = new Moment(checkOverflow(prepareConfig(config)));
+ if (res._nextDay) {
+ // Adding is smart enough around DST
+ res.add(1, 'd');
+ res._nextDay = undefined;
+ }
+
+ return res;
+ }
+
+ function prepareConfig (config) {
+ var input = config._i,
+ format = config._f;
+
+ config._locale = config._locale || locale_locales__getLocale(config._l);
+
+ if (input === null || (format === undefined && input === '')) {
+ return valid__createInvalid({nullInput: true});
+ }
+
+ if (typeof input === 'string') {
+ config._i = input = config._locale.preparse(input);
+ }
+
+ if (isMoment(input)) {
+ return new Moment(checkOverflow(input));
+ } else if (isArray(format)) {
+ configFromStringAndArray(config);
+ } else if (format) {
+ configFromStringAndFormat(config);
+ } else if (isDate(input)) {
+ config._d = input;
+ } else {
+ configFromInput(config);
+ }
+
+ if (!valid__isValid(config)) {
+ config._d = null;
+ }
+
+ return config;
+ }
+
+ function configFromInput(config) {
+ var input = config._i;
+ if (input === undefined) {
+ config._d = new Date(utils_hooks__hooks.now());
+ } else if (isDate(input)) {
+ config._d = new Date(+input);
+ } else if (typeof input === 'string') {
+ configFromString(config);
+ } else if (isArray(input)) {
+ config._a = map(input.slice(0), function (obj) {
+ return parseInt(obj, 10);
+ });
+ configFromArray(config);
+ } else if (typeof(input) === 'object') {
+ configFromObject(config);
+ } else if (typeof(input) === 'number') {
+ // from milliseconds
+ config._d = new Date(input);
+ } else {
+ utils_hooks__hooks.createFromInputFallback(config);
+ }
+ }
+
+ function createLocalOrUTC (input, format, locale, strict, isUTC) {
+ var c = {};
+
+ if (typeof(locale) === 'boolean') {
+ strict = locale;
+ locale = undefined;
+ }
+ // object construction must be done this way.
+ // https://github.com/moment/moment/issues/1423
+ c._isAMomentObject = true;
+ c._useUTC = c._isUTC = isUTC;
+ c._l = locale;
+ c._i = input;
+ c._f = format;
+ c._strict = strict;
+
+ return createFromConfig(c);
+ }
+
+ function local__createLocal (input, format, locale, strict) {
+ return createLocalOrUTC(input, format, locale, strict, false);
+ }
+
+ var prototypeMin = deprecate(
+ 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548',
+ function () {
+ var other = local__createLocal.apply(null, arguments);
+ if (this.isValid() && other.isValid()) {
+ return other < this ? this : other;
+ } else {
+ return valid__createInvalid();
+ }
+ }
+ );
+
+ var prototypeMax = deprecate(
+ 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548',
+ function () {
+ var other = local__createLocal.apply(null, arguments);
+ if (this.isValid() && other.isValid()) {
+ return other > this ? this : other;
+ } else {
+ return valid__createInvalid();
+ }
+ }
+ );
+
+ // Pick a moment m from moments so that m[fn](other) is true for all
+ // other. This relies on the function fn to be transitive.
+ //
+ // moments should either be an array of moment objects or an array, whose
+ // first element is an array of moment objects.
+ function pickBy(fn, moments) {
+ var res, i;
+ if (moments.length === 1 && isArray(moments[0])) {
+ moments = moments[0];
+ }
+ if (!moments.length) {
+ return local__createLocal();
+ }
+ res = moments[0];
+ for (i = 1; i < moments.length; ++i) {
+ if (!moments[i].isValid() || moments[i][fn](res)) {
+ res = moments[i];
+ }
+ }
+ return res;
+ }
+
+ // TODO: Use [].sort instead?
+ function min () {
+ var args = [].slice.call(arguments, 0);
+
+ return pickBy('isBefore', args);
+ }
+
+ function max () {
+ var args = [].slice.call(arguments, 0);
+
+ return pickBy('isAfter', args);
+ }
+
+ var now = function () {
+ return Date.now ? Date.now() : +(new Date());
+ };
+
+ function Duration (duration) {
+ var normalizedInput = normalizeObjectUnits(duration),
+ years = normalizedInput.year || 0,
+ quarters = normalizedInput.quarter || 0,
+ months = normalizedInput.month || 0,
+ weeks = normalizedInput.week || 0,
+ days = normalizedInput.day || 0,
+ hours = normalizedInput.hour || 0,
+ minutes = normalizedInput.minute || 0,
+ seconds = normalizedInput.second || 0,
+ milliseconds = normalizedInput.millisecond || 0;
+
+ // representation for dateAddRemove
+ this._milliseconds = +milliseconds +
+ seconds * 1e3 + // 1000
+ minutes * 6e4 + // 1000 * 60
+ hours * 36e5; // 1000 * 60 * 60
+ // Because of dateAddRemove treats 24 hours as different from a
+ // day when working around DST, we need to store them separately
+ this._days = +days +
+ weeks * 7;
+ // It is impossible translate months into days without knowing
+ // which months you are are talking about, so we have to store
+ // it separately.
+ this._months = +months +
+ quarters * 3 +
+ years * 12;
+
+ this._data = {};
+
+ this._locale = locale_locales__getLocale();
+
+ this._bubble();
+ }
+
+ function isDuration (obj) {
+ return obj instanceof Duration;
+ }
+
+ // FORMATTING
+
+ function offset (token, separator) {
+ addFormatToken(token, 0, 0, function () {
+ var offset = this.utcOffset();
+ var sign = '+';
+ if (offset < 0) {
+ offset = -offset;
+ sign = '-';
+ }
+ return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
+ });
+ }
+
+ offset('Z', ':');
+ offset('ZZ', '');
+
+ // PARSING
+
+ addRegexToken('Z', matchShortOffset);
+ addRegexToken('ZZ', matchShortOffset);
+ addParseToken(['Z', 'ZZ'], function (input, array, config) {
+ config._useUTC = true;
+ config._tzm = offsetFromString(matchShortOffset, input);
+ });
+
+ // HELPERS
+
+ // timezone chunker
+ // '+10:00' > ['10', '00']
+ // '-1530' > ['-15', '30']
+ var chunkOffset = /([\+\-]|\d\d)/gi;
+
+ function offsetFromString(matcher, string) {
+ var matches = ((string || '').match(matcher) || []);
+ var chunk = matches[matches.length - 1] || [];
+ var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
+ var minutes = +(parts[1] * 60) + toInt(parts[2]);
+
+ return parts[0] === '+' ? minutes : -minutes;
+ }
+
+ // Return a moment from input, that is local/utc/zone equivalent to model.
+ function cloneWithOffset(input, model) {
+ var res, diff;
+ if (model._isUTC) {
+ res = model.clone();
+ diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res);
+ // Use low-level api, because this fn is low-level api.
+ res._d.setTime(+res._d + diff);
+ utils_hooks__hooks.updateOffset(res, false);
+ return res;
+ } else {
+ return local__createLocal(input).local();
+ }
+ }
+
+ function getDateOffset (m) {
+ // On Firefox.24 Date#getTimezoneOffset returns a floating point.
+ // https://github.com/moment/moment/pull/1871
+ return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
+ }
+
+ // HOOKS
+
+ // This function will be called whenever a moment is mutated.
+ // It is intended to keep the offset in sync with the timezone.
+ utils_hooks__hooks.updateOffset = function () {};
+
+ // MOMENTS
+
+ // keepLocalTime = true means only change the timezone, without
+ // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
+ // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
+ // +0200, so we adjust the time as needed, to be valid.
+ //
+ // Keeping the time actually adds/subtracts (one hour)
+ // from the actual represented time. That is why we call updateOffset
+ // a second time. In case it wants us to change the offset again
+ // _changeInProgress == true case, then we have to adjust, because
+ // there is no such time in the given timezone.
+ function getSetOffset (input, keepLocalTime) {
+ var offset = this._offset || 0,
+ localAdjust;
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+ if (input != null) {
+ if (typeof input === 'string') {
+ input = offsetFromString(matchShortOffset, input);
+ } else if (Math.abs(input) < 16) {
+ input = input * 60;
+ }
+ if (!this._isUTC && keepLocalTime) {
+ localAdjust = getDateOffset(this);
+ }
+ this._offset = input;
+ this._isUTC = true;
+ if (localAdjust != null) {
+ this.add(localAdjust, 'm');
+ }
+ if (offset !== input) {
+ if (!keepLocalTime || this._changeInProgress) {
+ add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false);
+ } else if (!this._changeInProgress) {
+ this._changeInProgress = true;
+ utils_hooks__hooks.updateOffset(this, true);
+ this._changeInProgress = null;
+ }
+ }
+ return this;
+ } else {
+ return this._isUTC ? offset : getDateOffset(this);
+ }
+ }
+
+ function getSetZone (input, keepLocalTime) {
+ if (input != null) {
+ if (typeof input !== 'string') {
+ input = -input;
+ }
+
+ this.utcOffset(input, keepLocalTime);
+
+ return this;
+ } else {
+ return -this.utcOffset();
+ }
+ }
+
+ function setOffsetToUTC (keepLocalTime) {
+ return this.utcOffset(0, keepLocalTime);
+ }
+
+ function setOffsetToLocal (keepLocalTime) {
+ if (this._isUTC) {
+ this.utcOffset(0, keepLocalTime);
+ this._isUTC = false;
+
+ if (keepLocalTime) {
+ this.subtract(getDateOffset(this), 'm');
+ }
+ }
+ return this;
+ }
+
+ function setOffsetToParsedOffset () {
+ if (this._tzm) {
+ this.utcOffset(this._tzm);
+ } else if (typeof this._i === 'string') {
+ this.utcOffset(offsetFromString(matchOffset, this._i));
+ }
+ return this;
+ }
+
+ function hasAlignedHourOffset (input) {
+ if (!this.isValid()) {
+ return false;
+ }
+ input = input ? local__createLocal(input).utcOffset() : 0;
+
+ return (this.utcOffset() - input) % 60 === 0;
+ }
+
+ function isDaylightSavingTime () {
+ return (
+ this.utcOffset() > this.clone().month(0).utcOffset() ||
+ this.utcOffset() > this.clone().month(5).utcOffset()
+ );
+ }
+
+ function isDaylightSavingTimeShifted () {
+ if (!isUndefined(this._isDSTShifted)) {
+ return this._isDSTShifted;
+ }
+
+ var c = {};
+
+ copyConfig(c, this);
+ c = prepareConfig(c);
+
+ if (c._a) {
+ var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a);
+ this._isDSTShifted = this.isValid() &&
+ compareArrays(c._a, other.toArray()) > 0;
+ } else {
+ this._isDSTShifted = false;
+ }
+
+ return this._isDSTShifted;
+ }
+
+ function isLocal () {
+ return this.isValid() ? !this._isUTC : false;
+ }
+
+ function isUtcOffset () {
+ return this.isValid() ? this._isUTC : false;
+ }
+
+ function isUtc () {
+ return this.isValid() ? this._isUTC && this._offset === 0 : false;
+ }
+
+ // ASP.NET json date format regex
+ var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/;
+
+ // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
+ // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
+ var isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;
+
+ function create__createDuration (input, key) {
+ var duration = input,
+ // matching against regexp is expensive, do it on demand
+ match = null,
+ sign,
+ ret,
+ diffRes;
+
+ if (isDuration(input)) {
+ duration = {
+ ms : input._milliseconds,
+ d : input._days,
+ M : input._months
+ };
+ } else if (typeof input === 'number') {
+ duration = {};
+ if (key) {
+ duration[key] = input;
+ } else {
+ duration.milliseconds = input;
+ }
+ } else if (!!(match = aspNetRegex.exec(input))) {
+ sign = (match[1] === '-') ? -1 : 1;
+ duration = {
+ y : 0,
+ d : toInt(match[DATE]) * sign,
+ h : toInt(match[HOUR]) * sign,
+ m : toInt(match[MINUTE]) * sign,
+ s : toInt(match[SECOND]) * sign,
+ ms : toInt(match[MILLISECOND]) * sign
+ };
+ } else if (!!(match = isoRegex.exec(input))) {
+ sign = (match[1] === '-') ? -1 : 1;
+ duration = {
+ y : parseIso(match[2], sign),
+ M : parseIso(match[3], sign),
+ d : parseIso(match[4], sign),
+ h : parseIso(match[5], sign),
+ m : parseIso(match[6], sign),
+ s : parseIso(match[7], sign),
+ w : parseIso(match[8], sign)
+ };
+ } else if (duration == null) {// checks for null or undefined
+ duration = {};
+ } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
+ diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to));
+
+ duration = {};
+ duration.ms = diffRes.milliseconds;
+ duration.M = diffRes.months;
+ }
+
+ ret = new Duration(duration);
+
+ if (isDuration(input) && hasOwnProp(input, '_locale')) {
+ ret._locale = input._locale;
+ }
+
+ return ret;
+ }
+
+ create__createDuration.fn = Duration.prototype;
+
+ function parseIso (inp, sign) {
+ // We'd normally use ~~inp for this, but unfortunately it also
+ // converts floats to ints.
+ // inp may be undefined, so careful calling replace on it.
+ var res = inp && parseFloat(inp.replace(',', '.'));
+ // apply sign while we're at it
+ return (isNaN(res) ? 0 : res) * sign;
+ }
+
+ function positiveMomentsDifference(base, other) {
+ var res = {milliseconds: 0, months: 0};
+
+ res.months = other.month() - base.month() +
+ (other.year() - base.year()) * 12;
+ if (base.clone().add(res.months, 'M').isAfter(other)) {
+ --res.months;
+ }
+
+ res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
+
+ return res;
+ }
+
+ function momentsDifference(base, other) {
+ var res;
+ if (!(base.isValid() && other.isValid())) {
+ return {milliseconds: 0, months: 0};
+ }
+
+ other = cloneWithOffset(other, base);
+ if (base.isBefore(other)) {
+ res = positiveMomentsDifference(base, other);
+ } else {
+ res = positiveMomentsDifference(other, base);
+ res.milliseconds = -res.milliseconds;
+ res.months = -res.months;
+ }
+
+ return res;
+ }
+
+ // TODO: remove 'name' arg after deprecation is removed
+ function createAdder(direction, name) {
+ return function (val, period) {
+ var dur, tmp;
+ //invert the arguments, but complain about it
+ if (period !== null && !isNaN(+period)) {
+ deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).');
+ tmp = val; val = period; period = tmp;
+ }
+
+ val = typeof val === 'string' ? +val : val;
+ dur = create__createDuration(val, period);
+ add_subtract__addSubtract(this, dur, direction);
+ return this;
+ };
+ }
+
+ function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) {
+ var milliseconds = duration._milliseconds,
+ days = duration._days,
+ months = duration._months;
+
+ if (!mom.isValid()) {
+ // No op
+ return;
+ }
+
+ updateOffset = updateOffset == null ? true : updateOffset;
+
+ if (milliseconds) {
+ mom._d.setTime(+mom._d + milliseconds * isAdding);
+ }
+ if (days) {
+ get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding);
+ }
+ if (months) {
+ setMonth(mom, get_set__get(mom, 'Month') + months * isAdding);
+ }
+ if (updateOffset) {
+ utils_hooks__hooks.updateOffset(mom, days || months);
+ }
+ }
+
+ var add_subtract__add = createAdder(1, 'add');
+ var add_subtract__subtract = createAdder(-1, 'subtract');
+
+ function moment_calendar__calendar (time, formats) {
+ // We want to compare the start of today, vs this.
+ // Getting start-of-today depends on whether we're local/utc/offset or not.
+ var now = time || local__createLocal(),
+ sod = cloneWithOffset(now, this).startOf('day'),
+ diff = this.diff(sod, 'days', true),
+ format = diff < -6 ? 'sameElse' :
+ diff < -1 ? 'lastWeek' :
+ diff < 0 ? 'lastDay' :
+ diff < 1 ? 'sameDay' :
+ diff < 2 ? 'nextDay' :
+ diff < 7 ? 'nextWeek' : 'sameElse';
+
+ var output = formats && (isFunction(formats[format]) ? formats[format]() : formats[format]);
+
+ return this.format(output || this.localeData().calendar(format, this, local__createLocal(now)));
+ }
+
+ function clone () {
+ return new Moment(this);
+ }
+
+ function isAfter (input, units) {
+ var localInput = isMoment(input) ? input : local__createLocal(input);
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
+ units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
+ if (units === 'millisecond') {
+ return +this > +localInput;
+ } else {
+ return +localInput < +this.clone().startOf(units);
+ }
+ }
+
+ function isBefore (input, units) {
+ var localInput = isMoment(input) ? input : local__createLocal(input);
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
+ units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
+ if (units === 'millisecond') {
+ return +this < +localInput;
+ } else {
+ return +this.clone().endOf(units) < +localInput;
+ }
+ }
+
+ function isBetween (from, to, units) {
+ return this.isAfter(from, units) && this.isBefore(to, units);
+ }
+
+ function isSame (input, units) {
+ var localInput = isMoment(input) ? input : local__createLocal(input),
+ inputMs;
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
+ units = normalizeUnits(units || 'millisecond');
+ if (units === 'millisecond') {
+ return +this === +localInput;
+ } else {
+ inputMs = +localInput;
+ return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units));
+ }
+ }
+
+ function isSameOrAfter (input, units) {
+ return this.isSame(input, units) || this.isAfter(input,units);
+ }
+
+ function isSameOrBefore (input, units) {
+ return this.isSame(input, units) || this.isBefore(input,units);
+ }
+
+ function diff (input, units, asFloat) {
+ var that,
+ zoneDelta,
+ delta, output;
+
+ if (!this.isValid()) {
+ return NaN;
+ }
+
+ that = cloneWithOffset(input, this);
+
+ if (!that.isValid()) {
+ return NaN;
+ }
+
+ zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
+
+ units = normalizeUnits(units);
+
+ if (units === 'year' || units === 'month' || units === 'quarter') {
+ output = monthDiff(this, that);
+ if (units === 'quarter') {
+ output = output / 3;
+ } else if (units === 'year') {
+ output = output / 12;
+ }
+ } else {
+ delta = this - that;
+ output = units === 'second' ? delta / 1e3 : // 1000
+ units === 'minute' ? delta / 6e4 : // 1000 * 60
+ units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60
+ units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst
+ units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst
+ delta;
+ }
+ return asFloat ? output : absFloor(output);
+ }
+
+ function monthDiff (a, b) {
+ // difference in months
+ var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
+ // b is in (anchor - 1 month, anchor + 1 month)
+ anchor = a.clone().add(wholeMonthDiff, 'months'),
+ anchor2, adjust;
+
+ if (b - anchor < 0) {
+ anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
+ // linear across the month
+ adjust = (b - anchor) / (anchor - anchor2);
+ } else {
+ anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
+ // linear across the month
+ adjust = (b - anchor) / (anchor2 - anchor);
+ }
+
+ return -(wholeMonthDiff + adjust);
+ }
+
+ utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
+
+ function toString () {
+ return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
+ }
+
+ function moment_format__toISOString () {
+ var m = this.clone().utc();
+ if (0 < m.year() && m.year() <= 9999) {
+ if (isFunction(Date.prototype.toISOString)) {
+ // native implementation is ~50x faster, use it when we can
+ return this.toDate().toISOString();
+ } else {
+ return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
+ }
+ } else {
+ return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
+ }
+ }
+
+ function moment_format__format (inputString) {
+ var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat);
+ return this.localeData().postformat(output);
+ }
+
+ function from (time, withoutSuffix) {
+ if (this.isValid() &&
+ ((isMoment(time) && time.isValid()) ||
+ local__createLocal(time).isValid())) {
+ return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
+ } else {
+ return this.localeData().invalidDate();
+ }
+ }
+
+ function fromNow (withoutSuffix) {
+ return this.from(local__createLocal(), withoutSuffix);
+ }
+
+ function to (time, withoutSuffix) {
+ if (this.isValid() &&
+ ((isMoment(time) && time.isValid()) ||
+ local__createLocal(time).isValid())) {
+ return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
+ } else {
+ return this.localeData().invalidDate();
+ }
+ }
+
+ function toNow (withoutSuffix) {
+ return this.to(local__createLocal(), withoutSuffix);
+ }
+
+ // If passed a locale key, it will set the locale for this
+ // instance. Otherwise, it will return the locale configuration
+ // variables for this instance.
+ function locale (key) {
+ var newLocaleData;
+
+ if (key === undefined) {
+ return this._locale._abbr;
+ } else {
+ newLocaleData = locale_locales__getLocale(key);
+ if (newLocaleData != null) {
+ this._locale = newLocaleData;
+ }
+ return this;
+ }
+ }
+
+ var lang = deprecate(
+ 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
+ function (key) {
+ if (key === undefined) {
+ return this.localeData();
+ } else {
+ return this.locale(key);
+ }
+ }
+ );
+
+ function localeData () {
+ return this._locale;
+ }
+
+ function startOf (units) {
+ units = normalizeUnits(units);
+ // the following switch intentionally omits break keywords
+ // to utilize falling through the cases.
+ switch (units) {
+ case 'year':
+ this.month(0);
+ /* falls through */
+ case 'quarter':
+ case 'month':
+ this.date(1);
+ /* falls through */
+ case 'week':
+ case 'isoWeek':
+ case 'day':
+ this.hours(0);
+ /* falls through */
+ case 'hour':
+ this.minutes(0);
+ /* falls through */
+ case 'minute':
+ this.seconds(0);
+ /* falls through */
+ case 'second':
+ this.milliseconds(0);
+ }
+
+ // weeks are a special case
+ if (units === 'week') {
+ this.weekday(0);
+ }
+ if (units === 'isoWeek') {
+ this.isoWeekday(1);
+ }
+
+ // quarters are also special
+ if (units === 'quarter') {
+ this.month(Math.floor(this.month() / 3) * 3);
+ }
+
+ return this;
+ }
+
+ function endOf (units) {
+ units = normalizeUnits(units);
+ if (units === undefined || units === 'millisecond') {
+ return this;
+ }
+ return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
+ }
+
+ function to_type__valueOf () {
+ return +this._d - ((this._offset || 0) * 60000);
+ }
+
+ function unix () {
+ return Math.floor(+this / 1000);
+ }
+
+ function toDate () {
+ return this._offset ? new Date(+this) : this._d;
+ }
+
+ function toArray () {
+ var m = this;
+ return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
+ }
+
+ function toObject () {
+ var m = this;
+ return {
+ years: m.year(),
+ months: m.month(),
+ date: m.date(),
+ hours: m.hours(),
+ minutes: m.minutes(),
+ seconds: m.seconds(),
+ milliseconds: m.milliseconds()
+ };
+ }
+
+ function toJSON () {
+ // JSON.stringify(new Date(NaN)) === 'null'
+ return this.isValid() ? this.toISOString() : 'null';
+ }
+
+ function moment_valid__isValid () {
+ return valid__isValid(this);
+ }
+
+ function parsingFlags () {
+ return extend({}, getParsingFlags(this));
+ }
+
+ function invalidAt () {
+ return getParsingFlags(this).overflow;
+ }
+
+ function creationData() {
+ return {
+ input: this._i,
+ format: this._f,
+ locale: this._locale,
+ isUTC: this._isUTC,
+ strict: this._strict
+ };
+ }
+
+ // FORMATTING
+
+ addFormatToken(0, ['gg', 2], 0, function () {
+ return this.weekYear() % 100;
+ });
+
+ addFormatToken(0, ['GG', 2], 0, function () {
+ return this.isoWeekYear() % 100;
+ });
+
+ function addWeekYearFormatToken (token, getter) {
+ addFormatToken(0, [token, token.length], 0, getter);
+ }
+
+ addWeekYearFormatToken('gggg', 'weekYear');
+ addWeekYearFormatToken('ggggg', 'weekYear');
+ addWeekYearFormatToken('GGGG', 'isoWeekYear');
+ addWeekYearFormatToken('GGGGG', 'isoWeekYear');
+
+ // ALIASES
+
+ addUnitAlias('weekYear', 'gg');
+ addUnitAlias('isoWeekYear', 'GG');
+
+ // PARSING
+
+ addRegexToken('G', matchSigned);
+ addRegexToken('g', matchSigned);
+ addRegexToken('GG', match1to2, match2);
+ addRegexToken('gg', match1to2, match2);
+ addRegexToken('GGGG', match1to4, match4);
+ addRegexToken('gggg', match1to4, match4);
+ addRegexToken('GGGGG', match1to6, match6);
+ addRegexToken('ggggg', match1to6, match6);
+
+ addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
+ week[token.substr(0, 2)] = toInt(input);
+ });
+
+ addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
+ week[token] = utils_hooks__hooks.parseTwoDigitYear(input);
+ });
+
+ // MOMENTS
+
+ function getSetWeekYear (input) {
+ return getSetWeekYearHelper.call(this,
+ input,
+ this.week(),
+ this.weekday(),
+ this.localeData()._week.dow,
+ this.localeData()._week.doy);
+ }
+
+ function getSetISOWeekYear (input) {
+ return getSetWeekYearHelper.call(this,
+ input, this.isoWeek(), this.isoWeekday(), 1, 4);
+ }
+
+ function getISOWeeksInYear () {
+ return weeksInYear(this.year(), 1, 4);
+ }
+
+ function getWeeksInYear () {
+ var weekInfo = this.localeData()._week;
+ return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
+ }
+
+ function getSetWeekYearHelper(input, week, weekday, dow, doy) {
+ var weeksTarget;
+ if (input == null) {
+ return weekOfYear(this, dow, doy).year;
+ } else {
+ weeksTarget = weeksInYear(input, dow, doy);
+ if (week > weeksTarget) {
+ week = weeksTarget;
+ }
+ return setWeekAll.call(this, input, week, weekday, dow, doy);
+ }
+ }
+
+ function setWeekAll(weekYear, week, weekday, dow, doy) {
+ var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
+ date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
+
+ // console.log("got", weekYear, week, weekday, "set", date.toISOString());
+ this.year(date.getUTCFullYear());
+ this.month(date.getUTCMonth());
+ this.date(date.getUTCDate());
+ return this;
+ }
+
+ // FORMATTING
+
+ addFormatToken('Q', 0, 'Qo', 'quarter');
+
+ // ALIASES
+
+ addUnitAlias('quarter', 'Q');
+
+ // PARSING
+
+ addRegexToken('Q', match1);
+ addParseToken('Q', function (input, array) {
+ array[MONTH] = (toInt(input) - 1) * 3;
+ });
+
+ // MOMENTS
+
+ function getSetQuarter (input) {
+ return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
+ }
+
+ // FORMATTING
+
+ addFormatToken('w', ['ww', 2], 'wo', 'week');
+ addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
+
+ // ALIASES
+
+ addUnitAlias('week', 'w');
+ addUnitAlias('isoWeek', 'W');
+
+ // PARSING
+
+ addRegexToken('w', match1to2);
+ addRegexToken('ww', match1to2, match2);
+ addRegexToken('W', match1to2);
+ addRegexToken('WW', match1to2, match2);
+
+ addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
+ week[token.substr(0, 1)] = toInt(input);
+ });
+
+ // HELPERS
+
+ // LOCALES
+
+ function localeWeek (mom) {
+ return weekOfYear(mom, this._week.dow, this._week.doy).week;
+ }
+
+ var defaultLocaleWeek = {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ };
+
+ function localeFirstDayOfWeek () {
+ return this._week.dow;
+ }
+
+ function localeFirstDayOfYear () {
+ return this._week.doy;
+ }
+
+ // MOMENTS
+
+ function getSetWeek (input) {
+ var week = this.localeData().week(this);
+ return input == null ? week : this.add((input - week) * 7, 'd');
+ }
+
+ function getSetISOWeek (input) {
+ var week = weekOfYear(this, 1, 4).week;
+ return input == null ? week : this.add((input - week) * 7, 'd');
+ }
+
+ // FORMATTING
+
+ addFormatToken('D', ['DD', 2], 'Do', 'date');
+
+ // ALIASES
+
+ addUnitAlias('date', 'D');
+
+ // PARSING
+
+ addRegexToken('D', match1to2);
+ addRegexToken('DD', match1to2, match2);
+ addRegexToken('Do', function (isStrict, locale) {
+ return isStrict ? locale._ordinalParse : locale._ordinalParseLenient;
+ });
+
+ addParseToken(['D', 'DD'], DATE);
+ addParseToken('Do', function (input, array) {
+ array[DATE] = toInt(input.match(match1to2)[0], 10);
+ });
+
+ // MOMENTS
+
+ var getSetDayOfMonth = makeGetSet('Date', true);
+
+ // FORMATTING
+
+ addFormatToken('d', 0, 'do', 'day');
+
+ addFormatToken('dd', 0, 0, function (format) {
+ return this.localeData().weekdaysMin(this, format);
+ });
+
+ addFormatToken('ddd', 0, 0, function (format) {
+ return this.localeData().weekdaysShort(this, format);
+ });
+
+ addFormatToken('dddd', 0, 0, function (format) {
+ return this.localeData().weekdays(this, format);
+ });
+
+ addFormatToken('e', 0, 0, 'weekday');
+ addFormatToken('E', 0, 0, 'isoWeekday');
+
+ // ALIASES
+
+ addUnitAlias('day', 'd');
+ addUnitAlias('weekday', 'e');
+ addUnitAlias('isoWeekday', 'E');
+
+ // PARSING
+
+ addRegexToken('d', match1to2);
+ addRegexToken('e', match1to2);
+ addRegexToken('E', match1to2);
+ addRegexToken('dd', matchWord);
+ addRegexToken('ddd', matchWord);
+ addRegexToken('dddd', matchWord);
+
+ addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
+ var weekday = config._locale.weekdaysParse(input, token, config._strict);
+ // if we didn't get a weekday name, mark the date as invalid
+ if (weekday != null) {
+ week.d = weekday;
+ } else {
+ getParsingFlags(config).invalidWeekday = input;
+ }
+ });
+
+ addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
+ week[token] = toInt(input);
+ });
+
+ // HELPERS
+
+ function parseWeekday(input, locale) {
+ if (typeof input !== 'string') {
+ return input;
+ }
+
+ if (!isNaN(input)) {
+ return parseInt(input, 10);
+ }
+
+ input = locale.weekdaysParse(input);
+ if (typeof input === 'number') {
+ return input;
+ }
+
+ return null;
+ }
+
+ // LOCALES
+
+ var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
+ function localeWeekdays (m, format) {
+ return isArray(this._weekdays) ? this._weekdays[m.day()] :
+ this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];
+ }
+
+ var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
+ function localeWeekdaysShort (m) {
+ return this._weekdaysShort[m.day()];
+ }
+
+ var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
+ function localeWeekdaysMin (m) {
+ return this._weekdaysMin[m.day()];
+ }
+
+ function localeWeekdaysParse (weekdayName, format, strict) {
+ var i, mom, regex;
+
+ if (!this._weekdaysParse) {
+ this._weekdaysParse = [];
+ this._minWeekdaysParse = [];
+ this._shortWeekdaysParse = [];
+ this._fullWeekdaysParse = [];
+ }
+
+ for (i = 0; i < 7; i++) {
+ // make the regex if we don't have it already
+
+ mom = local__createLocal([2000, 1]).day(i);
+ if (strict && !this._fullWeekdaysParse[i]) {
+ this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i');
+ this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i');
+ this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i');
+ }
+ if (!this._weekdaysParse[i]) {
+ regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
+ this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
+ }
+ // test the regex
+ if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
+ return i;
+ } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
+ return i;
+ } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
+ return i;
+ } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
+ return i;
+ }
+ }
+ }
+
+ // MOMENTS
+
+ function getSetDayOfWeek (input) {
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+ var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
+ if (input != null) {
+ input = parseWeekday(input, this.localeData());
+ return this.add(input - day, 'd');
+ } else {
+ return day;
+ }
+ }
+
+ function getSetLocaleDayOfWeek (input) {
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+ var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
+ return input == null ? weekday : this.add(input - weekday, 'd');
+ }
+
+ function getSetISODayOfWeek (input) {
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+ // behaves the same as moment#day except
+ // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
+ // as a setter, sunday should belong to the previous week.
+ return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7);
+ }
+
+ // FORMATTING
+
+ addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
+
+ // ALIASES
+
+ addUnitAlias('dayOfYear', 'DDD');
+
+ // PARSING
+
+ addRegexToken('DDD', match1to3);
+ addRegexToken('DDDD', match3);
+ addParseToken(['DDD', 'DDDD'], function (input, array, config) {
+ config._dayOfYear = toInt(input);
+ });
+
+ // HELPERS
+
+ // MOMENTS
+
+ function getSetDayOfYear (input) {
+ var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
+ return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
+ }
+
+ // FORMATTING
+
+ function hFormat() {
+ return this.hours() % 12 || 12;
+ }
+
+ addFormatToken('H', ['HH', 2], 0, 'hour');
+ addFormatToken('h', ['hh', 2], 0, hFormat);
+
+ addFormatToken('hmm', 0, 0, function () {
+ return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
+ });
+
+ addFormatToken('hmmss', 0, 0, function () {
+ return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
+ zeroFill(this.seconds(), 2);
+ });
+
+ addFormatToken('Hmm', 0, 0, function () {
+ return '' + this.hours() + zeroFill(this.minutes(), 2);
+ });
+
+ addFormatToken('Hmmss', 0, 0, function () {
+ return '' + this.hours() + zeroFill(this.minutes(), 2) +
+ zeroFill(this.seconds(), 2);
+ });
+
+ function meridiem (token, lowercase) {
+ addFormatToken(token, 0, 0, function () {
+ return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
+ });
+ }
+
+ meridiem('a', true);
+ meridiem('A', false);
+
+ // ALIASES
+
+ addUnitAlias('hour', 'h');
+
+ // PARSING
+
+ function matchMeridiem (isStrict, locale) {
+ return locale._meridiemParse;
+ }
+
+ addRegexToken('a', matchMeridiem);
+ addRegexToken('A', matchMeridiem);
+ addRegexToken('H', match1to2);
+ addRegexToken('h', match1to2);
+ addRegexToken('HH', match1to2, match2);
+ addRegexToken('hh', match1to2, match2);
+
+ addRegexToken('hmm', match3to4);
+ addRegexToken('hmmss', match5to6);
+ addRegexToken('Hmm', match3to4);
+ addRegexToken('Hmmss', match5to6);
+
+ addParseToken(['H', 'HH'], HOUR);
+ addParseToken(['a', 'A'], function (input, array, config) {
+ config._isPm = config._locale.isPM(input);
+ config._meridiem = input;
+ });
+ addParseToken(['h', 'hh'], function (input, array, config) {
+ array[HOUR] = toInt(input);
+ getParsingFlags(config).bigHour = true;
+ });
+ addParseToken('hmm', function (input, array, config) {
+ var pos = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos));
+ array[MINUTE] = toInt(input.substr(pos));
+ getParsingFlags(config).bigHour = true;
+ });
+ addParseToken('hmmss', function (input, array, config) {
+ var pos1 = input.length - 4;
+ var pos2 = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos1));
+ array[MINUTE] = toInt(input.substr(pos1, 2));
+ array[SECOND] = toInt(input.substr(pos2));
+ getParsingFlags(config).bigHour = true;
+ });
+ addParseToken('Hmm', function (input, array, config) {
+ var pos = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos));
+ array[MINUTE] = toInt(input.substr(pos));
+ });
+ addParseToken('Hmmss', function (input, array, config) {
+ var pos1 = input.length - 4;
+ var pos2 = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos1));
+ array[MINUTE] = toInt(input.substr(pos1, 2));
+ array[SECOND] = toInt(input.substr(pos2));
+ });
+
+ // LOCALES
+
+ function localeIsPM (input) {
+ // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
+ // Using charAt should be more compatible.
+ return ((input + '').toLowerCase().charAt(0) === 'p');
+ }
+
+ var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
+ function localeMeridiem (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'pm' : 'PM';
+ } else {
+ return isLower ? 'am' : 'AM';
+ }
+ }
+
+
+ // MOMENTS
+
+ // Setting the hour should keep the time, because the user explicitly
+ // specified which hour he wants. So trying to maintain the same hour (in
+ // a new timezone) makes sense. Adding/subtracting hours does not follow
+ // this rule.
+ var getSetHour = makeGetSet('Hours', true);
+
+ // FORMATTING
+
+ addFormatToken('m', ['mm', 2], 0, 'minute');
+
+ // ALIASES
+
+ addUnitAlias('minute', 'm');
+
+ // PARSING
+
+ addRegexToken('m', match1to2);
+ addRegexToken('mm', match1to2, match2);
+ addParseToken(['m', 'mm'], MINUTE);
+
+ // MOMENTS
+
+ var getSetMinute = makeGetSet('Minutes', false);
+
+ // FORMATTING
+
+ addFormatToken('s', ['ss', 2], 0, 'second');
+
+ // ALIASES
+
+ addUnitAlias('second', 's');
+
+ // PARSING
+
+ addRegexToken('s', match1to2);
+ addRegexToken('ss', match1to2, match2);
+ addParseToken(['s', 'ss'], SECOND);
+
+ // MOMENTS
+
+ var getSetSecond = makeGetSet('Seconds', false);
+
+ // FORMATTING
+
+ addFormatToken('S', 0, 0, function () {
+ return ~~(this.millisecond() / 100);
+ });
+
+ addFormatToken(0, ['SS', 2], 0, function () {
+ return ~~(this.millisecond() / 10);
+ });
+
+ addFormatToken(0, ['SSS', 3], 0, 'millisecond');
+ addFormatToken(0, ['SSSS', 4], 0, function () {
+ return this.millisecond() * 10;
+ });
+ addFormatToken(0, ['SSSSS', 5], 0, function () {
+ return this.millisecond() * 100;
+ });
+ addFormatToken(0, ['SSSSSS', 6], 0, function () {
+ return this.millisecond() * 1000;
+ });
+ addFormatToken(0, ['SSSSSSS', 7], 0, function () {
+ return this.millisecond() * 10000;
+ });
+ addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
+ return this.millisecond() * 100000;
+ });
+ addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
+ return this.millisecond() * 1000000;
+ });
+
+
+ // ALIASES
+
+ addUnitAlias('millisecond', 'ms');
+
+ // PARSING
+
+ addRegexToken('S', match1to3, match1);
+ addRegexToken('SS', match1to3, match2);
+ addRegexToken('SSS', match1to3, match3);
+
+ var token;
+ for (token = 'SSSS'; token.length <= 9; token += 'S') {
+ addRegexToken(token, matchUnsigned);
+ }
+
+ function parseMs(input, array) {
+ array[MILLISECOND] = toInt(('0.' + input) * 1000);
+ }
+
+ for (token = 'S'; token.length <= 9; token += 'S') {
+ addParseToken(token, parseMs);
+ }
+ // MOMENTS
+
+ var getSetMillisecond = makeGetSet('Milliseconds', false);
+
+ // FORMATTING
+
+ addFormatToken('z', 0, 0, 'zoneAbbr');
+ addFormatToken('zz', 0, 0, 'zoneName');
+
+ // MOMENTS
+
+ function getZoneAbbr () {
+ return this._isUTC ? 'UTC' : '';
+ }
+
+ function getZoneName () {
+ return this._isUTC ? 'Coordinated Universal Time' : '';
+ }
+
+ var momentPrototype__proto = Moment.prototype;
+
+ momentPrototype__proto.add = add_subtract__add;
+ momentPrototype__proto.calendar = moment_calendar__calendar;
+ momentPrototype__proto.clone = clone;
+ momentPrototype__proto.diff = diff;
+ momentPrototype__proto.endOf = endOf;
+ momentPrototype__proto.format = moment_format__format;
+ momentPrototype__proto.from = from;
+ momentPrototype__proto.fromNow = fromNow;
+ momentPrototype__proto.to = to;
+ momentPrototype__proto.toNow = toNow;
+ momentPrototype__proto.get = getSet;
+ momentPrototype__proto.invalidAt = invalidAt;
+ momentPrototype__proto.isAfter = isAfter;
+ momentPrototype__proto.isBefore = isBefore;
+ momentPrototype__proto.isBetween = isBetween;
+ momentPrototype__proto.isSame = isSame;
+ momentPrototype__proto.isSameOrAfter = isSameOrAfter;
+ momentPrototype__proto.isSameOrBefore = isSameOrBefore;
+ momentPrototype__proto.isValid = moment_valid__isValid;
+ momentPrototype__proto.lang = lang;
+ momentPrototype__proto.locale = locale;
+ momentPrototype__proto.localeData = localeData;
+ momentPrototype__proto.max = prototypeMax;
+ momentPrototype__proto.min = prototypeMin;
+ momentPrototype__proto.parsingFlags = parsingFlags;
+ momentPrototype__proto.set = getSet;
+ momentPrototype__proto.startOf = startOf;
+ momentPrototype__proto.subtract = add_subtract__subtract;
+ momentPrototype__proto.toArray = toArray;
+ momentPrototype__proto.toObject = toObject;
+ momentPrototype__proto.toDate = toDate;
+ momentPrototype__proto.toISOString = moment_format__toISOString;
+ momentPrototype__proto.toJSON = toJSON;
+ momentPrototype__proto.toString = toString;
+ momentPrototype__proto.unix = unix;
+ momentPrototype__proto.valueOf = to_type__valueOf;
+ momentPrototype__proto.creationData = creationData;
+
+ // Year
+ momentPrototype__proto.year = getSetYear;
+ momentPrototype__proto.isLeapYear = getIsLeapYear;
+
+ // Week Year
+ momentPrototype__proto.weekYear = getSetWeekYear;
+ momentPrototype__proto.isoWeekYear = getSetISOWeekYear;
+
+ // Quarter
+ momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter;
+
+ // Month
+ momentPrototype__proto.month = getSetMonth;
+ momentPrototype__proto.daysInMonth = getDaysInMonth;
+
+ // Week
+ momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek;
+ momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek;
+ momentPrototype__proto.weeksInYear = getWeeksInYear;
+ momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear;
+
+ // Day
+ momentPrototype__proto.date = getSetDayOfMonth;
+ momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek;
+ momentPrototype__proto.weekday = getSetLocaleDayOfWeek;
+ momentPrototype__proto.isoWeekday = getSetISODayOfWeek;
+ momentPrototype__proto.dayOfYear = getSetDayOfYear;
+
+ // Hour
+ momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour;
+
+ // Minute
+ momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute;
+
+ // Second
+ momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond;
+
+ // Millisecond
+ momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond;
+
+ // Offset
+ momentPrototype__proto.utcOffset = getSetOffset;
+ momentPrototype__proto.utc = setOffsetToUTC;
+ momentPrototype__proto.local = setOffsetToLocal;
+ momentPrototype__proto.parseZone = setOffsetToParsedOffset;
+ momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset;
+ momentPrototype__proto.isDST = isDaylightSavingTime;
+ momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted;
+ momentPrototype__proto.isLocal = isLocal;
+ momentPrototype__proto.isUtcOffset = isUtcOffset;
+ momentPrototype__proto.isUtc = isUtc;
+ momentPrototype__proto.isUTC = isUtc;
+
+ // Timezone
+ momentPrototype__proto.zoneAbbr = getZoneAbbr;
+ momentPrototype__proto.zoneName = getZoneName;
+
+ // Deprecations
+ momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
+ momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
+ momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);
+ momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone);
+
+ var momentPrototype = momentPrototype__proto;
+
+ function moment_moment__createUnix (input) {
+ return local__createLocal(input * 1000);
+ }
+
+ function moment_moment__createInZone () {
+ return local__createLocal.apply(null, arguments).parseZone();
+ }
+
+ var defaultCalendar = {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ };
+
+ function locale_calendar__calendar (key, mom, now) {
+ var output = this._calendar[key];
+ return isFunction(output) ? output.call(mom, now) : output;
+ }
+
+ var defaultLongDateFormat = {
+ LTS : 'h:mm:ss A',
+ LT : 'h:mm A',
+ L : 'MM/DD/YYYY',
+ LL : 'MMMM D, YYYY',
+ LLL : 'MMMM D, YYYY h:mm A',
+ LLLL : 'dddd, MMMM D, YYYY h:mm A'
+ };
+
+ function longDateFormat (key) {
+ var format = this._longDateFormat[key],
+ formatUpper = this._longDateFormat[key.toUpperCase()];
+
+ if (format || !formatUpper) {
+ return format;
+ }
+
+ this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
+ return val.slice(1);
+ });
+
+ return this._longDateFormat[key];
+ }
+
+ var defaultInvalidDate = 'Invalid date';
+
+ function invalidDate () {
+ return this._invalidDate;
+ }
+
+ var defaultOrdinal = '%d';
+ var defaultOrdinalParse = /\d{1,2}/;
+
+ function ordinal (number) {
+ return this._ordinal.replace('%d', number);
+ }
+
+ function preParsePostFormat (string) {
+ return string;
+ }
+
+ var defaultRelativeTime = {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ };
+
+ function relative__relativeTime (number, withoutSuffix, string, isFuture) {
+ var output = this._relativeTime[string];
+ return (isFunction(output)) ?
+ output(number, withoutSuffix, string, isFuture) :
+ output.replace(/%d/i, number);
+ }
+
+ function pastFuture (diff, output) {
+ var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
+ return isFunction(format) ? format(output) : format.replace(/%s/i, output);
+ }
+
+ function locale_set__set (config) {
+ var prop, i;
+ for (i in config) {
+ prop = config[i];
+ if (isFunction(prop)) {
+ this[i] = prop;
+ } else {
+ this['_' + i] = prop;
+ }
+ }
+ // Lenient ordinal parsing accepts just a number in addition to
+ // number + (possibly) stuff coming from _ordinalParseLenient.
+ this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source);
+ }
+
+ var prototype__proto = Locale.prototype;
+
+ prototype__proto._calendar = defaultCalendar;
+ prototype__proto.calendar = locale_calendar__calendar;
+ prototype__proto._longDateFormat = defaultLongDateFormat;
+ prototype__proto.longDateFormat = longDateFormat;
+ prototype__proto._invalidDate = defaultInvalidDate;
+ prototype__proto.invalidDate = invalidDate;
+ prototype__proto._ordinal = defaultOrdinal;
+ prototype__proto.ordinal = ordinal;
+ prototype__proto._ordinalParse = defaultOrdinalParse;
+ prototype__proto.preparse = preParsePostFormat;
+ prototype__proto.postformat = preParsePostFormat;
+ prototype__proto._relativeTime = defaultRelativeTime;
+ prototype__proto.relativeTime = relative__relativeTime;
+ prototype__proto.pastFuture = pastFuture;
+ prototype__proto.set = locale_set__set;
+
+ // Month
+ prototype__proto.months = localeMonths;
+ prototype__proto._months = defaultLocaleMonths;
+ prototype__proto.monthsShort = localeMonthsShort;
+ prototype__proto._monthsShort = defaultLocaleMonthsShort;
+ prototype__proto.monthsParse = localeMonthsParse;
+ prototype__proto._monthsRegex = defaultMonthsRegex;
+ prototype__proto.monthsRegex = monthsRegex;
+ prototype__proto._monthsShortRegex = defaultMonthsShortRegex;
+ prototype__proto.monthsShortRegex = monthsShortRegex;
+
+ // Week
+ prototype__proto.week = localeWeek;
+ prototype__proto._week = defaultLocaleWeek;
+ prototype__proto.firstDayOfYear = localeFirstDayOfYear;
+ prototype__proto.firstDayOfWeek = localeFirstDayOfWeek;
+
+ // Day of Week
+ prototype__proto.weekdays = localeWeekdays;
+ prototype__proto._weekdays = defaultLocaleWeekdays;
+ prototype__proto.weekdaysMin = localeWeekdaysMin;
+ prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin;
+ prototype__proto.weekdaysShort = localeWeekdaysShort;
+ prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort;
+ prototype__proto.weekdaysParse = localeWeekdaysParse;
+
+ // Hours
+ prototype__proto.isPM = localeIsPM;
+ prototype__proto._meridiemParse = defaultLocaleMeridiemParse;
+ prototype__proto.meridiem = localeMeridiem;
+
+ function lists__get (format, index, field, setter) {
+ var locale = locale_locales__getLocale();
+ var utc = create_utc__createUTC().set(setter, index);
+ return locale[field](utc, format);
+ }
+
+ function list (format, index, field, count, setter) {
+ if (typeof format === 'number') {
+ index = format;
+ format = undefined;
+ }
+
+ format = format || '';
+
+ if (index != null) {
+ return lists__get(format, index, field, setter);
+ }
+
+ var i;
+ var out = [];
+ for (i = 0; i < count; i++) {
+ out[i] = lists__get(format, i, field, setter);
+ }
+ return out;
+ }
+
+ function lists__listMonths (format, index) {
+ return list(format, index, 'months', 12, 'month');
+ }
+
+ function lists__listMonthsShort (format, index) {
+ return list(format, index, 'monthsShort', 12, 'month');
+ }
+
+ function lists__listWeekdays (format, index) {
+ return list(format, index, 'weekdays', 7, 'day');
+ }
+
+ function lists__listWeekdaysShort (format, index) {
+ return list(format, index, 'weekdaysShort', 7, 'day');
+ }
+
+ function lists__listWeekdaysMin (format, index) {
+ return list(format, index, 'weekdaysMin', 7, 'day');
+ }
+
+ locale_locales__getSetGlobalLocale('en', {
+ ordinalParse: /\d{1,2}(th|st|nd|rd)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (toInt(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ }
+ });
+
+ // Side effect imports
+ utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale);
+ utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale);
+
+ var mathAbs = Math.abs;
+
+ function duration_abs__abs () {
+ var data = this._data;
+
+ this._milliseconds = mathAbs(this._milliseconds);
+ this._days = mathAbs(this._days);
+ this._months = mathAbs(this._months);
+
+ data.milliseconds = mathAbs(data.milliseconds);
+ data.seconds = mathAbs(data.seconds);
+ data.minutes = mathAbs(data.minutes);
+ data.hours = mathAbs(data.hours);
+ data.months = mathAbs(data.months);
+ data.years = mathAbs(data.years);
+
+ return this;
+ }
+
+ function duration_add_subtract__addSubtract (duration, input, value, direction) {
+ var other = create__createDuration(input, value);
+
+ duration._milliseconds += direction * other._milliseconds;
+ duration._days += direction * other._days;
+ duration._months += direction * other._months;
+
+ return duration._bubble();
+ }
+
+ // supports only 2.0-style add(1, 's') or add(duration)
+ function duration_add_subtract__add (input, value) {
+ return duration_add_subtract__addSubtract(this, input, value, 1);
+ }
+
+ // supports only 2.0-style subtract(1, 's') or subtract(duration)
+ function duration_add_subtract__subtract (input, value) {
+ return duration_add_subtract__addSubtract(this, input, value, -1);
+ }
+
+ function absCeil (number) {
+ if (number < 0) {
+ return Math.floor(number);
+ } else {
+ return Math.ceil(number);
+ }
+ }
+
+ function bubble () {
+ var milliseconds = this._milliseconds;
+ var days = this._days;
+ var months = this._months;
+ var data = this._data;
+ var seconds, minutes, hours, years, monthsFromDays;
+
+ // if we have a mix of positive and negative values, bubble down first
+ // check: https://github.com/moment/moment/issues/2166
+ if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
+ (milliseconds <= 0 && days <= 0 && months <= 0))) {
+ milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
+ days = 0;
+ months = 0;
+ }
+
+ // The following code bubbles up values, see the tests for
+ // examples of what that means.
+ data.milliseconds = milliseconds % 1000;
+
+ seconds = absFloor(milliseconds / 1000);
+ data.seconds = seconds % 60;
+
+ minutes = absFloor(seconds / 60);
+ data.minutes = minutes % 60;
+
+ hours = absFloor(minutes / 60);
+ data.hours = hours % 24;
+
+ days += absFloor(hours / 24);
+
+ // convert days to months
+ monthsFromDays = absFloor(daysToMonths(days));
+ months += monthsFromDays;
+ days -= absCeil(monthsToDays(monthsFromDays));
+
+ // 12 months -> 1 year
+ years = absFloor(months / 12);
+ months %= 12;
+
+ data.days = days;
+ data.months = months;
+ data.years = years;
+
+ return this;
+ }
+
+ function daysToMonths (days) {
+ // 400 years have 146097 days (taking into account leap year rules)
+ // 400 years have 12 months === 4800
+ return days * 4800 / 146097;
+ }
+
+ function monthsToDays (months) {
+ // the reverse of daysToMonths
+ return months * 146097 / 4800;
+ }
+
+ function as (units) {
+ var days;
+ var months;
+ var milliseconds = this._milliseconds;
+
+ units = normalizeUnits(units);
+
+ if (units === 'month' || units === 'year') {
+ days = this._days + milliseconds / 864e5;
+ months = this._months + daysToMonths(days);
+ return units === 'month' ? months : months / 12;
+ } else {
+ // handle milliseconds separately because of floating point math errors (issue #1867)
+ days = this._days + Math.round(monthsToDays(this._months));
+ switch (units) {
+ case 'week' : return days / 7 + milliseconds / 6048e5;
+ case 'day' : return days + milliseconds / 864e5;
+ case 'hour' : return days * 24 + milliseconds / 36e5;
+ case 'minute' : return days * 1440 + milliseconds / 6e4;
+ case 'second' : return days * 86400 + milliseconds / 1000;
+ // Math.floor prevents floating point math errors here
+ case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
+ default: throw new Error('Unknown unit ' + units);
+ }
+ }
+ }
+
+ // TODO: Use this.as('ms')?
+ function duration_as__valueOf () {
+ return (
+ this._milliseconds +
+ this._days * 864e5 +
+ (this._months % 12) * 2592e6 +
+ toInt(this._months / 12) * 31536e6
+ );
+ }
+
+ function makeAs (alias) {
+ return function () {
+ return this.as(alias);
+ };
+ }
+
+ var asMilliseconds = makeAs('ms');
+ var asSeconds = makeAs('s');
+ var asMinutes = makeAs('m');
+ var asHours = makeAs('h');
+ var asDays = makeAs('d');
+ var asWeeks = makeAs('w');
+ var asMonths = makeAs('M');
+ var asYears = makeAs('y');
+
+ function duration_get__get (units) {
+ units = normalizeUnits(units);
+ return this[units + 's']();
+ }
+
+ function makeGetter(name) {
+ return function () {
+ return this._data[name];
+ };
+ }
+
+ var milliseconds = makeGetter('milliseconds');
+ var seconds = makeGetter('seconds');
+ var minutes = makeGetter('minutes');
+ var hours = makeGetter('hours');
+ var days = makeGetter('days');
+ var duration_get__months = makeGetter('months');
+ var years = makeGetter('years');
+
+ function weeks () {
+ return absFloor(this.days() / 7);
+ }
+
+ var round = Math.round;
+ var thresholds = {
+ s: 45, // seconds to minute
+ m: 45, // minutes to hour
+ h: 22, // hours to day
+ d: 26, // days to month
+ M: 11 // months to year
+ };
+
+ // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
+ function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
+ return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
+ }
+
+ function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) {
+ var duration = create__createDuration(posNegDuration).abs();
+ var seconds = round(duration.as('s'));
+ var minutes = round(duration.as('m'));
+ var hours = round(duration.as('h'));
+ var days = round(duration.as('d'));
+ var months = round(duration.as('M'));
+ var years = round(duration.as('y'));
+
+ var a = seconds < thresholds.s && ['s', seconds] ||
+ minutes <= 1 && ['m'] ||
+ minutes < thresholds.m && ['mm', minutes] ||
+ hours <= 1 && ['h'] ||
+ hours < thresholds.h && ['hh', hours] ||
+ days <= 1 && ['d'] ||
+ days < thresholds.d && ['dd', days] ||
+ months <= 1 && ['M'] ||
+ months < thresholds.M && ['MM', months] ||
+ years <= 1 && ['y'] || ['yy', years];
+
+ a[2] = withoutSuffix;
+ a[3] = +posNegDuration > 0;
+ a[4] = locale;
+ return substituteTimeAgo.apply(null, a);
+ }
+
+ // This function allows you to set a threshold for relative time strings
+ function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) {
+ if (thresholds[threshold] === undefined) {
+ return false;
+ }
+ if (limit === undefined) {
+ return thresholds[threshold];
+ }
+ thresholds[threshold] = limit;
+ return true;
+ }
+
+ function humanize (withSuffix) {
+ var locale = this.localeData();
+ var output = duration_humanize__relativeTime(this, !withSuffix, locale);
+
+ if (withSuffix) {
+ output = locale.pastFuture(+this, output);
+ }
+
+ return locale.postformat(output);
+ }
+
+ var iso_string__abs = Math.abs;
+
+ function iso_string__toISOString() {
+ // for ISO strings we do not use the normal bubbling rules:
+ // * milliseconds bubble up until they become hours
+ // * days do not bubble at all
+ // * months bubble up until they become years
+ // This is because there is no context-free conversion between hours and days
+ // (think of clock changes)
+ // and also not between days and months (28-31 days per month)
+ var seconds = iso_string__abs(this._milliseconds) / 1000;
+ var days = iso_string__abs(this._days);
+ var months = iso_string__abs(this._months);
+ var minutes, hours, years;
+
+ // 3600 seconds -> 60 minutes -> 1 hour
+ minutes = absFloor(seconds / 60);
+ hours = absFloor(minutes / 60);
+ seconds %= 60;
+ minutes %= 60;
+
+ // 12 months -> 1 year
+ years = absFloor(months / 12);
+ months %= 12;
+
+
+ // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
+ var Y = years;
+ var M = months;
+ var D = days;
+ var h = hours;
+ var m = minutes;
+ var s = seconds;
+ var total = this.asSeconds();
+
+ if (!total) {
+ // this is the same as C#'s (Noda) and python (isodate)...
+ // but not other JS (goog.date)
+ return 'P0D';
+ }
+
+ return (total < 0 ? '-' : '') +
+ 'P' +
+ (Y ? Y + 'Y' : '') +
+ (M ? M + 'M' : '') +
+ (D ? D + 'D' : '') +
+ ((h || m || s) ? 'T' : '') +
+ (h ? h + 'H' : '') +
+ (m ? m + 'M' : '') +
+ (s ? s + 'S' : '');
+ }
+
+ var duration_prototype__proto = Duration.prototype;
+
+ duration_prototype__proto.abs = duration_abs__abs;
+ duration_prototype__proto.add = duration_add_subtract__add;
+ duration_prototype__proto.subtract = duration_add_subtract__subtract;
+ duration_prototype__proto.as = as;
+ duration_prototype__proto.asMilliseconds = asMilliseconds;
+ duration_prototype__proto.asSeconds = asSeconds;
+ duration_prototype__proto.asMinutes = asMinutes;
+ duration_prototype__proto.asHours = asHours;
+ duration_prototype__proto.asDays = asDays;
+ duration_prototype__proto.asWeeks = asWeeks;
+ duration_prototype__proto.asMonths = asMonths;
+ duration_prototype__proto.asYears = asYears;
+ duration_prototype__proto.valueOf = duration_as__valueOf;
+ duration_prototype__proto._bubble = bubble;
+ duration_prototype__proto.get = duration_get__get;
+ duration_prototype__proto.milliseconds = milliseconds;
+ duration_prototype__proto.seconds = seconds;
+ duration_prototype__proto.minutes = minutes;
+ duration_prototype__proto.hours = hours;
+ duration_prototype__proto.days = days;
+ duration_prototype__proto.weeks = weeks;
+ duration_prototype__proto.months = duration_get__months;
+ duration_prototype__proto.years = years;
+ duration_prototype__proto.humanize = humanize;
+ duration_prototype__proto.toISOString = iso_string__toISOString;
+ duration_prototype__proto.toString = iso_string__toISOString;
+ duration_prototype__proto.toJSON = iso_string__toISOString;
+ duration_prototype__proto.locale = locale;
+ duration_prototype__proto.localeData = localeData;
+
+ // Deprecations
+ duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString);
+ duration_prototype__proto.lang = lang;
+
+ // Side effect imports
+
+ // FORMATTING
+
+ addFormatToken('X', 0, 0, 'unix');
+ addFormatToken('x', 0, 0, 'valueOf');
+
+ // PARSING
+
+ addRegexToken('x', matchSigned);
+ addRegexToken('X', matchTimestamp);
+ addParseToken('X', function (input, array, config) {
+ config._d = new Date(parseFloat(input, 10) * 1000);
+ });
+ addParseToken('x', function (input, array, config) {
+ config._d = new Date(toInt(input));
+ });
+
+ // Side effect imports
+
+ ;
+
+ //! moment.js
+ //! version : 2.11.2
+ //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
+ //! license : MIT
+ //! momentjs.com
+
+ utils_hooks__hooks.version = '2.11.2';
+
+ setHookCallback(local__createLocal);
+
+ utils_hooks__hooks.fn = momentPrototype;
+ utils_hooks__hooks.min = min;
+ utils_hooks__hooks.max = max;
+ utils_hooks__hooks.now = now;
+ utils_hooks__hooks.utc = create_utc__createUTC;
+ utils_hooks__hooks.unix = moment_moment__createUnix;
+ utils_hooks__hooks.months = lists__listMonths;
+ utils_hooks__hooks.isDate = isDate;
+ utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale;
+ utils_hooks__hooks.invalid = valid__createInvalid;
+ utils_hooks__hooks.duration = create__createDuration;
+ utils_hooks__hooks.isMoment = isMoment;
+ utils_hooks__hooks.weekdays = lists__listWeekdays;
+ utils_hooks__hooks.parseZone = moment_moment__createInZone;
+ utils_hooks__hooks.localeData = locale_locales__getLocale;
+ utils_hooks__hooks.isDuration = isDuration;
+ utils_hooks__hooks.monthsShort = lists__listMonthsShort;
+ utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin;
+ utils_hooks__hooks.defineLocale = defineLocale;
+ utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort;
+ utils_hooks__hooks.normalizeUnits = normalizeUnits;
+ utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold;
+ utils_hooks__hooks.prototype = momentPrototype;
+
+ var moment__default = utils_hooks__hooks;
+
+ //! moment.js locale configuration
+ //! locale : afrikaans (af)
+ //! author : Werner Mollentze : https://github.com/wernerm
+
+ var af = moment__default.defineLocale('af', {
+ months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
+ weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
+ weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
+ weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
+ meridiemParse: /vm|nm/i,
+ isPM : function (input) {
+ return /^nm$/i.test(input);
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower ? 'vm' : 'VM';
+ } else {
+ return isLower ? 'nm' : 'NM';
+ }
+ },
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Vandag om] LT',
+ nextDay : '[Môre om] LT',
+ nextWeek : 'dddd [om] LT',
+ lastDay : '[Gister om] LT',
+ lastWeek : '[Laas] dddd [om] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'oor %s',
+ past : '%s gelede',
+ s : '\'n paar sekondes',
+ m : '\'n minuut',
+ mm : '%d minute',
+ h : '\'n uur',
+ hh : '%d ure',
+ d : '\'n dag',
+ dd : '%d dae',
+ M : '\'n maand',
+ MM : '%d maande',
+ y : '\'n jaar',
+ yy : '%d jaar'
+ },
+ ordinalParse: /\d{1,2}(ste|de)/,
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
+ },
+ week : {
+ dow : 1, // Maandag is die eerste dag van die week.
+ doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Moroccan Arabic (ar-ma)
+ //! author : ElFadili Yassine : https://github.com/ElFadiliY
+ //! author : Abdel Said : https://github.com/abdelsaid
+
+ var ar_ma = moment__default.defineLocale('ar-ma', {
+ months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+ monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+ weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'في %s',
+ past : 'منذ %s',
+ s : 'ثوان',
+ m : 'دقيقة',
+ mm : '%d دقائق',
+ h : 'ساعة',
+ hh : '%d ساعات',
+ d : 'يوم',
+ dd : '%d أيام',
+ M : 'شهر',
+ MM : '%d أشهر',
+ y : 'سنة',
+ yy : '%d سنوات'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Arabic Saudi Arabia (ar-sa)
+ //! author : Suhail Alkowaileet : https://github.com/xsoh
+
+ var ar_sa__symbolMap = {
+ '1': '١',
+ '2': '٢',
+ '3': '٣',
+ '4': '٤',
+ '5': '٥',
+ '6': '٦',
+ '7': '٧',
+ '8': '٨',
+ '9': '٩',
+ '0': '٠'
+ }, ar_sa__numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0'
+ };
+
+ var ar_sa = moment__default.defineLocale('ar-sa', {
+ months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /ص|م/,
+ isPM : function (input) {
+ return 'م' === input;
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar : {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'في %s',
+ past : 'منذ %s',
+ s : 'ثوان',
+ m : 'دقيقة',
+ mm : '%d دقائق',
+ h : 'ساعة',
+ hh : '%d ساعات',
+ d : 'يوم',
+ dd : '%d أيام',
+ M : 'شهر',
+ MM : '%d أشهر',
+ y : 'سنة',
+ yy : '%d سنوات'
+ },
+ preparse: function (string) {
+ return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
+ return ar_sa__numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return ar_sa__symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Tunisian Arabic (ar-tn)
+
+ var ar_tn = moment__default.defineLocale('ar-tn', {
+ months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: 'في %s',
+ past: 'منذ %s',
+ s: 'ثوان',
+ m: 'دقيقة',
+ mm: '%d دقائق',
+ h: 'ساعة',
+ hh: '%d ساعات',
+ d: 'يوم',
+ dd: '%d أيام',
+ M: 'شهر',
+ MM: '%d أشهر',
+ y: 'سنة',
+ yy: '%d سنوات'
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! Locale: Arabic (ar)
+ //! Author: Abdel Said: https://github.com/abdelsaid
+ //! Changes in months, weekdays: Ahmed Elkhatib
+ //! Native plural forms: forabi https://github.com/forabi
+
+ var ar__symbolMap = {
+ '1': '١',
+ '2': '٢',
+ '3': '٣',
+ '4': '٤',
+ '5': '٥',
+ '6': '٦',
+ '7': '٧',
+ '8': '٨',
+ '9': '٩',
+ '0': '٠'
+ }, ar__numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0'
+ }, pluralForm = function (n) {
+ return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
+ }, plurals = {
+ s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
+ m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
+ h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
+ d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
+ M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
+ y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
+ }, pluralize = function (u) {
+ return function (number, withoutSuffix, string, isFuture) {
+ var f = pluralForm(number),
+ str = plurals[u][pluralForm(number)];
+ if (f === 2) {
+ str = str[withoutSuffix ? 0 : 1];
+ }
+ return str.replace(/%d/i, number);
+ };
+ }, ar__months = [
+ 'كانون الثاني يناير',
+ 'شباط فبراير',
+ 'آذار مارس',
+ 'نيسان أبريل',
+ 'أيار مايو',
+ 'حزيران يونيو',
+ 'تموز يوليو',
+ 'آب أغسطس',
+ 'أيلول سبتمبر',
+ 'تشرين الأول أكتوبر',
+ 'تشرين الثاني نوفمبر',
+ 'كانون الأول ديسمبر'
+ ];
+
+ var ar = moment__default.defineLocale('ar', {
+ months : ar__months,
+ monthsShort : ar__months,
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'D/\u200FM/\u200FYYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /ص|م/,
+ isPM : function (input) {
+ return 'م' === input;
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar : {
+ sameDay: '[اليوم عند الساعة] LT',
+ nextDay: '[غدًا عند الساعة] LT',
+ nextWeek: 'dddd [عند الساعة] LT',
+ lastDay: '[أمس عند الساعة] LT',
+ lastWeek: 'dddd [عند الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'بعد %s',
+ past : 'منذ %s',
+ s : pluralize('s'),
+ m : pluralize('m'),
+ mm : pluralize('m'),
+ h : pluralize('h'),
+ hh : pluralize('h'),
+ d : pluralize('d'),
+ dd : pluralize('d'),
+ M : pluralize('M'),
+ MM : pluralize('M'),
+ y : pluralize('y'),
+ yy : pluralize('y')
+ },
+ preparse: function (string) {
+ return string.replace(/\u200f/g, '').replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
+ return ar__numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return ar__symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : azerbaijani (az)
+ //! author : topchiyev : https://github.com/topchiyev
+
+ var az__suffixes = {
+ 1: '-inci',
+ 5: '-inci',
+ 8: '-inci',
+ 70: '-inci',
+ 80: '-inci',
+ 2: '-nci',
+ 7: '-nci',
+ 20: '-nci',
+ 50: '-nci',
+ 3: '-üncü',
+ 4: '-üncü',
+ 100: '-üncü',
+ 6: '-ncı',
+ 9: '-uncu',
+ 10: '-uncu',
+ 30: '-uncu',
+ 60: '-ıncı',
+ 90: '-ıncı'
+ };
+
+ var az = moment__default.defineLocale('az', {
+ months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
+ monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
+ weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
+ weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
+ weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[bugün saat] LT',
+ nextDay : '[sabah saat] LT',
+ nextWeek : '[gələn həftə] dddd [saat] LT',
+ lastDay : '[dünən] LT',
+ lastWeek : '[keçən həftə] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s sonra',
+ past : '%s əvvəl',
+ s : 'birneçə saniyyə',
+ m : 'bir dəqiqə',
+ mm : '%d dəqiqə',
+ h : 'bir saat',
+ hh : '%d saat',
+ d : 'bir gün',
+ dd : '%d gün',
+ M : 'bir ay',
+ MM : '%d ay',
+ y : 'bir il',
+ yy : '%d il'
+ },
+ meridiemParse: /gecə|səhər|gündüz|axşam/,
+ isPM : function (input) {
+ return /^(gündüz|axşam)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'gecə';
+ } else if (hour < 12) {
+ return 'səhər';
+ } else if (hour < 17) {
+ return 'gündüz';
+ } else {
+ return 'axşam';
+ }
+ },
+ ordinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
+ ordinal : function (number) {
+ if (number === 0) { // special case for zero
+ return number + '-ıncı';
+ }
+ var a = number % 10,
+ b = number % 100 - a,
+ c = number >= 100 ? 100 : null;
+ return number + (az__suffixes[a] || az__suffixes[b] || az__suffixes[c]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : belarusian (be)
+ //! author : Dmitry Demidov : https://github.com/demidov91
+ //! author: Praleska: http://praleska.pro/
+ //! Author : Menelion Elensúle : https://github.com/Oire
+
+ function be__plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+ function be__relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
+ 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
+ 'dd': 'дзень_дні_дзён',
+ 'MM': 'месяц_месяцы_месяцаў',
+ 'yy': 'год_гады_гадоў'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'хвіліна' : 'хвіліну';
+ }
+ else if (key === 'h') {
+ return withoutSuffix ? 'гадзіна' : 'гадзіну';
+ }
+ else {
+ return number + ' ' + be__plural(format[key], +number);
+ }
+ }
+
+ var be = moment__default.defineLocale('be', {
+ months : {
+ format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),
+ standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')
+ },
+ monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
+ weekdays : {
+ format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),
+ standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
+ isFormat: /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/
+ },
+ weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+ weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY г.',
+ LLL : 'D MMMM YYYY г., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY г., HH:mm'
+ },
+ calendar : {
+ sameDay: '[Сёння ў] LT',
+ nextDay: '[Заўтра ў] LT',
+ lastDay: '[Учора ў] LT',
+ nextWeek: function () {
+ return '[У] dddd [ў] LT';
+ },
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 5:
+ case 6:
+ return '[У мінулую] dddd [ў] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[У мінулы] dddd [ў] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'праз %s',
+ past : '%s таму',
+ s : 'некалькі секунд',
+ m : be__relativeTimeWithPlural,
+ mm : be__relativeTimeWithPlural,
+ h : be__relativeTimeWithPlural,
+ hh : be__relativeTimeWithPlural,
+ d : 'дзень',
+ dd : be__relativeTimeWithPlural,
+ M : 'месяц',
+ MM : be__relativeTimeWithPlural,
+ y : 'год',
+ yy : be__relativeTimeWithPlural
+ },
+ meridiemParse: /ночы|раніцы|дня|вечара/,
+ isPM : function (input) {
+ return /^(дня|вечара)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночы';
+ } else if (hour < 12) {
+ return 'раніцы';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечара';
+ }
+ },
+ ordinalParse: /\d{1,2}-(і|ы|га)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ case 'w':
+ case 'W':
+ return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
+ case 'D':
+ return number + '-га';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : bulgarian (bg)
+ //! author : Krasen Borisov : https://github.com/kraz
+
+ var bg = moment__default.defineLocale('bg', {
+ months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
+ monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
+ weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
+ weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
+ weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'D.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd, D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[Днес в] LT',
+ nextDay : '[Утре в] LT',
+ nextWeek : 'dddd [в] LT',
+ lastDay : '[Вчера в] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[В изминалата] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[В изминалия] dddd [в] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'след %s',
+ past : 'преди %s',
+ s : 'няколко секунди',
+ m : 'минута',
+ mm : '%d минути',
+ h : 'час',
+ hh : '%d часа',
+ d : 'ден',
+ dd : '%d дни',
+ M : 'месец',
+ MM : '%d месеца',
+ y : 'година',
+ yy : '%d години'
+ },
+ ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
+ ordinal : function (number) {
+ var lastDigit = number % 10,
+ last2Digits = number % 100;
+ if (number === 0) {
+ return number + '-ев';
+ } else if (last2Digits === 0) {
+ return number + '-ен';
+ } else if (last2Digits > 10 && last2Digits < 20) {
+ return number + '-ти';
+ } else if (lastDigit === 1) {
+ return number + '-ви';
+ } else if (lastDigit === 2) {
+ return number + '-ри';
+ } else if (lastDigit === 7 || lastDigit === 8) {
+ return number + '-ми';
+ } else {
+ return number + '-ти';
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Bengali (bn)
+ //! author : Kaushik Gandhi : https://github.com/kaushikgandhi
+
+ var bn__symbolMap = {
+ '1': '১',
+ '2': '২',
+ '3': '৩',
+ '4': '৪',
+ '5': '৫',
+ '6': '৬',
+ '7': '৭',
+ '8': '৮',
+ '9': '৯',
+ '0': '০'
+ },
+ bn__numberMap = {
+ '১': '1',
+ '২': '2',
+ '৩': '3',
+ '৪': '4',
+ '৫': '5',
+ '৬': '6',
+ '৭': '7',
+ '৮': '8',
+ '৯': '9',
+ '০': '0'
+ };
+
+ var bn = moment__default.defineLocale('bn', {
+ months : 'জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
+ monthsShort : 'জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্'.split('_'),
+ weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রবার_শনিবার'.split('_'),
+ weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্র_শনি'.split('_'),
+ weekdaysMin : 'রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm সময়',
+ LTS : 'A h:mm:ss সময়',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm সময়',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'
+ },
+ calendar : {
+ sameDay : '[আজ] LT',
+ nextDay : '[আগামীকাল] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[গতকাল] LT',
+ lastWeek : '[গত] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s পরে',
+ past : '%s আগে',
+ s : 'কয়েক সেকেন্ড',
+ m : 'এক মিনিট',
+ mm : '%d মিনিট',
+ h : 'এক ঘন্টা',
+ hh : '%d ঘন্টা',
+ d : 'এক দিন',
+ dd : '%d দিন',
+ M : 'এক মাস',
+ MM : '%d মাস',
+ y : 'এক বছর',
+ yy : '%d বছর'
+ },
+ preparse: function (string) {
+ return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
+ return bn__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return bn__symbolMap[match];
+ });
+ },
+ meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
+ isPM: function (input) {
+ return /^(দুপুর|বিকাল|রাত)$/.test(input);
+ },
+ //Bengali is a vast language its spoken
+ //in different forms in various parts of the world.
+ //I have just generalized with most common one used
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'রাত';
+ } else if (hour < 10) {
+ return 'সকাল';
+ } else if (hour < 17) {
+ return 'দুপুর';
+ } else if (hour < 20) {
+ return 'বিকাল';
+ } else {
+ return 'রাত';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : tibetan (bo)
+ //! author : Thupten N. Chakrishar : https://github.com/vajradog
+
+ var bo__symbolMap = {
+ '1': '༡',
+ '2': '༢',
+ '3': '༣',
+ '4': '༤',
+ '5': '༥',
+ '6': '༦',
+ '7': '༧',
+ '8': '༨',
+ '9': '༩',
+ '0': '༠'
+ },
+ bo__numberMap = {
+ '༡': '1',
+ '༢': '2',
+ '༣': '3',
+ '༤': '4',
+ '༥': '5',
+ '༦': '6',
+ '༧': '7',
+ '༨': '8',
+ '༩': '9',
+ '༠': '0'
+ };
+
+ var bo = moment__default.defineLocale('bo', {
+ months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
+ monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
+ weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
+ weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
+ weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm',
+ LTS : 'A h:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm'
+ },
+ calendar : {
+ sameDay : '[དི་རིང] LT',
+ nextDay : '[སང་ཉིན] LT',
+ nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
+ lastDay : '[ཁ་སང] LT',
+ lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s ལ་',
+ past : '%s སྔན་ལ',
+ s : 'ལམ་སང',
+ m : 'སྐར་མ་གཅིག',
+ mm : '%d སྐར་མ',
+ h : 'ཆུ་ཚོད་གཅིག',
+ hh : '%d ཆུ་ཚོད',
+ d : 'ཉིན་གཅིག',
+ dd : '%d ཉིན་',
+ M : 'ཟླ་བ་གཅིག',
+ MM : '%d ཟླ་བ',
+ y : 'ལོ་གཅིག',
+ yy : '%d ལོ'
+ },
+ preparse: function (string) {
+ return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
+ return bo__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return bo__symbolMap[match];
+ });
+ },
+ meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
+ isPM: function (input) {
+ return /^(ཉིན་གུང|དགོང་དག|མཚན་མོ)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'མཚན་མོ';
+ } else if (hour < 10) {
+ return 'ཞོགས་ཀས';
+ } else if (hour < 17) {
+ return 'ཉིན་གུང';
+ } else if (hour < 20) {
+ return 'དགོང་དག';
+ } else {
+ return 'མཚན་མོ';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : breton (br)
+ //! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
+
+ function relativeTimeWithMutation(number, withoutSuffix, key) {
+ var format = {
+ 'mm': 'munutenn',
+ 'MM': 'miz',
+ 'dd': 'devezh'
+ };
+ return number + ' ' + mutation(format[key], number);
+ }
+ function specialMutationForYears(number) {
+ switch (lastNumber(number)) {
+ case 1:
+ case 3:
+ case 4:
+ case 5:
+ case 9:
+ return number + ' bloaz';
+ default:
+ return number + ' vloaz';
+ }
+ }
+ function lastNumber(number) {
+ if (number > 9) {
+ return lastNumber(number % 10);
+ }
+ return number;
+ }
+ function mutation(text, number) {
+ if (number === 2) {
+ return softMutation(text);
+ }
+ return text;
+ }
+ function softMutation(text) {
+ var mutationTable = {
+ 'm': 'v',
+ 'b': 'v',
+ 'd': 'z'
+ };
+ if (mutationTable[text.charAt(0)] === undefined) {
+ return text;
+ }
+ return mutationTable[text.charAt(0)] + text.substring(1);
+ }
+
+ var br = moment__default.defineLocale('br', {
+ months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
+ monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
+ weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
+ weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
+ weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h[e]mm A',
+ LTS : 'h[e]mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D [a viz] MMMM YYYY',
+ LLL : 'D [a viz] MMMM YYYY h[e]mm A',
+ LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'
+ },
+ calendar : {
+ sameDay : '[Hiziv da] LT',
+ nextDay : '[Warc\'hoazh da] LT',
+ nextWeek : 'dddd [da] LT',
+ lastDay : '[Dec\'h da] LT',
+ lastWeek : 'dddd [paset da] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'a-benn %s',
+ past : '%s \'zo',
+ s : 'un nebeud segondennoù',
+ m : 'ur vunutenn',
+ mm : relativeTimeWithMutation,
+ h : 'un eur',
+ hh : '%d eur',
+ d : 'un devezh',
+ dd : relativeTimeWithMutation,
+ M : 'ur miz',
+ MM : relativeTimeWithMutation,
+ y : 'ur bloaz',
+ yy : specialMutationForYears
+ },
+ ordinalParse: /\d{1,2}(añ|vet)/,
+ ordinal : function (number) {
+ var output = (number === 1) ? 'añ' : 'vet';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : bosnian (bs)
+ //! author : Nedim Cholich : https://github.com/frontyard
+ //! based on (hr) translation by Bojan Marković
+
+ function bs__translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ var bs = moment__default.defineLocale('bs', {
+ months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
+ monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
+ weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
+ weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+ weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[danas u] LT',
+ nextDay : '[sutra u] LT',
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[jučer u] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ return '[prošlu] dddd [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'prije %s',
+ s : 'par sekundi',
+ m : bs__translate,
+ mm : bs__translate,
+ h : bs__translate,
+ hh : bs__translate,
+ d : 'dan',
+ dd : bs__translate,
+ M : 'mjesec',
+ MM : bs__translate,
+ y : 'godinu',
+ yy : bs__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : catalan (ca)
+ //! author : Juan G. Hurtado : https://github.com/juanghurtado
+
+ var ca = moment__default.defineLocale('ca', {
+ months : 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
+ monthsShort : 'gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.'.split('_'),
+ weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
+ weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
+ weekdaysMin : 'Dg_Dl_Dt_Dc_Dj_Dv_Ds'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ nextDay : function () {
+ return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ lastDay : function () {
+ return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ lastWeek : function () {
+ return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'en %s',
+ past : 'fa %s',
+ s : 'uns segons',
+ m : 'un minut',
+ mm : '%d minuts',
+ h : 'una hora',
+ hh : '%d hores',
+ d : 'un dia',
+ dd : '%d dies',
+ M : 'un mes',
+ MM : '%d mesos',
+ y : 'un any',
+ yy : '%d anys'
+ },
+ ordinalParse: /\d{1,2}(r|n|t|è|a)/,
+ ordinal : function (number, period) {
+ var output = (number === 1) ? 'r' :
+ (number === 2) ? 'n' :
+ (number === 3) ? 'r' :
+ (number === 4) ? 't' : 'è';
+ if (period === 'w' || period === 'W') {
+ output = 'a';
+ }
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : czech (cs)
+ //! author : petrbela : https://github.com/petrbela
+
+ var cs__months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
+ cs__monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
+ function cs__plural(n) {
+ return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
+ }
+ function cs__translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (cs__plural(number) ? 'minuty' : 'minut');
+ } else {
+ return result + 'minutami';
+ }
+ break;
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (cs__plural(number) ? 'hodiny' : 'hodin');
+ } else {
+ return result + 'hodinami';
+ }
+ break;
+ case 'd': // a day / in a day / a day ago
+ return (withoutSuffix || isFuture) ? 'den' : 'dnem';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (cs__plural(number) ? 'dny' : 'dní');
+ } else {
+ return result + 'dny';
+ }
+ break;
+ case 'M': // a month / in a month / a month ago
+ return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (cs__plural(number) ? 'měsíce' : 'měsíců');
+ } else {
+ return result + 'měsíci';
+ }
+ break;
+ case 'y': // a year / in a year / a year ago
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (cs__plural(number) ? 'roky' : 'let');
+ } else {
+ return result + 'lety';
+ }
+ break;
+ }
+ }
+
+ var cs = moment__default.defineLocale('cs', {
+ months : cs__months,
+ monthsShort : cs__monthsShort,
+ monthsParse : (function (months, monthsShort) {
+ var i, _monthsParse = [];
+ for (i = 0; i < 12; i++) {
+ // use custom parser to solve problem with July (červenec)
+ _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
+ }
+ return _monthsParse;
+ }(cs__months, cs__monthsShort)),
+ shortMonthsParse : (function (monthsShort) {
+ var i, _shortMonthsParse = [];
+ for (i = 0; i < 12; i++) {
+ _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');
+ }
+ return _shortMonthsParse;
+ }(cs__monthsShort)),
+ longMonthsParse : (function (months) {
+ var i, _longMonthsParse = [];
+ for (i = 0; i < 12; i++) {
+ _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');
+ }
+ return _longMonthsParse;
+ }(cs__months)),
+ weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
+ weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
+ weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
+ longDateFormat : {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay: '[dnes v] LT',
+ nextDay: '[zítra v] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v neděli v] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [v] LT';
+ case 3:
+ return '[ve středu v] LT';
+ case 4:
+ return '[ve čtvrtek v] LT';
+ case 5:
+ return '[v pátek v] LT';
+ case 6:
+ return '[v sobotu v] LT';
+ }
+ },
+ lastDay: '[včera v] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulou neděli v] LT';
+ case 1:
+ case 2:
+ return '[minulé] dddd [v] LT';
+ case 3:
+ return '[minulou středu v] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [v] LT';
+ case 6:
+ return '[minulou sobotu v] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'před %s',
+ s : cs__translate,
+ m : cs__translate,
+ mm : cs__translate,
+ h : cs__translate,
+ hh : cs__translate,
+ d : cs__translate,
+ dd : cs__translate,
+ M : cs__translate,
+ MM : cs__translate,
+ y : cs__translate,
+ yy : cs__translate
+ },
+ ordinalParse : /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : chuvash (cv)
+ //! author : Anatoly Mironov : https://github.com/mirontoli
+
+ var cv = moment__default.defineLocale('cv', {
+ months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),
+ monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
+ weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),
+ weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
+ weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
+ LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
+ LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'
+ },
+ calendar : {
+ sameDay: '[Паян] LT [сехетре]',
+ nextDay: '[Ыран] LT [сехетре]',
+ lastDay: '[Ӗнер] LT [сехетре]',
+ nextWeek: '[Ҫитес] dddd LT [сехетре]',
+ lastWeek: '[Иртнӗ] dddd LT [сехетре]',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : function (output) {
+ var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';
+ return output + affix;
+ },
+ past : '%s каялла',
+ s : 'пӗр-ик ҫеккунт',
+ m : 'пӗр минут',
+ mm : '%d минут',
+ h : 'пӗр сехет',
+ hh : '%d сехет',
+ d : 'пӗр кун',
+ dd : '%d кун',
+ M : 'пӗр уйӑх',
+ MM : '%d уйӑх',
+ y : 'пӗр ҫул',
+ yy : '%d ҫул'
+ },
+ ordinalParse: /\d{1,2}-мӗш/,
+ ordinal : '%d-мӗш',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Welsh (cy)
+ //! author : Robert Allen
+
+ var cy = moment__default.defineLocale('cy', {
+ months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
+ monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
+ weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
+ weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
+ weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
+ // time formats are the same as en-gb
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[Heddiw am] LT',
+ nextDay: '[Yfory am] LT',
+ nextWeek: 'dddd [am] LT',
+ lastDay: '[Ddoe am] LT',
+ lastWeek: 'dddd [diwethaf am] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: 'mewn %s',
+ past: '%s yn ôl',
+ s: 'ychydig eiliadau',
+ m: 'munud',
+ mm: '%d munud',
+ h: 'awr',
+ hh: '%d awr',
+ d: 'diwrnod',
+ dd: '%d diwrnod',
+ M: 'mis',
+ MM: '%d mis',
+ y: 'blwyddyn',
+ yy: '%d flynedd'
+ },
+ ordinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
+ // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
+ ordinal: function (number) {
+ var b = number,
+ output = '',
+ lookup = [
+ '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
+ 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
+ ];
+ if (b > 20) {
+ if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
+ output = 'fed'; // not 30ain, 70ain or 90ain
+ } else {
+ output = 'ain';
+ }
+ } else if (b > 0) {
+ output = lookup[b];
+ }
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : danish (da)
+ //! author : Ulrik Nielsen : https://github.com/mrbase
+
+ var da = moment__default.defineLocale('da', {
+ months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
+ weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
+ weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY HH:mm',
+ LLLL : 'dddd [d.] D. MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[I dag kl.] LT',
+ nextDay : '[I morgen kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[I går kl.] LT',
+ lastWeek : '[sidste] dddd [kl] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : '%s siden',
+ s : 'få sekunder',
+ m : 'et minut',
+ mm : '%d minutter',
+ h : 'en time',
+ hh : '%d timer',
+ d : 'en dag',
+ dd : '%d dage',
+ M : 'en måned',
+ MM : '%d måneder',
+ y : 'et år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : austrian german (de-at)
+ //! author : lluchs : https://github.com/lluchs
+ //! author: Menelion Elensúle: https://github.com/Oire
+ //! author : Martin Groller : https://github.com/MadMG
+ //! author : Mikolaj Dadela : https://github.com/mik01aj
+
+ function de_at__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eine Minute', 'einer Minute'],
+ 'h': ['eine Stunde', 'einer Stunde'],
+ 'd': ['ein Tag', 'einem Tag'],
+ 'dd': [number + ' Tage', number + ' Tagen'],
+ 'M': ['ein Monat', 'einem Monat'],
+ 'MM': [number + ' Monate', number + ' Monaten'],
+ 'y': ['ein Jahr', 'einem Jahr'],
+ 'yy': [number + ' Jahre', number + ' Jahren']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ var de_at = moment__default.defineLocale('de-at', {
+ months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
+ weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+ weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY HH:mm',
+ LLLL : 'dddd, D. MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[heute um] LT [Uhr]',
+ sameElse: 'L',
+ nextDay: '[morgen um] LT [Uhr]',
+ nextWeek: 'dddd [um] LT [Uhr]',
+ lastDay: '[gestern um] LT [Uhr]',
+ lastWeek: '[letzten] dddd [um] LT [Uhr]'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : 'vor %s',
+ s : 'ein paar Sekunden',
+ m : de_at__processRelativeTime,
+ mm : '%d Minuten',
+ h : de_at__processRelativeTime,
+ hh : '%d Stunden',
+ d : de_at__processRelativeTime,
+ dd : de_at__processRelativeTime,
+ M : de_at__processRelativeTime,
+ MM : de_at__processRelativeTime,
+ y : de_at__processRelativeTime,
+ yy : de_at__processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : german (de)
+ //! author : lluchs : https://github.com/lluchs
+ //! author: Menelion Elensúle: https://github.com/Oire
+ //! author : Mikolaj Dadela : https://github.com/mik01aj
+
+ function de__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eine Minute', 'einer Minute'],
+ 'h': ['eine Stunde', 'einer Stunde'],
+ 'd': ['ein Tag', 'einem Tag'],
+ 'dd': [number + ' Tage', number + ' Tagen'],
+ 'M': ['ein Monat', 'einem Monat'],
+ 'MM': [number + ' Monate', number + ' Monaten'],
+ 'y': ['ein Jahr', 'einem Jahr'],
+ 'yy': [number + ' Jahre', number + ' Jahren']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ var de = moment__default.defineLocale('de', {
+ months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
+ weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+ weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY HH:mm',
+ LLLL : 'dddd, D. MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[heute um] LT [Uhr]',
+ sameElse: 'L',
+ nextDay: '[morgen um] LT [Uhr]',
+ nextWeek: 'dddd [um] LT [Uhr]',
+ lastDay: '[gestern um] LT [Uhr]',
+ lastWeek: '[letzten] dddd [um] LT [Uhr]'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : 'vor %s',
+ s : 'ein paar Sekunden',
+ m : de__processRelativeTime,
+ mm : '%d Minuten',
+ h : de__processRelativeTime,
+ hh : '%d Stunden',
+ d : de__processRelativeTime,
+ dd : de__processRelativeTime,
+ M : de__processRelativeTime,
+ MM : de__processRelativeTime,
+ y : de__processRelativeTime,
+ yy : de__processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : dhivehi (dv)
+ //! author : Jawish Hameed : https://github.com/jawish
+
+ var dv__months = [
+ 'ޖެނުއަރީ',
+ 'ފެބްރުއަރީ',
+ 'މާރިޗު',
+ 'އޭޕްރީލު',
+ 'މޭ',
+ 'ޖޫން',
+ 'ޖުލައި',
+ 'އޯގަސްޓު',
+ 'ސެޕްޓެމްބަރު',
+ 'އޮކްޓޯބަރު',
+ 'ނޮވެމްބަރު',
+ 'ޑިސެމްބަރު'
+ ], dv__weekdays = [
+ 'އާދިއްތަ',
+ 'ހޯމަ',
+ 'އަންގާރަ',
+ 'ބުދަ',
+ 'ބުރާސްފަތި',
+ 'ހުކުރު',
+ 'ހޮނިހިރު'
+ ];
+
+ var dv = moment__default.defineLocale('dv', {
+ months : dv__months,
+ monthsShort : dv__months,
+ weekdays : dv__weekdays,
+ weekdaysShort : dv__weekdays,
+ weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
+ longDateFormat : {
+
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'D/M/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /މކ|މފ/,
+ isPM : function (input) {
+ return '' === input;
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'މކ';
+ } else {
+ return 'މފ';
+ }
+ },
+ calendar : {
+ sameDay : '[މިއަދު] LT',
+ nextDay : '[މާދަމާ] LT',
+ nextWeek : 'dddd LT',
+ lastDay : '[އިއްޔެ] LT',
+ lastWeek : '[ފާއިތުވި] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'ތެރޭގައި %s',
+ past : 'ކުރިން %s',
+ s : 'ސިކުންތުކޮޅެއް',
+ m : 'މިނިޓެއް',
+ mm : 'މިނިޓު %d',
+ h : 'ގަޑިއިރެއް',
+ hh : 'ގަޑިއިރު %d',
+ d : 'ދުވަހެއް',
+ dd : 'ދުވަސް %d',
+ M : 'މަހެއް',
+ MM : 'މަސް %d',
+ y : 'އަހަރެއް',
+ yy : 'އަހަރު %d'
+ },
+ preparse: function (string) {
+ return string.replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/,/g, '،');
+ },
+ week : {
+ dow : 7, // Sunday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : modern greek (el)
+ //! author : Aggelos Karalias : https://github.com/mehiel
+
+ var el = moment__default.defineLocale('el', {
+ monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
+ monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
+ months : function (momentToFormat, format) {
+ if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
+ return this._monthsGenitiveEl[momentToFormat.month()];
+ } else {
+ return this._monthsNominativeEl[momentToFormat.month()];
+ }
+ },
+ monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
+ weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
+ weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
+ weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'μμ' : 'ΜΜ';
+ } else {
+ return isLower ? 'πμ' : 'ΠΜ';
+ }
+ },
+ isPM : function (input) {
+ return ((input + '').toLowerCase()[0] === 'μ');
+ },
+ meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendarEl : {
+ sameDay : '[Σήμερα {}] LT',
+ nextDay : '[Αύριο {}] LT',
+ nextWeek : 'dddd [{}] LT',
+ lastDay : '[Χθες {}] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 6:
+ return '[το προηγούμενο] dddd [{}] LT';
+ default:
+ return '[την προηγούμενη] dddd [{}] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ calendar : function (key, mom) {
+ var output = this._calendarEl[key],
+ hours = mom && mom.hours();
+ if (isFunction(output)) {
+ output = output.apply(mom);
+ }
+ return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
+ },
+ relativeTime : {
+ future : 'σε %s',
+ past : '%s πριν',
+ s : 'λίγα δευτερόλεπτα',
+ m : 'ένα λεπτό',
+ mm : '%d λεπτά',
+ h : 'μία ώρα',
+ hh : '%d ώρες',
+ d : 'μία μέρα',
+ dd : '%d μέρες',
+ M : 'ένας μήνας',
+ MM : '%d μήνες',
+ y : 'ένας χρόνος',
+ yy : '%d χρόνια'
+ },
+ ordinalParse: /\d{1,2}η/,
+ ordinal: '%dη',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : australian english (en-au)
+
+ var en_au = moment__default.defineLocale('en-au', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : canadian english (en-ca)
+ //! author : Jonathan Abourbih : https://github.com/jonbca
+
+ var en_ca = moment__default.defineLocale('en-ca', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM, YYYY',
+ LLL : 'D MMMM, YYYY h:mm A',
+ LLLL : 'dddd, D MMMM, YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : great britain english (en-gb)
+ //! author : Chris Gedrim : https://github.com/chrisgedrim
+
+ var en_gb = moment__default.defineLocale('en-gb', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Irish english (en-ie)
+ //! author : Chris Cartlidge : https://github.com/chriscartlidge
+
+ var en_ie = moment__default.defineLocale('en-ie', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : New Zealand english (en-nz)
+
+ var en_nz = moment__default.defineLocale('en-nz', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : esperanto (eo)
+ //! author : Colin Dean : https://github.com/colindean
+ //! komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko.
+ //! Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni!
+
+ var eo = moment__default.defineLocale('eo', {
+ months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
+ weekdays : 'Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato'.split('_'),
+ weekdaysShort : 'Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Ĵa_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'D[-an de] MMMM, YYYY',
+ LLL : 'D[-an de] MMMM, YYYY HH:mm',
+ LLLL : 'dddd, [la] D[-an de] MMMM, YYYY HH:mm'
+ },
+ meridiemParse: /[ap]\.t\.m/i,
+ isPM: function (input) {
+ return input.charAt(0).toLowerCase() === 'p';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'p.t.m.' : 'P.T.M.';
+ } else {
+ return isLower ? 'a.t.m.' : 'A.T.M.';
+ }
+ },
+ calendar : {
+ sameDay : '[Hodiaŭ je] LT',
+ nextDay : '[Morgaŭ je] LT',
+ nextWeek : 'dddd [je] LT',
+ lastDay : '[Hieraŭ je] LT',
+ lastWeek : '[pasinta] dddd [je] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'je %s',
+ past : 'antaŭ %s',
+ s : 'sekundoj',
+ m : 'minuto',
+ mm : '%d minutoj',
+ h : 'horo',
+ hh : '%d horoj',
+ d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
+ dd : '%d tagoj',
+ M : 'monato',
+ MM : '%d monatoj',
+ y : 'jaro',
+ yy : '%d jaroj'
+ },
+ ordinalParse: /\d{1,2}a/,
+ ordinal : '%da',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : spanish (es)
+ //! author : Julio Napurí : https://github.com/julionc
+
+ var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
+ es__monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
+
+ var es = moment__default.defineLocale('es', {
+ months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return es__monthsShort[m.month()];
+ } else {
+ return monthsShortDot[m.month()];
+ }
+ },
+ weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+ weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+ weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY H:mm',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ nextDay : function () {
+ return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ lastDay : function () {
+ return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ lastWeek : function () {
+ return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'en %s',
+ past : 'hace %s',
+ s : 'unos segundos',
+ m : 'un minuto',
+ mm : '%d minutos',
+ h : 'una hora',
+ hh : '%d horas',
+ d : 'un día',
+ dd : '%d días',
+ M : 'un mes',
+ MM : '%d meses',
+ y : 'un año',
+ yy : '%d años'
+ },
+ ordinalParse : /\d{1,2}º/,
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : estonian (et)
+ //! author : Henry Kehlmann : https://github.com/madhenry
+ //! improvements : Illimar Tambek : https://github.com/ragulka
+
+ function et__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
+ 'm' : ['ühe minuti', 'üks minut'],
+ 'mm': [number + ' minuti', number + ' minutit'],
+ 'h' : ['ühe tunni', 'tund aega', 'üks tund'],
+ 'hh': [number + ' tunni', number + ' tundi'],
+ 'd' : ['ühe päeva', 'üks päev'],
+ 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
+ 'MM': [number + ' kuu', number + ' kuud'],
+ 'y' : ['ühe aasta', 'aasta', 'üks aasta'],
+ 'yy': [number + ' aasta', number + ' aastat']
+ };
+ if (withoutSuffix) {
+ return format[key][2] ? format[key][2] : format[key][1];
+ }
+ return isFuture ? format[key][0] : format[key][1];
+ }
+
+ var et = moment__default.defineLocale('et', {
+ months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
+ monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
+ weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
+ weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
+ weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[Täna,] LT',
+ nextDay : '[Homme,] LT',
+ nextWeek : '[Järgmine] dddd LT',
+ lastDay : '[Eile,] LT',
+ lastWeek : '[Eelmine] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s pärast',
+ past : '%s tagasi',
+ s : et__processRelativeTime,
+ m : et__processRelativeTime,
+ mm : et__processRelativeTime,
+ h : et__processRelativeTime,
+ hh : et__processRelativeTime,
+ d : et__processRelativeTime,
+ dd : '%d päeva',
+ M : et__processRelativeTime,
+ MM : et__processRelativeTime,
+ y : et__processRelativeTime,
+ yy : et__processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : euskara (eu)
+ //! author : Eneko Illarramendi : https://github.com/eillarra
+
+ var eu = moment__default.defineLocale('eu', {
+ months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
+ monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
+ weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
+ weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
+ weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY[ko] MMMM[ren] D[a]',
+ LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',
+ LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
+ l : 'YYYY-M-D',
+ ll : 'YYYY[ko] MMM D[a]',
+ lll : 'YYYY[ko] MMM D[a] HH:mm',
+ llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'
+ },
+ calendar : {
+ sameDay : '[gaur] LT[etan]',
+ nextDay : '[bihar] LT[etan]',
+ nextWeek : 'dddd LT[etan]',
+ lastDay : '[atzo] LT[etan]',
+ lastWeek : '[aurreko] dddd LT[etan]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s barru',
+ past : 'duela %s',
+ s : 'segundo batzuk',
+ m : 'minutu bat',
+ mm : '%d minutu',
+ h : 'ordu bat',
+ hh : '%d ordu',
+ d : 'egun bat',
+ dd : '%d egun',
+ M : 'hilabete bat',
+ MM : '%d hilabete',
+ y : 'urte bat',
+ yy : '%d urte'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Persian (fa)
+ //! author : Ebrahim Byagowi : https://github.com/ebraminio
+
+ var fa__symbolMap = {
+ '1': '۱',
+ '2': '۲',
+ '3': '۳',
+ '4': '۴',
+ '5': '۵',
+ '6': '۶',
+ '7': '۷',
+ '8': '۸',
+ '9': '۹',
+ '0': '۰'
+ }, fa__numberMap = {
+ '۱': '1',
+ '۲': '2',
+ '۳': '3',
+ '۴': '4',
+ '۵': '5',
+ '۶': '6',
+ '۷': '7',
+ '۸': '8',
+ '۹': '9',
+ '۰': '0'
+ };
+
+ var fa = moment__default.defineLocale('fa', {
+ months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+ monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+ weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
+ weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
+ weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /قبل از ظهر|بعد از ظهر/,
+ isPM: function (input) {
+ return /بعد از ظهر/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'قبل از ظهر';
+ } else {
+ return 'بعد از ظهر';
+ }
+ },
+ calendar : {
+ sameDay : '[امروز ساعت] LT',
+ nextDay : '[فردا ساعت] LT',
+ nextWeek : 'dddd [ساعت] LT',
+ lastDay : '[دیروز ساعت] LT',
+ lastWeek : 'dddd [پیش] [ساعت] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'در %s',
+ past : '%s پیش',
+ s : 'چندین ثانیه',
+ m : 'یک دقیقه',
+ mm : '%d دقیقه',
+ h : 'یک ساعت',
+ hh : '%d ساعت',
+ d : 'یک روز',
+ dd : '%d روز',
+ M : 'یک ماه',
+ MM : '%d ماه',
+ y : 'یک سال',
+ yy : '%d سال'
+ },
+ preparse: function (string) {
+ return string.replace(/[۰-۹]/g, function (match) {
+ return fa__numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return fa__symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ ordinalParse: /\d{1,2}م/,
+ ordinal : '%dم',
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : finnish (fi)
+ //! author : Tarmo Aidantausta : https://github.com/bleadof
+
+ var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
+ numbersFuture = [
+ 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
+ numbersPast[7], numbersPast[8], numbersPast[9]
+ ];
+ function fi__translate(number, withoutSuffix, key, isFuture) {
+ var result = '';
+ switch (key) {
+ case 's':
+ return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
+ case 'm':
+ return isFuture ? 'minuutin' : 'minuutti';
+ case 'mm':
+ result = isFuture ? 'minuutin' : 'minuuttia';
+ break;
+ case 'h':
+ return isFuture ? 'tunnin' : 'tunti';
+ case 'hh':
+ result = isFuture ? 'tunnin' : 'tuntia';
+ break;
+ case 'd':
+ return isFuture ? 'päivän' : 'päivä';
+ case 'dd':
+ result = isFuture ? 'päivän' : 'päivää';
+ break;
+ case 'M':
+ return isFuture ? 'kuukauden' : 'kuukausi';
+ case 'MM':
+ result = isFuture ? 'kuukauden' : 'kuukautta';
+ break;
+ case 'y':
+ return isFuture ? 'vuoden' : 'vuosi';
+ case 'yy':
+ result = isFuture ? 'vuoden' : 'vuotta';
+ break;
+ }
+ result = verbalNumber(number, isFuture) + ' ' + result;
+ return result;
+ }
+ function verbalNumber(number, isFuture) {
+ return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
+ }
+
+ var fi = moment__default.defineLocale('fi', {
+ months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
+ monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
+ weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
+ weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
+ weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD.MM.YYYY',
+ LL : 'Do MMMM[ta] YYYY',
+ LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',
+ LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
+ l : 'D.M.YYYY',
+ ll : 'Do MMM YYYY',
+ lll : 'Do MMM YYYY, [klo] HH.mm',
+ llll : 'ddd, Do MMM YYYY, [klo] HH.mm'
+ },
+ calendar : {
+ sameDay : '[tänään] [klo] LT',
+ nextDay : '[huomenna] [klo] LT',
+ nextWeek : 'dddd [klo] LT',
+ lastDay : '[eilen] [klo] LT',
+ lastWeek : '[viime] dddd[na] [klo] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s päästä',
+ past : '%s sitten',
+ s : fi__translate,
+ m : fi__translate,
+ mm : fi__translate,
+ h : fi__translate,
+ hh : fi__translate,
+ d : fi__translate,
+ dd : fi__translate,
+ M : fi__translate,
+ MM : fi__translate,
+ y : fi__translate,
+ yy : fi__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : faroese (fo)
+ //! author : Ragnar Johannesen : https://github.com/ragnar123
+
+ var fo = moment__default.defineLocale('fo', {
+ months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
+ weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
+ weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
+ weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D. MMMM, YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Í dag kl.] LT',
+ nextDay : '[Í morgin kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[Í gjár kl.] LT',
+ lastWeek : '[síðstu] dddd [kl] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'um %s',
+ past : '%s síðani',
+ s : 'fá sekund',
+ m : 'ein minutt',
+ mm : '%d minuttir',
+ h : 'ein tími',
+ hh : '%d tímar',
+ d : 'ein dagur',
+ dd : '%d dagar',
+ M : 'ein mánaði',
+ MM : '%d mánaðir',
+ y : 'eitt ár',
+ yy : '%d ár'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : canadian french (fr-ca)
+ //! author : Jonathan Abourbih : https://github.com/jonbca
+
+ var fr_ca = moment__default.defineLocale('fr-ca', {
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Aujourd\'hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dans %s',
+ past : 'il y a %s',
+ s : 'quelques secondes',
+ m : 'une minute',
+ mm : '%d minutes',
+ h : 'une heure',
+ hh : '%d heures',
+ d : 'un jour',
+ dd : '%d jours',
+ M : 'un mois',
+ MM : '%d mois',
+ y : 'un an',
+ yy : '%d ans'
+ },
+ ordinalParse: /\d{1,2}(er|e)/,
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : 'e');
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : swiss french (fr)
+ //! author : Gaspard Bucher : https://github.com/gaspard
+
+ var fr_ch = moment__default.defineLocale('fr-ch', {
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Aujourd\'hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dans %s',
+ past : 'il y a %s',
+ s : 'quelques secondes',
+ m : 'une minute',
+ mm : '%d minutes',
+ h : 'une heure',
+ hh : '%d heures',
+ d : 'un jour',
+ dd : '%d jours',
+ M : 'un mois',
+ MM : '%d mois',
+ y : 'un an',
+ yy : '%d ans'
+ },
+ ordinalParse: /\d{1,2}(er|e)/,
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : 'e');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : french (fr)
+ //! author : John Fischer : https://github.com/jfroffice
+
+ var fr = moment__default.defineLocale('fr', {
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Aujourd\'hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dans %s',
+ past : 'il y a %s',
+ s : 'quelques secondes',
+ m : 'une minute',
+ mm : '%d minutes',
+ h : 'une heure',
+ hh : '%d heures',
+ d : 'un jour',
+ dd : '%d jours',
+ M : 'un mois',
+ MM : '%d mois',
+ y : 'un an',
+ yy : '%d ans'
+ },
+ ordinalParse: /\d{1,2}(er|)/,
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : '');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : frisian (fy)
+ //! author : Robin van der Vliet : https://github.com/robin0van0der0v
+
+ var fy__monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
+ fy__monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
+
+ var fy = moment__default.defineLocale('fy', {
+ months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return fy__monthsShortWithoutDots[m.month()];
+ } else {
+ return fy__monthsShortWithDots[m.month()];
+ }
+ },
+ weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),
+ weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),
+ weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[hjoed om] LT',
+ nextDay: '[moarn om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[juster om] LT',
+ lastWeek: '[ôfrûne] dddd [om] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'oer %s',
+ past : '%s lyn',
+ s : 'in pear sekonden',
+ m : 'ien minút',
+ mm : '%d minuten',
+ h : 'ien oere',
+ hh : '%d oeren',
+ d : 'ien dei',
+ dd : '%d dagen',
+ M : 'ien moanne',
+ MM : '%d moannen',
+ y : 'ien jier',
+ yy : '%d jierren'
+ },
+ ordinalParse: /\d{1,2}(ste|de)/,
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : great britain scottish gealic (gd)
+ //! author : Jon Ashdown : https://github.com/jonashdown
+
+ var gd__months = [
+ 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'
+ ];
+
+ var gd__monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];
+
+ var gd__weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];
+
+ var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];
+
+ var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
+
+ var gd = moment__default.defineLocale('gd', {
+ months : gd__months,
+ monthsShort : gd__monthsShort,
+ monthsParseExact : true,
+ weekdays : gd__weekdays,
+ weekdaysShort : weekdaysShort,
+ weekdaysMin : weekdaysMin,
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[An-diugh aig] LT',
+ nextDay : '[A-màireach aig] LT',
+ nextWeek : 'dddd [aig] LT',
+ lastDay : '[An-dè aig] LT',
+ lastWeek : 'dddd [seo chaidh] [aig] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'ann an %s',
+ past : 'bho chionn %s',
+ s : 'beagan diogan',
+ m : 'mionaid',
+ mm : '%d mionaidean',
+ h : 'uair',
+ hh : '%d uairean',
+ d : 'latha',
+ dd : '%d latha',
+ M : 'mìos',
+ MM : '%d mìosan',
+ y : 'bliadhna',
+ yy : '%d bliadhna'
+ },
+ ordinalParse : /\d{1,2}(d|na|mh)/,
+ ordinal : function (number) {
+ var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : galician (gl)
+ //! author : Juan G. Hurtado : https://github.com/juanghurtado
+
+ var gl = moment__default.defineLocale('gl', {
+ months : 'Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro'.split('_'),
+ monthsShort : 'Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.'.split('_'),
+ weekdays : 'Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado'.split('_'),
+ weekdaysShort : 'Dom._Lun._Mar._Mér._Xov._Ven._Sáb.'.split('_'),
+ weekdaysMin : 'Do_Lu_Ma_Mé_Xo_Ve_Sá'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
+ },
+ nextDay : function () {
+ return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
+ },
+ lastDay : function () {
+ return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
+ },
+ lastWeek : function () {
+ return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : function (str) {
+ if (str === 'uns segundos') {
+ return 'nuns segundos';
+ }
+ return 'en ' + str;
+ },
+ past : 'hai %s',
+ s : 'uns segundos',
+ m : 'un minuto',
+ mm : '%d minutos',
+ h : 'unha hora',
+ hh : '%d horas',
+ d : 'un día',
+ dd : '%d días',
+ M : 'un mes',
+ MM : '%d meses',
+ y : 'un ano',
+ yy : '%d anos'
+ },
+ ordinalParse : /\d{1,2}º/,
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Hebrew (he)
+ //! author : Tomer Cohen : https://github.com/tomer
+ //! author : Moshe Simantov : https://github.com/DevelopmentIL
+ //! author : Tal Ater : https://github.com/TalAter
+
+ var he = moment__default.defineLocale('he', {
+ months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
+ monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
+ weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
+ weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
+ weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [ב]MMMM YYYY',
+ LLL : 'D [ב]MMMM YYYY HH:mm',
+ LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',
+ l : 'D/M/YYYY',
+ ll : 'D MMM YYYY',
+ lll : 'D MMM YYYY HH:mm',
+ llll : 'ddd, D MMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[היום ב־]LT',
+ nextDay : '[מחר ב־]LT',
+ nextWeek : 'dddd [בשעה] LT',
+ lastDay : '[אתמול ב־]LT',
+ lastWeek : '[ביום] dddd [האחרון בשעה] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'בעוד %s',
+ past : 'לפני %s',
+ s : 'מספר שניות',
+ m : 'דקה',
+ mm : '%d דקות',
+ h : 'שעה',
+ hh : function (number) {
+ if (number === 2) {
+ return 'שעתיים';
+ }
+ return number + ' שעות';
+ },
+ d : 'יום',
+ dd : function (number) {
+ if (number === 2) {
+ return 'יומיים';
+ }
+ return number + ' ימים';
+ },
+ M : 'חודש',
+ MM : function (number) {
+ if (number === 2) {
+ return 'חודשיים';
+ }
+ return number + ' חודשים';
+ },
+ y : 'שנה',
+ yy : function (number) {
+ if (number === 2) {
+ return 'שנתיים';
+ } else if (number % 10 === 0 && number !== 10) {
+ return number + ' שנה';
+ }
+ return number + ' שנים';
+ }
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : hindi (hi)
+ //! author : Mayank Singhal : https://github.com/mayanksinghal
+
+ var hi__symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ hi__numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ var hi = moment__default.defineLocale('hi', {
+ months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
+ monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
+ weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
+ weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
+ weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm बजे',
+ LTS : 'A h:mm:ss बजे',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm बजे',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[कल] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[कल] LT',
+ lastWeek : '[पिछले] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s में',
+ past : '%s पहले',
+ s : 'कुछ ही क्षण',
+ m : 'एक मिनट',
+ mm : '%d मिनट',
+ h : 'एक घंटा',
+ hh : '%d घंटे',
+ d : 'एक दिन',
+ dd : '%d दिन',
+ M : 'एक महीने',
+ MM : '%d महीने',
+ y : 'एक वर्ष',
+ yy : '%d वर्ष'
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return hi__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return hi__symbolMap[match];
+ });
+ },
+ // Hindi notation for meridiems are quite fuzzy in practice. While there exists
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
+ meridiemParse: /रात|सुबह|दोपहर|शाम/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'रात') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'सुबह') {
+ return hour;
+ } else if (meridiem === 'दोपहर') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'शाम') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'रात';
+ } else if (hour < 10) {
+ return 'सुबह';
+ } else if (hour < 17) {
+ return 'दोपहर';
+ } else if (hour < 20) {
+ return 'शाम';
+ } else {
+ return 'रात';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : hrvatski (hr)
+ //! author : Bojan Marković : https://github.com/bmarkovic
+
+ function hr__translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ var hr = moment__default.defineLocale('hr', {
+ months : {
+ format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),
+ standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')
+ },
+ monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
+ weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
+ weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+ weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[danas u] LT',
+ nextDay : '[sutra u] LT',
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[jučer u] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ return '[prošlu] dddd [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'prije %s',
+ s : 'par sekundi',
+ m : hr__translate,
+ mm : hr__translate,
+ h : hr__translate,
+ hh : hr__translate,
+ d : 'dan',
+ dd : hr__translate,
+ M : 'mjesec',
+ MM : hr__translate,
+ y : 'godinu',
+ yy : hr__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : hungarian (hu)
+ //! author : Adam Brunner : https://github.com/adambrunner
+
+ var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
+ function hu__translate(number, withoutSuffix, key, isFuture) {
+ var num = number,
+ suffix;
+ switch (key) {
+ case 's':
+ return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
+ case 'm':
+ return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'mm':
+ return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'h':
+ return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'hh':
+ return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'd':
+ return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'dd':
+ return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'M':
+ return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'MM':
+ return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'y':
+ return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
+ case 'yy':
+ return num + (isFuture || withoutSuffix ? ' év' : ' éve');
+ }
+ return '';
+ }
+ function week(isFuture) {
+ return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
+ }
+
+ var hu = moment__default.defineLocale('hu', {
+ months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
+ monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
+ weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
+ weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
+ weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'YYYY.MM.DD.',
+ LL : 'YYYY. MMMM D.',
+ LLL : 'YYYY. MMMM D. H:mm',
+ LLLL : 'YYYY. MMMM D., dddd H:mm'
+ },
+ meridiemParse: /de|du/i,
+ isPM: function (input) {
+ return input.charAt(1).toLowerCase() === 'u';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower === true ? 'de' : 'DE';
+ } else {
+ return isLower === true ? 'du' : 'DU';
+ }
+ },
+ calendar : {
+ sameDay : '[ma] LT[-kor]',
+ nextDay : '[holnap] LT[-kor]',
+ nextWeek : function () {
+ return week.call(this, true);
+ },
+ lastDay : '[tegnap] LT[-kor]',
+ lastWeek : function () {
+ return week.call(this, false);
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s múlva',
+ past : '%s',
+ s : hu__translate,
+ m : hu__translate,
+ mm : hu__translate,
+ h : hu__translate,
+ hh : hu__translate,
+ d : hu__translate,
+ dd : hu__translate,
+ M : hu__translate,
+ MM : hu__translate,
+ y : hu__translate,
+ yy : hu__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Armenian (hy-am)
+ //! author : Armendarabyan : https://github.com/armendarabyan
+
+ var hy_am = moment__default.defineLocale('hy-am', {
+ months : {
+ format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),
+ standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')
+ },
+ monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
+ weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),
+ weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
+ weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY թ.',
+ LLL : 'D MMMM YYYY թ., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY թ., HH:mm'
+ },
+ calendar : {
+ sameDay: '[այսօր] LT',
+ nextDay: '[վաղը] LT',
+ lastDay: '[երեկ] LT',
+ nextWeek: function () {
+ return 'dddd [օրը ժամը] LT';
+ },
+ lastWeek: function () {
+ return '[անցած] dddd [օրը ժամը] LT';
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : '%s հետո',
+ past : '%s առաջ',
+ s : 'մի քանի վայրկյան',
+ m : 'րոպե',
+ mm : '%d րոպե',
+ h : 'ժամ',
+ hh : '%d ժամ',
+ d : 'օր',
+ dd : '%d օր',
+ M : 'ամիս',
+ MM : '%d ամիս',
+ y : 'տարի',
+ yy : '%d տարի'
+ },
+ meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
+ isPM: function (input) {
+ return /^(ցերեկվա|երեկոյան)$/.test(input);
+ },
+ meridiem : function (hour) {
+ if (hour < 4) {
+ return 'գիշերվա';
+ } else if (hour < 12) {
+ return 'առավոտվա';
+ } else if (hour < 17) {
+ return 'ցերեկվա';
+ } else {
+ return 'երեկոյան';
+ }
+ },
+ ordinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'DDD':
+ case 'w':
+ case 'W':
+ case 'DDDo':
+ if (number === 1) {
+ return number + '-ին';
+ }
+ return number + '-րդ';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Bahasa Indonesia (id)
+ //! author : Mohammad Satrio Utomo : https://github.com/tyok
+ //! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
+
+ var id = moment__default.defineLocale('id', {
+ months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),
+ weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
+ weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
+ weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /pagi|siang|sore|malam/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'siang') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'sore' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'siang';
+ } else if (hours < 19) {
+ return 'sore';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Besok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kemarin pukul] LT',
+ lastWeek : 'dddd [lalu pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'dalam %s',
+ past : '%s yang lalu',
+ s : 'beberapa detik',
+ m : 'semenit',
+ mm : '%d menit',
+ h : 'sejam',
+ hh : '%d jam',
+ d : 'sehari',
+ dd : '%d hari',
+ M : 'sebulan',
+ MM : '%d bulan',
+ y : 'setahun',
+ yy : '%d tahun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : icelandic (is)
+ //! author : Hinrik Örn Sigurðsson : https://github.com/hinrik
+
+ function is__plural(n) {
+ if (n % 100 === 11) {
+ return true;
+ } else if (n % 10 === 1) {
+ return false;
+ }
+ return true;
+ }
+ function is__translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's':
+ return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
+ case 'm':
+ return withoutSuffix ? 'mínúta' : 'mínútu';
+ case 'mm':
+ if (is__plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
+ } else if (withoutSuffix) {
+ return result + 'mínúta';
+ }
+ return result + 'mínútu';
+ case 'hh':
+ if (is__plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
+ }
+ return result + 'klukkustund';
+ case 'd':
+ if (withoutSuffix) {
+ return 'dagur';
+ }
+ return isFuture ? 'dag' : 'degi';
+ case 'dd':
+ if (is__plural(number)) {
+ if (withoutSuffix) {
+ return result + 'dagar';
+ }
+ return result + (isFuture ? 'daga' : 'dögum');
+ } else if (withoutSuffix) {
+ return result + 'dagur';
+ }
+ return result + (isFuture ? 'dag' : 'degi');
+ case 'M':
+ if (withoutSuffix) {
+ return 'mánuður';
+ }
+ return isFuture ? 'mánuð' : 'mánuði';
+ case 'MM':
+ if (is__plural(number)) {
+ if (withoutSuffix) {
+ return result + 'mánuðir';
+ }
+ return result + (isFuture ? 'mánuði' : 'mánuðum');
+ } else if (withoutSuffix) {
+ return result + 'mánuður';
+ }
+ return result + (isFuture ? 'mánuð' : 'mánuði');
+ case 'y':
+ return withoutSuffix || isFuture ? 'ár' : 'ári';
+ case 'yy':
+ if (is__plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
+ }
+ return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
+ }
+ }
+
+ var is = moment__default.defineLocale('is', {
+ months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
+ weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
+ weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
+ weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY [kl.] H:mm',
+ LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'
+ },
+ calendar : {
+ sameDay : '[í dag kl.] LT',
+ nextDay : '[á morgun kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[í gær kl.] LT',
+ lastWeek : '[síðasta] dddd [kl.] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'eftir %s',
+ past : 'fyrir %s síðan',
+ s : is__translate,
+ m : is__translate,
+ mm : is__translate,
+ h : 'klukkustund',
+ hh : is__translate,
+ d : is__translate,
+ dd : is__translate,
+ M : is__translate,
+ MM : is__translate,
+ y : is__translate,
+ yy : is__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : italian (it)
+ //! author : Lorenzo : https://github.com/aliem
+ //! author: Mattia Larentis: https://github.com/nostalgiaz
+
+ var it = moment__default.defineLocale('it', {
+ months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
+ monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
+ weekdays : 'Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato'.split('_'),
+ weekdaysShort : 'Dom_Lun_Mar_Mer_Gio_Ven_Sab'.split('_'),
+ weekdaysMin : 'Do_Lu_Ma_Me_Gi_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Oggi alle] LT',
+ nextDay: '[Domani alle] LT',
+ nextWeek: 'dddd [alle] LT',
+ lastDay: '[Ieri alle] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[la scorsa] dddd [alle] LT';
+ default:
+ return '[lo scorso] dddd [alle] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : function (s) {
+ return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
+ },
+ past : '%s fa',
+ s : 'alcuni secondi',
+ m : 'un minuto',
+ mm : '%d minuti',
+ h : 'un\'ora',
+ hh : '%d ore',
+ d : 'un giorno',
+ dd : '%d giorni',
+ M : 'un mese',
+ MM : '%d mesi',
+ y : 'un anno',
+ yy : '%d anni'
+ },
+ ordinalParse : /\d{1,2}º/,
+ ordinal: '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : japanese (ja)
+ //! author : LI Long : https://github.com/baryon
+
+ var ja = moment__default.defineLocale('ja', {
+ months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
+ weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
+ weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
+ longDateFormat : {
+ LT : 'Ah時m分',
+ LTS : 'Ah時m分s秒',
+ L : 'YYYY/MM/DD',
+ LL : 'YYYY年M月D日',
+ LLL : 'YYYY年M月D日Ah時m分',
+ LLLL : 'YYYY年M月D日Ah時m分 dddd'
+ },
+ meridiemParse: /午前|午後/i,
+ isPM : function (input) {
+ return input === '午後';
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return '午前';
+ } else {
+ return '午後';
+ }
+ },
+ calendar : {
+ sameDay : '[今日] LT',
+ nextDay : '[明日] LT',
+ nextWeek : '[来週]dddd LT',
+ lastDay : '[昨日] LT',
+ lastWeek : '[前週]dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s後',
+ past : '%s前',
+ s : '数秒',
+ m : '1分',
+ mm : '%d分',
+ h : '1時間',
+ hh : '%d時間',
+ d : '1日',
+ dd : '%d日',
+ M : '1ヶ月',
+ MM : '%dヶ月',
+ y : '1年',
+ yy : '%d年'
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Boso Jowo (jv)
+ //! author : Rony Lantip : https://github.com/lantip
+ //! reference: http://jv.wikipedia.org/wiki/Basa_Jawa
+
+ var jv = moment__default.defineLocale('jv', {
+ months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
+ weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
+ weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
+ weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /enjing|siyang|sonten|ndalu/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'enjing') {
+ return hour;
+ } else if (meridiem === 'siyang') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'enjing';
+ } else if (hours < 15) {
+ return 'siyang';
+ } else if (hours < 19) {
+ return 'sonten';
+ } else {
+ return 'ndalu';
+ }
+ },
+ calendar : {
+ sameDay : '[Dinten puniko pukul] LT',
+ nextDay : '[Mbenjang pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kala wingi pukul] LT',
+ lastWeek : 'dddd [kepengker pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'wonten ing %s',
+ past : '%s ingkang kepengker',
+ s : 'sawetawis detik',
+ m : 'setunggal menit',
+ mm : '%d menit',
+ h : 'setunggal jam',
+ hh : '%d jam',
+ d : 'sedinten',
+ dd : '%d dinten',
+ M : 'sewulan',
+ MM : '%d wulan',
+ y : 'setaun',
+ yy : '%d taun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Georgian (ka)
+ //! author : Irakli Janiashvili : https://github.com/irakli-janiashvili
+
+ var ka = moment__default.defineLocale('ka', {
+ months : {
+ standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
+ format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
+ },
+ monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
+ weekdays : {
+ standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
+ format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),
+ isFormat: /(წინა|შემდეგ)/
+ },
+ weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
+ weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY h:mm A',
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
+ },
+ calendar : {
+ sameDay : '[დღეს] LT[-ზე]',
+ nextDay : '[ხვალ] LT[-ზე]',
+ lastDay : '[გუშინ] LT[-ზე]',
+ nextWeek : '[შემდეგ] dddd LT[-ზე]',
+ lastWeek : '[წინა] dddd LT-ზე',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : function (s) {
+ return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
+ s.replace(/ი$/, 'ში') :
+ s + 'ში';
+ },
+ past : function (s) {
+ if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
+ return s.replace(/(ი|ე)$/, 'ის წინ');
+ }
+ if ((/წელი/).test(s)) {
+ return s.replace(/წელი$/, 'წლის წინ');
+ }
+ },
+ s : 'რამდენიმე წამი',
+ m : 'წუთი',
+ mm : '%d წუთი',
+ h : 'საათი',
+ hh : '%d საათი',
+ d : 'დღე',
+ dd : '%d დღე',
+ M : 'თვე',
+ MM : '%d თვე',
+ y : 'წელი',
+ yy : '%d წელი'
+ },
+ ordinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
+ ordinal : function (number) {
+ if (number === 0) {
+ return number;
+ }
+ if (number === 1) {
+ return number + '-ლი';
+ }
+ if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
+ return 'მე-' + number;
+ }
+ return number + '-ე';
+ },
+ week : {
+ dow : 1,
+ doy : 7
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : kazakh (kk)
+ //! authors : Nurlan Rakhimzhanov : https://github.com/nurlan
+
+ var kk__suffixes = {
+ 0: '-ші',
+ 1: '-ші',
+ 2: '-ші',
+ 3: '-ші',
+ 4: '-ші',
+ 5: '-ші',
+ 6: '-шы',
+ 7: '-ші',
+ 8: '-ші',
+ 9: '-шы',
+ 10: '-шы',
+ 20: '-шы',
+ 30: '-шы',
+ 40: '-шы',
+ 50: '-ші',
+ 60: '-шы',
+ 70: '-ші',
+ 80: '-ші',
+ 90: '-шы',
+ 100: '-ші'
+ };
+
+ var kk = moment__default.defineLocale('kk', {
+ months : 'Қаңтар_Ақпан_Наурыз_Сәуір_Мамыр_Маусым_Шілде_Тамыз_Қыркүйек_Қазан_Қараша_Желтоқсан'.split('_'),
+ monthsShort : 'Қаң_Ақп_Нау_Сәу_Мам_Мау_Шіл_Там_Қыр_Қаз_Қар_Жел'.split('_'),
+ weekdays : 'Жексенбі_Дүйсенбі_Сейсенбі_Сәрсенбі_Бейсенбі_Жұма_Сенбі'.split('_'),
+ weekdaysShort : 'Жек_Дүй_Сей_Сәр_Бей_Жұм_Сен'.split('_'),
+ weekdaysMin : 'Жк_Дй_Сй_Ср_Бй_Жм_Сн'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Бүгін сағат] LT',
+ nextDay : '[Ертең сағат] LT',
+ nextWeek : 'dddd [сағат] LT',
+ lastDay : '[Кеше сағат] LT',
+ lastWeek : '[Өткен аптаның] dddd [сағат] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s ішінде',
+ past : '%s бұрын',
+ s : 'бірнеше секунд',
+ m : 'бір минут',
+ mm : '%d минут',
+ h : 'бір сағат',
+ hh : '%d сағат',
+ d : 'бір күн',
+ dd : '%d күн',
+ M : 'бір ай',
+ MM : '%d ай',
+ y : 'бір жыл',
+ yy : '%d жыл'
+ },
+ ordinalParse: /\d{1,2}-(ші|шы)/,
+ ordinal : function (number) {
+ var a = number % 10,
+ b = number >= 100 ? 100 : null;
+ return number + (kk__suffixes[number] || kk__suffixes[a] || kk__suffixes[b]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : khmer (km)
+ //! author : Kruy Vanna : https://github.com/kruyvanna
+
+ var km = moment__default.defineLocale('km', {
+ months: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
+ monthsShort: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
+ weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
+ nextDay: '[ស្អែក ម៉ោង] LT',
+ nextWeek: 'dddd [ម៉ោង] LT',
+ lastDay: '[ម្សិលមិញ ម៉ោង] LT',
+ lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: '%sទៀត',
+ past: '%sមុន',
+ s: 'ប៉ុន្មានវិនាទី',
+ m: 'មួយនាទី',
+ mm: '%d នាទី',
+ h: 'មួយម៉ោង',
+ hh: '%d ម៉ោង',
+ d: 'មួយថ្ងៃ',
+ dd: '%d ថ្ងៃ',
+ M: 'មួយខែ',
+ MM: '%d ខែ',
+ y: 'មួយឆ្នាំ',
+ yy: '%d ឆ្នាំ'
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : korean (ko)
+ //!
+ //! authors
+ //!
+ //! - Kyungwook, Park : https://github.com/kyungw00k
+ //! - Jeeeyul Lee
+
+ var ko = moment__default.defineLocale('ko', {
+ months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
+ monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
+ weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
+ weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
+ weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
+ longDateFormat : {
+ LT : 'A h시 m분',
+ LTS : 'A h시 m분 s초',
+ L : 'YYYY.MM.DD',
+ LL : 'YYYY년 MMMM D일',
+ LLL : 'YYYY년 MMMM D일 A h시 m분',
+ LLLL : 'YYYY년 MMMM D일 dddd A h시 m분'
+ },
+ calendar : {
+ sameDay : '오늘 LT',
+ nextDay : '내일 LT',
+ nextWeek : 'dddd LT',
+ lastDay : '어제 LT',
+ lastWeek : '지난주 dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s 후',
+ past : '%s 전',
+ s : '몇초',
+ ss : '%d초',
+ m : '일분',
+ mm : '%d분',
+ h : '한시간',
+ hh : '%d시간',
+ d : '하루',
+ dd : '%d일',
+ M : '한달',
+ MM : '%d달',
+ y : '일년',
+ yy : '%d년'
+ },
+ ordinalParse : /\d{1,2}일/,
+ ordinal : '%d일',
+ meridiemParse : /오전|오후/,
+ isPM : function (token) {
+ return token === '오후';
+ },
+ meridiem : function (hour, minute, isUpper) {
+ return hour < 12 ? '오전' : '오후';
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Luxembourgish (lb)
+ //! author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz
+
+ function lb__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eng Minutt', 'enger Minutt'],
+ 'h': ['eng Stonn', 'enger Stonn'],
+ 'd': ['een Dag', 'engem Dag'],
+ 'M': ['ee Mount', 'engem Mount'],
+ 'y': ['ee Joer', 'engem Joer']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+ function processFutureTime(string) {
+ var number = string.substr(0, string.indexOf(' '));
+ if (eifelerRegelAppliesToNumber(number)) {
+ return 'a ' + string;
+ }
+ return 'an ' + string;
+ }
+ function processPastTime(string) {
+ var number = string.substr(0, string.indexOf(' '));
+ if (eifelerRegelAppliesToNumber(number)) {
+ return 'viru ' + string;
+ }
+ return 'virun ' + string;
+ }
+ /**
+ * Returns true if the word before the given number loses the '-n' ending.
+ * e.g. 'an 10 Deeg' but 'a 5 Deeg'
+ *
+ * @param number {integer}
+ * @returns {boolean}
+ */
+ function eifelerRegelAppliesToNumber(number) {
+ number = parseInt(number, 10);
+ if (isNaN(number)) {
+ return false;
+ }
+ if (number < 0) {
+ // Negative Number --> always true
+ return true;
+ } else if (number < 10) {
+ // Only 1 digit
+ if (4 <= number && number <= 7) {
+ return true;
+ }
+ return false;
+ } else if (number < 100) {
+ // 2 digits
+ var lastDigit = number % 10, firstDigit = number / 10;
+ if (lastDigit === 0) {
+ return eifelerRegelAppliesToNumber(firstDigit);
+ }
+ return eifelerRegelAppliesToNumber(lastDigit);
+ } else if (number < 10000) {
+ // 3 or 4 digits --> recursively check first digit
+ while (number >= 10) {
+ number = number / 10;
+ }
+ return eifelerRegelAppliesToNumber(number);
+ } else {
+ // Anything larger than 4 digits: recursively check first n-3 digits
+ number = number / 1000;
+ return eifelerRegelAppliesToNumber(number);
+ }
+ }
+
+ var lb = moment__default.defineLocale('lb', {
+ months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
+ weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
+ weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm [Auer]',
+ LTS: 'H:mm:ss [Auer]',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm [Auer]',
+ LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'
+ },
+ calendar: {
+ sameDay: '[Haut um] LT',
+ sameElse: 'L',
+ nextDay: '[Muer um] LT',
+ nextWeek: 'dddd [um] LT',
+ lastDay: '[Gëschter um] LT',
+ lastWeek: function () {
+ // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
+ switch (this.day()) {
+ case 2:
+ case 4:
+ return '[Leschten] dddd [um] LT';
+ default:
+ return '[Leschte] dddd [um] LT';
+ }
+ }
+ },
+ relativeTime : {
+ future : processFutureTime,
+ past : processPastTime,
+ s : 'e puer Sekonnen',
+ m : lb__processRelativeTime,
+ mm : '%d Minutten',
+ h : lb__processRelativeTime,
+ hh : '%d Stonnen',
+ d : lb__processRelativeTime,
+ dd : '%d Deeg',
+ M : lb__processRelativeTime,
+ MM : '%d Méint',
+ y : lb__processRelativeTime,
+ yy : '%d Joer'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : lao (lo)
+ //! author : Ryan Hart : https://github.com/ryanhart2
+
+ var lo = moment__default.defineLocale('lo', {
+ months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
+ monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
+ weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
+ weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
+ weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'ວັນdddd D MMMM YYYY HH:mm'
+ },
+ meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
+ isPM: function (input) {
+ return input === 'ຕອນແລງ';
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ຕອນເຊົ້າ';
+ } else {
+ return 'ຕອນແລງ';
+ }
+ },
+ calendar : {
+ sameDay : '[ມື້ນີ້ເວລາ] LT',
+ nextDay : '[ມື້ອື່ນເວລາ] LT',
+ nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',
+ lastDay : '[ມື້ວານນີ້ເວລາ] LT',
+ lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'ອີກ %s',
+ past : '%sຜ່ານມາ',
+ s : 'ບໍ່ເທົ່າໃດວິນາທີ',
+ m : '1 ນາທີ',
+ mm : '%d ນາທີ',
+ h : '1 ຊົ່ວໂມງ',
+ hh : '%d ຊົ່ວໂມງ',
+ d : '1 ມື້',
+ dd : '%d ມື້',
+ M : '1 ເດືອນ',
+ MM : '%d ເດືອນ',
+ y : '1 ປີ',
+ yy : '%d ປີ'
+ },
+ ordinalParse: /(ທີ່)\d{1,2}/,
+ ordinal : function (number) {
+ return 'ທີ່' + number;
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Lithuanian (lt)
+ //! author : Mindaugas Mozūras : https://github.com/mmozuras
+
+ var lt__units = {
+ 'm' : 'minutė_minutės_minutę',
+ 'mm': 'minutės_minučių_minutes',
+ 'h' : 'valanda_valandos_valandą',
+ 'hh': 'valandos_valandų_valandas',
+ 'd' : 'diena_dienos_dieną',
+ 'dd': 'dienos_dienų_dienas',
+ 'M' : 'mėnuo_mėnesio_mėnesį',
+ 'MM': 'mėnesiai_mėnesių_mėnesius',
+ 'y' : 'metai_metų_metus',
+ 'yy': 'metai_metų_metus'
+ };
+ function translateSeconds(number, withoutSuffix, key, isFuture) {
+ if (withoutSuffix) {
+ return 'kelios sekundės';
+ } else {
+ return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
+ }
+ }
+ function translateSingular(number, withoutSuffix, key, isFuture) {
+ return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
+ }
+ function special(number) {
+ return number % 10 === 0 || (number > 10 && number < 20);
+ }
+ function forms(key) {
+ return lt__units[key].split('_');
+ }
+ function lt__translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ if (number === 1) {
+ return result + translateSingular(number, withoutSuffix, key[0], isFuture);
+ } else if (withoutSuffix) {
+ return result + (special(number) ? forms(key)[1] : forms(key)[0]);
+ } else {
+ if (isFuture) {
+ return result + forms(key)[1];
+ } else {
+ return result + (special(number) ? forms(key)[1] : forms(key)[2]);
+ }
+ }
+ }
+ var lt = moment__default.defineLocale('lt', {
+ months : {
+ format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
+ standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_')
+ },
+ monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
+ weekdays : {
+ format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),
+ standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),
+ isFormat: /dddd HH:mm/
+ },
+ weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
+ weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY [m.] MMMM D [d.]',
+ LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
+ LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
+ l : 'YYYY-MM-DD',
+ ll : 'YYYY [m.] MMMM D [d.]',
+ lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
+ llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'
+ },
+ calendar : {
+ sameDay : '[Šiandien] LT',
+ nextDay : '[Rytoj] LT',
+ nextWeek : 'dddd LT',
+ lastDay : '[Vakar] LT',
+ lastWeek : '[Praėjusį] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'po %s',
+ past : 'prieš %s',
+ s : translateSeconds,
+ m : translateSingular,
+ mm : lt__translate,
+ h : translateSingular,
+ hh : lt__translate,
+ d : translateSingular,
+ dd : lt__translate,
+ M : translateSingular,
+ MM : lt__translate,
+ y : translateSingular,
+ yy : lt__translate
+ },
+ ordinalParse: /\d{1,2}-oji/,
+ ordinal : function (number) {
+ return number + '-oji';
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : latvian (lv)
+ //! author : Kristaps Karlsons : https://github.com/skakri
+ //! author : Jānis Elmeris : https://github.com/JanisE
+
+ var lv__units = {
+ 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
+ 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
+ 'h': 'stundas_stundām_stunda_stundas'.split('_'),
+ 'hh': 'stundas_stundām_stunda_stundas'.split('_'),
+ 'd': 'dienas_dienām_diena_dienas'.split('_'),
+ 'dd': 'dienas_dienām_diena_dienas'.split('_'),
+ 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
+ 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
+ 'y': 'gada_gadiem_gads_gadi'.split('_'),
+ 'yy': 'gada_gadiem_gads_gadi'.split('_')
+ };
+ /**
+ * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
+ */
+ function lv__format(forms, number, withoutSuffix) {
+ if (withoutSuffix) {
+ // E.g. "21 minūte", "3 minūtes".
+ return number % 10 === 1 && number !== 11 ? forms[2] : forms[3];
+ } else {
+ // E.g. "21 minūtes" as in "pēc 21 minūtes".
+ // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
+ return number % 10 === 1 && number !== 11 ? forms[0] : forms[1];
+ }
+ }
+ function lv__relativeTimeWithPlural(number, withoutSuffix, key) {
+ return number + ' ' + lv__format(lv__units[key], number, withoutSuffix);
+ }
+ function relativeTimeWithSingular(number, withoutSuffix, key) {
+ return lv__format(lv__units[key], number, withoutSuffix);
+ }
+ function relativeSeconds(number, withoutSuffix) {
+ return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
+ }
+
+ var lv = moment__default.defineLocale('lv', {
+ months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
+ weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
+ weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY.',
+ LL : 'YYYY. [gada] D. MMMM',
+ LLL : 'YYYY. [gada] D. MMMM, HH:mm',
+ LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'
+ },
+ calendar : {
+ sameDay : '[Šodien pulksten] LT',
+ nextDay : '[Rīt pulksten] LT',
+ nextWeek : 'dddd [pulksten] LT',
+ lastDay : '[Vakar pulksten] LT',
+ lastWeek : '[Pagājušā] dddd [pulksten] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'pēc %s',
+ past : 'pirms %s',
+ s : relativeSeconds,
+ m : relativeTimeWithSingular,
+ mm : lv__relativeTimeWithPlural,
+ h : relativeTimeWithSingular,
+ hh : lv__relativeTimeWithPlural,
+ d : relativeTimeWithSingular,
+ dd : lv__relativeTimeWithPlural,
+ M : relativeTimeWithSingular,
+ MM : lv__relativeTimeWithPlural,
+ y : relativeTimeWithSingular,
+ yy : lv__relativeTimeWithPlural
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Montenegrin (me)
+ //! author : Miodrag Nikač : https://github.com/miodragnikac
+
+ var me__translator = {
+ words: { //Different grammatical cases
+ m: ['jedan minut', 'jednog minuta'],
+ mm: ['minut', 'minuta', 'minuta'],
+ h: ['jedan sat', 'jednog sata'],
+ hh: ['sat', 'sata', 'sati'],
+ dd: ['dan', 'dana', 'dana'],
+ MM: ['mjesec', 'mjeseca', 'mjeseci'],
+ yy: ['godina', 'godine', 'godina']
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = me__translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return number + ' ' + me__translator.correctGrammaticalCase(number, wordKey);
+ }
+ }
+ };
+
+ var me = moment__default.defineLocale('me', {
+ months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
+ monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
+ weekdays: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],
+ weekdaysShort: ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'],
+ weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar: {
+ sameDay: '[danas u] LT',
+ nextDay: '[sjutra u] LT',
+
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[juče u] LT',
+ lastWeek : function () {
+ var lastWeekDays = [
+ '[prošle] [nedjelje] [u] LT',
+ '[prošlog] [ponedjeljka] [u] LT',
+ '[prošlog] [utorka] [u] LT',
+ '[prošle] [srijede] [u] LT',
+ '[prošlog] [četvrtka] [u] LT',
+ '[prošlog] [petka] [u] LT',
+ '[prošle] [subote] [u] LT'
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'prije %s',
+ s : 'nekoliko sekundi',
+ m : me__translator.translate,
+ mm : me__translator.translate,
+ h : me__translator.translate,
+ hh : me__translator.translate,
+ d : 'dan',
+ dd : me__translator.translate,
+ M : 'mjesec',
+ MM : me__translator.translate,
+ y : 'godinu',
+ yy : me__translator.translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : macedonian (mk)
+ //! author : Borislav Mickov : https://github.com/B0k0
+
+ var mk = moment__default.defineLocale('mk', {
+ months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
+ monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
+ weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
+ weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
+ weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'D.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd, D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[Денес во] LT',
+ nextDay : '[Утре во] LT',
+ nextWeek : '[Во] dddd [во] LT',
+ lastDay : '[Вчера во] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[Изминатата] dddd [во] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[Изминатиот] dddd [во] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'после %s',
+ past : 'пред %s',
+ s : 'неколку секунди',
+ m : 'минута',
+ mm : '%d минути',
+ h : 'час',
+ hh : '%d часа',
+ d : 'ден',
+ dd : '%d дена',
+ M : 'месец',
+ MM : '%d месеци',
+ y : 'година',
+ yy : '%d години'
+ },
+ ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
+ ordinal : function (number) {
+ var lastDigit = number % 10,
+ last2Digits = number % 100;
+ if (number === 0) {
+ return number + '-ев';
+ } else if (last2Digits === 0) {
+ return number + '-ен';
+ } else if (last2Digits > 10 && last2Digits < 20) {
+ return number + '-ти';
+ } else if (lastDigit === 1) {
+ return number + '-ви';
+ } else if (lastDigit === 2) {
+ return number + '-ри';
+ } else if (lastDigit === 7 || lastDigit === 8) {
+ return number + '-ми';
+ } else {
+ return number + '-ти';
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : malayalam (ml)
+ //! author : Floyd Pink : https://github.com/floydpink
+
+ var ml = moment__default.defineLocale('ml', {
+ months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
+ monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
+ weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
+ weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
+ weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm -നു',
+ LTS : 'A h:mm:ss -നു',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm -നു',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'
+ },
+ calendar : {
+ sameDay : '[ഇന്ന്] LT',
+ nextDay : '[നാളെ] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[ഇന്നലെ] LT',
+ lastWeek : '[കഴിഞ്ഞ] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s കഴിഞ്ഞ്',
+ past : '%s മുൻപ്',
+ s : 'അൽപ നിമിഷങ്ങൾ',
+ m : 'ഒരു മിനിറ്റ്',
+ mm : '%d മിനിറ്റ്',
+ h : 'ഒരു മണിക്കൂർ',
+ hh : '%d മണിക്കൂർ',
+ d : 'ഒരു ദിവസം',
+ dd : '%d ദിവസം',
+ M : 'ഒരു മാസം',
+ MM : '%d മാസം',
+ y : 'ഒരു വർഷം',
+ yy : '%d വർഷം'
+ },
+ meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
+ isPM : function (input) {
+ return /^(ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'രാത്രി';
+ } else if (hour < 12) {
+ return 'രാവിലെ';
+ } else if (hour < 17) {
+ return 'ഉച്ച കഴിഞ്ഞ്';
+ } else if (hour < 20) {
+ return 'വൈകുന്നേരം';
+ } else {
+ return 'രാത്രി';
+ }
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Marathi (mr)
+ //! author : Harshad Kale : https://github.com/kalehv
+ //! author : Vivek Athalye : https://github.com/vnathalye
+
+ var mr__symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ mr__numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ function relativeTimeMr(number, withoutSuffix, string, isFuture)
+ {
+ var output = '';
+ if (withoutSuffix) {
+ switch (string) {
+ case 's': output = 'काही सेकंद'; break;
+ case 'm': output = 'एक मिनिट'; break;
+ case 'mm': output = '%d मिनिटे'; break;
+ case 'h': output = 'एक तास'; break;
+ case 'hh': output = '%d तास'; break;
+ case 'd': output = 'एक दिवस'; break;
+ case 'dd': output = '%d दिवस'; break;
+ case 'M': output = 'एक महिना'; break;
+ case 'MM': output = '%d महिने'; break;
+ case 'y': output = 'एक वर्ष'; break;
+ case 'yy': output = '%d वर्षे'; break;
+ }
+ }
+ else {
+ switch (string) {
+ case 's': output = 'काही सेकंदां'; break;
+ case 'm': output = 'एका मिनिटा'; break;
+ case 'mm': output = '%d मिनिटां'; break;
+ case 'h': output = 'एका तासा'; break;
+ case 'hh': output = '%d तासां'; break;
+ case 'd': output = 'एका दिवसा'; break;
+ case 'dd': output = '%d दिवसां'; break;
+ case 'M': output = 'एका महिन्या'; break;
+ case 'MM': output = '%d महिन्यां'; break;
+ case 'y': output = 'एका वर्षा'; break;
+ case 'yy': output = '%d वर्षां'; break;
+ }
+ }
+ return output.replace(/%d/i, number);
+ }
+
+ var mr = moment__default.defineLocale('mr', {
+ months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
+ monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
+ weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
+ weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
+ weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm वाजता',
+ LTS : 'A h:mm:ss वाजता',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm वाजता',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[उद्या] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[काल] LT',
+ lastWeek: '[मागील] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future: '%sमध्ये',
+ past: '%sपूर्वी',
+ s: relativeTimeMr,
+ m: relativeTimeMr,
+ mm: relativeTimeMr,
+ h: relativeTimeMr,
+ hh: relativeTimeMr,
+ d: relativeTimeMr,
+ dd: relativeTimeMr,
+ M: relativeTimeMr,
+ MM: relativeTimeMr,
+ y: relativeTimeMr,
+ yy: relativeTimeMr
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return mr__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return mr__symbolMap[match];
+ });
+ },
+ meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'रात्री') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'सकाळी') {
+ return hour;
+ } else if (meridiem === 'दुपारी') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'सायंकाळी') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'रात्री';
+ } else if (hour < 10) {
+ return 'सकाळी';
+ } else if (hour < 17) {
+ return 'दुपारी';
+ } else if (hour < 20) {
+ return 'सायंकाळी';
+ } else {
+ return 'रात्री';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Bahasa Malaysia (ms-MY)
+ //! author : Weldan Jamili : https://github.com/weldan
+
+ var ms_my = moment__default.defineLocale('ms-my', {
+ months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
+ weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
+ weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
+ weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /pagi|tengahari|petang|malam/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'tengahari') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'petang' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'tengahari';
+ } else if (hours < 19) {
+ return 'petang';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Esok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kelmarin pukul] LT',
+ lastWeek : 'dddd [lepas pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'dalam %s',
+ past : '%s yang lepas',
+ s : 'beberapa saat',
+ m : 'seminit',
+ mm : '%d minit',
+ h : 'sejam',
+ hh : '%d jam',
+ d : 'sehari',
+ dd : '%d hari',
+ M : 'sebulan',
+ MM : '%d bulan',
+ y : 'setahun',
+ yy : '%d tahun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Bahasa Malaysia (ms-MY)
+ //! author : Weldan Jamili : https://github.com/weldan
+
+ var locale_ms = moment__default.defineLocale('ms', {
+ months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
+ weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
+ weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
+ weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
+ },
+ meridiemParse: /pagi|tengahari|petang|malam/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'tengahari') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'petang' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'tengahari';
+ } else if (hours < 19) {
+ return 'petang';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Esok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kelmarin pukul] LT',
+ lastWeek : 'dddd [lepas pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'dalam %s',
+ past : '%s yang lepas',
+ s : 'beberapa saat',
+ m : 'seminit',
+ mm : '%d minit',
+ h : 'sejam',
+ hh : '%d jam',
+ d : 'sehari',
+ dd : '%d hari',
+ M : 'sebulan',
+ MM : '%d bulan',
+ y : 'setahun',
+ yy : '%d tahun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Burmese (my)
+ //! author : Squar team, mysquar.com
+
+ var my__symbolMap = {
+ '1': '၁',
+ '2': '၂',
+ '3': '၃',
+ '4': '၄',
+ '5': '၅',
+ '6': '၆',
+ '7': '၇',
+ '8': '၈',
+ '9': '၉',
+ '0': '၀'
+ }, my__numberMap = {
+ '၁': '1',
+ '၂': '2',
+ '၃': '3',
+ '၄': '4',
+ '၅': '5',
+ '၆': '6',
+ '၇': '7',
+ '၈': '8',
+ '၉': '9',
+ '၀': '0'
+ };
+
+ var my = moment__default.defineLocale('my', {
+ months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
+ monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
+ weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
+ weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
+ weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
+
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar: {
+ sameDay: '[ယနေ.] LT [မှာ]',
+ nextDay: '[မနက်ဖြန်] LT [မှာ]',
+ nextWeek: 'dddd LT [မှာ]',
+ lastDay: '[မနေ.က] LT [မှာ]',
+ lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: 'လာမည့် %s မှာ',
+ past: 'လွန်ခဲ့သော %s က',
+ s: 'စက္ကန်.အနည်းငယ်',
+ m: 'တစ်မိနစ်',
+ mm: '%d မိနစ်',
+ h: 'တစ်နာရီ',
+ hh: '%d နာရီ',
+ d: 'တစ်ရက်',
+ dd: '%d ရက်',
+ M: 'တစ်လ',
+ MM: '%d လ',
+ y: 'တစ်နှစ်',
+ yy: '%d နှစ်'
+ },
+ preparse: function (string) {
+ return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
+ return my__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return my__symbolMap[match];
+ });
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : norwegian bokmål (nb)
+ //! authors : Espen Hovlandsdal : https://github.com/rexxars
+ //! Sigurd Gartmann : https://github.com/sigurdga
+
+ var nb = moment__default.defineLocale('nb', {
+ months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
+ weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
+ weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),
+ weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY [kl.] HH:mm',
+ LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
+ },
+ calendar : {
+ sameDay: '[i dag kl.] LT',
+ nextDay: '[i morgen kl.] LT',
+ nextWeek: 'dddd [kl.] LT',
+ lastDay: '[i går kl.] LT',
+ lastWeek: '[forrige] dddd [kl.] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'for %s siden',
+ s : 'noen sekunder',
+ m : 'ett minutt',
+ mm : '%d minutter',
+ h : 'en time',
+ hh : '%d timer',
+ d : 'en dag',
+ dd : '%d dager',
+ M : 'en måned',
+ MM : '%d måneder',
+ y : 'ett år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : nepali/nepalese
+ //! author : suvash : https://github.com/suvash
+
+ var ne__symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ ne__numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ var ne = moment__default.defineLocale('ne', {
+ months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
+ monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
+ weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
+ weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
+ weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
+ longDateFormat : {
+ LT : 'Aको h:mm बजे',
+ LTS : 'Aको h:mm:ss बजे',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, Aको h:mm बजे',
+ LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return ne__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return ne__symbolMap[match];
+ });
+ },
+ meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'राति') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'बिहान') {
+ return hour;
+ } else if (meridiem === 'दिउँसो') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'साँझ') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 3) {
+ return 'राति';
+ } else if (hour < 12) {
+ return 'बिहान';
+ } else if (hour < 16) {
+ return 'दिउँसो';
+ } else if (hour < 20) {
+ return 'साँझ';
+ } else {
+ return 'राति';
+ }
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[भोलि] LT',
+ nextWeek : '[आउँदो] dddd[,] LT',
+ lastDay : '[हिजो] LT',
+ lastWeek : '[गएको] dddd[,] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%sमा',
+ past : '%s अगाडि',
+ s : 'केही क्षण',
+ m : 'एक मिनेट',
+ mm : '%d मिनेट',
+ h : 'एक घण्टा',
+ hh : '%d घण्टा',
+ d : 'एक दिन',
+ dd : '%d दिन',
+ M : 'एक महिना',
+ MM : '%d महिना',
+ y : 'एक बर्ष',
+ yy : '%d बर्ष'
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : dutch (nl)
+ //! author : Joris Röling : https://github.com/jjupiter
+
+ var nl__monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
+ nl__monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
+
+ var nl = moment__default.defineLocale('nl', {
+ months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return nl__monthsShortWithoutDots[m.month()];
+ } else {
+ return nl__monthsShortWithDots[m.month()];
+ }
+ },
+ weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
+ weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
+ weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD-MM-YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[vandaag om] LT',
+ nextDay: '[morgen om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[gisteren om] LT',
+ lastWeek: '[afgelopen] dddd [om] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'over %s',
+ past : '%s geleden',
+ s : 'een paar seconden',
+ m : 'één minuut',
+ mm : '%d minuten',
+ h : 'één uur',
+ hh : '%d uur',
+ d : 'één dag',
+ dd : '%d dagen',
+ M : 'één maand',
+ MM : '%d maanden',
+ y : 'één jaar',
+ yy : '%d jaar'
+ },
+ ordinalParse: /\d{1,2}(ste|de)/,
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : norwegian nynorsk (nn)
+ //! author : https://github.com/mechuwind
+
+ var nn = moment__default.defineLocale('nn', {
+ months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
+ weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
+ weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
+ weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY [kl.] H:mm',
+ LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
+ },
+ calendar : {
+ sameDay: '[I dag klokka] LT',
+ nextDay: '[I morgon klokka] LT',
+ nextWeek: 'dddd [klokka] LT',
+ lastDay: '[I går klokka] LT',
+ lastWeek: '[Føregåande] dddd [klokka] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'for %s sidan',
+ s : 'nokre sekund',
+ m : 'eit minutt',
+ mm : '%d minutt',
+ h : 'ein time',
+ hh : '%d timar',
+ d : 'ein dag',
+ dd : '%d dagar',
+ M : 'ein månad',
+ MM : '%d månader',
+ y : 'eit år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : polish (pl)
+ //! author : Rafal Hirsz : https://github.com/evoL
+
+ var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
+ monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
+ function pl__plural(n) {
+ return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
+ }
+ function pl__translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'minuta' : 'minutę';
+ case 'mm':
+ return result + (pl__plural(number) ? 'minuty' : 'minut');
+ case 'h':
+ return withoutSuffix ? 'godzina' : 'godzinę';
+ case 'hh':
+ return result + (pl__plural(number) ? 'godziny' : 'godzin');
+ case 'MM':
+ return result + (pl__plural(number) ? 'miesiące' : 'miesięcy');
+ case 'yy':
+ return result + (pl__plural(number) ? 'lata' : 'lat');
+ }
+ }
+
+ var pl = moment__default.defineLocale('pl', {
+ months : function (momentToFormat, format) {
+ if (format === '') {
+ // Hack: if format empty we know this is used to generate
+ // RegExp by moment. Give then back both valid forms of months
+ // in RegExp ready format.
+ return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';
+ } else if (/D MMMM/.test(format)) {
+ return monthsSubjective[momentToFormat.month()];
+ } else {
+ return monthsNominative[momentToFormat.month()];
+ }
+ },
+ monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
+ weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
+ weekdaysShort : 'nie_pon_wt_śr_czw_pt_sb'.split('_'),
+ weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Dziś o] LT',
+ nextDay: '[Jutro o] LT',
+ nextWeek: '[W] dddd [o] LT',
+ lastDay: '[Wczoraj o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[W zeszłą niedzielę o] LT';
+ case 3:
+ return '[W zeszłą środę o] LT';
+ case 6:
+ return '[W zeszłą sobotę o] LT';
+ default:
+ return '[W zeszły] dddd [o] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : '%s temu',
+ s : 'kilka sekund',
+ m : pl__translate,
+ mm : pl__translate,
+ h : pl__translate,
+ hh : pl__translate,
+ d : '1 dzień',
+ dd : '%d dni',
+ M : 'miesiąc',
+ MM : pl__translate,
+ y : 'rok',
+ yy : pl__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : brazilian portuguese (pt-br)
+ //! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
+
+ var pt_br = moment__default.defineLocale('pt-br', {
+ months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),
+ monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
+ weekdays : 'Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado'.split('_'),
+ weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
+ weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'
+ },
+ calendar : {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return (this.day() === 0 || this.day() === 6) ?
+ '[Último] dddd [às] LT' : // Saturday + Sunday
+ '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'em %s',
+ past : '%s atrás',
+ s : 'poucos segundos',
+ m : 'um minuto',
+ mm : '%d minutos',
+ h : 'uma hora',
+ hh : '%d horas',
+ d : 'um dia',
+ dd : '%d dias',
+ M : 'um mês',
+ MM : '%d meses',
+ y : 'um ano',
+ yy : '%d anos'
+ },
+ ordinalParse: /\d{1,2}º/,
+ ordinal : '%dº'
+ });
+
+ //! moment.js locale configuration
+ //! locale : portuguese (pt)
+ //! author : Jefferson : https://github.com/jalex79
+
+ var pt = moment__default.defineLocale('pt', {
+ months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),
+ monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
+ weekdays : 'Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado'.split('_'),
+ weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
+ weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY HH:mm',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return (this.day() === 0 || this.day() === 6) ?
+ '[Último] dddd [às] LT' : // Saturday + Sunday
+ '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'em %s',
+ past : 'há %s',
+ s : 'segundos',
+ m : 'um minuto',
+ mm : '%d minutos',
+ h : 'uma hora',
+ hh : '%d horas',
+ d : 'um dia',
+ dd : '%d dias',
+ M : 'um mês',
+ MM : '%d meses',
+ y : 'um ano',
+ yy : '%d anos'
+ },
+ ordinalParse: /\d{1,2}º/,
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : romanian (ro)
+ //! author : Vlad Gurdiga : https://github.com/gurdiga
+ //! author : Valentin Agachi : https://github.com/avaly
+
+ function ro__relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': 'minute',
+ 'hh': 'ore',
+ 'dd': 'zile',
+ 'MM': 'luni',
+ 'yy': 'ani'
+ },
+ separator = ' ';
+ if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
+ separator = ' de ';
+ }
+ return number + separator + format[key];
+ }
+
+ var ro = moment__default.defineLocale('ro', {
+ months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
+ monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
+ weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
+ weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
+ weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd, D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay: '[azi la] LT',
+ nextDay: '[mâine la] LT',
+ nextWeek: 'dddd [la] LT',
+ lastDay: '[ieri la] LT',
+ lastWeek: '[fosta] dddd [la] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'peste %s',
+ past : '%s în urmă',
+ s : 'câteva secunde',
+ m : 'un minut',
+ mm : ro__relativeTimeWithPlural,
+ h : 'o oră',
+ hh : ro__relativeTimeWithPlural,
+ d : 'o zi',
+ dd : ro__relativeTimeWithPlural,
+ M : 'o lună',
+ MM : ro__relativeTimeWithPlural,
+ y : 'un an',
+ yy : ro__relativeTimeWithPlural
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : russian (ru)
+ //! author : Viktorminator : https://github.com/Viktorminator
+ //! Author : Menelion Elensúle : https://github.com/Oire
+
+ function ru__plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+ function ru__relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
+ 'hh': 'час_часа_часов',
+ 'dd': 'день_дня_дней',
+ 'MM': 'месяц_месяца_месяцев',
+ 'yy': 'год_года_лет'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'минута' : 'минуту';
+ }
+ else {
+ return number + ' ' + ru__plural(format[key], +number);
+ }
+ }
+ var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
+
+ var ru = moment__default.defineLocale('ru', {
+ months : {
+ format: 'Января_Февраля_Марта_Апреля_Мая_Июня_Июля_Августа_Сентября_Октября_Ноября_Декабря'.split('_'),
+ standalone: 'Январь_Февраль_Март_Апрель_Май_Июнь_Июль_Август_Сентябрь_Октябрь_Ноябрь_Декабрь'.split('_')
+ },
+ monthsShort : {
+ format: 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_'),
+ standalone: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_')
+ },
+ weekdays : {
+ standalone: 'Воскресенье_Понедельник_Вторник_Среда_Четверг_Пятница_Суббота'.split('_'),
+ format: 'Воскресенье_Понедельник_Вторник_Среду_Четверг_Пятницу_Субботу'.split('_'),
+ isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
+ },
+ weekdaysShort : 'Вс_Пн_Вт_Ср_Чт_Пт_Сб'.split('_'),
+ weekdaysMin : 'Вс_Пн_Вт_Ср_Чт_Пт_Сб'.split('_'),
+ monthsParse : monthsParse,
+ longMonthsParse : monthsParse,
+ shortMonthsParse : monthsParse,
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY г.',
+ LLL : 'D MMMM YYYY г., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY г., HH:mm'
+ },
+ calendar : {
+ sameDay: '[Сегодня в] LT',
+ nextDay: '[Завтра в] LT',
+ lastDay: '[Вчера в] LT',
+ nextWeek: function (now) {
+ if (now.week() !== this.week()) {
+ switch (this.day()) {
+ case 0:
+ return '[В следующее] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[В следующий] dddd [в] LT';
+ case 3:
+ case 5:
+ case 6:
+ return '[В следующую] dddd [в] LT';
+ }
+ } else {
+ if (this.day() === 2) {
+ return '[Во] dddd [в] LT';
+ } else {
+ return '[В] dddd [в] LT';
+ }
+ }
+ },
+ lastWeek: function (now) {
+ if (now.week() !== this.week()) {
+ switch (this.day()) {
+ case 0:
+ return '[В прошлое] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[В прошлый] dddd [в] LT';
+ case 3:
+ case 5:
+ case 6:
+ return '[В прошлую] dddd [в] LT';
+ }
+ } else {
+ if (this.day() === 2) {
+ return '[Во] dddd [в] LT';
+ } else {
+ return '[В] dddd [в] LT';
+ }
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'через %s',
+ past : '%s назад',
+ s : 'несколько секунд',
+ m : ru__relativeTimeWithPlural,
+ mm : ru__relativeTimeWithPlural,
+ h : 'час',
+ hh : ru__relativeTimeWithPlural,
+ d : 'день',
+ dd : ru__relativeTimeWithPlural,
+ M : 'месяц',
+ MM : ru__relativeTimeWithPlural,
+ y : 'год',
+ yy : ru__relativeTimeWithPlural
+ },
+ meridiemParse: /ночи|утра|дня|вечера/i,
+ isPM : function (input) {
+ return /^(дня|вечера)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночи';
+ } else if (hour < 12) {
+ return 'утра';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечера';
+ }
+ },
+ ordinalParse: /\d{1,2}-(й|го|я)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ case 'w':
+ case 'W':
+ return number + '-я';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Northern Sami (se)
+ //! authors : Bård Rolstad Henriksen : https://github.com/karamell
+
+
+ var se = moment__default.defineLocale('se', {
+ months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),
+ monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
+ weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),
+ weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
+ weekdaysMin : 's_v_m_g_d_b_L'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'MMMM D. [b.] YYYY',
+ LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',
+ LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'
+ },
+ calendar : {
+ sameDay: '[otne ti] LT',
+ nextDay: '[ihttin ti] LT',
+ nextWeek: 'dddd [ti] LT',
+ lastDay: '[ikte ti] LT',
+ lastWeek: '[ovddit] dddd [ti] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : '%s geažes',
+ past : 'maŋit %s',
+ s : 'moadde sekunddat',
+ m : 'okta minuhta',
+ mm : '%d minuhtat',
+ h : 'okta diimmu',
+ hh : '%d diimmut',
+ d : 'okta beaivi',
+ dd : '%d beaivvit',
+ M : 'okta mánnu',
+ MM : '%d mánut',
+ y : 'okta jahki',
+ yy : '%d jagit'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Sinhalese (si)
+ //! author : Sampath Sitinamaluwa : https://github.com/sampathsris
+
+ /*jshint -W100*/
+ var si = moment__default.defineLocale('si', {
+ months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),
+ monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),
+ weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),
+ weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන'.split('_'),
+ weekdaysMin : 'ඉ_ස_අ_බ_බ්ර_සි_සෙ'.split('_'),
+ longDateFormat : {
+ LT : 'a h:mm',
+ LTS : 'a h:mm:ss',
+ L : 'YYYY/MM/DD',
+ LL : 'YYYY MMMM D',
+ LLL : 'YYYY MMMM D, a h:mm',
+ LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'
+ },
+ calendar : {
+ sameDay : '[අද] LT[ට]',
+ nextDay : '[හෙට] LT[ට]',
+ nextWeek : 'dddd LT[ට]',
+ lastDay : '[ඊයේ] LT[ට]',
+ lastWeek : '[පසුගිය] dddd LT[ට]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%sකින්',
+ past : '%sකට පෙර',
+ s : 'තත්පර කිහිපය',
+ m : 'මිනිත්තුව',
+ mm : 'මිනිත්තු %d',
+ h : 'පැය',
+ hh : 'පැය %d',
+ d : 'දිනය',
+ dd : 'දින %d',
+ M : 'මාසය',
+ MM : 'මාස %d',
+ y : 'වසර',
+ yy : 'වසර %d'
+ },
+ ordinalParse: /\d{1,2} වැනි/,
+ ordinal : function (number) {
+ return number + ' වැනි';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'ප.ව.' : 'පස් වරු';
+ } else {
+ return isLower ? 'පෙ.ව.' : 'පෙර වරු';
+ }
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : slovak (sk)
+ //! author : Martin Minka : https://github.com/k2s
+ //! based on work of petrbela : https://github.com/petrbela
+
+ var sk__months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
+ sk__monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
+ function sk__plural(n) {
+ return (n > 1) && (n < 5);
+ }
+ function sk__translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (sk__plural(number) ? 'minúty' : 'minút');
+ } else {
+ return result + 'minútami';
+ }
+ break;
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (sk__plural(number) ? 'hodiny' : 'hodín');
+ } else {
+ return result + 'hodinami';
+ }
+ break;
+ case 'd': // a day / in a day / a day ago
+ return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (sk__plural(number) ? 'dni' : 'dní');
+ } else {
+ return result + 'dňami';
+ }
+ break;
+ case 'M': // a month / in a month / a month ago
+ return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (sk__plural(number) ? 'mesiace' : 'mesiacov');
+ } else {
+ return result + 'mesiacmi';
+ }
+ break;
+ case 'y': // a year / in a year / a year ago
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (sk__plural(number) ? 'roky' : 'rokov');
+ } else {
+ return result + 'rokmi';
+ }
+ break;
+ }
+ }
+
+ var sk = moment__default.defineLocale('sk', {
+ months : sk__months,
+ monthsShort : sk__monthsShort,
+ weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
+ weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
+ weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
+ longDateFormat : {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay: '[dnes o] LT',
+ nextDay: '[zajtra o] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [o] LT';
+ case 3:
+ return '[v stredu o] LT';
+ case 4:
+ return '[vo štvrtok o] LT';
+ case 5:
+ return '[v piatok o] LT';
+ case 6:
+ return '[v sobotu o] LT';
+ }
+ },
+ lastDay: '[včera o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulú nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[minulý] dddd [o] LT';
+ case 3:
+ return '[minulú stredu o] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [o] LT';
+ case 6:
+ return '[minulú sobotu o] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'pred %s',
+ s : sk__translate,
+ m : sk__translate,
+ mm : sk__translate,
+ h : sk__translate,
+ hh : sk__translate,
+ d : sk__translate,
+ dd : sk__translate,
+ M : sk__translate,
+ MM : sk__translate,
+ y : sk__translate,
+ yy : sk__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : slovenian (sl)
+ //! author : Robert Sedovšek : https://github.com/sedovsek
+
+ function sl__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's':
+ return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';
+ case 'm':
+ return withoutSuffix ? 'ena minuta' : 'eno minuto';
+ case 'mm':
+ if (number === 1) {
+ result += withoutSuffix ? 'minuta' : 'minuto';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'minute' : 'minutami';
+ } else {
+ result += withoutSuffix || isFuture ? 'minut' : 'minutami';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'ena ura' : 'eno uro';
+ case 'hh':
+ if (number === 1) {
+ result += withoutSuffix ? 'ura' : 'uro';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'uri' : 'urama';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'ure' : 'urami';
+ } else {
+ result += withoutSuffix || isFuture ? 'ur' : 'urami';
+ }
+ return result;
+ case 'd':
+ return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
+ case 'dd':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'dan' : 'dnem';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
+ } else {
+ result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
+ }
+ return result;
+ case 'M':
+ return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
+ case 'MM':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
+ } else {
+ result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
+ }
+ return result;
+ case 'y':
+ return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
+ case 'yy':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'leto' : 'letom';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'leti' : 'letoma';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'leta' : 'leti';
+ } else {
+ result += withoutSuffix || isFuture ? 'let' : 'leti';
+ }
+ return result;
+ }
+ }
+
+ var sl = moment__default.defineLocale('sl', {
+ months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
+ weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
+ weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
+ weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ LTS : 'H:mm:ss',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY H:mm',
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay : '[danes ob] LT',
+ nextDay : '[jutri ob] LT',
+
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[v] [nedeljo] [ob] LT';
+ case 3:
+ return '[v] [sredo] [ob] LT';
+ case 6:
+ return '[v] [soboto] [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[v] dddd [ob] LT';
+ }
+ },
+ lastDay : '[včeraj ob] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[prejšnjo] [nedeljo] [ob] LT';
+ case 3:
+ return '[prejšnjo] [sredo] [ob] LT';
+ case 6:
+ return '[prejšnjo] [soboto] [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prejšnji] dddd [ob] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'čez %s',
+ past : 'pred %s',
+ s : sl__processRelativeTime,
+ m : sl__processRelativeTime,
+ mm : sl__processRelativeTime,
+ h : sl__processRelativeTime,
+ hh : sl__processRelativeTime,
+ d : sl__processRelativeTime,
+ dd : sl__processRelativeTime,
+ M : sl__processRelativeTime,
+ MM : sl__processRelativeTime,
+ y : sl__processRelativeTime,
+ yy : sl__processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Albanian (sq)
+ //! author : Flakërim Ismani : https://github.com/flakerimi
+ //! author: Menelion Elensúle: https://github.com/Oire (tests)
+ //! author : Oerd Cukalla : https://github.com/oerd (fixes)
+
+ var sq = moment__default.defineLocale('sq', {
+ months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
+ monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
+ weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
+ weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
+ weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
+ meridiemParse: /PD|MD/,
+ isPM: function (input) {
+ return input.charAt(0) === 'M';
+ },
+ meridiem : function (hours, minutes, isLower) {
+ return hours < 12 ? 'PD' : 'MD';
+ },
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[Sot në] LT',
+ nextDay : '[Nesër në] LT',
+ nextWeek : 'dddd [në] LT',
+ lastDay : '[Dje në] LT',
+ lastWeek : 'dddd [e kaluar në] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'në %s',
+ past : '%s më parë',
+ s : 'disa sekonda',
+ m : 'një minutë',
+ mm : '%d minuta',
+ h : 'një orë',
+ hh : '%d orë',
+ d : 'një ditë',
+ dd : '%d ditë',
+ M : 'një muaj',
+ MM : '%d muaj',
+ y : 'një vit',
+ yy : '%d vite'
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Serbian-cyrillic (sr-cyrl)
+ //! author : Milan Janačković : https://github.com/milan-j
+
+ var sr_cyrl__translator = {
+ words: { //Different grammatical cases
+ m: ['један минут', 'једне минуте'],
+ mm: ['минут', 'минуте', 'минута'],
+ h: ['један сат', 'једног сата'],
+ hh: ['сат', 'сата', 'сати'],
+ dd: ['дан', 'дана', 'дана'],
+ MM: ['месец', 'месеца', 'месеци'],
+ yy: ['година', 'године', 'година']
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = sr_cyrl__translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return number + ' ' + sr_cyrl__translator.correctGrammaticalCase(number, wordKey);
+ }
+ }
+ };
+
+ var sr_cyrl = moment__default.defineLocale('sr-cyrl', {
+ months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
+ monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
+ weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
+ weekdaysShort: ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],
+ weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar: {
+ sameDay: '[данас у] LT',
+ nextDay: '[сутра у] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[у] [недељу] [у] LT';
+ case 3:
+ return '[у] [среду] [у] LT';
+ case 6:
+ return '[у] [суботу] [у] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[у] dddd [у] LT';
+ }
+ },
+ lastDay : '[јуче у] LT',
+ lastWeek : function () {
+ var lastWeekDays = [
+ '[прошле] [недеље] [у] LT',
+ '[прошлог] [понедељка] [у] LT',
+ '[прошлог] [уторка] [у] LT',
+ '[прошле] [среде] [у] LT',
+ '[прошлог] [четвртка] [у] LT',
+ '[прошлог] [петка] [у] LT',
+ '[прошле] [суботе] [у] LT'
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'за %s',
+ past : 'пре %s',
+ s : 'неколико секунди',
+ m : sr_cyrl__translator.translate,
+ mm : sr_cyrl__translator.translate,
+ h : sr_cyrl__translator.translate,
+ hh : sr_cyrl__translator.translate,
+ d : 'дан',
+ dd : sr_cyrl__translator.translate,
+ M : 'месец',
+ MM : sr_cyrl__translator.translate,
+ y : 'годину',
+ yy : sr_cyrl__translator.translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Serbian-latin (sr)
+ //! author : Milan Janačković : https://github.com/milan-j
+
+ var sr__translator = {
+ words: { //Different grammatical cases
+ m: ['jedan minut', 'jedne minute'],
+ mm: ['minut', 'minute', 'minuta'],
+ h: ['jedan sat', 'jednog sata'],
+ hh: ['sat', 'sata', 'sati'],
+ dd: ['dan', 'dana', 'dana'],
+ MM: ['mesec', 'meseca', 'meseci'],
+ yy: ['godina', 'godine', 'godina']
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = sr__translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return number + ' ' + sr__translator.correctGrammaticalCase(number, wordKey);
+ }
+ }
+ };
+
+ var sr = moment__default.defineLocale('sr', {
+ months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
+ monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
+ weekdays: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],
+ weekdaysShort: ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'],
+ weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS : 'H:mm:ss',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
+ },
+ calendar: {
+ sameDay: '[danas u] LT',
+ nextDay: '[sutra u] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedelju] [u] LT';
+ case 3:
+ return '[u] [sredu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[juče u] LT',
+ lastWeek : function () {
+ var lastWeekDays = [
+ '[prošle] [nedelje] [u] LT',
+ '[prošlog] [ponedeljka] [u] LT',
+ '[prošlog] [utorka] [u] LT',
+ '[prošle] [srede] [u] LT',
+ '[prošlog] [četvrtka] [u] LT',
+ '[prošlog] [petka] [u] LT',
+ '[prošle] [subote] [u] LT'
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'pre %s',
+ s : 'nekoliko sekundi',
+ m : sr__translator.translate,
+ mm : sr__translator.translate,
+ h : sr__translator.translate,
+ hh : sr__translator.translate,
+ d : 'dan',
+ dd : sr__translator.translate,
+ M : 'mesec',
+ MM : sr__translator.translate,
+ y : 'godinu',
+ yy : sr__translator.translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : swedish (sv)
+ //! author : Jens Alm : https://github.com/ulmus
+
+ var sv = moment__default.defineLocale('sv', {
+ months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
+ weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
+ weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Idag] LT',
+ nextDay: '[Imorgon] LT',
+ lastDay: '[Igår] LT',
+ nextWeek: '[På] dddd LT',
+ lastWeek: '[I] dddd[s] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'för %s sedan',
+ s : 'några sekunder',
+ m : 'en minut',
+ mm : '%d minuter',
+ h : 'en timme',
+ hh : '%d timmar',
+ d : 'en dag',
+ dd : '%d dagar',
+ M : 'en månad',
+ MM : '%d månader',
+ y : 'ett år',
+ yy : '%d år'
+ },
+ ordinalParse: /\d{1,2}(e|a)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'e' :
+ (b === 1) ? 'a' :
+ (b === 2) ? 'a' :
+ (b === 3) ? 'e' : 'e';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : swahili (sw)
+ //! author : Fahad Kassim : https://github.com/fadsel
+
+ var sw = moment__default.defineLocale('sw', {
+ months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
+ weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),
+ weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
+ weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[leo saa] LT',
+ nextDay : '[kesho saa] LT',
+ nextWeek : '[wiki ijayo] dddd [saat] LT',
+ lastDay : '[jana] LT',
+ lastWeek : '[wiki iliyopita] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s baadaye',
+ past : 'tokea %s',
+ s : 'hivi punde',
+ m : 'dakika moja',
+ mm : 'dakika %d',
+ h : 'saa limoja',
+ hh : 'masaa %d',
+ d : 'siku moja',
+ dd : 'masiku %d',
+ M : 'mwezi mmoja',
+ MM : 'miezi %d',
+ y : 'mwaka mmoja',
+ yy : 'miaka %d'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : tamil (ta)
+ //! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
+
+ var ta__symbolMap = {
+ '1': '௧',
+ '2': '௨',
+ '3': '௩',
+ '4': '௪',
+ '5': '௫',
+ '6': '௬',
+ '7': '௭',
+ '8': '௮',
+ '9': '௯',
+ '0': '௦'
+ }, ta__numberMap = {
+ '௧': '1',
+ '௨': '2',
+ '௩': '3',
+ '௪': '4',
+ '௫': '5',
+ '௬': '6',
+ '௭': '7',
+ '௮': '8',
+ '௯': '9',
+ '௦': '0'
+ };
+
+ var ta = moment__default.defineLocale('ta', {
+ months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
+ monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
+ weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
+ weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
+ weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, HH:mm',
+ LLLL : 'dddd, D MMMM YYYY, HH:mm'
+ },
+ calendar : {
+ sameDay : '[இன்று] LT',
+ nextDay : '[நாளை] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[நேற்று] LT',
+ lastWeek : '[கடந்த வாரம்] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s இல்',
+ past : '%s முன்',
+ s : 'ஒரு சில விநாடிகள்',
+ m : 'ஒரு நிமிடம்',
+ mm : '%d நிமிடங்கள்',
+ h : 'ஒரு மணி நேரம்',
+ hh : '%d மணி நேரம்',
+ d : 'ஒரு நாள்',
+ dd : '%d நாட்கள்',
+ M : 'ஒரு மாதம்',
+ MM : '%d மாதங்கள்',
+ y : 'ஒரு வருடம்',
+ yy : '%d ஆண்டுகள்'
+ },
+ ordinalParse: /\d{1,2}வது/,
+ ordinal : function (number) {
+ return number + 'வது';
+ },
+ preparse: function (string) {
+ return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
+ return ta__numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return ta__symbolMap[match];
+ });
+ },
+ // refer http://ta.wikipedia.org/s/1er1
+ meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 2) {
+ return ' யாமம்';
+ } else if (hour < 6) {
+ return ' வைகறை'; // வைகறை
+ } else if (hour < 10) {
+ return ' காலை'; // காலை
+ } else if (hour < 14) {
+ return ' நண்பகல்'; // நண்பகல்
+ } else if (hour < 18) {
+ return ' எற்பாடு'; // எற்பாடு
+ } else if (hour < 22) {
+ return ' மாலை'; // மாலை
+ } else {
+ return ' யாமம்';
+ }
+ },
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'யாமம்') {
+ return hour < 2 ? hour : hour + 12;
+ } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
+ return hour;
+ } else if (meridiem === 'நண்பகல்') {
+ return hour >= 10 ? hour : hour + 12;
+ } else {
+ return hour + 12;
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : telugu (te)
+ //! author : Krishna Chaitanya Thota : https://github.com/kcthota
+
+ var te = moment__default.defineLocale('te', {
+ months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),
+ monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),
+ weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),
+ weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
+ weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm',
+ LTS : 'A h:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, A h:mm',
+ LLLL : 'dddd, D MMMM YYYY, A h:mm'
+ },
+ calendar : {
+ sameDay : '[నేడు] LT',
+ nextDay : '[రేపు] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[నిన్న] LT',
+ lastWeek : '[గత] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s లో',
+ past : '%s క్రితం',
+ s : 'కొన్ని క్షణాలు',
+ m : 'ఒక నిమిషం',
+ mm : '%d నిమిషాలు',
+ h : 'ఒక గంట',
+ hh : '%d గంటలు',
+ d : 'ఒక రోజు',
+ dd : '%d రోజులు',
+ M : 'ఒక నెల',
+ MM : '%d నెలలు',
+ y : 'ఒక సంవత్సరం',
+ yy : '%d సంవత్సరాలు'
+ },
+ ordinalParse : /\d{1,2}వ/,
+ ordinal : '%dవ',
+ meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'రాత్రి') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'ఉదయం') {
+ return hour;
+ } else if (meridiem === 'మధ్యాహ్నం') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'సాయంత్రం') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'రాత్రి';
+ } else if (hour < 10) {
+ return 'ఉదయం';
+ } else if (hour < 17) {
+ return 'మధ్యాహ్నం';
+ } else if (hour < 20) {
+ return 'సాయంత్రం';
+ } else {
+ return 'రాత్రి';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : thai (th)
+ //! author : Kridsada Thanabulpong : https://github.com/sirn
+
+ var th = moment__default.defineLocale('th', {
+ months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
+ monthsShort : 'มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา'.split('_'),
+ weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
+ weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
+ weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
+ longDateFormat : {
+ LT : 'H นาฬิกา m นาที',
+ LTS : 'H นาฬิกา m นาที s วินาที',
+ L : 'YYYY/MM/DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY เวลา H นาฬิกา m นาที',
+ LLLL : 'วันddddที่ D MMMM YYYY เวลา H นาฬิกา m นาที'
+ },
+ meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
+ isPM: function (input) {
+ return input === 'หลังเที่ยง';
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ก่อนเที่ยง';
+ } else {
+ return 'หลังเที่ยง';
+ }
+ },
+ calendar : {
+ sameDay : '[วันนี้ เวลา] LT',
+ nextDay : '[พรุ่งนี้ เวลา] LT',
+ nextWeek : 'dddd[หน้า เวลา] LT',
+ lastDay : '[เมื่อวานนี้ เวลา] LT',
+ lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'อีก %s',
+ past : '%sที่แล้ว',
+ s : 'ไม่กี่วินาที',
+ m : '1 นาที',
+ mm : '%d นาที',
+ h : '1 ชั่วโมง',
+ hh : '%d ชั่วโมง',
+ d : '1 วัน',
+ dd : '%d วัน',
+ M : '1 เดือน',
+ MM : '%d เดือน',
+ y : '1 ปี',
+ yy : '%d ปี'
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Tagalog/Filipino (tl-ph)
+ //! author : Dan Hagman
+
+ var tl_ph = moment__default.defineLocale('tl-ph', {
+ months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
+ monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
+ weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
+ weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
+ weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'MM/D/YYYY',
+ LL : 'MMMM D, YYYY',
+ LLL : 'MMMM D, YYYY HH:mm',
+ LLLL : 'dddd, MMMM DD, YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Ngayon sa] LT',
+ nextDay: '[Bukas sa] LT',
+ nextWeek: 'dddd [sa] LT',
+ lastDay: '[Kahapon sa] LT',
+ lastWeek: 'dddd [huling linggo] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'sa loob ng %s',
+ past : '%s ang nakalipas',
+ s : 'ilang segundo',
+ m : 'isang minuto',
+ mm : '%d minuto',
+ h : 'isang oras',
+ hh : '%d oras',
+ d : 'isang araw',
+ dd : '%d araw',
+ M : 'isang buwan',
+ MM : '%d buwan',
+ y : 'isang taon',
+ yy : '%d taon'
+ },
+ ordinalParse: /\d{1,2}/,
+ ordinal : function (number) {
+ return number;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Klingon (tlh)
+ //! author : Dominika Kruk : https://github.com/amaranthrose
+
+ var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
+
+ function translateFuture(output) {
+ var time = output;
+ time = (output.indexOf('jaj') !== -1) ?
+ time.slice(0, -3) + 'leS' :
+ (output.indexOf('jar') !== -1) ?
+ time.slice(0, -3) + 'waQ' :
+ (output.indexOf('DIS') !== -1) ?
+ time.slice(0, -3) + 'nem' :
+ time + ' pIq';
+ return time;
+ }
+
+ function translatePast(output) {
+ var time = output;
+ time = (output.indexOf('jaj') !== -1) ?
+ time.slice(0, -3) + 'Hu’' :
+ (output.indexOf('jar') !== -1) ?
+ time.slice(0, -3) + 'wen' :
+ (output.indexOf('DIS') !== -1) ?
+ time.slice(0, -3) + 'ben' :
+ time + ' ret';
+ return time;
+ }
+
+ function tlh__translate(number, withoutSuffix, string, isFuture) {
+ var numberNoun = numberAsNoun(number);
+ switch (string) {
+ case 'mm':
+ return numberNoun + ' tup';
+ case 'hh':
+ return numberNoun + ' rep';
+ case 'dd':
+ return numberNoun + ' jaj';
+ case 'MM':
+ return numberNoun + ' jar';
+ case 'yy':
+ return numberNoun + ' DIS';
+ }
+ }
+
+ function numberAsNoun(number) {
+ var hundred = Math.floor((number % 1000) / 100),
+ ten = Math.floor((number % 100) / 10),
+ one = number % 10,
+ word = '';
+ if (hundred > 0) {
+ word += numbersNouns[hundred] + 'vatlh';
+ }
+ if (ten > 0) {
+ word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';
+ }
+ if (one > 0) {
+ word += ((word !== '') ? ' ' : '') + numbersNouns[one];
+ }
+ return (word === '') ? 'pagh' : word;
+ }
+
+ var tlh = moment__default.defineLocale('tlh', {
+ months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),
+ monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),
+ weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
+ weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
+ weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[DaHjaj] LT',
+ nextDay: '[wa’leS] LT',
+ nextWeek: 'LLL',
+ lastDay: '[wa’Hu’] LT',
+ lastWeek: 'LLL',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : translateFuture,
+ past : translatePast,
+ s : 'puS lup',
+ m : 'wa’ tup',
+ mm : tlh__translate,
+ h : 'wa’ rep',
+ hh : tlh__translate,
+ d : 'wa’ jaj',
+ dd : tlh__translate,
+ M : 'wa’ jar',
+ MM : tlh__translate,
+ y : 'wa’ DIS',
+ yy : tlh__translate
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : turkish (tr)
+ //! authors : Erhan Gundogan : https://github.com/erhangundogan,
+ //! Burak Yiğit Kaya: https://github.com/BYK
+
+ var tr__suffixes = {
+ 1: '\'inci',
+ 5: '\'inci',
+ 8: '\'inci',
+ 70: '\'inci',
+ 80: '\'inci',
+ 2: '\'nci',
+ 7: '\'nci',
+ 20: '\'nci',
+ 50: '\'nci',
+ 3: '\'üncü',
+ 4: '\'üncü',
+ 100: '\'üncü',
+ 6: '\'ncı',
+ 9: '\'uncu',
+ 10: '\'uncu',
+ 30: '\'uncu',
+ 60: '\'ıncı',
+ 90: '\'ıncı'
+ };
+
+ var tr = moment__default.defineLocale('tr', {
+ months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
+ monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
+ weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
+ weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
+ weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay : '[bugün saat] LT',
+ nextDay : '[yarın saat] LT',
+ nextWeek : '[haftaya] dddd [saat] LT',
+ lastDay : '[dün] LT',
+ lastWeek : '[geçen hafta] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s sonra',
+ past : '%s önce',
+ s : 'birkaç saniye',
+ m : 'bir dakika',
+ mm : '%d dakika',
+ h : 'bir saat',
+ hh : '%d saat',
+ d : 'bir gün',
+ dd : '%d gün',
+ M : 'bir ay',
+ MM : '%d ay',
+ y : 'bir yıl',
+ yy : '%d yıl'
+ },
+ ordinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,
+ ordinal : function (number) {
+ if (number === 0) { // special case for zero
+ return number + '\'ıncı';
+ }
+ var a = number % 10,
+ b = number % 100 - a,
+ c = number >= 100 ? 100 : null;
+ return number + (tr__suffixes[a] || tr__suffixes[b] || tr__suffixes[c]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : talossan (tzl)
+ //! author : Robin van der Vliet : https://github.com/robin0van0der0v with the help of Iustì Canun
+
+
+ // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
+ // This is currently too difficult (maybe even impossible) to add.
+ var tzl = moment__default.defineLocale('tzl', {
+ months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),
+ monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
+ weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
+ weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
+ weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM [dallas] YYYY',
+ LLL : 'D. MMMM [dallas] YYYY HH.mm',
+ LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'd\'o' : 'D\'O';
+ } else {
+ return isLower ? 'd\'a' : 'D\'A';
+ }
+ },
+ calendar : {
+ sameDay : '[oxhi à] LT',
+ nextDay : '[demà à] LT',
+ nextWeek : 'dddd [à] LT',
+ lastDay : '[ieiri à] LT',
+ lastWeek : '[sür el] dddd [lasteu à] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'osprei %s',
+ past : 'ja%s',
+ s : tzl__processRelativeTime,
+ m : tzl__processRelativeTime,
+ mm : tzl__processRelativeTime,
+ h : tzl__processRelativeTime,
+ hh : tzl__processRelativeTime,
+ d : tzl__processRelativeTime,
+ dd : tzl__processRelativeTime,
+ M : tzl__processRelativeTime,
+ MM : tzl__processRelativeTime,
+ y : tzl__processRelativeTime,
+ yy : tzl__processRelativeTime
+ },
+ ordinalParse: /\d{1,2}\./,
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ function tzl__processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 's': ['viensas secunds', '\'iensas secunds'],
+ 'm': ['\'n míut', '\'iens míut'],
+ 'mm': [number + ' míuts', '' + number + ' míuts'],
+ 'h': ['\'n þora', '\'iensa þora'],
+ 'hh': [number + ' þoras', '' + number + ' þoras'],
+ 'd': ['\'n ziua', '\'iensa ziua'],
+ 'dd': [number + ' ziuas', '' + number + ' ziuas'],
+ 'M': ['\'n mes', '\'iens mes'],
+ 'MM': [number + ' mesen', '' + number + ' mesen'],
+ 'y': ['\'n ar', '\'iens ar'],
+ 'yy': [number + ' ars', '' + number + ' ars']
+ };
+ return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);
+ }
+
+ //! moment.js locale configuration
+ //! locale : Morocco Central Atlas Tamaziɣt in Latin (tzm-latn)
+ //! author : Abdel Said : https://github.com/abdelsaid
+
+ var tzm_latn = moment__default.defineLocale('tzm-latn', {
+ months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
+ monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
+ weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[asdkh g] LT',
+ nextDay: '[aska g] LT',
+ nextWeek: 'dddd [g] LT',
+ lastDay: '[assant g] LT',
+ lastWeek: 'dddd [g] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dadkh s yan %s',
+ past : 'yan %s',
+ s : 'imik',
+ m : 'minuḍ',
+ mm : '%d minuḍ',
+ h : 'saɛa',
+ hh : '%d tassaɛin',
+ d : 'ass',
+ dd : '%d ossan',
+ M : 'ayowr',
+ MM : '%d iyyirn',
+ y : 'asgas',
+ yy : '%d isgasn'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : Morocco Central Atlas Tamaziɣt (tzm)
+ //! author : Abdel Said : https://github.com/abdelsaid
+
+ var tzm = moment__default.defineLocale('tzm', {
+ months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
+ monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
+ weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'dddd D MMMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
+ nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
+ nextWeek: 'dddd [ⴴ] LT',
+ lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
+ lastWeek: 'dddd [ⴴ] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
+ past : 'ⵢⴰⵏ %s',
+ s : 'ⵉⵎⵉⴽ',
+ m : 'ⵎⵉⵏⵓⴺ',
+ mm : '%d ⵎⵉⵏⵓⴺ',
+ h : 'ⵙⴰⵄⴰ',
+ hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
+ d : 'ⴰⵙⵙ',
+ dd : '%d oⵙⵙⴰⵏ',
+ M : 'ⴰⵢoⵓⵔ',
+ MM : '%d ⵉⵢⵢⵉⵔⵏ',
+ y : 'ⴰⵙⴳⴰⵙ',
+ yy : '%d ⵉⵙⴳⴰⵙⵏ'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : ukrainian (uk)
+ //! author : zemlanin : https://github.com/zemlanin
+ //! Author : Menelion Elensúle : https://github.com/Oire
+
+ function uk__plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+ function uk__relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
+ 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
+ 'dd': 'день_дні_днів',
+ 'MM': 'місяць_місяці_місяців',
+ 'yy': 'рік_роки_років'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'хвилина' : 'хвилину';
+ }
+ else if (key === 'h') {
+ return withoutSuffix ? 'година' : 'годину';
+ }
+ else {
+ return number + ' ' + uk__plural(format[key], +number);
+ }
+ }
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = {
+ 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
+ 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
+ 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
+ },
+ nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
+ 'accusative' :
+ ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
+ 'genitive' :
+ 'nominative');
+ return weekdays[nounCase][m.day()];
+ }
+ function processHoursFunction(str) {
+ return function () {
+ return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
+ };
+ }
+
+ var uk = moment__default.defineLocale('uk', {
+ months : {
+ 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),
+ 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')
+ },
+ monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
+ weekdays : weekdaysCaseReplace,
+ weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY р.',
+ LLL : 'D MMMM YYYY р., HH:mm',
+ LLLL : 'dddd, D MMMM YYYY р., HH:mm'
+ },
+ calendar : {
+ sameDay: processHoursFunction('[Сьогодні '),
+ nextDay: processHoursFunction('[Завтра '),
+ lastDay: processHoursFunction('[Вчора '),
+ nextWeek: processHoursFunction('[У] dddd ['),
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 5:
+ case 6:
+ return processHoursFunction('[Минулої] dddd [').call(this);
+ case 1:
+ case 2:
+ case 4:
+ return processHoursFunction('[Минулого] dddd [').call(this);
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'за %s',
+ past : '%s тому',
+ s : 'декілька секунд',
+ m : uk__relativeTimeWithPlural,
+ mm : uk__relativeTimeWithPlural,
+ h : 'годину',
+ hh : uk__relativeTimeWithPlural,
+ d : 'день',
+ dd : uk__relativeTimeWithPlural,
+ M : 'місяць',
+ MM : uk__relativeTimeWithPlural,
+ y : 'рік',
+ yy : uk__relativeTimeWithPlural
+ },
+ // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
+ meridiemParse: /ночі|ранку|дня|вечора/,
+ isPM: function (input) {
+ return /^(дня|вечора)$/.test(input);
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночі';
+ } else if (hour < 12) {
+ return 'ранку';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечора';
+ }
+ },
+ ordinalParse: /\d{1,2}-(й|го)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ case 'w':
+ case 'W':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ default:
+ return number;
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : uzbek (uz)
+ //! author : Sardor Muminov : https://github.com/muminoff
+
+ var uz = moment__default.defineLocale('uz', {
+ months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
+ monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
+ weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
+ weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
+ weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY HH:mm',
+ LLLL : 'D MMMM YYYY, dddd HH:mm'
+ },
+ calendar : {
+ sameDay : '[Бугун соат] LT [да]',
+ nextDay : '[Эртага] LT [да]',
+ nextWeek : 'dddd [куни соат] LT [да]',
+ lastDay : '[Кеча соат] LT [да]',
+ lastWeek : '[Утган] dddd [куни соат] LT [да]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'Якин %s ичида',
+ past : 'Бир неча %s олдин',
+ s : 'фурсат',
+ m : 'бир дакика',
+ mm : '%d дакика',
+ h : 'бир соат',
+ hh : '%d соат',
+ d : 'бир кун',
+ dd : '%d кун',
+ M : 'бир ой',
+ MM : '%d ой',
+ y : 'бир йил',
+ yy : '%d йил'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : vietnamese (vi)
+ //! author : Bang Nguyen : https://github.com/bangnk
+
+ var vi = moment__default.defineLocale('vi', {
+ months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),
+ monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
+ weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
+ weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
+ weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM [năm] YYYY',
+ LLL : 'D MMMM [năm] YYYY HH:mm',
+ LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',
+ l : 'DD/M/YYYY',
+ ll : 'D MMM YYYY',
+ lll : 'D MMM YYYY HH:mm',
+ llll : 'ddd, D MMM YYYY HH:mm'
+ },
+ calendar : {
+ sameDay: '[Hôm nay lúc] LT',
+ nextDay: '[Ngày mai lúc] LT',
+ nextWeek: 'dddd [tuần tới lúc] LT',
+ lastDay: '[Hôm qua lúc] LT',
+ lastWeek: 'dddd [tuần rồi lúc] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : '%s tới',
+ past : '%s trước',
+ s : 'vài giây',
+ m : 'một phút',
+ mm : '%d phút',
+ h : 'một giờ',
+ hh : '%d giờ',
+ d : 'một ngày',
+ dd : '%d ngày',
+ M : 'một tháng',
+ MM : '%d tháng',
+ y : 'một năm',
+ yy : '%d năm'
+ },
+ ordinalParse: /\d{1,2}/,
+ ordinal : function (number) {
+ return number;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : chinese (zh-cn)
+ //! author : suupic : https://github.com/suupic
+ //! author : Zeno Zeng : https://github.com/zenozeng
+
+ var zh_cn = moment__default.defineLocale('zh-cn', {
+ months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
+ weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat : {
+ LT : 'Ah点mm分',
+ LTS : 'Ah点m分s秒',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY年MMMD日',
+ LLL : 'YYYY年MMMD日Ah点mm分',
+ LLLL : 'YYYY年MMMD日ddddAh点mm分',
+ l : 'YYYY-MM-DD',
+ ll : 'YYYY年MMMD日',
+ lll : 'YYYY年MMMD日Ah点mm分',
+ llll : 'YYYY年MMMD日ddddAh点mm分'
+ },
+ meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '凌晨' || meridiem === '早上' ||
+ meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ } else {
+ // '中午'
+ return hour >= 11 ? hour : hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 600) {
+ return '凌晨';
+ } else if (hm < 900) {
+ return '早上';
+ } else if (hm < 1130) {
+ return '上午';
+ } else if (hm < 1230) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar : {
+ sameDay : function () {
+ return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT';
+ },
+ nextDay : function () {
+ return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT';
+ },
+ lastDay : function () {
+ return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT';
+ },
+ nextWeek : function () {
+ var startOfWeek, prefix;
+ startOfWeek = moment__default().startOf('week');
+ prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';
+ return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
+ },
+ lastWeek : function () {
+ var startOfWeek, prefix;
+ startOfWeek = moment__default().startOf('week');
+ prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]';
+ return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
+ },
+ sameElse : 'LL'
+ },
+ ordinalParse: /\d{1,2}(日|月|周)/,
+ ordinal : function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + '日';
+ case 'M':
+ return number + '月';
+ case 'w':
+ case 'W':
+ return number + '周';
+ default:
+ return number;
+ }
+ },
+ relativeTime : {
+ future : '%s内',
+ past : '%s前',
+ s : '几秒',
+ m : '1 分钟',
+ mm : '%d 分钟',
+ h : '1 小时',
+ hh : '%d 小时',
+ d : '1 天',
+ dd : '%d 天',
+ M : '1 个月',
+ MM : '%d 个月',
+ y : '1 年',
+ yy : '%d 年'
+ },
+ week : {
+ // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+
+ //! moment.js locale configuration
+ //! locale : traditional chinese (zh-tw)
+ //! author : Ben : https://github.com/ben-lin
+
+ var zh_tw = moment__default.defineLocale('zh-tw', {
+ months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
+ weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat : {
+ LT : 'Ah點mm分',
+ LTS : 'Ah點m分s秒',
+ L : 'YYYY年MMMD日',
+ LL : 'YYYY年MMMD日',
+ LLL : 'YYYY年MMMD日Ah點mm分',
+ LLLL : 'YYYY年MMMD日ddddAh點mm分',
+ l : 'YYYY年MMMD日',
+ ll : 'YYYY年MMMD日',
+ lll : 'YYYY年MMMD日Ah點mm分',
+ llll : 'YYYY年MMMD日ddddAh點mm分'
+ },
+ meridiemParse: /早上|上午|中午|下午|晚上/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '早上' || meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '中午') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ }
+ },
+ meridiem : function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 900) {
+ return '早上';
+ } else if (hm < 1130) {
+ return '上午';
+ } else if (hm < 1230) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar : {
+ sameDay : '[今天]LT',
+ nextDay : '[明天]LT',
+ nextWeek : '[下]ddddLT',
+ lastDay : '[昨天]LT',
+ lastWeek : '[上]ddddLT',
+ sameElse : 'L'
+ },
+ ordinalParse: /\d{1,2}(日|月|週)/,
+ ordinal : function (number, period) {
+ switch (period) {
+ case 'd' :
+ case 'D' :
+ case 'DDD' :
+ return number + '日';
+ case 'M' :
+ return number + '月';
+ case 'w' :
+ case 'W' :
+ return number + '週';
+ default :
+ return number;
+ }
+ },
+ relativeTime : {
+ future : '%s內',
+ past : '%s前',
+ s : '幾秒',
+ m : '一分鐘',
+ mm : '%d分鐘',
+ h : '一小時',
+ hh : '%d小時',
+ d : '一天',
+ dd : '%d天',
+ M : '一個月',
+ MM : '%d個月',
+ y : '一年',
+ yy : '%d年'
+ }
+ });
+
+ var moment_with_locales = moment__default;
+ moment_with_locales.locale('en');
+
+ return moment_with_locales;
+
+}));
\ No newline at end of file
diff --git a/node_modules/moment/min/moment-with-locales.min.js b/node_modules/moment/min/moment-with-locales.min.js
new file mode 100644
index 0000000..75677d1
--- /dev/null
+++ b/node_modules/moment/min/moment-with-locales.min.js
@@ -0,0 +1,74 @@
+!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return Rd.apply(null,arguments)}function b(a){Rd=a}function c(a){return"[object Array]"===Object.prototype.toString.call(a)}function d(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function e(a,b){var c,d=[];for(c=0;c0)for(c in Td)d=Td[c],e=b[d],m(e)||(a[d]=e);return a}function o(b){n(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),Ud===!1&&(Ud=!0,a.updateOffset(this),Ud=!1)}function p(a){return a instanceof o||null!=a&&null!=a._isAMomentObject}function q(a){return 0>a?Math.ceil(a):Math.floor(a)}function r(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=q(b)),c}function s(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&r(a[d])!==r(b[d]))&&g++;return g+f}function t(){}function u(a){return a?a.toLowerCase().replace("_","-"):a}function v(a){for(var b,c,d,e,f=0;f0;){if(d=w(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&s(e,c,!0)>=b-1)break;b--}f++}return null}function w(a){var b=null;if(!Vd[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=Sd._abbr,require("./locale/"+a),x(b)}catch(c){}return Vd[a]}function x(a,b){var c;return a&&(c=m(b)?z(a):y(a,b),c&&(Sd=c)),Sd._abbr}function y(a,b){return null!==b?(b.abbr=a,Vd[a]=Vd[a]||new t,Vd[a].set(b),x(a),Vd[a]):(delete Vd[a],null)}function z(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Sd;if(!c(a)){if(b=w(a))return b;a=[a]}return v(a)}function A(a,b){var c=a.toLowerCase();Wd[c]=Wd[c+"s"]=Wd[b]=a}function B(a){return"string"==typeof a?Wd[a]||Wd[a.toLowerCase()]:void 0}function C(a){var b,c,d={};for(c in a)f(a,c)&&(b=B(c),b&&(d[b]=a[c]));return d}function D(a){return a instanceof Function||"[object Function]"===Object.prototype.toString.call(a)}function E(b,c){return function(d){return null!=d?(G(this,b,d),a.updateOffset(this,c),this):F(this,b)}}function F(a,b){return a.isValid()?a._d["get"+(a._isUTC?"UTC":"")+b]():NaN}function G(a,b,c){a.isValid()&&a._d["set"+(a._isUTC?"UTC":"")+b](c)}function H(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else if(a=B(a),D(this[a]))return this[a](b);return this}function I(a,b,c){var d=""+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function J(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&($d[a]=e),b&&($d[b[0]]=function(){return I(e.apply(this,arguments),b[1],b[2])}),c&&($d[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function K(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function L(a){var b,c,d=a.match(Xd);for(b=0,c=d.length;c>b;b++)$d[d[b]]?d[b]=$d[d[b]]:d[b]=K(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function M(a,b){return a.isValid()?(b=N(b,a.localeData()),Zd[b]=Zd[b]||L(b),Zd[b](a)):a.localeData().invalidDate()}function N(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Yd.lastIndex=0;d>=0&&Yd.test(a);)a=a.replace(Yd,c),Yd.lastIndex=0,d-=1;return a}function O(a,b,c){qe[a]=D(b)?b:function(a,d){return a&&c?c:b}}function P(a,b){return f(qe,a)?qe[a](b._strict,b._locale):new RegExp(Q(a))}function Q(a){return R(a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function R(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function S(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),"number"==typeof b&&(d=function(a,c){c[b]=r(a)}),c=0;c