UNPKG

wix-style-react

Version:
77 lines (75 loc) 3.29 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _chunk = _interopRequireDefault(require("lodash/chunk")); var _AnalyticsLayoutSt = require("./AnalyticsLayout.st.css"); var _Cell = _interopRequireDefault(require("./Cell/Cell")); var _jsxFileName = "/home/builduser/work/a9c1ac8876d5057c/packages/wix-style-react/dist/cjs/AnalyticsLayout/AnalyticsLayout.tsx"; function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var MIN_ITEMS_PER_ROW = 2; var MAX_ITEMS_PER_ROW = 3; function _splitItemsToRows(items, min, max) { var mod = items.length % max; if (mod < min && mod !== 0) { var numberOfItemsForFillsMaxRows = max * (Math.floor(items.length / max) - 1); var ItemsForFillsMaxRows = items.splice(0, numberOfItemsForFillsMaxRows); return [...(0, _chunk.default)(ItemsForFillsMaxRows, max), ...(0, _chunk.default)(items, min)]; } else { return (0, _chunk.default)(items, max); } } /** AnalyticsLayout */ class AnalyticsLayout extends React.PureComponent { render() { var { dataHook, items, className, children } = this.props; var itemsSplitToRows = _splitItemsToRows(items, MIN_ITEMS_PER_ROW, MAX_ITEMS_PER_ROW); return /*#__PURE__*/React.createElement("div", { className: (0, _AnalyticsLayoutSt.st)(_AnalyticsLayoutSt.classes.root, className), "data-hook": dataHook, __self: this, __source: { fileName: _jsxFileName, lineNumber: 54, columnNumber: 7 } }, itemsSplitToRows.map((row, indexKey) => { return /*#__PURE__*/React.createElement("div", { key: indexKey, className: (0, _AnalyticsLayoutSt.st)(_AnalyticsLayoutSt.classes.row), style: { gridTemplateColumns: "repeat(".concat(row.length, ", 1fr)") }, __self: this, __source: { fileName: _jsxFileName, lineNumber: 57, columnNumber: 13 } }, row.map((item, index) => { // @ts-ignore return children(item, index, row.length); })); })); } } AnalyticsLayout.displayName = 'AnalyticsLayout'; AnalyticsLayout.defaultProps = { items: [] }; AnalyticsLayout.Cell = _Cell.default; AnalyticsLayout.propTypes = { dataHook: _propTypes.default.string, className: _propTypes.default.string, items: _propTypes.default.any.isRequired, children: _propTypes.default.func.isRequired }; var _default = exports.default = AnalyticsLayout; //# sourceMappingURL=AnalyticsLayout.js.map