UNPKG

8.3 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/Image.jsx"],"names":["textSizePercent","Image","props","size","innerStyle","textColor","objectFit","width","height","lineHeight","fontSize","Math","min","floor","boxSizing","maxWidth","maxHeight","display","justifyContent","alignItems","textAlign","fontFamily","color","title","name","src","image","style","constructor","defaultImage","getInnerStyle","placeholder","placeholderLimit","split","map","s","charAt","join","substr","className","children","componentClass","wrapperStyle","position","link","href","Component","Link","renderAsImage","PureComponent","propTypes","PropTypes","string","number","oneOfType","object","defaultProps"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactImageFallback from 'react-image-fallback';\nimport Link from '@lskjs/link';\n// import Img from './Image.styles';\n\n// const textSizeRatio = 3;\nconst textSizePercent = 30;\n\nclass Image extends PureComponent {\n getInnerStyle() {\n const {\n size,\n // textScale,\n innerStyle,\n textColor,\n objectFit,\n // src,\n } = this.props;\n\n const width = this.props.width || size;\n const height = this.props.height || size;\n\n const lineHeight = size;\n const fontSize = Math.min(\n // Math.floor(size / textSizeRatio * textScale),\n Math.floor((size * textSizePercent) / 100),\n lineHeight,\n );\n\n return {\n boxSizing: 'border-box',\n maxWidth: '100%',\n maxHeight: 500,\n objectFit,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n // overflow: 'hidden',\n width,\n height,\n textAlign: 'center',\n fontFamily: 'Helvetica, Arial, sans-serif',\n fontSize: `${fontSize}px`,\n lineHeight: `${lineHeight}px`,\n color: textColor,\n ...innerStyle,\n };\n }\n\n renderAsImage() {\n const title = this.props.title || this.props.name;\n const src = this.props.src || this.props.image;\n const { style = {}, ...props } = this.props;\n\n return (\n <ReactImageFallback\n src={src}\n fallbackImage={this.constructor.defaultImage}\n initialImage={this.constructor.defaultImage}\n style={{\n ...this.getInnerStyle(),\n ...style,\n }}\n alt={title}\n title={title}\n {...props}\n />\n );\n }\n\n renderAsText() {\n let { placeholder } = this.props;\n const { placeholderLimit } = this.props;\n const title = this.props.title || this.props.name || placeholder || '';\n if (!placeholder) {\n placeholder = title\n .split(' ')\n .map(s => s.charAt(0))\n .join('')\n .substr(0, placeholderLimit);\n }\n return <div style={this.getInnerStyle()}>{placeholder}</div>;\n }\n\n render() {\n const { size, style, className, children, componentClass } = this.props;\n\n // const src = this.props.src || this.props.image;\n const width = this.props.width || size;\n const height = this.props.height || size;\n\n const wrapperStyle = { display: 'block', position: 'relative', width, height, ...style };\n\n const link = this.props.link || this.props.href;\n const Component = componentClass || (link ? Link : 'div');\n\n return (\n <Component href={link} className={className} style={wrapperStyle}>\n {this.renderAsImage()}\n {children}\n </Component>\n );\n }\n}\n\nImage.propTypes = {\n title: PropTypes.string,\n name: PropTypes.string,\n src: PropTypes.string,\n size: PropTypes.number,\n objectFit: PropTypes.string,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n // color: PropTypes.string,\n textColor: PropTypes.string,\n // textScale: PropTypes.number,\n\n placeholder: PropTypes.string,\n placeholderLimit: PropTypes.number,\n\n style: PropTypes.object,\n innerStyle: PropTypes.object,\n};\nImage.defaultImage = 'https://increasify.com.au/wp-content/uploads/2016/08/default-image.png';\nImage.defaultProps = {\n title: '',\n name: '',\n src: null,\n\n size: 64,\n width: 'auto',\n height: 'auto',\n objectFit: 'cover',\n\n // backgroundColor: '#838383',\n textColor: '#d9d9d9',\n // textScale: 1,\n\n placeholder: null,\n placeholderLimit: 3,\n\n style: {},\n innerStyle: {},\n};\n\nexport default Image;\n"],"file":"Image.js"}
\No newline at end of file