{"version":3,"file":"react-textarea-autosize.browser.esm-BQIeZntd.js","sources":["../../../client/node_modules/use-latest/dist/use-latest.esm.js","../../../client/node_modules/use-composed-ref/dist/use-composed-ref.esm.js","../../../client/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js"],"sourcesContent":["import * as React from 'react';\nimport useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';\n\nvar useLatest = function useLatest(value) {\n var ref = React.useRef(value);\n useIsomorphicLayoutEffect(function () {\n ref.current = value;\n });\n return ref;\n};\n\nexport { useLatest as default };\n","import { useRef, useCallback } from 'react';\n\nvar updateRef = function updateRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n return;\n }\n ref.current = value;\n};\n\nvar useComposedRef = function useComposedRef(libRef, userRef) {\n var prevUserRef = useRef();\n return useCallback(function (instance) {\n libRef.current = instance;\n\n if (prevUserRef.current) {\n updateRef(prevUserRef.current, null);\n }\n\n prevUserRef.current = userRef;\n\n if (!userRef) {\n return;\n }\n\n updateRef(userRef, instance);\n }, [userRef]);\n};\n\nexport default useComposedRef;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport { useLayoutEffect, forwardRef, useRef, createElement } from 'react';\nimport useLatest from 'use-latest';\nimport useComposedRef from 'use-composed-ref';\n\nvar HIDDEN_TEXTAREA_STYLE = {\n 'min-height': '0',\n 'max-height': 'none',\n height: '0',\n visibility: 'hidden',\n overflow: 'hidden',\n position: 'absolute',\n 'z-index': '-1000',\n top: '0',\n right: '0'\n};\nvar forceHiddenStyles = function forceHiddenStyles(node) {\n Object.keys(HIDDEN_TEXTAREA_STYLE).forEach(function (key) {\n node.style.setProperty(key, HIDDEN_TEXTAREA_STYLE[key], 'important');\n });\n};\n\n// TODO: use labelled tuples once they are avaiable:\n// export type CalculatedNodeHeights = [height: number, rowHeight: number];\n// https://github.com/microsoft/TypeScript/issues/28259\n\nvar hiddenTextarea = null;\nvar getHeight = function getHeight(node, sizingData) {\n var height = node.scrollHeight;\n if (sizingData.sizingStyle.boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n return height + sizingData.borderSize;\n }\n\n // remove padding, since height = content\n return height - sizingData.paddingSize;\n};\nfunction calculateNodeHeight(sizingData, value, minRows, maxRows) {\n if (minRows === void 0) {\n minRows = 1;\n }\n if (maxRows === void 0) {\n maxRows = Infinity;\n }\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n hiddenTextarea.setAttribute('tabindex', '-1');\n hiddenTextarea.setAttribute('aria-hidden', 'true');\n forceHiddenStyles(hiddenTextarea);\n }\n if (hiddenTextarea.parentNode === null) {\n document.body.appendChild(hiddenTextarea);\n }\n var paddingSize = sizingData.paddingSize,\n borderSize = sizingData.borderSize,\n sizingStyle = sizingData.sizingStyle;\n var boxSizing = sizingStyle.boxSizing;\n Object.keys(sizingStyle).forEach(function (_key) {\n var key = _key;\n hiddenTextarea.style[key] = sizingStyle[key];\n });\n forceHiddenStyles(hiddenTextarea);\n hiddenTextarea.value = value;\n var height = getHeight(hiddenTextarea, sizingData);\n // Double set and calc due to Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1795904\n hiddenTextarea.value = value;\n height = getHeight(hiddenTextarea, sizingData);\n\n // measure height of a textarea with a single row\n hiddenTextarea.value = 'x';\n var rowHeight = hiddenTextarea.scrollHeight - paddingSize;\n var minHeight = rowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n var maxHeight = rowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n height = Math.min(maxHeight, height);\n return [height, rowHeight];\n}\n\nvar noop = function noop() {};\nvar pick = function pick(props, obj) {\n return props.reduce(function (acc, prop) {\n acc[prop] = obj[prop];\n return acc;\n }, {});\n};\n\nvar SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'boxSizing', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'letterSpacing', 'lineHeight', 'paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop',\n// non-standard\n'tabSize', 'textIndent',\n// non-standard\n'textRendering', 'textTransform', 'width', 'wordBreak'];\nvar isIE = !!document.documentElement.currentStyle ;\nvar getSizingData = function getSizingData(node) {\n var style = window.getComputedStyle(node);\n if (style === null) {\n return null;\n }\n var sizingStyle = pick(SIZING_STYLE, style);\n var boxSizing = sizingStyle.boxSizing;\n\n // probably node is detached from DOM, can't read computed dimensions\n if (boxSizing === '') {\n return null;\n }\n\n // IE (Edge has already correct behaviour) returns content width as computed width\n // so we need to add manually padding and border widths\n if (isIE && boxSizing === 'border-box') {\n sizingStyle.width = parseFloat(sizingStyle.width) + parseFloat(sizingStyle.borderRightWidth) + parseFloat(sizingStyle.borderLeftWidth) + parseFloat(sizingStyle.paddingRight) + parseFloat(sizingStyle.paddingLeft) + 'px';\n }\n var paddingSize = parseFloat(sizingStyle.paddingBottom) + parseFloat(sizingStyle.paddingTop);\n var borderSize = parseFloat(sizingStyle.borderBottomWidth) + parseFloat(sizingStyle.borderTopWidth);\n return {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize\n };\n};\n\nfunction useListener(target, type, listener) {\n var latestListener = useLatest(listener);\n useLayoutEffect(function () {\n var handler = function handler(ev) {\n return latestListener.current(ev);\n };\n target.addEventListener(type, handler);\n return function () {\n return target.removeEventListener(type, handler);\n };\n }, []);\n}\nvar useWindowResizeListener = function useWindowResizeListener(listener) {\n useListener(window, 'resize', listener);\n};\nvar useFontsLoadedListener = function useFontsLoadedListener(listener) {\n useListener(document.fonts, 'loadingdone', listener);\n};\n\nvar _excluded = [\"cacheMeasurements\", \"maxRows\", \"minRows\", \"onChange\", \"onHeightChange\"];\nvar TextareaAutosize = function TextareaAutosize(_ref, userRef) {\n var cacheMeasurements = _ref.cacheMeasurements,\n maxRows = _ref.maxRows,\n minRows = _ref.minRows,\n _ref$onChange = _ref.onChange,\n onChange = _ref$onChange === void 0 ? noop : _ref$onChange,\n _ref$onHeightChange = _ref.onHeightChange,\n onHeightChange = _ref$onHeightChange === void 0 ? noop : _ref$onHeightChange,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production' && props.style) {\n if ('maxHeight' in props.style) {\n throw new Error('Using `style.maxHeight` for is not supported. Please use `maxRows`.');\n }\n if ('minHeight' in props.style) {\n throw new Error('Using `style.minHeight` for is not supported. Please use `minRows`.');\n }\n }\n var isControlled = props.value !== undefined;\n var libRef = useRef(null);\n var ref = useComposedRef(libRef, userRef);\n var heightRef = useRef(0);\n var measurementsCacheRef = useRef();\n var resizeTextarea = function resizeTextarea() {\n var node = libRef.current;\n var nodeSizingData = cacheMeasurements && measurementsCacheRef.current ? measurementsCacheRef.current : getSizingData(node);\n if (!nodeSizingData) {\n return;\n }\n measurementsCacheRef.current = nodeSizingData;\n var _calculateNodeHeight = calculateNodeHeight(nodeSizingData, node.value || node.placeholder || 'x', minRows, maxRows),\n height = _calculateNodeHeight[0],\n rowHeight = _calculateNodeHeight[1];\n if (heightRef.current !== height) {\n heightRef.current = height;\n node.style.setProperty('height', height + \"px\", 'important');\n onHeightChange(height, {\n rowHeight: rowHeight\n });\n }\n };\n var handleChange = function handleChange(event) {\n if (!isControlled) {\n resizeTextarea();\n }\n onChange(event);\n };\n {\n useLayoutEffect(resizeTextarea);\n useWindowResizeListener(resizeTextarea);\n useFontsLoadedListener(resizeTextarea);\n }\n return /*#__PURE__*/createElement(\"textarea\", _extends({}, props, {\n onChange: handleChange,\n ref: ref\n }));\n};\nvar index = /* #__PURE__ */forwardRef(TextareaAutosize);\n\nexport default index;\n"],"names":["useLatest","value","ref","React.useRef","useIsomorphicLayoutEffect","updateRef","useComposedRef","libRef","userRef","prevUserRef","useRef","useCallback","instance","HIDDEN_TEXTAREA_STYLE","forceHiddenStyles","node","key","hiddenTextarea","getHeight","sizingData","height","calculateNodeHeight","minRows","maxRows","paddingSize","borderSize","sizingStyle","boxSizing","_key","rowHeight","minHeight","maxHeight","noop","pick","props","obj","acc","prop","SIZING_STYLE","isIE","getSizingData","style","useListener","target","type","listener","latestListener","useLayoutEffect","handler","ev","useWindowResizeListener","useFontsLoadedListener","_excluded","TextareaAutosize","_ref","cacheMeasurements","_ref$onChange","onChange","_ref$onHeightChange","onHeightChange","_objectWithoutPropertiesLoose","isControlled","heightRef","measurementsCacheRef","resizeTextarea","nodeSizingData","_calculateNodeHeight","handleChange","event","createElement","_extends","index"],"mappings":"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","x_google_ignoreList":[0,1,2]}