UNPKG

13.6 kBSource Map (JSON)View Raw
1{"version":3,"sources":["layout/Sider.js"],"names":["window","matchMedia","matchMediaPolifill","dimensionMap","xs","sm","md","lg","xl","xxl","generateId","i","prefix","Sider","props","responsiveHandler","event","setState","below","matches","collapsed","state","setCollapsed","type","onCollapse","toggle","belowShowChange","belowShow","uniqueId","breakpoint","mql","defaultCollapsed","collapsedWidth","siderCollapsed","nextProps","addListener","MediaQueryListEvent","media","siderHook","context","addSider","removeListener","removeSider","customizePrefixCls","prefixCls","className","collapsible","reverseArrow","trigger","style","width","children","others","divProps","siderWidth","zeroWidthTrigger","React","createElement","onClick","Icon","iconObj","expanded","status","defaultTrigger","triggerDom","divStyle","flex","maxWidth","minWidth","siderCls","Component","displayName","__C7N_LAYOUT_SIDER","defaultProps","childContextTypes","PropTypes","bool","oneOfType","number","string","contextTypes","object"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\nimport PropTypes from 'prop-types';\nimport Icon from '../icon';\nimport { getPrefixCls } from '../configure';\nimport { matchMediaPolifill } from '../_util/mediaQueryListPolyfill';\nif (typeof window !== 'undefined') {\n // const matchMediaPolyfill = (mediaQuery: string): MediaQueryList => {\n // return {\n // media: mediaQuery,\n // matches: false,\n // addListener() {\n // },\n // removeListener() {\n // },\n // };\n // };\n window.matchMedia = window.matchMedia || matchMediaPolifill;\n}\nconst dimensionMap = {\n xs: '480px',\n sm: '576px',\n md: '768px',\n lg: '992px',\n xl: '1200px',\n xxl: '1600px',\n};\nconst generateId = (() => {\n let i = 0;\n return (prefix = '') => {\n i += 1;\n return `${prefix}${i}`;\n };\n})();\nexport default class Sider extends Component {\n constructor(props) {\n super(props);\n this.responsiveHandler = (event) => {\n this.setState({ below: event.matches });\n const { collapsed } = this.state;\n if (collapsed !== event.matches) {\n this.setCollapsed(event.matches, 'responsive');\n }\n };\n this.setCollapsed = (collapsed, type) => {\n if (!('collapsed' in this.props)) {\n this.setState({\n collapsed,\n });\n }\n const { onCollapse } = this.props;\n if (onCollapse) {\n onCollapse(collapsed, type);\n }\n };\n this.toggle = () => {\n const { collapsed } = this.state;\n this.setCollapsed(!collapsed, 'clickTrigger');\n };\n this.belowShowChange = () => {\n const { belowShow } = this.state;\n this.setState({ belowShow: !belowShow });\n };\n this.uniqueId = generateId(getPrefixCls('sider-'));\n let matchMedia;\n if (typeof window !== 'undefined') {\n matchMedia = window.matchMedia;\n }\n if (matchMedia && props.breakpoint && props.breakpoint in dimensionMap) {\n this.mql = matchMedia(`(max-width: ${dimensionMap[props.breakpoint]})`);\n }\n let collapsed;\n if ('collapsed' in props) {\n collapsed = props.collapsed;\n }\n else {\n collapsed = props.defaultCollapsed;\n }\n this.state = {\n collapsed,\n below: false,\n };\n }\n getChildContext() {\n const { collapsedWidth } = this.props;\n const { collapsed } = this.state;\n return {\n siderCollapsed: collapsed,\n collapsedWidth,\n };\n }\n componentWillReceiveProps(nextProps) {\n if ('collapsed' in nextProps) {\n this.setState({\n collapsed: nextProps.collapsed,\n });\n }\n }\n componentDidMount() {\n if (this.mql) {\n this.mql.addListener(this.responsiveHandler);\n this.responsiveHandler(new MediaQueryListEvent('change', {\n matches: this.mql.matches,\n media: this.mql.media,\n }));\n }\n const { siderHook } = this.context;\n if (siderHook) {\n siderHook.addSider(this.uniqueId);\n }\n }\n componentWillUnmount() {\n if (this.mql) {\n this.mql.removeListener(this.responsiveHandler);\n }\n const { siderHook } = this.context;\n if (siderHook) {\n siderHook.removeSider(this.uniqueId);\n }\n }\n render() {\n const { prefixCls: customizePrefixCls, className, collapsible, reverseArrow, trigger, style, width, collapsedWidth, children, ...others } = this.props;\n const { collapsed, below } = this.state;\n const prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n const divProps = omit(others, ['collapsed', 'defaultCollapsed', 'onCollapse', 'breakpoint']);\n const siderWidth = collapsed ? collapsedWidth : width;\n // special trigger when collapsedWidth == 0\n const zeroWidthTrigger = collapsedWidth === 0 || collapsedWidth === '0' || collapsedWidth === '0px' ? (React.createElement(\"span\", { onClick: this.toggle, className: `${prefixCls}-zero-width-trigger` },\n React.createElement(Icon, { type: \"bars\" }))) : null;\n const iconObj = {\n expanded: reverseArrow ? React.createElement(Icon, { type: \"right\" }) : React.createElement(Icon, { type: \"left\" }),\n collapsed: reverseArrow ? React.createElement(Icon, { type: \"left\" }) : React.createElement(Icon, { type: \"right\" }),\n };\n const status = collapsed ? 'collapsed' : 'expanded';\n const defaultTrigger = iconObj[status];\n const triggerDom = trigger !== null\n ? zeroWidthTrigger || (React.createElement(\"div\", { className: `${prefixCls}-trigger`, onClick: this.toggle, style: { width: siderWidth } }, trigger || defaultTrigger))\n : null;\n const divStyle = {\n ...style,\n flex: `0 0 ${siderWidth}px`,\n maxWidth: `${siderWidth}px`,\n minWidth: `${siderWidth}px`,\n width: `${siderWidth}px`,\n };\n const siderCls = classNames(className, prefixCls, {\n [`${prefixCls}-collapsed`]: !!collapsed,\n [`${prefixCls}-has-trigger`]: collapsible && trigger !== null && !zeroWidthTrigger,\n [`${prefixCls}-below`]: !!below,\n [`${prefixCls}-zero-width`]: siderWidth === 0 || siderWidth === '0' || siderWidth === '0px',\n });\n return (React.createElement(\"div\", Object.assign({ className: siderCls }, divProps, { style: divStyle }),\n React.createElement(\"div\", { className: `${prefixCls}-children` }, children),\n collapsible || (below && zeroWidthTrigger) ? triggerDom : null));\n }\n}\nSider.displayName = 'LayoutSider';\nSider.__C7N_LAYOUT_SIDER = true;\nSider.defaultProps = {\n collapsible: false,\n defaultCollapsed: false,\n reverseArrow: false,\n width: 200,\n collapsedWidth: 80,\n style: {},\n};\nSider.childContextTypes = {\n siderCollapsed: PropTypes.bool,\n collapsedWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n};\nSider.contextTypes = {\n siderHook: PropTypes.object,\n};\n"],"file":"Sider.js"}
\No newline at end of file