mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-24 09:25:15 +00:00
1 line
23 KiB
JSON
1 line
23 KiB
JSON
{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from '../utils/debounce';\nimport useForkRef from '../utils/useForkRef';\nimport deprecatedPropType from '../utils/deprecatedPropType';\n\nfunction getStyleValue(computedStyle, property) {\n return parseInt(computedStyle[property], 10) || 0;\n}\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar styles = {\n /* Styles applied to the shadow textarea element. */\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: 'hidden',\n // Remove from the content flow\n position: 'absolute',\n // Ignore the scrollbar width\n overflow: 'hidden',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: 'translateZ(0)'\n }\n};\nvar TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize(props, ref) {\n var onChange = props.onChange,\n rows = props.rows,\n rowsMax = props.rowsMax,\n rowsMinProp = props.rowsMin,\n maxRowsProp = props.maxRows,\n _props$minRows = props.minRows,\n minRowsProp = _props$minRows === void 0 ? 1 : _props$minRows,\n style = props.style,\n value = props.value,\n other = _objectWithoutProperties(props, [\"onChange\", \"rows\", \"rowsMax\", \"rowsMin\", \"maxRows\", \"minRows\", \"style\", \"value\"]);\n\n var maxRows = maxRowsProp || rowsMax;\n var minRows = rows || rowsMinProp || minRowsProp;\n\n var _React$useRef = React.useRef(value != null),\n isControlled = _React$useRef.current;\n\n var inputRef = React.useRef(null);\n var handleRef = useForkRef(ref, inputRef);\n var shadowRef = React.useRef(null);\n var renders = React.useRef(0);\n\n var _React$useState = React.useState({}),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var syncHeight = React.useCallback(function () {\n var input = inputRef.current;\n var computedStyle = window.getComputedStyle(input);\n var inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || 'x';\n\n if (inputShallow.value.slice(-1) === '\\n') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += ' ';\n }\n\n var boxSizing = computedStyle['box-sizing'];\n var padding = getStyleValue(computedStyle, 'padding-bottom') + getStyleValue(computedStyle, 'padding-top');\n var border = getStyleValue(computedStyle, 'border-bottom-width') + getStyleValue(computedStyle, 'border-top-width'); // The height of the inner content\n\n var innerHeight = inputShallow.scrollHeight - padding; // Measure height of a textarea with a single row\n\n inputShallow.value = 'x';\n var singleRowHeight = inputShallow.scrollHeight - padding; // The height of the outer content\n\n var outerHeight = innerHeight;\n\n if (minRows) {\n outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);\n }\n\n if (maxRows) {\n outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);\n }\n\n outerHeight = Math.max(outerHeight, singleRowHeight); // Take the box sizing into account for applying this value as a style.\n\n var outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n var overflow = Math.abs(outerHeight - innerHeight) <= 1;\n setState(function (prevState) {\n // Need a large enough difference to update the height.\n // This prevents infinite rendering loop.\n if (renders.current < 20 && (outerHeightStyle > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1 || prevState.overflow !== overflow)) {\n renders.current += 1;\n return {\n overflow: overflow,\n outerHeightStyle: outerHeightStyle\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (renders.current === 20) {\n console.error(['Material-UI: Too many re-renders. The layout is unstable.', 'TextareaAutosize limits the number of renders to prevent an infinite loop.'].join('\\n'));\n }\n }\n\n return prevState;\n });\n }, [maxRows, minRows, props.placeholder]);\n React.useEffect(function () {\n var handleResize = debounce(function () {\n renders.current = 0;\n syncHeight();\n });\n window.addEventListener('resize', handleResize);\n return function () {\n handleResize.clear();\n window.removeEventListener('resize', handleResize);\n };\n }, [syncHeight]);\n useEnhancedEffect(function () {\n syncHeight();\n });\n React.useEffect(function () {\n renders.current = 0;\n }, [value]);\n\n var handleChange = function handleChange(event) {\n renders.current = 0;\n\n if (!isControlled) {\n syncHeight();\n }\n\n if (onChange) {\n onChange(event);\n }\n };\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"textarea\", _extends({\n value: value,\n onChange: handleChange,\n ref: handleRef // Apply the rows prop to get a \"correct\" first SSR paint\n ,\n rows: minRows,\n style: _extends({\n height: state.outerHeightStyle,\n // Need a large enough difference to allow scrolling.\n // This prevents infinite rendering loop.\n overflow: state.overflow ? 'hidden' : null\n }, style)\n }, other)), /*#__PURE__*/React.createElement(\"textarea\", {\n \"aria-hidden\": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: _extends({}, styles.shadow, style)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TextareaAutosize.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Maximum number of rows to display.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Minimum number of rows to display.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n placeholder: PropTypes.string,\n\n /**\n * Minimum number of rows to display.\n * @deprecated Use `minRows` instead.\n */\n rows: deprecatedPropType(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), 'Use `minRows` instead.'),\n\n /**\n * Maximum number of rows to display.\n * @deprecated Use `maxRows` instead.\n */\n rowsMax: deprecatedPropType(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), 'Use `maxRows` instead.'),\n\n /**\n * Minimum number of rows to display.\n * @deprecated Use `minRows` instead.\n */\n rowsMin: deprecatedPropType(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), 'Use `minRows` instead.'),\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * @ignore\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.number, PropTypes.string])\n} : void 0;\nexport default TextareaAutosize;","map":{"version":3,"sources":["/app/node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js"],"names":["_extends","_objectWithoutProperties","React","PropTypes","debounce","useForkRef","deprecatedPropType","getStyleValue","computedStyle","property","parseInt","useEnhancedEffect","window","useLayoutEffect","useEffect","styles","shadow","visibility","position","overflow","height","top","left","transform","TextareaAutosize","forwardRef","props","ref","onChange","rows","rowsMax","rowsMinProp","rowsMin","maxRowsProp","maxRows","_props$minRows","minRows","minRowsProp","style","value","other","_React$useRef","useRef","isControlled","current","inputRef","handleRef","shadowRef","renders","_React$useState","useState","state","setState","syncHeight","useCallback","input","getComputedStyle","inputShallow","width","placeholder","slice","boxSizing","padding","border","innerHeight","scrollHeight","singleRowHeight","outerHeight","Math","max","Number","min","outerHeightStyle","abs","prevState","process","env","NODE_ENV","console","error","join","handleResize","addEventListener","clear","removeEventListener","handleChange","event","createElement","Fragment","className","readOnly","tabIndex","propTypes","string","oneOfType","number","func","object","arrayOf"],"mappings":"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","sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from '../utils/debounce';\nimport useForkRef from '../utils/useForkRef';\nimport deprecatedPropType from '../utils/deprecatedPropType';\n\nfunction getStyleValue(computedStyle, property) {\n return parseInt(computedStyle[property], 10) || 0;\n}\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar styles = {\n /* Styles applied to the shadow textarea element. */\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: 'hidden',\n // Remove from the content flow\n position: 'absolute',\n // Ignore the scrollbar width\n overflow: 'hidden',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: 'translateZ(0)'\n }\n};\nvar TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize(props, ref) {\n var onChange = props.onChange,\n rows = props.rows,\n rowsMax = props.rowsMax,\n rowsMinProp = props.rowsMin,\n maxRowsProp = props.maxRows,\n _props$minRows = props.minRows,\n minRowsProp = _props$minRows === void 0 ? 1 : _props$minRows,\n style = props.style,\n value = props.value,\n other = _objectWithoutProperties(props, [\"onChange\", \"rows\", \"rowsMax\", \"rowsMin\", \"maxRows\", \"minRows\", \"style\", \"value\"]);\n\n var maxRows = maxRowsProp || rowsMax;\n var minRows = rows || rowsMinProp || minRowsProp;\n\n var _React$useRef = React.useRef(value != null),\n isControlled = _React$useRef.current;\n\n var inputRef = React.useRef(null);\n var handleRef = useForkRef(ref, inputRef);\n var shadowRef = React.useRef(null);\n var renders = React.useRef(0);\n\n var _React$useState = React.useState({}),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var syncHeight = React.useCallback(function () {\n var input = inputRef.current;\n var computedStyle = window.getComputedStyle(input);\n var inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || 'x';\n\n if (inputShallow.value.slice(-1) === '\\n') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += ' ';\n }\n\n var boxSizing = computedStyle['box-sizing'];\n var padding = getStyleValue(computedStyle, 'padding-bottom') + getStyleValue(computedStyle, 'padding-top');\n var border = getStyleValue(computedStyle, 'border-bottom-width') + getStyleValue(computedStyle, 'border-top-width'); // The height of the inner content\n\n var innerHeight = inputShallow.scrollHeight - padding; // Measure height of a textarea with a single row\n\n inputShallow.value = 'x';\n var singleRowHeight = inputShallow.scrollHeight - padding; // The height of the outer content\n\n var outerHeight = innerHeight;\n\n if (minRows) {\n outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);\n }\n\n if (maxRows) {\n outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);\n }\n\n outerHeight = Math.max(outerHeight, singleRowHeight); // Take the box sizing into account for applying this value as a style.\n\n var outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n var overflow = Math.abs(outerHeight - innerHeight) <= 1;\n setState(function (prevState) {\n // Need a large enough difference to update the height.\n // This prevents infinite rendering loop.\n if (renders.current < 20 && (outerHeightStyle > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1 || prevState.overflow !== overflow)) {\n renders.current += 1;\n return {\n overflow: overflow,\n outerHeightStyle: outerHeightStyle\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (renders.current === 20) {\n console.error(['Material-UI: Too many re-renders. The layout is unstable.', 'TextareaAutosize limits the number of renders to prevent an infinite loop.'].join('\\n'));\n }\n }\n\n return prevState;\n });\n }, [maxRows, minRows, props.placeholder]);\n React.useEffect(function () {\n var handleResize = debounce(function () {\n renders.current = 0;\n syncHeight();\n });\n window.addEventListener('resize', handleResize);\n return function () {\n handleResize.clear();\n window.removeEventListener('resize', handleResize);\n };\n }, [syncHeight]);\n useEnhancedEffect(function () {\n syncHeight();\n });\n React.useEffect(function () {\n renders.current = 0;\n }, [value]);\n\n var handleChange = function handleChange(event) {\n renders.current = 0;\n\n if (!isControlled) {\n syncHeight();\n }\n\n if (onChange) {\n onChange(event);\n }\n };\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"textarea\", _extends({\n value: value,\n onChange: handleChange,\n ref: handleRef // Apply the rows prop to get a \"correct\" first SSR paint\n ,\n rows: minRows,\n style: _extends({\n height: state.outerHeightStyle,\n // Need a large enough difference to allow scrolling.\n // This prevents infinite rendering loop.\n overflow: state.overflow ? 'hidden' : null\n }, style)\n }, other)), /*#__PURE__*/React.createElement(\"textarea\", {\n \"aria-hidden\": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: _extends({}, styles.shadow, style)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TextareaAutosize.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Maximum number of rows to display.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Minimum number of rows to display.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n placeholder: PropTypes.string,\n\n /**\n * Minimum number of rows to display.\n * @deprecated Use `minRows` instead.\n */\n rows: deprecatedPropType(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), 'Use `minRows` instead.'),\n\n /**\n * Maximum number of rows to display.\n * @deprecated Use `maxRows` instead.\n */\n rowsMax: deprecatedPropType(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), 'Use `maxRows` instead.'),\n\n /**\n * Minimum number of rows to display.\n * @deprecated Use `minRows` instead.\n */\n rowsMin: deprecatedPropType(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), 'Use `minRows` instead.'),\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * @ignore\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.number, PropTypes.string])\n} : void 0;\nexport default TextareaAutosize;"]},"metadata":{},"sourceType":"module"} |