eb6079ea0a7e798a2449b7322f8f04cc.json 31 KB

1
  1. {"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport ButtonBase from '../ButtonBase';\nimport isMuiElement from '../utils/isMuiElement';\nimport useForkRef from '../utils/useForkRef';\nimport ListContext from '../List/ListContext';\nimport * as ReactDOM from 'react-dom';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the (normally root) `component` element. May be wrapped by a `container`. */\n root: {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n width: '100%',\n boxSizing: 'border-box',\n textAlign: 'left',\n paddingTop: 8,\n paddingBottom: 8,\n '&$focusVisible': {\n backgroundColor: theme.palette.action.selected\n },\n '&$selected, &$selected:hover': {\n backgroundColor: theme.palette.action.selected\n },\n '&$disabled': {\n opacity: 0.5\n }\n },\n\n /* Styles applied to the `container` element if `children` includes `ListItemSecondaryAction`. */\n container: {\n position: 'relative'\n },\n\n /* Pseudo-class applied to the `component`'s `focusVisibleClassName` prop if `button={true}`. */\n focusVisible: {},\n\n /* Styles applied to the `component` element if dense. */\n dense: {\n paddingTop: 4,\n paddingBottom: 4\n },\n\n /* Styles applied to the `component` element if `alignItems=\"flex-start\"`. */\n alignItemsFlexStart: {\n alignItems: 'flex-start'\n },\n\n /* Pseudo-class applied to the inner `component` element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the inner `component` element if `divider={true}`. */\n divider: {\n borderBottom: \"1px solid \".concat(theme.palette.divider),\n backgroundClip: 'padding-box'\n },\n\n /* Styles applied to the inner `component` element if `disableGutters={false}`. */\n gutters: {\n paddingLeft: 16,\n paddingRight: 16\n },\n\n /* Styles applied to the inner `component` element if `button={true}`. */\n button: {\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Styles applied to the `component` element if `children` includes `ListItemSecondaryAction`. */\n secondaryAction: {\n // Add some space to avoid collision as `ListItemSecondaryAction`\n // is absolutely positioned.\n paddingRight: 48\n },\n\n /* Pseudo-class applied to the root element if `selected={true}`. */\n selected: {}\n };\n};\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * Uses an additional container component if `ListItemSecondaryAction` is the last child.\n */\n\nvar ListItem = /*#__PURE__*/React.forwardRef(function ListItem(props, ref) {\n var _props$alignItems = props.alignItems,\n alignItems = _props$alignItems === void 0 ? 'center' : _props$alignItems,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,\n _props$button = props.button,\n button = _props$button === void 0 ? false : _props$button,\n childrenProp = props.children,\n classes = props.classes,\n className = props.className,\n componentProp = props.component,\n _props$ContainerCompo = props.ContainerComponent,\n ContainerComponent = _props$ContainerCompo === void 0 ? 'li' : _props$ContainerCompo,\n _props$ContainerProps = props.ContainerProps;\n _props$ContainerProps = _props$ContainerProps === void 0 ? {} : _props$ContainerProps;\n\n var ContainerClassName = _props$ContainerProps.className,\n ContainerProps = _objectWithoutProperties(_props$ContainerProps, [\"className\"]),\n _props$dense = props.dense,\n dense = _props$dense === void 0 ? false : _props$dense,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableGutters = props.disableGutters,\n disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n _props$divider = props.divider,\n divider = _props$divider === void 0 ? false : _props$divider,\n focusVisibleClassName = props.focusVisibleClassName,\n _props$selected = props.selected,\n selected = _props$selected === void 0 ? false : _props$selected,\n other = _objectWithoutProperties(props, [\"alignItems\", \"autoFocus\", \"button\", \"children\", \"classes\", \"className\", \"component\", \"ContainerComponent\", \"ContainerProps\", \"dense\", \"disabled\", \"disableGutters\", \"divider\", \"focusVisibleClassName\", \"selected\"]);\n\n var context = React.useContext(ListContext);\n var childContext = {\n dense: dense || context.dense || false,\n alignItems: alignItems\n };\n var listItemRef = React.useRef(null);\n useEnhancedEffect(function () {\n if (autoFocus) {\n if (listItemRef.current) {\n listItemRef.current.focus();\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Material-UI: Unable to set focus to a ListItem whose component has not been rendered.');\n }\n }\n }, [autoFocus]);\n var children = React.Children.toArray(childrenProp);\n var hasSecondaryAction = children.length && isMuiElement(children[children.length - 1], ['ListItemSecondaryAction']);\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n listItemRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n var handleRef = useForkRef(handleOwnRef, ref);\n\n var componentProps = _extends({\n className: clsx(classes.root, className, childContext.dense && classes.dense, !disableGutters && classes.gutters, divider && classes.divider, disabled && classes.disabled, button && classes.button, alignItems !== \"center\" && classes.alignItemsFlexStart, hasSecondaryAction && classes.secondaryAction, selected && classes.selected),\n disabled: disabled\n }, other);\n\n var Component = componentProp || 'li';\n\n if (button) {\n componentProps.component = componentProp || 'div';\n componentProps.focusVisibleClassName = clsx(classes.focusVisible, focusVisibleClassName);\n Component = ButtonBase;\n }\n\n if (hasSecondaryAction) {\n // Use div by default.\n Component = !componentProps.component && !componentProp ? 'div' : Component; // Avoid nesting of li > li.\n\n if (ContainerComponent === 'li') {\n if (Component === 'li') {\n Component = 'div';\n } else if (componentProps.component === 'li') {\n componentProps.component = 'div';\n }\n }\n\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: childContext\n }, /*#__PURE__*/React.createElement(ContainerComponent, _extends({\n className: clsx(classes.container, ContainerClassName),\n ref: handleRef\n }, ContainerProps), /*#__PURE__*/React.createElement(Component, componentProps, children), children.pop()));\n }\n\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: childContext\n }, /*#__PURE__*/React.createElement(Component, _extends({\n ref: handleRef\n }, componentProps), children));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItem.propTypes = {\n /**\n * Defines the `align-items` style property.\n */\n alignItems: PropTypes.oneOf(['flex-start', 'center']),\n\n /**\n * If `true`, the list item will be focused during the first mount.\n * Focus will also be triggered if the value changes from false to true.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * If `true`, the list item will be a button (using `ButtonBase`). Props intended\n * for `ButtonBase` can then be applied to `ListItem`.\n */\n button: PropTypes.bool,\n\n /**\n * The content of the component. If a `ListItemSecondaryAction` is used it must\n * be the last child.\n */\n children: chainPropTypes(PropTypes.node, function (props) {\n var children = React.Children.toArray(props.children); // React.Children.toArray(props.children).findLastIndex(isListItemSecondaryAction)\n\n var secondaryActionIndex = -1;\n\n for (var i = children.length - 1; i >= 0; i -= 1) {\n var child = children[i];\n\n if (isMuiElement(child, ['ListItemSecondaryAction'])) {\n secondaryActionIndex = i;\n break;\n }\n } // is ListItemSecondaryAction the last child of ListItem\n\n\n if (secondaryActionIndex !== -1 && secondaryActionIndex !== children.length - 1) {\n return new Error('Material-UI: You used an element after ListItemSecondaryAction. ' + 'For ListItem to detect that it has a secondary action ' + 'you must pass it as the last child to ListItem.');\n }\n\n return null;\n }),\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n * By default, it's a `li` when `button` is `false` and a `div` when `button` is `true`.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * The container component used when a `ListItemSecondaryAction` is the last child.\n */\n ContainerComponent: PropTypes.elementType,\n\n /**\n * Props applied to the container component if used.\n */\n ContainerProps: PropTypes.object,\n\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input will be used.\n */\n dense: PropTypes.bool,\n\n /**\n * If `true`, the list item will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the left and right padding is removed.\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n */\n divider: PropTypes.bool,\n\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * Use to apply selected styling.\n */\n selected: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiListItem'\n})(ListItem);","map":{"version":3,"sources":["/Users/holunyeung/Documents/GitHub/Photo_React/photo/node_modules/@material-ui/core/esm/ListItem/ListItem.js"],"names":["_extends","_objectWithoutProperties","React","PropTypes","clsx","chainPropTypes","withStyles","ButtonBase","isMuiElement","useForkRef","ListContext","ReactDOM","styles","theme","root","display","justifyContent","alignItems","position","textDecoration","width","boxSizing","textAlign","paddingTop","paddingBottom","backgroundColor","palette","action","selected","opacity","container","focusVisible","dense","alignItemsFlexStart","disabled","divider","borderBottom","concat","backgroundClip","gutters","paddingLeft","paddingRight","button","transition","transitions","create","duration","shortest","hover","secondaryAction","useEnhancedEffect","window","useEffect","useLayoutEffect","ListItem","forwardRef","props","ref","_props$alignItems","_props$autoFocus","autoFocus","_props$button","childrenProp","children","classes","className","componentProp","component","_props$ContainerCompo","ContainerComponent","_props$ContainerProps","ContainerProps","ContainerClassName","_props$dense","_props$disabled","_props$disableGutters","disableGutters","_props$divider","focusVisibleClassName","_props$selected","other","context","useContext","childContext","listItemRef","useRef","current","focus","process","env","NODE_ENV","console","error","Children","toArray","hasSecondaryAction","length","handleOwnRef","useCallback","instance","findDOMNode","handleRef","componentProps","Component","createElement","Provider","value","pop","propTypes","oneOf","bool","node","secondaryActionIndex","i","child","Error","object","isRequired","string","elementType","name"],"mappings":"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","sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport ButtonBase from '../ButtonBase';\nimport isMuiElement from '../utils/isMuiElement';\nimport useForkRef from '../utils/useForkRef';\nimport ListContext from '../List/ListContext';\nimport * as ReactDOM from 'react-dom';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the (normally root) `component` element. May be wrapped by a `container`. */\n root: {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n width: '100%',\n boxSizing: 'border-box',\n textAlign: 'left',\n paddingTop: 8,\n paddingBottom: 8,\n '&$focusVisible': {\n backgroundColor: theme.palette.action.selected\n },\n '&$selected, &$selected:hover': {\n backgroundColor: theme.palette.action.selected\n },\n '&$disabled': {\n opacity: 0.5\n }\n },\n\n /* Styles applied to the `container` element if `children` includes `ListItemSecondaryAction`. */\n container: {\n position: 'relative'\n },\n\n /* Pseudo-class applied to the `component`'s `focusVisibleClassName` prop if `button={true}`. */\n focusVisible: {},\n\n /* Styles applied to the `component` element if dense. */\n dense: {\n paddingTop: 4,\n paddingBottom: 4\n },\n\n /* Styles applied to the `component` element if `alignItems=\"flex-start\"`. */\n alignItemsFlexStart: {\n alignItems: 'flex-start'\n },\n\n /* Pseudo-class applied to the inner `component` element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the inner `component` element if `divider={true}`. */\n divider: {\n borderBottom: \"1px solid \".concat(theme.palette.divider),\n backgroundClip: 'padding-box'\n },\n\n /* Styles applied to the inner `component` element if `disableGutters={false}`. */\n gutters: {\n paddingLeft: 16,\n paddingRight: 16\n },\n\n /* Styles applied to the inner `component` element if `button={true}`. */\n button: {\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Styles applied to the `component` element if `children` includes `ListItemSecondaryAction`. */\n secondaryAction: {\n // Add some space to avoid collision as `ListItemSecondaryAction`\n // is absolutely positioned.\n paddingRight: 48\n },\n\n /* Pseudo-class applied to the root element if `selected={true}`. */\n selected: {}\n };\n};\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * Uses an additional container component if `ListItemSecondaryAction` is the last child.\n */\n\nvar ListItem = /*#__PURE__*/React.forwardRef(function ListItem(props, ref) {\n var _props$alignItems = props.alignItems,\n alignItems = _props$alignItems === void 0 ? 'center' : _props$alignItems,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,\n _props$button = props.button,\n button = _props$button === void 0 ? false : _props$button,\n childrenProp = props.children,\n classes = props.classes,\n className = props.className,\n componentProp = props.component,\n _props$ContainerCompo = props.ContainerComponent,\n ContainerComponent = _props$ContainerCompo === void 0 ? 'li' : _props$ContainerCompo,\n _props$ContainerProps = props.ContainerProps;\n _props$ContainerProps = _props$ContainerProps === void 0 ? {} : _props$ContainerProps;\n\n var ContainerClassName = _props$ContainerProps.className,\n ContainerProps = _objectWithoutProperties(_props$ContainerProps, [\"className\"]),\n _props$dense = props.dense,\n dense = _props$dense === void 0 ? false : _props$dense,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableGutters = props.disableGutters,\n disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n _props$divider = props.divider,\n divider = _props$divider === void 0 ? false : _props$divider,\n focusVisibleClassName = props.focusVisibleClassName,\n _props$selected = props.selected,\n selected = _props$selected === void 0 ? false : _props$selected,\n other = _objectWithoutProperties(props, [\"alignItems\", \"autoFocus\", \"button\", \"children\", \"classes\", \"className\", \"component\", \"ContainerComponent\", \"ContainerProps\", \"dense\", \"disabled\", \"disableGutters\", \"divider\", \"focusVisibleClassName\", \"selected\"]);\n\n var context = React.useContext(ListContext);\n var childContext = {\n dense: dense || context.dense || false,\n alignItems: alignItems\n };\n var listItemRef = React.useRef(null);\n useEnhancedEffect(function () {\n if (autoFocus) {\n if (listItemRef.current) {\n listItemRef.current.focus();\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Material-UI: Unable to set focus to a ListItem whose component has not been rendered.');\n }\n }\n }, [autoFocus]);\n var children = React.Children.toArray(childrenProp);\n var hasSecondaryAction = children.length && isMuiElement(children[children.length - 1], ['ListItemSecondaryAction']);\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n listItemRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n var handleRef = useForkRef(handleOwnRef, ref);\n\n var componentProps = _extends({\n className: clsx(classes.root, className, childContext.dense && classes.dense, !disableGutters && classes.gutters, divider && classes.divider, disabled && classes.disabled, button && classes.button, alignItems !== \"center\" && classes.alignItemsFlexStart, hasSecondaryAction && classes.secondaryAction, selected && classes.selected),\n disabled: disabled\n }, other);\n\n var Component = componentProp || 'li';\n\n if (button) {\n componentProps.component = componentProp || 'div';\n componentProps.focusVisibleClassName = clsx(classes.focusVisible, focusVisibleClassName);\n Component = ButtonBase;\n }\n\n if (hasSecondaryAction) {\n // Use div by default.\n Component = !componentProps.component && !componentProp ? 'div' : Component; // Avoid nesting of li > li.\n\n if (ContainerComponent === 'li') {\n if (Component === 'li') {\n Component = 'div';\n } else if (componentProps.component === 'li') {\n componentProps.component = 'div';\n }\n }\n\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: childContext\n }, /*#__PURE__*/React.createElement(ContainerComponent, _extends({\n className: clsx(classes.container, ContainerClassName),\n ref: handleRef\n }, ContainerProps), /*#__PURE__*/React.createElement(Component, componentProps, children), children.pop()));\n }\n\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: childContext\n }, /*#__PURE__*/React.createElement(Component, _extends({\n ref: handleRef\n }, componentProps), children));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItem.propTypes = {\n /**\n * Defines the `align-items` style property.\n */\n alignItems: PropTypes.oneOf(['flex-start', 'center']),\n\n /**\n * If `true`, the list item will be focused during the first mount.\n * Focus will also be triggered if the value changes from false to true.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * If `true`, the list item will be a button (using `ButtonBase`). Props intended\n * for `ButtonBase` can then be applied to `ListItem`.\n */\n button: PropTypes.bool,\n\n /**\n * The content of the component. If a `ListItemSecondaryAction` is used it must\n * be the last child.\n */\n children: chainPropTypes(PropTypes.node, function (props) {\n var children = React.Children.toArray(props.children); // React.Children.toArray(props.children).findLastIndex(isListItemSecondaryAction)\n\n var secondaryActionIndex = -1;\n\n for (var i = children.length - 1; i >= 0; i -= 1) {\n var child = children[i];\n\n if (isMuiElement(child, ['ListItemSecondaryAction'])) {\n secondaryActionIndex = i;\n break;\n }\n } // is ListItemSecondaryAction the last child of ListItem\n\n\n if (secondaryActionIndex !== -1 && secondaryActionIndex !== children.length - 1) {\n return new Error('Material-UI: You used an element after ListItemSecondaryAction. ' + 'For ListItem to detect that it has a secondary action ' + 'you must pass it as the last child to ListItem.');\n }\n\n return null;\n }),\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n * By default, it's a `li` when `button` is `false` and a `div` when `button` is `true`.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * The container component used when a `ListItemSecondaryAction` is the last child.\n */\n ContainerComponent: PropTypes.elementType,\n\n /**\n * Props applied to the container component if used.\n */\n ContainerProps: PropTypes.object,\n\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input will be used.\n */\n dense: PropTypes.bool,\n\n /**\n * If `true`, the list item will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the left and right padding is removed.\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n */\n divider: PropTypes.bool,\n\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * Use to apply selected styling.\n */\n selected: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiListItem'\n})(ListItem);"]},"metadata":{},"sourceType":"module"}