UNPKG

6.21 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports.SlideIn = exports.Scale = exports.Slide = void 0;
7
8var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
12var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
14var _core = require("@emotion/core");
15
16var _renderprops = require("react-spring/renderprops.cjs");
17
18function 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; }
19
20function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21
22// Easing function from d3-ease: https://github.com/d3/d3-ease/blob/master/src/exp.js
23function expOut(t) {
24 return 1 - Math.pow(2, -10 * t);
25} // function expInOut(t) {
26// return (
27// ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) /
28// 2
29// );
30// }
31///////////////////////////////////////////////////////////////////////////
32
33
34var Slide = function Slide(_ref) {
35 var inProp = _ref["in"],
36 children = _ref.children,
37 _ref$duration = _ref.duration,
38 duration = _ref$duration === void 0 ? 250 : _ref$duration,
39 from = _ref.from,
40 _ref$finalHeight = _ref.finalHeight,
41 finalHeight = _ref$finalHeight === void 0 ? "auto" : _ref$finalHeight,
42 finalWidth = _ref.finalWidth;
43 var placements = {
44 bottom: {
45 maxWidth: "100vw",
46 height: finalHeight,
47 bottom: 0,
48 left: 0,
49 right: 0
50 },
51 top: {
52 maxWidth: "100vw",
53 height: finalHeight,
54 top: 0,
55 left: 0,
56 right: 0
57 },
58 left: _objectSpread({}, finalWidth && {
59 maxWidth: finalWidth
60 }, {
61 height: "100vh",
62 left: 0,
63 top: 0
64 }),
65 right: _objectSpread({}, finalWidth && {
66 maxWidth: finalWidth
67 }, {
68 right: 0,
69 top: 0,
70 height: "100vh"
71 })
72 };
73 var transitionOptions = {
74 bottom: {
75 offset: "100%",
76 transform: function transform(y) {
77 return "translateY(" + y + ")";
78 }
79 },
80 top: {
81 offset: "-100%",
82 transform: function transform(y) {
83 return "translateY(" + y + ")";
84 }
85 },
86 left: {
87 offset: "-100%",
88 transform: function transform(x) {
89 return "translateX(" + x + ")";
90 }
91 },
92 right: {
93 offset: "100%",
94 transform: function transform(x) {
95 return "translateX(" + x + ")";
96 }
97 }
98 };
99 var _transitionOptions$fr = transitionOptions[from],
100 transform = _transitionOptions$fr.transform,
101 offset = _transitionOptions$fr.offset;
102 return (0, _core.jsx)(_renderprops.Transition, {
103 items: inProp,
104 from: {
105 opacity: 0,
106 offset: offset
107 },
108 enter: {
109 opacity: 1,
110 offset: "0%"
111 },
112 leave: {
113 opacity: 0,
114 offset: offset
115 },
116 config: {
117 duration: duration,
118 easing: expOut
119 }
120 }, function (inProp) {
121 return inProp && function (styles) {
122 return children(_objectSpread({
123 willChange: "opacity, transform",
124 opacity: styles.opacity,
125 transform: transform(styles.offset)
126 }, placements[from]));
127 };
128 });
129}; ///////////////////////////////////////////////////////////////////////////
130
131
132exports.Slide = Slide;
133
134var Scale = function Scale(_ref2) {
135 var inProp = _ref2["in"],
136 _ref2$initialScale = _ref2.initialScale,
137 initialScale = _ref2$initialScale === void 0 ? 0.97 : _ref2$initialScale,
138 _ref2$duration = _ref2.duration,
139 duration = _ref2$duration === void 0 ? 150 : _ref2$duration,
140 children = _ref2.children,
141 rest = (0, _objectWithoutPropertiesLoose2["default"])(_ref2, ["in", "initialScale", "duration", "children"]);
142 return (0, _core.jsx)(_renderprops.Transition, (0, _extends2["default"])({
143 items: inProp,
144 config: {
145 duration: duration
146 },
147 from: {
148 opacity: 0,
149 transform: "scale(" + initialScale + ")"
150 },
151 enter: {
152 opacity: 1,
153 transform: "scale(1)"
154 },
155 leave: {
156 opacity: 0,
157 transform: "scale(" + initialScale + ")"
158 }
159 }, rest), function (inProp) {
160 return inProp && function (styles) {
161 return children(_objectSpread({
162 willChange: "opacity, transform"
163 }, styles));
164 };
165 });
166};
167
168exports.Scale = Scale;
169
170var SlideIn = function SlideIn(_ref3) {
171 var inProp = _ref3["in"],
172 _ref3$offset = _ref3.offset,
173 offset = _ref3$offset === void 0 ? "10px" : _ref3$offset,
174 _ref3$duration = _ref3.duration,
175 duration = _ref3$duration === void 0 ? 150 : _ref3$duration,
176 children = _ref3.children,
177 rest = (0, _objectWithoutPropertiesLoose2["default"])(_ref3, ["in", "offset", "duration", "children"]);
178 return (0, _core.jsx)(_renderprops.Transition, (0, _extends2["default"])({
179 items: inProp,
180 config: {
181 duration: duration
182 },
183 from: {
184 opacity: 0,
185 transform: "translate3d(0, " + offset + ", 0)"
186 },
187 enter: {
188 opacity: 1,
189 transform: "translate3d(0, 0, 0)"
190 },
191 leave: {
192 opacity: 0,
193 transform: "translate3d(0, " + offset + ", 0)"
194 }
195 }, rest), function (inProp) {
196 return inProp && function (styles) {
197 return children(_objectSpread({
198 willChange: "opacity, transform"
199 }, styles));
200 };
201 });
202};
203
204exports.SlideIn = SlideIn;
\No newline at end of file