1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
6 |
|
7 | var slicedToArray = require('./slicedToArray-ef426d0f.js');
|
8 | require('./unsupportedIterableToArray-8a00e599.js');
|
9 | var React = require('react');
|
10 | var React__default = _interopDefault(React);
|
11 | require('./_commonjsHelpers-72d386ba.js');
|
12 | var index = require('./index-b0606964.js');
|
13 | var defineProperty = require('./defineProperty-0921a47c.js');
|
14 | require('./toConsumableArray-7f36359f.js');
|
15 | var _styled = require('styled-components');
|
16 | var _styled__default = _interopDefault(_styled);
|
17 | require('./getPrototypeOf-e2d1e599.js');
|
18 | require('./color.js');
|
19 | require('./components.js');
|
20 | require('./contains-component.js');
|
21 | var css = require('./css.js');
|
22 | require('./dayjs.min-aa59a48e.js');
|
23 | require('./date.js');
|
24 | require('./miscellaneous.js');
|
25 | require('./environment.js');
|
26 | require('./font.js');
|
27 | require('./math-ecfd5d91.js');
|
28 | require('./characters.js');
|
29 | require('./format.js');
|
30 | require('./keycodes.js');
|
31 | require('./url.js');
|
32 | require('./web3.js');
|
33 | var constants = require('./constants.js');
|
34 | var breakpoints = require('./breakpoints.js');
|
35 | require('./springs.js');
|
36 | require('./text-styles.js');
|
37 | var _extends = require('./extends-40571110.js');
|
38 | var objectWithoutProperties = require('./objectWithoutProperties-35db8ab0.js');
|
39 | require('./isObject-52908731.js');
|
40 | var Viewport = require('./Viewport-fe2db97a.js');
|
41 |
|
42 | 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; }
|
43 |
|
44 | 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) { defineProperty._defineProperty(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; }
|
45 |
|
46 | function getSizes(breakpoints) {
|
47 | return Object.entries(breakpoints).filter(function (_ref) {
|
48 | var _ref2 = slicedToArray._slicedToArray(_ref, 1),
|
49 | name = _ref2[0];
|
50 |
|
51 | return name !== 'min';
|
52 | }).sort(function (a, b) {
|
53 | return a[1] - b[1];
|
54 | });
|
55 | }
|
56 |
|
57 |
|
58 | var MIN_MARGIN = 3 * constants.GU;
|
59 |
|
60 | function getLayoutSize(parentWidth, breakpoints) {
|
61 | var sizes = getSizes(breakpoints);
|
62 | var index = sizes.length;
|
63 |
|
64 | while (index--) {
|
65 | if (parentWidth >= sizes[index][1]) {
|
66 | return [sizes[index][0], sizes[index][1] - (index === 0 ? 0 : MIN_MARGIN * 2)];
|
67 | }
|
68 | }
|
69 |
|
70 | return sizes[0];
|
71 | }
|
72 |
|
73 | var LayoutContext = React__default.createContext({});
|
74 |
|
75 | function useLayout() {
|
76 | var _useContext = React.useContext(LayoutContext),
|
77 | layoutWidth = _useContext.layoutWidth,
|
78 | layoutName = _useContext.layoutName;
|
79 |
|
80 | return {
|
81 | layoutName: layoutName,
|
82 | layoutWidth: layoutWidth,
|
83 |
|
84 | name: layoutName,
|
85 | width: layoutWidth
|
86 | };
|
87 | }
|
88 |
|
89 | var _StyledDiv = _styled__default("div").withConfig({
|
90 | displayName: "Layout___StyledDiv",
|
91 | componentId: "sc-16bvfls-0"
|
92 | })(["width:", ";min-width:", "px;margin:0 auto;padding-bottom:", ";"], function (p) {
|
93 | return p._css;
|
94 | }, function (p) {
|
95 | return p._css2;
|
96 | }, function (p) {
|
97 | return p._css3;
|
98 | });
|
99 |
|
100 | function Layout(_ref3) {
|
101 | var breakpoints$1 = _ref3.breakpoints,
|
102 | children = _ref3.children,
|
103 | paddingBottom = _ref3.paddingBottom,
|
104 | parentWidth = _ref3.parentWidth,
|
105 | props = objectWithoutProperties._objectWithoutProperties(_ref3, ["breakpoints", "children", "paddingBottom", "parentWidth"]);
|
106 |
|
107 | var _useViewport = Viewport.useViewport(),
|
108 | viewportWidth = _useViewport.width;
|
109 |
|
110 | var mergedBreakpoints = React.useMemo(function () {
|
111 | return _objectSpread(_objectSpread({}, breakpoints.BREAKPOINTS), breakpoints$1);
|
112 | }, [breakpoints$1]);
|
113 |
|
114 | var _useMemo = React.useMemo(function () {
|
115 | return getLayoutSize(parentWidth === undefined ? viewportWidth : parentWidth, mergedBreakpoints);
|
116 | }, [viewportWidth, parentWidth, mergedBreakpoints]),
|
117 | _useMemo2 = slicedToArray._slicedToArray(_useMemo, 2),
|
118 | layoutName = _useMemo2[0],
|
119 | layoutWidth = _useMemo2[1];
|
120 |
|
121 | return React__default.createElement(LayoutContext.Provider, {
|
122 | value: {
|
123 | layoutWidth: layoutWidth,
|
124 | layoutName: layoutName
|
125 | }
|
126 | }, React__default.createElement(_StyledDiv, _extends._extends({}, props, {
|
127 | _css: layoutName === 'small' ? 'auto' : "".concat(layoutWidth, "px"),
|
128 | _css2: mergedBreakpoints.min,
|
129 | _css3: css.cssPx(paddingBottom)
|
130 | }), children));
|
131 | }
|
132 |
|
133 | Layout.propTypes = {
|
134 | breakpoints: index.PropTypes.shape({
|
135 | min: index.PropTypes.number,
|
136 | small: index.PropTypes.number,
|
137 | medium: index.PropTypes.number,
|
138 | large: index.PropTypes.number
|
139 | }),
|
140 | children: index.PropTypes.node,
|
141 | paddingBottom: index.PropTypes.oneOfType([index.PropTypes.number, index.PropTypes.string]),
|
142 | parentWidth: index.PropTypes.number
|
143 | };
|
144 | Layout.defaultProps = {
|
145 | breakpoints: {},
|
146 | paddingBottom: 3 * constants.GU
|
147 | };
|
148 |
|
149 | Layout.__Context = LayoutContext;
|
150 |
|
151 | exports.default = Layout;
|
152 | exports.useLayout = useLayout;
|
153 |
|