1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | var _typeof = require("@babel/runtime/helpers/typeof");
|
6 |
|
7 | Object.defineProperty(exports, "__esModule", {
|
8 | value: true
|
9 | });
|
10 | exports["default"] = exports.Image = void 0;
|
11 |
|
12 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13 |
|
14 | var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
15 |
|
16 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
17 |
|
18 | var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
19 |
|
20 | var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
21 |
|
22 | var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
23 |
|
24 | var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
25 |
|
26 | var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
27 |
|
28 | var _link = _interopRequireDefault(require("@lskjs/link"));
|
29 |
|
30 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
31 |
|
32 | var _react = _interopRequireWildcard(require("react"));
|
33 |
|
34 | var _reactImageFallback = _interopRequireDefault(require("react-image-fallback"));
|
35 |
|
36 | function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
37 |
|
38 | function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
39 |
|
40 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
41 |
|
42 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
43 |
|
44 | function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
45 |
|
46 | function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
47 |
|
48 |
|
49 |
|
50 | var textSizePercent = 30;
|
51 |
|
52 | var Image = function (_PureComponent) {
|
53 | (0, _inherits2["default"])(Image, _PureComponent);
|
54 |
|
55 | var _super = _createSuper(Image);
|
56 |
|
57 | function Image() {
|
58 | (0, _classCallCheck2["default"])(this, Image);
|
59 | return _super.apply(this, arguments);
|
60 | }
|
61 |
|
62 | (0, _createClass2["default"])(Image, [{
|
63 | key: "getInnerStyle",
|
64 | value: function getInnerStyle() {
|
65 | var _this$props = this.props,
|
66 | size = _this$props.size,
|
67 | innerStyle = _this$props.innerStyle,
|
68 | textColor = _this$props.textColor,
|
69 | objectFit = _this$props.objectFit;
|
70 | var width = this.props.width || size;
|
71 | var height = this.props.height || size;
|
72 | var lineHeight = size;
|
73 | var fontSize = Math.min(
|
74 | Math.floor(size * textSizePercent / 100), lineHeight);
|
75 | return _objectSpread({
|
76 | boxSizing: 'border-box',
|
77 | maxWidth: '100%',
|
78 | maxHeight: 500,
|
79 | objectFit: objectFit,
|
80 | display: 'flex',
|
81 | justifyContent: 'center',
|
82 | alignItems: 'center',
|
83 |
|
84 | width: width,
|
85 | height: height,
|
86 | textAlign: 'center',
|
87 | fontFamily: 'Helvetica, Arial, sans-serif',
|
88 | fontSize: "".concat(fontSize, "px"),
|
89 | lineHeight: "".concat(lineHeight, "px"),
|
90 | color: textColor
|
91 | }, innerStyle);
|
92 | }
|
93 | }, {
|
94 | key: "renderAsImage",
|
95 | value: function renderAsImage() {
|
96 | var title = this.props.title || this.props.name;
|
97 | var src = this.props.src || this.props.image;
|
98 | var _this$props2 = this.props,
|
99 | _this$props2$style = _this$props2.style,
|
100 | style = _this$props2$style === void 0 ? {} : _this$props2$style,
|
101 | props = (0, _objectWithoutProperties2["default"])(_this$props2, ["style"]);
|
102 | return _react["default"].createElement(_reactImageFallback["default"], (0, _extends2["default"])({
|
103 | src: src,
|
104 | fallbackImage: this.constructor.defaultImage,
|
105 | initialImage: this.constructor.defaultImage,
|
106 | style: _objectSpread(_objectSpread({}, this.getInnerStyle()), style),
|
107 | alt: title,
|
108 | title: title
|
109 | }, props));
|
110 | }
|
111 | }, {
|
112 | key: "renderAsText",
|
113 | value: function renderAsText() {
|
114 | var placeholder = this.props.placeholder;
|
115 | var placeholderLimit = this.props.placeholderLimit;
|
116 | var title = this.props.title || this.props.name || placeholder || '';
|
117 |
|
118 | if (!placeholder) {
|
119 | placeholder = title.split(' ').map(function (s) {
|
120 | return s.charAt(0);
|
121 | }).join('').substr(0, placeholderLimit);
|
122 | }
|
123 |
|
124 | return _react["default"].createElement("div", {
|
125 | style: this.getInnerStyle()
|
126 | }, placeholder);
|
127 | }
|
128 | }, {
|
129 | key: "render",
|
130 | value: function render() {
|
131 | var _this$props3 = this.props,
|
132 | size = _this$props3.size,
|
133 | style = _this$props3.style,
|
134 | className = _this$props3.className,
|
135 | children = _this$props3.children,
|
136 | componentClass = _this$props3.componentClass;
|
137 |
|
138 | var width = this.props.width || size;
|
139 | var height = this.props.height || size;
|
140 |
|
141 | var wrapperStyle = _objectSpread({
|
142 | display: 'block',
|
143 | position: 'relative',
|
144 | width: width,
|
145 | height: height
|
146 | }, style);
|
147 |
|
148 | var link = this.props.link || this.props.href;
|
149 | var Component = componentClass || (link ? _link["default"] : 'div');
|
150 | return _react["default"].createElement(Component, {
|
151 | href: link,
|
152 | className: className,
|
153 | style: wrapperStyle
|
154 | }, this.renderAsImage(), children);
|
155 | }
|
156 | }]);
|
157 | return Image;
|
158 | }(_react.PureComponent);
|
159 |
|
160 | exports.Image = Image;
|
161 | Image.propTypes = {
|
162 | title: _propTypes["default"].string,
|
163 | name: _propTypes["default"].string,
|
164 | src: _propTypes["default"].string,
|
165 | size: _propTypes["default"].number,
|
166 | objectFit: _propTypes["default"].string,
|
167 | width: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
168 | height: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
169 |
|
170 | textColor: _propTypes["default"].string,
|
171 |
|
172 | placeholder: _propTypes["default"].string,
|
173 | placeholderLimit: _propTypes["default"].number,
|
174 | style: _propTypes["default"].object,
|
175 | innerStyle: _propTypes["default"].object
|
176 | };
|
177 | Image.defaultImage = 'https://increasify.com.au/wp-content/uploads/2016/08/default-image.png';
|
178 | Image.defaultProps = {
|
179 | title: '',
|
180 | name: '',
|
181 | src: null,
|
182 | size: 64,
|
183 | width: 'auto',
|
184 | height: 'auto',
|
185 | objectFit: 'cover',
|
186 |
|
187 | textColor: 'var(--colors-gray, #d9d9d9)',
|
188 |
|
189 | placeholder: null,
|
190 | placeholderLimit: 3,
|
191 | style: {},
|
192 | innerStyle: {}
|
193 | };
|
194 | var _default = Image;
|
195 | exports["default"] = _default;
|
196 |
|
\ | No newline at end of file |