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 | 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$1 = require('./defineProperty-0921a47c.js');
|
14 | require('./toConsumableArray-7f36359f.js');
|
15 | var _styled = require('styled-components');
|
16 | var _styled__default = _interopDefault(_styled);
|
17 | var getPrototypeOf = 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 | require('./constants.js');
|
34 | require('./breakpoints.js');
|
35 | var springs = require('./springs.js');
|
36 | require('./text-styles.js');
|
37 | require('./theme-dark.js');
|
38 | require('./theme-light.js');
|
39 | var Theme = require('./Theme.js');
|
40 | var _extends$1 = require('./extends-40571110.js');
|
41 | var objectWithoutProperties = require('./objectWithoutProperties-35db8ab0.js');
|
42 | require('./objectWithoutPropertiesLoose-1af20ad0.js');
|
43 | require('react-dom');
|
44 | var web = require('./web-d0294535.js');
|
45 |
|
46 | function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = getPrototypeOf._getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf._getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return getPrototypeOf._possibleConstructorReturn(this, result); }; }
|
47 |
|
48 | function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
49 | var BAR_HEIGHT = 6;
|
50 | var HANDLE_SIZE = 24;
|
51 | var HANDLE_SHADOW_MARGIN = 15;
|
52 | var PADDING = 5;
|
53 | var MIN_WIDTH = HANDLE_SIZE * 10;
|
54 | var HEIGHT = Math.max(HANDLE_SIZE, BAR_HEIGHT) + PADDING * 2;
|
55 |
|
56 |
|
57 | var DEFAULT_RECT = typeof window === 'undefined' || typeof window.DOMRect !== 'function' ? {
|
58 | x: 0,
|
59 | y: 0,
|
60 | width: 0,
|
61 | height: 0,
|
62 | top: 0,
|
63 | right: 0,
|
64 | bottom: 0,
|
65 | left: 0
|
66 | } : new window.DOMRect();
|
67 |
|
68 | var _StyledDiv = _styled__default("div").withConfig({
|
69 | displayName: "Slider___StyledDiv",
|
70 | componentId: "sc-94djfe-0"
|
71 | })(["min-width:", "px;padding:0 ", "px;", ";"], MIN_WIDTH, function (p) {
|
72 | return p._css;
|
73 | }, css.unselectable);
|
74 |
|
75 | var _StyledDiv2 = _styled__default("div").withConfig({
|
76 | displayName: "Slider___StyledDiv2",
|
77 | componentId: "sc-94djfe-1"
|
78 | })(["position:relative;height:", "px;cursor:pointer;"], HEIGHT);
|
79 |
|
80 | var _StyledAnimatedDiv = _styled__default(web.extendedAnimated.div).withConfig({
|
81 | displayName: "Slider___StyledAnimatedDiv",
|
82 | componentId: "sc-94djfe-2"
|
83 | })(["position:absolute;top:50%;left:0;width:", "px;height:", "px;border:1px solid ", ";border-radius:50%;cursor:pointer;pointer-events:auto;"], HANDLE_SIZE, HANDLE_SIZE, function (p) {
|
84 | return p._css4;
|
85 | });
|
86 |
|
87 | var Slider = function (_React$Component) {
|
88 | getPrototypeOf._inherits(Slider, _React$Component);
|
89 |
|
90 | var _super = _createSuper(Slider);
|
91 |
|
92 | function Slider() {
|
93 | var _this;
|
94 |
|
95 | getPrototypeOf._classCallCheck(this, Slider);
|
96 |
|
97 | for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
98 | args[_key] = arguments[_key];
|
99 | }
|
100 |
|
101 | _this = _super.call.apply(_super, [this].concat(args));
|
102 |
|
103 | defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "state", {
|
104 | pressed: false
|
105 | });
|
106 |
|
107 | defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "handleRef", function (element) {
|
108 | _this._mainElement = element;
|
109 | _this._document = element && element.ownerDocument;
|
110 | });
|
111 |
|
112 | defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "getRect", function () {
|
113 | var now = Date.now();
|
114 |
|
115 | if (_this._lastRect && now - _this._lastRectTime < 1000) {
|
116 | return _this._lastRect;
|
117 | }
|
118 |
|
119 | _this._lastRectTime = now;
|
120 | _this._lastRect = _this._mainElement ? _this._mainElement.getBoundingClientRect() : DEFAULT_RECT;
|
121 | return _this._lastRect;
|
122 | });
|
123 |
|
124 | defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "dragStart", function (event) {
|
125 | _this.dragStop();
|
126 |
|
127 | var clientX = _this.clientXFromEvent(event);
|
128 |
|
129 | _this.setState({
|
130 | pressed: true
|
131 | }, function () {
|
132 | _this.updateValueFromClientX(clientX);
|
133 | });
|
134 |
|
135 | _this._document.addEventListener('mouseup', _this.dragStop);
|
136 |
|
137 | _this._document.addEventListener('touchend', _this.dragStop);
|
138 |
|
139 | _this._document.addEventListener('mousemove', _this.dragMove);
|
140 |
|
141 | _this._document.addEventListener('touchmove', _this.dragMove);
|
142 | });
|
143 |
|
144 | defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "dragStop", function () {
|
145 | _this.setState({
|
146 | pressed: false
|
147 | });
|
148 |
|
149 | _this._document.removeEventListener('mouseup', _this.dragStop);
|
150 |
|
151 | _this._document.removeEventListener('touchend', _this.dragStop);
|
152 |
|
153 | _this._document.removeEventListener('mousemove', _this.dragMove);
|
154 |
|
155 | _this._document.removeEventListener('touchmove', _this.dragMove);
|
156 | });
|
157 |
|
158 | defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "dragMove", function (event) {
|
159 | if (!_this.state.pressed) {
|
160 | return;
|
161 | }
|
162 |
|
163 | _this.updateValueFromClientX(_this.clientXFromEvent(event));
|
164 | });
|
165 |
|
166 | return _this;
|
167 | }
|
168 |
|
169 | getPrototypeOf._createClass(Slider, [{
|
170 | key: "componentWillUnmount",
|
171 | value: function componentWillUnmount() {
|
172 | this.dragStop();
|
173 | }
|
174 | }, {
|
175 | key: "clientXFromEvent",
|
176 | value: function clientXFromEvent(event) {
|
177 | return (event.touches ? event.touches.item(0) : event).clientX;
|
178 | }
|
179 | }, {
|
180 | key: "updateValueFromClientX",
|
181 | value: function updateValueFromClientX(clientX) {
|
182 | var rect = this.getRect();
|
183 | var x = Math.min(rect.width, Math.max(0, clientX - rect.x));
|
184 | this.props.onUpdate(x / rect.width);
|
185 | }
|
186 | }, {
|
187 | key: "getHandleStyles",
|
188 | value: function getHandleStyles(pressProgress) {
|
189 | return {
|
190 | transform: pressProgress.interpolate(function (t) {
|
191 | return "translate3d(0, calc(".concat(t * 0.5, "px - 50%), 0)");
|
192 | }),
|
193 | boxShadow: pressProgress.interpolate(function (t) {
|
194 | return "0 1px 3px rgba(0, 0, 0, ".concat(0.1 - 0.02 * t, ")");
|
195 | }),
|
196 | background: pressProgress.interpolate(function (t) {
|
197 | return "hsl(0, 0%, ".concat(100 * (1 - t * 0.01), "%)");
|
198 | })
|
199 | };
|
200 | }
|
201 | }, {
|
202 | key: "getHandlePositionStyles",
|
203 | value: function getHandlePositionStyles(value) {
|
204 | return {
|
205 | transform: value.interpolate(function (t) {
|
206 | return "translate3d(calc(".concat(t * 100, "% + ").concat(HANDLE_SHADOW_MARGIN, "px), 0, 0)");
|
207 | })
|
208 | };
|
209 | }
|
210 | }, {
|
211 | key: "getActiveBarStyles",
|
212 | value: function getActiveBarStyles(value, pressProgress) {
|
213 | return {
|
214 | transform: value.interpolate(function (t) {
|
215 | return "scaleX(".concat(t, ") translateZ(0)");
|
216 | })
|
217 | };
|
218 | }
|
219 | }, {
|
220 | key: "render",
|
221 | value: function render() {
|
222 | var _this2 = this;
|
223 |
|
224 | var pressed = this.state.pressed;
|
225 |
|
226 | var _this$props = this.props,
|
227 | onUpdate = _this$props.onUpdate,
|
228 | value = _this$props.value,
|
229 | theme = _this$props.theme,
|
230 | props = objectWithoutProperties._objectWithoutProperties(_this$props, ["onUpdate", "value", "theme"]);
|
231 |
|
232 | return React__default.createElement(web.Spring, {
|
233 | native: true,
|
234 | config: springs.springs.swift,
|
235 | to: {
|
236 | pressProgress: Number(pressed),
|
237 | value: Math.max(0, Math.min(1, value))
|
238 | }
|
239 | }, function (_ref) {
|
240 | var value = _ref.value,
|
241 | pressProgress = _ref.pressProgress;
|
242 | return React__default.createElement(_StyledDiv, _extends$1._extends({}, props, {
|
243 | _css: HANDLE_SIZE / 2 + PADDING
|
244 | }), React__default.createElement(_StyledDiv2, {
|
245 | ref: _this2.handleRef,
|
246 | onMouseDown: _this2.dragStart,
|
247 | onTouchStart: _this2.dragStart
|
248 | }, React__default.createElement(Bars, null, React__default.createElement(_StyledBar, {
|
249 | _css2: theme.surfaceUnder
|
250 | }), React__default.createElement(_StyledBar2, {
|
251 | style: _this2.getActiveBarStyles(value, pressProgress),
|
252 | _css3: theme.selected
|
253 | })), React__default.createElement(HandleClip, null, React__default.createElement(HandlePosition, {
|
254 | style: _this2.getHandlePositionStyles(value, pressProgress)
|
255 | }, React__default.createElement(_StyledAnimatedDiv, {
|
256 | style: _this2.getHandleStyles(pressProgress),
|
257 | _css4: theme.border
|
258 | })))));
|
259 | });
|
260 | }
|
261 | }]);
|
262 |
|
263 | return Slider;
|
264 | }(React__default.Component);
|
265 |
|
266 | defineProperty$1._defineProperty(Slider, "propTypes", {
|
267 | value: index.PropTypes.number,
|
268 | onUpdate: index.PropTypes.func,
|
269 | theme: index.PropTypes.object
|
270 | });
|
271 |
|
272 | defineProperty$1._defineProperty(Slider, "defaultProps", {
|
273 | value: 0,
|
274 | onUpdate: function onUpdate() {}
|
275 | });
|
276 |
|
277 | var Bars = _styled__default(web.extendedAnimated.div).withConfig({
|
278 | displayName: "Slider__Bars",
|
279 | componentId: "sc-94djfe-3"
|
280 | })(["position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);overflow:hidden;border-radius:2px;height:", "px;"], BAR_HEIGHT);
|
281 | var Bar = _styled__default(web.extendedAnimated.div).withConfig({
|
282 | displayName: "Slider__Bar",
|
283 | componentId: "sc-94djfe-4"
|
284 | })(["position:absolute;top:0;left:0;right:0;bottom:0;"]);
|
285 |
|
286 | var _StyledBar2 = _styled__default(Bar).withConfig({
|
287 | displayName: "Slider___StyledBar2",
|
288 | componentId: "sc-94djfe-5"
|
289 | })(["transform-origin:0 0;background:", ";"], function (p) {
|
290 | return p._css3;
|
291 | });
|
292 |
|
293 | var _StyledBar = _styled__default(Bar).withConfig({
|
294 | displayName: "Slider___StyledBar",
|
295 | componentId: "sc-94djfe-6"
|
296 | })(["background:", ";"], function (p) {
|
297 | return p._css2;
|
298 | });
|
299 |
|
300 | var HandleClip = _styled__default.div.withConfig({
|
301 | displayName: "Slider__HandleClip",
|
302 | componentId: "sc-94djfe-7"
|
303 | })(["pointer-events:none;overflow:hidden;width:calc(100% + ", "px);height:calc(100% + ", "px);transform-origin:50% 50%;transform:translate( -", "px,-", "px );"], HANDLE_SIZE + HANDLE_SHADOW_MARGIN * 2, HANDLE_SHADOW_MARGIN * 2, HANDLE_SIZE / 2 + HANDLE_SHADOW_MARGIN, HANDLE_SHADOW_MARGIN);
|
304 | var HandlePosition = _styled__default(web.extendedAnimated.div).withConfig({
|
305 | displayName: "Slider__HandlePosition",
|
306 | componentId: "sc-94djfe-8"
|
307 | })(["width:calc(100% - ", "px);height:100%;transform-origin:50% 50%;"], HANDLE_SIZE + HANDLE_SHADOW_MARGIN * 2);
|
308 | var Slider$1 = (function (props) {
|
309 | var theme = Theme.useTheme();
|
310 | return React__default.createElement(Slider, _extends$1._extends({
|
311 | theme: theme
|
312 | }, props));
|
313 | });
|
314 |
|
315 | exports.default = Slider$1;
|
316 |
|