mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-25 09:55:15 +00:00
1 line
30 KiB
JSON
1 line
30 KiB
JSON
{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Ripple from './Ripple';\nvar DURATION = 550;\nexport var DELAY_RIPPLE = 80;\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n },\n\n /* Styles applied to the internal `Ripple` components `ripple` class. */\n ripple: {\n opacity: 0,\n position: 'absolute'\n },\n\n /* Styles applied to the internal `Ripple` components `rippleVisible` class. */\n rippleVisible: {\n opacity: 0.3,\n transform: 'scale(1)',\n animation: \"$enter \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `ripplePulsate` class. */\n ripplePulsate: {\n animationDuration: \"\".concat(theme.transitions.duration.shorter, \"ms\")\n },\n\n /* Styles applied to the internal `Ripple` components `child` class. */\n child: {\n opacity: 1,\n display: 'block',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n backgroundColor: 'currentColor'\n },\n\n /* Styles applied to the internal `Ripple` components `childLeaving` class. */\n childLeaving: {\n opacity: 0,\n animation: \"$exit \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `childPulsate` class. */\n childPulsate: {\n position: 'absolute',\n left: 0,\n top: 0,\n animation: \"$pulsate 2500ms \".concat(theme.transitions.easing.easeInOut, \" 200ms infinite\")\n },\n '@keyframes enter': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.1\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 0.3\n }\n },\n '@keyframes exit': {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n },\n '@keyframes pulsate': {\n '0%': {\n transform: 'scale(1)'\n },\n '50%': {\n transform: 'scale(0.92)'\n },\n '100%': {\n transform: 'scale(1)'\n }\n }\n };\n};\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\nvar TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(props, ref) {\n var _props$center = props.center,\n centerProp = _props$center === void 0 ? false : _props$center,\n classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"center\", \"classes\", \"className\"]);\n\n var _React$useState = React.useState([]),\n ripples = _React$useState[0],\n setRipples = _React$useState[1];\n\n var nextKey = React.useRef(0);\n var rippleCallback = React.useRef(null);\n React.useEffect(function () {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]); // Used to filter out mouse emulated events on mobile.\n\n var ignoringMouseDown = React.useRef(false); // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n\n var startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.\n\n var startTimerCommit = React.useRef(null);\n var container = React.useRef(null);\n React.useEffect(function () {\n return function () {\n clearTimeout(startTimer.current);\n };\n }, []);\n var startCommit = React.useCallback(function (params) {\n var pulsate = params.pulsate,\n rippleX = params.rippleX,\n rippleY = params.rippleY,\n rippleSize = params.rippleSize,\n cb = params.cb;\n setRipples(function (oldRipples) {\n return [].concat(_toConsumableArray(oldRipples), [/*#__PURE__*/React.createElement(Ripple, {\n key: nextKey.current,\n classes: classes,\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n })]);\n });\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n var start = React.useCallback(function () {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var cb = arguments.length > 2 ? arguments[2] : undefined;\n var _options$pulsate = options.pulsate,\n pulsate = _options$pulsate === void 0 ? false : _options$pulsate,\n _options$center = options.center,\n center = _options$center === void 0 ? centerProp || options.pulsate : _options$center,\n _options$fakeElement = options.fakeElement,\n fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;\n\n if (event.type === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n\n if (event.type === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n\n var element = fakeElement ? null : container.current;\n var rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n }; // Get the size of the ripple\n\n var rippleX;\n var rippleY;\n var rippleSize;\n\n if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n\n if (center) {\n rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size if even.\n\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));\n } // Touche devices\n\n\n if (event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = function () {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }; // Delay the execution of the ripple effect.\n\n\n startTimer.current = setTimeout(function () {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n }\n } else {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }\n }, [centerProp, startCommit]);\n var pulsate = React.useCallback(function () {\n start({}, {\n pulsate: true\n });\n }, [start]);\n var stop = React.useCallback(function (event, cb) {\n clearTimeout(startTimer.current); // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n\n if (event.type === 'touchend' && startTimerCommit.current) {\n event.persist();\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.current = setTimeout(function () {\n stop(event, cb);\n });\n return;\n }\n\n startTimerCommit.current = null;\n setRipples(function (oldRipples) {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, []);\n React.useImperativeHandle(ref, function () {\n return {\n pulsate: pulsate,\n start: start,\n stop: stop\n };\n }, [pulsate, start, stop]);\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n className: clsx(classes.root, className),\n ref: container\n }, other), /*#__PURE__*/React.createElement(TransitionGroup, {\n component: null,\n exit: true\n }, ripples));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default withStyles(styles, {\n flip: false,\n name: 'MuiTouchRipple'\n})( /*#__PURE__*/React.memo(TouchRipple));","map":{"version":3,"sources":["/app/node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js"],"names":["_extends","_toConsumableArray","_objectWithoutProperties","React","PropTypes","TransitionGroup","clsx","withStyles","Ripple","DURATION","DELAY_RIPPLE","styles","theme","root","overflow","pointerEvents","position","zIndex","top","right","bottom","left","borderRadius","ripple","opacity","rippleVisible","transform","animation","concat","transitions","easing","easeInOut","ripplePulsate","animationDuration","duration","shorter","child","display","width","height","backgroundColor","childLeaving","childPulsate","TouchRipple","forwardRef","props","ref","_props$center","center","centerProp","classes","className","other","_React$useState","useState","ripples","setRipples","nextKey","useRef","rippleCallback","useEffect","current","ignoringMouseDown","startTimer","startTimerCommit","container","clearTimeout","startCommit","useCallback","params","pulsate","rippleX","rippleY","rippleSize","cb","oldRipples","createElement","key","timeout","start","event","arguments","length","undefined","options","_options$pulsate","_options$center","_options$fakeElement","fakeElement","type","element","rect","getBoundingClientRect","clientX","clientY","touches","Math","round","_ref","sqrt","pow","sizeX","max","abs","clientWidth","sizeY","clientHeight","setTimeout","stop","persist","slice","useImperativeHandle","component","exit","process","env","NODE_ENV","propTypes","bool","object","isRequired","string","flip","name","memo"],"mappings":"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","sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Ripple from './Ripple';\nvar DURATION = 550;\nexport var DELAY_RIPPLE = 80;\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n },\n\n /* Styles applied to the internal `Ripple` components `ripple` class. */\n ripple: {\n opacity: 0,\n position: 'absolute'\n },\n\n /* Styles applied to the internal `Ripple` components `rippleVisible` class. */\n rippleVisible: {\n opacity: 0.3,\n transform: 'scale(1)',\n animation: \"$enter \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `ripplePulsate` class. */\n ripplePulsate: {\n animationDuration: \"\".concat(theme.transitions.duration.shorter, \"ms\")\n },\n\n /* Styles applied to the internal `Ripple` components `child` class. */\n child: {\n opacity: 1,\n display: 'block',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n backgroundColor: 'currentColor'\n },\n\n /* Styles applied to the internal `Ripple` components `childLeaving` class. */\n childLeaving: {\n opacity: 0,\n animation: \"$exit \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `childPulsate` class. */\n childPulsate: {\n position: 'absolute',\n left: 0,\n top: 0,\n animation: \"$pulsate 2500ms \".concat(theme.transitions.easing.easeInOut, \" 200ms infinite\")\n },\n '@keyframes enter': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.1\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 0.3\n }\n },\n '@keyframes exit': {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n },\n '@keyframes pulsate': {\n '0%': {\n transform: 'scale(1)'\n },\n '50%': {\n transform: 'scale(0.92)'\n },\n '100%': {\n transform: 'scale(1)'\n }\n }\n };\n};\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\nvar TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(props, ref) {\n var _props$center = props.center,\n centerProp = _props$center === void 0 ? false : _props$center,\n classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"center\", \"classes\", \"className\"]);\n\n var _React$useState = React.useState([]),\n ripples = _React$useState[0],\n setRipples = _React$useState[1];\n\n var nextKey = React.useRef(0);\n var rippleCallback = React.useRef(null);\n React.useEffect(function () {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]); // Used to filter out mouse emulated events on mobile.\n\n var ignoringMouseDown = React.useRef(false); // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n\n var startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.\n\n var startTimerCommit = React.useRef(null);\n var container = React.useRef(null);\n React.useEffect(function () {\n return function () {\n clearTimeout(startTimer.current);\n };\n }, []);\n var startCommit = React.useCallback(function (params) {\n var pulsate = params.pulsate,\n rippleX = params.rippleX,\n rippleY = params.rippleY,\n rippleSize = params.rippleSize,\n cb = params.cb;\n setRipples(function (oldRipples) {\n return [].concat(_toConsumableArray(oldRipples), [/*#__PURE__*/React.createElement(Ripple, {\n key: nextKey.current,\n classes: classes,\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n })]);\n });\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n var start = React.useCallback(function () {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var cb = arguments.length > 2 ? arguments[2] : undefined;\n var _options$pulsate = options.pulsate,\n pulsate = _options$pulsate === void 0 ? false : _options$pulsate,\n _options$center = options.center,\n center = _options$center === void 0 ? centerProp || options.pulsate : _options$center,\n _options$fakeElement = options.fakeElement,\n fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;\n\n if (event.type === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n\n if (event.type === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n\n var element = fakeElement ? null : container.current;\n var rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n }; // Get the size of the ripple\n\n var rippleX;\n var rippleY;\n var rippleSize;\n\n if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n\n if (center) {\n rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size if even.\n\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));\n } // Touche devices\n\n\n if (event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = function () {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }; // Delay the execution of the ripple effect.\n\n\n startTimer.current = setTimeout(function () {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n }\n } else {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }\n }, [centerProp, startCommit]);\n var pulsate = React.useCallback(function () {\n start({}, {\n pulsate: true\n });\n }, [start]);\n var stop = React.useCallback(function (event, cb) {\n clearTimeout(startTimer.current); // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n\n if (event.type === 'touchend' && startTimerCommit.current) {\n event.persist();\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.current = setTimeout(function () {\n stop(event, cb);\n });\n return;\n }\n\n startTimerCommit.current = null;\n setRipples(function (oldRipples) {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, []);\n React.useImperativeHandle(ref, function () {\n return {\n pulsate: pulsate,\n start: start,\n stop: stop\n };\n }, [pulsate, start, stop]);\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n className: clsx(classes.root, className),\n ref: container\n }, other), /*#__PURE__*/React.createElement(TransitionGroup, {\n component: null,\n exit: true\n }, ripples));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default withStyles(styles, {\n flip: false,\n name: 'MuiTouchRipple'\n})( /*#__PURE__*/React.memo(TouchRipple));"]},"metadata":{},"sourceType":"module"} |