@uncinc/uncinc-react-kitchen-sink 2.6.6 → 2.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Image/AdaptivePicture/index.d.ts +10 -0
- package/dist/components/Image/AdaptivePicture/index.js +105 -0
- package/dist/components/Image/AdaptivePicture/style.scss +7 -0
- package/dist/components/Image/Picture/index.js +4 -14
- package/dist/components/Image/helpers/index.d.ts +10 -0
- package/dist/components/Image/helpers/index.js +124 -0
- package/dist/components/Image/index.d.ts +10 -0
- package/dist/components/Image/index.js +13 -4
- package/dist/components/Layout/Container/style.scss +15 -1
- package/dist/components/TableRender/index.d.ts +1 -1
- package/dist/components/TableRender/index.js +2 -4
- package/package.json +1 -1
- package/dist/helpers/index.d.ts +0 -14
- package/dist/helpers/index.js +0 -31
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './style.scss';
|
|
3
|
+
interface Props extends Omit<React.ImgHTMLAttributes<HTMLImageElement>, 'src'> {
|
|
4
|
+
src: string | string[];
|
|
5
|
+
onLoad: (e: any) => void;
|
|
6
|
+
objectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
|
|
7
|
+
aspectRatio?: number | string;
|
|
8
|
+
}
|
|
9
|
+
declare const AdaptivePicture: React.FC<Props>;
|
|
10
|
+
export default AdaptivePicture;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
+
require("./style.scss");
|
|
10
|
+
var _helpers = require("../helpers");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
13
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
16
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
17
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
+
// extend html img props
|
|
19
|
+
|
|
20
|
+
var AdaptivePicture = function AdaptivePicture(_ref) {
|
|
21
|
+
var src = _ref.src,
|
|
22
|
+
_onLoad = _ref.onLoad,
|
|
23
|
+
alt = _ref.alt,
|
|
24
|
+
objectFit = _ref.objectFit,
|
|
25
|
+
_ref$aspectRatio = _ref.aspectRatio,
|
|
26
|
+
aspectRatio = _ref$aspectRatio === void 0 ? 1 : _ref$aspectRatio;
|
|
27
|
+
var sourcesAsArray = Array.isArray(src) ? src : [src];
|
|
28
|
+
var validatedSources = sourcesAsArray.filter(_helpers.isValidImage);
|
|
29
|
+
var fallbackImage = validatedSources[0];
|
|
30
|
+
var imageRef = _react.default.useRef(null);
|
|
31
|
+
var style = {
|
|
32
|
+
objectFit: objectFit,
|
|
33
|
+
aspectRatio: aspectRatio
|
|
34
|
+
};
|
|
35
|
+
var _React$useState = _react.default.useState('PENDING'),
|
|
36
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
37
|
+
status = _React$useState2[0],
|
|
38
|
+
setStatus = _React$useState2[1];
|
|
39
|
+
var _React$useState3 = _react.default.useState(fallbackImage),
|
|
40
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
41
|
+
targetSrc = _React$useState4[0],
|
|
42
|
+
setTargetSrc = _React$useState4[1];
|
|
43
|
+
_react.default.useEffect(function () {
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
if (global.ssr) return;
|
|
46
|
+
if (!imageRef.current) return;
|
|
47
|
+
var image = imageRef.current;
|
|
48
|
+
// get parent of image element
|
|
49
|
+
var container = image.parentElement;
|
|
50
|
+
if (!container) return;
|
|
51
|
+
var resizeObserver = new ResizeObserver(function (entries) {
|
|
52
|
+
var widthAfterResize = entries[0].contentRect.width;
|
|
53
|
+
if (image.width < widthAfterResize) {
|
|
54
|
+
var newTargetSrc = (0, _helpers.calculateTargetSrc)(image.width, validatedSources, fallbackImage);
|
|
55
|
+
if (targetSrc !== newTargetSrc) {
|
|
56
|
+
setTargetSrc(newTargetSrc);
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
var _newTargetSrc = (0, _helpers.calculateTargetSrc)(widthAfterResize, validatedSources, fallbackImage);
|
|
60
|
+
if (targetSrc !== _newTargetSrc) {
|
|
61
|
+
setTargetSrc(_newTargetSrc);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (status === 'PENDING') {
|
|
65
|
+
setStatus('INITIAL_BREAKPOINT_CALCULATED');
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
resizeObserver.observe(container);
|
|
69
|
+
|
|
70
|
+
// eslint-disable-next-line consistent-return
|
|
71
|
+
return function () {
|
|
72
|
+
resizeObserver.unobserve(container);
|
|
73
|
+
};
|
|
74
|
+
}, [fallbackImage, status, targetSrc, validatedSources]);
|
|
75
|
+
var loadedUrl = (0, _helpers.useImageLoader)(fallbackImage, targetSrc, imageRef);
|
|
76
|
+
function onErrorFallback(e) {
|
|
77
|
+
if (e.target.src !== fallbackImage) {
|
|
78
|
+
e.target.src = fallbackImage;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
var classes = (0, _classnames.default)('AdaptivePicture', {
|
|
82
|
+
'AdaptivePicture--initiallyLoaded': status === 'INITIAL_LOADED'
|
|
83
|
+
});
|
|
84
|
+
if (!validatedSources.length) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
return /*#__PURE__*/_react.default.createElement("img", {
|
|
88
|
+
style: style,
|
|
89
|
+
className: classes,
|
|
90
|
+
onError: onErrorFallback,
|
|
91
|
+
onLoad: function onLoad(e) {
|
|
92
|
+
if (_onLoad) {
|
|
93
|
+
_onLoad(e);
|
|
94
|
+
}
|
|
95
|
+
if (status === 'INITIAL_BREAKPOINT_CALCULATED' && e.target.src === targetSrc) {
|
|
96
|
+
setStatus('INITIAL_LOADED');
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
src: loadedUrl,
|
|
100
|
+
ref: imageRef,
|
|
101
|
+
alt: alt
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
var _default = AdaptivePicture;
|
|
105
|
+
exports.default = _default;
|
|
@@ -10,6 +10,7 @@ var _path = _interopRequireDefault(require("path"));
|
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
var _extToMimeTypes = _interopRequireDefault(require("./data/ext-to-mime-types.json"));
|
|
12
12
|
require("./style.scss");
|
|
13
|
+
var _helpers = require("../helpers");
|
|
13
14
|
var _excluded = ["src", "className", "onLoad", "imageRef", "includeWebP"];
|
|
14
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
16
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
@@ -35,21 +36,10 @@ var Picture = function Picture(_ref) {
|
|
|
35
36
|
alt: alt,
|
|
36
37
|
title: title
|
|
37
38
|
};
|
|
38
|
-
var getImageExtension = function getImageExtension(url) {
|
|
39
|
-
var sanitizedUrl = url.replace(/\?.*/, '');
|
|
40
|
-
return _path.default.extname(sanitizedUrl).toLowerCase();
|
|
41
|
-
};
|
|
42
39
|
var getMimeType = function getMimeType(url) {
|
|
43
|
-
var extension = getImageExtension(url);
|
|
40
|
+
var extension = (0, _helpers.getImageExtension)(url);
|
|
44
41
|
return _extToMimeTypes.default[extension] ? _extToMimeTypes.default[extension] : FALLBACK_MIME_TYPE;
|
|
45
42
|
};
|
|
46
|
-
var isValidImage = function isValidImage(url) {
|
|
47
|
-
if (!url) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
var extension = getImageExtension(url);
|
|
51
|
-
return Object.keys(_extToMimeTypes.default).includes(extension);
|
|
52
|
-
};
|
|
53
43
|
if (_immutable.default.Iterable.isIterable(_immutable.default.fromJS(src))) {
|
|
54
44
|
// Sources have to be defined in a descending order.
|
|
55
45
|
// We sort them from best to worst quality.
|
|
@@ -57,7 +47,7 @@ var Picture = function Picture(_ref) {
|
|
|
57
47
|
return parseInt(breakpoint);
|
|
58
48
|
}).reverse();
|
|
59
49
|
var sources = sourcesAll.map(function (url) {
|
|
60
|
-
if (isValidImage(url)) {
|
|
50
|
+
if ((0, _helpers.isValidImage)(url)) {
|
|
61
51
|
return url;
|
|
62
52
|
}
|
|
63
53
|
}).filter(function (image) {
|
|
@@ -105,7 +95,7 @@ var Picture = function Picture(_ref) {
|
|
|
105
95
|
src: fallback
|
|
106
96
|
})));
|
|
107
97
|
}
|
|
108
|
-
if (src && isValidImage(src)) {
|
|
98
|
+
if (src && (0, _helpers.isValidImage)(src)) {
|
|
109
99
|
if (includeWebP) {
|
|
110
100
|
var webpUrl = src.replace(/\.(png|gif|jp(e?)g)/, '.webp');
|
|
111
101
|
return /*#__PURE__*/_react.default.createElement("picture", {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
export declare function getImageExtension(url: string): string;
|
|
3
|
+
/**
|
|
4
|
+
* Check if the image that belongs to an url is a valid image.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} url
|
|
7
|
+
*/
|
|
8
|
+
export declare function isValidImage(url: string): boolean;
|
|
9
|
+
export declare function useImageLoader(initialSrc: string, targetSrc: string, imageRef: RefObject<HTMLImageElement>): string;
|
|
10
|
+
export declare function calculateTargetSrc(referenceWidth: number, sources: string[], fallbackImage: string): string;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.calculateTargetSrc = calculateTargetSrc;
|
|
7
|
+
exports.getImageExtension = getImageExtension;
|
|
8
|
+
exports.isValidImage = isValidImage;
|
|
9
|
+
exports.useImageLoader = useImageLoader;
|
|
10
|
+
var _path = _interopRequireDefault(require("path"));
|
|
11
|
+
var _react = require("react");
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
14
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
16
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
17
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
18
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
19
|
+
var breakpoints = [0, 256, 512, 1024, 2048];
|
|
20
|
+
var mimeTypes = {
|
|
21
|
+
'.gif': 'image/gif',
|
|
22
|
+
'.png': 'image/png',
|
|
23
|
+
'.jpe': 'image/jpeg',
|
|
24
|
+
'.jpeg': 'image/jpeg',
|
|
25
|
+
'.jpg': 'image/jpeg',
|
|
26
|
+
'.webp': 'image/webp',
|
|
27
|
+
'.svg': 'image/svg+xml'
|
|
28
|
+
};
|
|
29
|
+
function getImageExtension(url) {
|
|
30
|
+
var sanitizedUrl = url.replace(/\?.*/, '');
|
|
31
|
+
return _path.default.extname(sanitizedUrl).toLowerCase();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Check if the image that belongs to an url is a valid image.
|
|
36
|
+
*
|
|
37
|
+
* @param {string} url
|
|
38
|
+
*/
|
|
39
|
+
function isValidImage(url) {
|
|
40
|
+
if (!url) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
var extension = getImageExtension(url);
|
|
44
|
+
return Object.keys(mimeTypes).includes(extension);
|
|
45
|
+
}
|
|
46
|
+
function useImageLoader(initialSrc, targetSrc, imageRef) {
|
|
47
|
+
var _useState = (0, _react.useState)(initialSrc),
|
|
48
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
49
|
+
src = _useState2[0],
|
|
50
|
+
setSrc = _useState2[1];
|
|
51
|
+
var _useState3 = (0, _react.useState)(false),
|
|
52
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
53
|
+
isInViewport = _useState4[0],
|
|
54
|
+
setIsInViewport = _useState4[1];
|
|
55
|
+
(0, _react.useEffect)(function () {
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
if (global.ssr) return;
|
|
58
|
+
if (!imageRef.current) return;
|
|
59
|
+
var image = imageRef.current;
|
|
60
|
+
var observer = new IntersectionObserver(function (_ref) {
|
|
61
|
+
var _ref2 = _slicedToArray(_ref, 1),
|
|
62
|
+
entry = _ref2[0];
|
|
63
|
+
if (entry.intersectionRatio > 0) {
|
|
64
|
+
setIsInViewport(true);
|
|
65
|
+
} else {
|
|
66
|
+
setIsInViewport(false);
|
|
67
|
+
}
|
|
68
|
+
}, {
|
|
69
|
+
root: null,
|
|
70
|
+
// 10% of the image must be visible to trigger the callback
|
|
71
|
+
// note that an edge case may occur if the image is so large
|
|
72
|
+
// that even 10% of it exceeds the viewport's height
|
|
73
|
+
threshold: 0.1
|
|
74
|
+
});
|
|
75
|
+
observer.observe(image);
|
|
76
|
+
|
|
77
|
+
// eslint-disable-next-line consistent-return
|
|
78
|
+
return function () {
|
|
79
|
+
observer.unobserve(image);
|
|
80
|
+
};
|
|
81
|
+
}, [imageRef, isInViewport, setIsInViewport]);
|
|
82
|
+
(0, _react.useEffect)(function () {
|
|
83
|
+
if (initialSrc === targetSrc) return;
|
|
84
|
+
if (!isInViewport) return;
|
|
85
|
+
var img = new Image();
|
|
86
|
+
img.onload = function () {
|
|
87
|
+
return setSrc(targetSrc);
|
|
88
|
+
};
|
|
89
|
+
img.src = targetSrc;
|
|
90
|
+
}, [targetSrc, initialSrc, isInViewport]);
|
|
91
|
+
return src;
|
|
92
|
+
}
|
|
93
|
+
function calculateTargetSrc(referenceWidth, sources, fallbackImage) {
|
|
94
|
+
var breakpoint = breakpoints.find(function (bp) {
|
|
95
|
+
return bp >= referenceWidth;
|
|
96
|
+
}) || breakpoints[breakpoints.length - 1];
|
|
97
|
+
|
|
98
|
+
// get the index of breakpoint
|
|
99
|
+
var index = breakpoints.indexOf(breakpoint);
|
|
100
|
+
return findClosestIndex(sources, index, fallbackImage);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Find the item in an array that is closest to the specified index.
|
|
105
|
+
* If the item at the index is not defined, the function will search for
|
|
106
|
+
* the closest item higher than the index, and if not found, it will
|
|
107
|
+
* search for the closest item lower than the index. If no item is found,
|
|
108
|
+
* the fallback value will be returned.
|
|
109
|
+
*/
|
|
110
|
+
function findClosestIndex(arr, targetIndex, fallback) {
|
|
111
|
+
if (arr.length === 0) return fallback;
|
|
112
|
+
if (arr[targetIndex] !== undefined) return arr[targetIndex];
|
|
113
|
+
var upperIndex = targetIndex + 1;
|
|
114
|
+
var lowerIndex = targetIndex - 1;
|
|
115
|
+
while (upperIndex < arr.length) {
|
|
116
|
+
if (arr[upperIndex] !== undefined) return arr[upperIndex];
|
|
117
|
+
upperIndex += 1;
|
|
118
|
+
}
|
|
119
|
+
while (lowerIndex >= 0) {
|
|
120
|
+
if (arr[lowerIndex] !== undefined) return arr[lowerIndex];
|
|
121
|
+
lowerIndex -= 1;
|
|
122
|
+
}
|
|
123
|
+
return fallback;
|
|
124
|
+
}
|
|
@@ -5,10 +5,20 @@ declare namespace Image {
|
|
|
5
5
|
onLoad: PropTypes.Requireable<(...args: any[]) => any>;
|
|
6
6
|
alt: PropTypes.Requireable<string>;
|
|
7
7
|
src: PropTypes.Validator<{}>;
|
|
8
|
+
dimensions: PropTypes.Requireable<NonNullable<PropTypes.InferProps<{
|
|
9
|
+
width: PropTypes.Requireable<number>;
|
|
10
|
+
height: PropTypes.Requireable<number>;
|
|
11
|
+
aspectRatio: PropTypes.Requireable<number>;
|
|
12
|
+
}> | (PropTypes.InferProps<{
|
|
13
|
+
width: PropTypes.Requireable<number>;
|
|
14
|
+
height: PropTypes.Requireable<number>;
|
|
15
|
+
aspectRatio: PropTypes.Requireable<number>;
|
|
16
|
+
}> | null | undefined)[] | null | undefined>>;
|
|
8
17
|
lazyload: PropTypes.Requireable<boolean>;
|
|
9
18
|
};
|
|
10
19
|
namespace defaultProps {
|
|
11
20
|
let lazyload: boolean;
|
|
21
|
+
let dimensions: {};
|
|
12
22
|
}
|
|
13
23
|
}
|
|
14
24
|
import React from 'react';
|
|
@@ -9,6 +9,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
9
9
|
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
|
10
10
|
var _LazyLoadWrapper = _interopRequireDefault(require("./LazyLoadWrapper"));
|
|
11
11
|
var _Picture = _interopRequireDefault(require("./Picture"));
|
|
12
|
+
var _AdaptivePicture = _interopRequireDefault(require("./AdaptivePicture"));
|
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
14
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
14
15
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -18,19 +19,27 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
|
|
|
18
19
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
19
20
|
var Image = function Image(props) {
|
|
20
21
|
var lazyload = props.lazyload;
|
|
22
|
+
var PictureComponent = Array.isArray(props.src) ? _AdaptivePicture.default : _Picture.default;
|
|
21
23
|
if (lazyload) {
|
|
22
24
|
return /*#__PURE__*/_react.default.createElement(_LazyLoadWrapper.default, {
|
|
23
25
|
lazyload: lazyload
|
|
24
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
26
|
+
}, /*#__PURE__*/_react.default.createElement(PictureComponent, props));
|
|
25
27
|
}
|
|
26
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
28
|
+
return /*#__PURE__*/_react.default.createElement(PictureComponent, props);
|
|
27
29
|
};
|
|
30
|
+
var dimensionsPropType = _propTypes.default.shape({
|
|
31
|
+
width: _propTypes.default.number,
|
|
32
|
+
height: _propTypes.default.number,
|
|
33
|
+
aspectRatio: _propTypes.default.number
|
|
34
|
+
});
|
|
28
35
|
Image.propTypes = _objectSpread({
|
|
29
|
-
src: _propTypes.default.oneOfType([_propTypes.default.string, _reactImmutableProptypes.default.map]).isRequired,
|
|
36
|
+
src: _propTypes.default.oneOfType([_propTypes.default.string, _reactImmutableProptypes.default.map, _propTypes.default.arrayOf(_propTypes.default.string)]).isRequired,
|
|
37
|
+
dimensions: _propTypes.default.oneOfType([dimensionsPropType, _propTypes.default.arrayOf(dimensionsPropType)]),
|
|
30
38
|
lazyload: _propTypes.default.bool
|
|
31
39
|
}, _Picture.default.propTypes);
|
|
32
40
|
Image.defaultProps = {
|
|
33
|
-
lazyload: true
|
|
41
|
+
lazyload: true,
|
|
42
|
+
dimensions: {}
|
|
34
43
|
};
|
|
35
44
|
var _default = Image;
|
|
36
45
|
exports.default = _default;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
1
2
|
@import '../../../styles/assets/mixins';
|
|
2
3
|
@import '../../../styles/assets/grid';
|
|
3
4
|
|
|
@@ -20,7 +21,20 @@
|
|
|
20
21
|
.container--fluid {
|
|
21
22
|
// Enlarge side paddings to equal 1 gutter size.
|
|
22
23
|
@include make-container;
|
|
23
|
-
|
|
24
|
+
|
|
25
|
+
max-width: map.get($container-max-widths, sm);
|
|
26
|
+
@media #{$tablet} {
|
|
27
|
+
max-width: map.get($container-max-widths, md);
|
|
28
|
+
}
|
|
29
|
+
@media #{$normal} {
|
|
30
|
+
max-width: map.get($container-max-widths, lg);
|
|
31
|
+
}
|
|
32
|
+
@media #{$wide} {
|
|
33
|
+
max-width: map.get($container-max-widths, xl);
|
|
34
|
+
}
|
|
35
|
+
@media #{$huge} {
|
|
36
|
+
max-width: map.get($container-max-widths, xxl);
|
|
37
|
+
}
|
|
24
38
|
}
|
|
25
39
|
|
|
26
40
|
.container--fluid {
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
var _reactHtmlParser = _interopRequireDefault(require("react-html-parser"));
|
|
10
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
10
|
var _useWindowDimensions2 = _interopRequireDefault(require("../../hooks/useWindowDimensions"));
|
|
12
11
|
var _constants = require("../../config/constants");
|
|
@@ -15,7 +14,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
15
14
|
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); }
|
|
16
15
|
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; }
|
|
17
16
|
var TableRender = function TableRender(_ref) {
|
|
18
|
-
var
|
|
17
|
+
var element = _ref.element,
|
|
19
18
|
_ref$mobileCards = _ref.mobileCards,
|
|
20
19
|
mobileCards = _ref$mobileCards === void 0 ? false : _ref$mobileCards,
|
|
21
20
|
_ref$mobileCardsBreak = _ref.mobileCardsBreakpoint,
|
|
@@ -26,7 +25,6 @@ var TableRender = function TableRender(_ref) {
|
|
|
26
25
|
width = _useWindowDimensions.width;
|
|
27
26
|
var isMobile = width < mobileCardsBreakpoint;
|
|
28
27
|
var tableRef = (0, _react.useRef)(null);
|
|
29
|
-
var table = (0, _reactHtmlParser.default)(html);
|
|
30
28
|
(0, _react.useEffect)(function () {
|
|
31
29
|
if (isMobile && mobileCards && tableRef.current) {
|
|
32
30
|
var headerArr = [];
|
|
@@ -60,7 +58,7 @@ var TableRender = function TableRender(_ref) {
|
|
|
60
58
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
61
59
|
ref: tableRef,
|
|
62
60
|
className: tableClassNames
|
|
63
|
-
},
|
|
61
|
+
}, element);
|
|
64
62
|
};
|
|
65
63
|
var _default = TableRender;
|
|
66
64
|
exports.default = _default;
|
package/package.json
CHANGED
package/dist/helpers/index.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Recursively converts an element object to an HTML string.
|
|
3
|
-
*
|
|
4
|
-
* @param {Object} element - The element object representing an HTML element.
|
|
5
|
-
* @param {string} element.name - The HTML tag name.
|
|
6
|
-
* @param {Object} [element.attribs] - Attributes associated with the HTML element.
|
|
7
|
-
* @param {Array|Object} [element.children] - Child elements or strings.
|
|
8
|
-
* @returns {string} The HTML string representation of the element and its children.
|
|
9
|
-
*/
|
|
10
|
-
export function elementToHtml(element: {
|
|
11
|
-
name: string;
|
|
12
|
-
attribs?: Object | undefined;
|
|
13
|
-
children?: Object | any[] | undefined;
|
|
14
|
-
}): string;
|
package/dist/helpers/index.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.elementToHtml = elementToHtml;
|
|
7
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
8
|
-
/**
|
|
9
|
-
* Recursively converts an element object to an HTML string.
|
|
10
|
-
*
|
|
11
|
-
* @param {Object} element - The element object representing an HTML element.
|
|
12
|
-
* @param {string} element.name - The HTML tag name.
|
|
13
|
-
* @param {Object} [element.attribs] - Attributes associated with the HTML element.
|
|
14
|
-
* @param {Array|Object} [element.children] - Child elements or strings.
|
|
15
|
-
* @returns {string} The HTML string representation of the element and its children.
|
|
16
|
-
*/
|
|
17
|
-
function elementToHtml(element) {
|
|
18
|
-
var attributes = Object.keys(element.attribs || {}).map(function (key) {
|
|
19
|
-
return "".concat(key, "=\"").concat(element.attribs[key], "\"");
|
|
20
|
-
}).join(' ');
|
|
21
|
-
var childrenHtml = (element.children || []).map(function (child) {
|
|
22
|
-
if (typeof child.data === 'string') {
|
|
23
|
-
return child.data;
|
|
24
|
-
} else if (_typeof(child) === 'object') {
|
|
25
|
-
return elementToHtml(child);
|
|
26
|
-
} else {
|
|
27
|
-
return '';
|
|
28
|
-
}
|
|
29
|
-
}).join('');
|
|
30
|
-
return "<".concat(element.name, " ").concat(attributes, ">").concat(childrenHtml, "</").concat(element.name, ">");
|
|
31
|
-
}
|