@frsource/autoresize-textarea 2.0.37 → 2.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/index.ts"],"sourcesContent":["const ATTRIBUTE_NAME = \"data-frs-autoresize-textarea\";\n\nconst cacheParentsScrollTop = (element: Element) => {\n const scrollTopMap = new Map<Element | HTMLElement, number>();\n\n do {\n scrollTopMap.set(element, element.scrollTop);\n } while ((element = element?.parentNode as Element) instanceof Element);\n\n return () => {\n for (const [element, scrollTop] of scrollTopMap) {\n if (\"style\" in element) {\n const currentValue = element.style.scrollBehavior;\n element.style.scrollBehavior = \"auto\";\n element.scrollTop = scrollTop;\n element.style.scrollBehavior = currentValue;\n } else element.scrollTop = scrollTop;\n }\n };\n};\n\nexport const attach = (element: HTMLTextAreaElement) => {\n if (element.getAttribute(ATTRIBUTE_NAME)) return;\n element.setAttribute(ATTRIBUTE_NAME, \"\");\n\n let prevHeight = \"\";\n const inputHandler = () => {\n if (\n element.scrollHeight > element.clientHeight ||\n prevHeight === element.style.height\n ) {\n const resetScrollTops = cacheParentsScrollTop(element);\n element.style.height = \"auto\";\n\n const currentValue = element.style.overflow;\n element.style.overflow = \"hidden\";\n element.style.height = prevHeight = `${\n element.scrollHeight + (element.offsetHeight - element.clientHeight)\n }px`;\n element.style.overflow = currentValue;\n\n resetScrollTops();\n }\n };\n\n element.style.boxSizing = \"border-box\";\n\n inputHandler();\n\n element.addEventListener(\"input\", inputHandler);\n\n const elementPrototype = Object.getPrototypeOf(element);\n const descriptor = Object.getOwnPropertyDescriptor(elementPrototype, \"value\");\n Object.defineProperty(element, \"value\", {\n ...descriptor,\n set() {\n descriptor?.set?.apply(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments as unknown as [unknown],\n );\n inputHandler();\n },\n });\n return {\n detach() {\n element.removeAttribute(ATTRIBUTE_NAME);\n element.removeEventListener(\"input\", inputHandler);\n },\n update: inputHandler,\n };\n};\n"],"names":["ATTRIBUTE_NAME","attach","element","getAttribute","setAttribute","prevHeight","inputHandler","scrollHeight","clientHeight","style","height","resetScrollTops","scrollTopMap","Map","_element","set","scrollTop","parentNode","Element","_step","_iterator","_createForOfIteratorHelperLoose","done","_step$value","value","currentValue","scrollBehavior","cacheParentsScrollTop","overflow","offsetHeight","boxSizing","addEventListener","elementPrototype","Object","getPrototypeOf","descriptor","getOwnPropertyDescriptor","defineProperty","_extends","_descriptor$set","apply","this","arguments","detach","removeAttribute","removeEventListener","update"],"mappings":"8UAAA,IAAMA,EAAiB,+BAqBVC,EAAS,SAACC,GACrB,IAAIA,EAAQC,aAAaH,GAAzB,CACAE,EAAQE,aAAaJ,EAAgB,IAErC,IAAIK,EAAa,GACXC,EAAe,WACnB,GACEJ,EAAQK,aAAeL,EAAQM,cAC/BH,IAAeH,EAAQO,MAAMC,OAC7B,CACA,IAAMC,EA7BkB,SAACT,GAC7B,IAAMU,EAAe,IAAIC,IAEzB,EAAG,KAAAC,EACDF,EAAaG,IAAIb,EAASA,EAAQc,kBAC1Bd,SAAOY,EAAGZ,UAAAY,EAASG,sBAAkCC,SAE/D,kBACE,IAAA,IAA+CC,EAA/CC,2qBAAAC,CAAmCT,KAAYO,EAAAC,KAAAE,MAAE,CAAA,IAAAC,EAAAJ,EAAAK,MAArCtB,EAAOqB,KAAEP,EAASO,EAC5B,GAAA,GAAI,UAAWrB,EAAS,CACtB,IAAMuB,EAAevB,EAAQO,MAAMiB,eACnCxB,EAAQO,MAAMiB,eAAiB,OAC/BxB,EAAQc,UAAYA,EACpBd,EAAQO,MAAMiB,eAAiBD,CAChC,MAAMvB,EAAQc,UAAYA,CAC5B,CACH,CACF,CAY8BW,CAAsBzB,GAC9CA,EAAQO,MAAMC,OAAS,OAEvB,IAAMe,EAAevB,EAAQO,MAAMmB,SACnC1B,EAAQO,MAAMmB,SAAW,SACzB1B,EAAQO,MAAMC,OAASL,EACrBH,EAAQK,cAAgBL,EAAQ2B,aAAe3B,EAAQM,cACrD,KACJN,EAAQO,MAAMmB,SAAWH,EAEzBd,GACD,CACH,EAEAT,EAAQO,MAAMqB,UAAY,aAE1BxB,IAEAJ,EAAQ6B,iBAAiB,QAASzB,GAElC,IAAM0B,EAAmBC,OAAOC,eAAehC,GACzCiC,EAAaF,OAAOG,yBAAyBJ,EAAkB,SAYrE,OAXAC,OAAOI,eAAenC,EAAS,QAAOoC,EAAA,CAAA,EACjCH,EACHpB,CAAAA,mBAAGwB,EACSA,MAAVJ,GAAAI,OAAUA,EAAVJ,EAAYpB,MAAZwB,EAAiBC,MACfC,KAEAC,WAEFpC,GACF,KAEK,CACLqC,OAAMA,WACJzC,EAAQ0C,gBAAgB5C,GACxBE,EAAQ2C,oBAAoB,QAASvC,EACvC,EACAwC,OAAQxC,EA/CgC,CAiD5C"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/index.ts"],"sourcesContent":["const ATTRIBUTE_NAME = \"data-frs-autoresize-textarea\";\n\nconst cacheParentsScrollTop = (element: Element) => {\n const scrollTopMap = new Map<Element | HTMLElement, number>();\n\n do {\n scrollTopMap.set(element, element.scrollTop);\n } while ((element = element?.parentNode as Element) instanceof Element);\n\n return () => {\n for (const [element, scrollTop] of scrollTopMap) {\n if (\"style\" in element) {\n const currentValue = element.style.scrollBehavior;\n element.style.scrollBehavior = \"auto\";\n element.scrollTop = scrollTop;\n element.style.scrollBehavior = currentValue;\n } else element.scrollTop = scrollTop;\n }\n };\n};\n\nexport const attach = (element: HTMLTextAreaElement) => {\n if (element.getAttribute(ATTRIBUTE_NAME)) return;\n element.setAttribute(ATTRIBUTE_NAME, \"\");\n\n let prevHeight = \"\";\n const inputHandler = () => {\n if (\n element.scrollHeight > element.clientHeight ||\n prevHeight === element.style.height\n ) {\n const resetScrollTops = cacheParentsScrollTop(element);\n element.style.height = \"auto\";\n\n const currentValue = element.style.overflow;\n element.style.overflow = \"hidden\";\n element.style.height = prevHeight = `${\n element.scrollHeight + (element.offsetHeight - element.clientHeight)\n }px`;\n element.style.overflow = currentValue;\n\n resetScrollTops();\n }\n };\n\n element.style.boxSizing = \"border-box\";\n\n inputHandler();\n\n element.addEventListener(\"input\", inputHandler);\n\n const elementPrototype = Object.getPrototypeOf(element);\n const descriptor = Object.getOwnPropertyDescriptor(elementPrototype, \"value\");\n Object.defineProperty(element, \"value\", {\n ...descriptor,\n set() {\n descriptor?.set?.apply(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments as unknown as [unknown],\n );\n inputHandler();\n },\n });\n return {\n detach() {\n element.removeAttribute(ATTRIBUTE_NAME);\n element.removeEventListener(\"input\", inputHandler);\n },\n update: inputHandler,\n };\n};\n"],"names":["ATTRIBUTE_NAME","attach","element","getAttribute","setAttribute","prevHeight","inputHandler","scrollHeight","clientHeight","style","height","resetScrollTops","scrollTopMap","Map","_element","set","scrollTop","parentNode","Element","_step","_iterator","_createForOfIteratorHelperLoose","done","_step$value","value","currentValue","scrollBehavior","cacheParentsScrollTop","overflow","offsetHeight","boxSizing","addEventListener","elementPrototype","Object","getPrototypeOf","descriptor","getOwnPropertyDescriptor","defineProperty","_extends","_descriptor$set","apply","this","arguments","detach","removeAttribute","removeEventListener","update"],"mappings":"8UAAA,IAAMA,EAAiB,+BAqBVC,EAAS,SAACC,GACrB,IAAIA,EAAQC,aAAaH,GAAzB,CACAE,EAAQE,aAAaJ,EAAgB,IAErC,IAAIK,EAAa,GACXC,EAAe,WACnB,GACEJ,EAAQK,aAAeL,EAAQM,cAC/BH,IAAeH,EAAQO,MAAMC,OAC7B,CACA,IAAMC,EA7BkB,SAACT,GAC7B,IAAMU,EAAe,IAAIC,IAEzB,EAAG,KAAAC,EACDF,EAAaG,IAAIb,EAASA,EAAQc,UACpC,QAAUd,SAAOY,EAAGZ,UAAAY,EAASG,sBAAkCC,SAE/D,kBACE,IAAA,IAA+CC,EAA/CC,2qBAAAC,CAAmCT,KAAYO,EAAAC,KAAAE,MAAE,CAAA,IAAAC,EAAAJ,EAAAK,MAArCtB,EAAOqB,KAAEP,EAASO,EAC5B,GAAA,GAAI,UAAWrB,EAAS,CACtB,IAAMuB,EAAevB,EAAQO,MAAMiB,eACnCxB,EAAQO,MAAMiB,eAAiB,OAC/BxB,EAAQc,UAAYA,EACpBd,EAAQO,MAAMiB,eAAiBD,CACjC,MAAOvB,EAAQc,UAAYA,CAC7B,CACF,CACF,CAY8BW,CAAsBzB,GAC9CA,EAAQO,MAAMC,OAAS,OAEvB,IAAMe,EAAevB,EAAQO,MAAMmB,SACnC1B,EAAQO,MAAMmB,SAAW,SACzB1B,EAAQO,MAAMC,OAASL,EACrBH,EAAQK,cAAgBL,EAAQ2B,aAAe3B,EAAQM,cACrD,KACJN,EAAQO,MAAMmB,SAAWH,EAEzBd,GACF,CACF,EAEAT,EAAQO,MAAMqB,UAAY,aAE1BxB,IAEAJ,EAAQ6B,iBAAiB,QAASzB,GAElC,IAAM0B,EAAmBC,OAAOC,eAAehC,GACzCiC,EAAaF,OAAOG,yBAAyBJ,EAAkB,SAYrE,OAXAC,OAAOI,eAAenC,EAAS,QAAOoC,EAAA,CAAA,EACjCH,EACHpB,CAAAA,mBAAGwB,EACSA,MAAVJ,GAAAI,OAAUA,EAAVJ,EAAYpB,MAAZwB,EAAiBC,MACfC,KAEAC,WAEFpC,GACF,KAEK,CACLqC,OAAMA,WACJzC,EAAQ0C,gBAAgB5C,GACxBE,EAAQ2C,oBAAoB,QAASvC,EACvC,EACAwC,OAAQxC,EA/CgC,CAiD5C"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["const ATTRIBUTE_NAME = \"data-frs-autoresize-textarea\";\n\nconst cacheParentsScrollTop = (element: Element) => {\n const scrollTopMap = new Map<Element | HTMLElement, number>();\n\n do {\n scrollTopMap.set(element, element.scrollTop);\n } while ((element = element?.parentNode as Element) instanceof Element);\n\n return () => {\n for (const [element, scrollTop] of scrollTopMap) {\n if (\"style\" in element) {\n const currentValue = element.style.scrollBehavior;\n element.style.scrollBehavior = \"auto\";\n element.scrollTop = scrollTop;\n element.style.scrollBehavior = currentValue;\n } else element.scrollTop = scrollTop;\n }\n };\n};\n\nexport const attach = (element: HTMLTextAreaElement) => {\n if (element.getAttribute(ATTRIBUTE_NAME)) return;\n element.setAttribute(ATTRIBUTE_NAME, \"\");\n\n let prevHeight = \"\";\n const inputHandler = () => {\n if (\n element.scrollHeight > element.clientHeight ||\n prevHeight === element.style.height\n ) {\n const resetScrollTops = cacheParentsScrollTop(element);\n element.style.height = \"auto\";\n\n const currentValue = element.style.overflow;\n element.style.overflow = \"hidden\";\n element.style.height = prevHeight = `${\n element.scrollHeight + (element.offsetHeight - element.clientHeight)\n }px`;\n element.style.overflow = currentValue;\n\n resetScrollTops();\n }\n };\n\n element.style.boxSizing = \"border-box\";\n\n inputHandler();\n\n element.addEventListener(\"input\", inputHandler);\n\n const elementPrototype = Object.getPrototypeOf(element);\n const descriptor = Object.getOwnPropertyDescriptor(elementPrototype, \"value\");\n Object.defineProperty(element, \"value\", {\n ...descriptor,\n set() {\n descriptor?.set?.apply(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments as unknown as [unknown],\n );\n inputHandler();\n },\n });\n return {\n detach() {\n element.removeAttribute(ATTRIBUTE_NAME);\n element.removeEventListener(\"input\", inputHandler);\n },\n update: inputHandler,\n };\n};\n"],"names":["ATTRIBUTE_NAME","element","getAttribute","setAttribute","prevHeight","inputHandler","scrollHeight","clientHeight","style","height","resetScrollTops","scrollTopMap","Map","_element","set","scrollTop","parentNode","Element","_step","_iterator","_createForOfIteratorHelperLoose","done","_step$value","value","currentValue","scrollBehavior","cacheParentsScrollTop","overflow","offsetHeight","boxSizing","addEventListener","elementPrototype","Object","getPrototypeOf","descriptor","getOwnPropertyDescriptor","defineProperty","_extends","_descriptor$set","apply","this","arguments","detach","removeAttribute","removeEventListener","update"],"mappings":"8UAAA,IAAMA,EAAiB,8CAqBD,SAACC,GACrB,IAAIA,EAAQC,aAAaF,GAAzB,CACAC,EAAQE,aAAaH,EAAgB,IAErC,IAAII,EAAa,GACXC,EAAe,WACnB,GACEJ,EAAQK,aAAeL,EAAQM,cAC/BH,IAAeH,EAAQO,MAAMC,OAC7B,CACA,IAAMC,EA7BkB,SAACT,GAC7B,IAAMU,EAAe,IAAIC,IAEzB,EAAG,KAAAC,EACDF,EAAaG,IAAIb,EAASA,EAAQc,kBAC1Bd,SAAOY,EAAGZ,UAAAY,EAASG,sBAAkCC,SAE/D,kBACE,IAAA,IAA+CC,EAA/CC,2qBAAAC,CAAmCT,KAAYO,EAAAC,KAAAE,MAAE,CAAA,IAAAC,EAAAJ,EAAAK,MAArCtB,EAAOqB,KAAEP,EAASO,EAC5B,GAAA,GAAI,UAAWrB,EAAS,CACtB,IAAMuB,EAAevB,EAAQO,MAAMiB,eACnCxB,EAAQO,MAAMiB,eAAiB,OAC/BxB,EAAQc,UAAYA,EACpBd,EAAQO,MAAMiB,eAAiBD,CAChC,MAAMvB,EAAQc,UAAYA,CAC5B,CACH,CACF,CAY8BW,CAAsBzB,GAC9CA,EAAQO,MAAMC,OAAS,OAEvB,IAAMe,EAAevB,EAAQO,MAAMmB,SACnC1B,EAAQO,MAAMmB,SAAW,SACzB1B,EAAQO,MAAMC,OAASL,EACrBH,EAAQK,cAAgBL,EAAQ2B,aAAe3B,EAAQM,cACrD,KACJN,EAAQO,MAAMmB,SAAWH,EAEzBd,GACD,CACH,EAEAT,EAAQO,MAAMqB,UAAY,aAE1BxB,IAEAJ,EAAQ6B,iBAAiB,QAASzB,GAElC,IAAM0B,EAAmBC,OAAOC,eAAehC,GACzCiC,EAAaF,OAAOG,yBAAyBJ,EAAkB,SAYrE,OAXAC,OAAOI,eAAenC,EAAS,QAAOoC,EAAA,CAAA,EACjCH,EACHpB,CAAAA,mBAAGwB,EACSA,MAAVJ,GAAAI,OAAUA,EAAVJ,EAAYpB,MAAZwB,EAAiBC,MACfC,KAEAC,WAEFpC,GACF,KAEK,CACLqC,OAAMA,WACJzC,EAAQ0C,gBAAgB3C,GACxBC,EAAQ2C,oBAAoB,QAASvC,EACvC,EACAwC,OAAQxC,EA/CgC,CAiD5C"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["const ATTRIBUTE_NAME = \"data-frs-autoresize-textarea\";\n\nconst cacheParentsScrollTop = (element: Element) => {\n const scrollTopMap = new Map<Element | HTMLElement, number>();\n\n do {\n scrollTopMap.set(element, element.scrollTop);\n } while ((element = element?.parentNode as Element) instanceof Element);\n\n return () => {\n for (const [element, scrollTop] of scrollTopMap) {\n if (\"style\" in element) {\n const currentValue = element.style.scrollBehavior;\n element.style.scrollBehavior = \"auto\";\n element.scrollTop = scrollTop;\n element.style.scrollBehavior = currentValue;\n } else element.scrollTop = scrollTop;\n }\n };\n};\n\nexport const attach = (element: HTMLTextAreaElement) => {\n if (element.getAttribute(ATTRIBUTE_NAME)) return;\n element.setAttribute(ATTRIBUTE_NAME, \"\");\n\n let prevHeight = \"\";\n const inputHandler = () => {\n if (\n element.scrollHeight > element.clientHeight ||\n prevHeight === element.style.height\n ) {\n const resetScrollTops = cacheParentsScrollTop(element);\n element.style.height = \"auto\";\n\n const currentValue = element.style.overflow;\n element.style.overflow = \"hidden\";\n element.style.height = prevHeight = `${\n element.scrollHeight + (element.offsetHeight - element.clientHeight)\n }px`;\n element.style.overflow = currentValue;\n\n resetScrollTops();\n }\n };\n\n element.style.boxSizing = \"border-box\";\n\n inputHandler();\n\n element.addEventListener(\"input\", inputHandler);\n\n const elementPrototype = Object.getPrototypeOf(element);\n const descriptor = Object.getOwnPropertyDescriptor(elementPrototype, \"value\");\n Object.defineProperty(element, \"value\", {\n ...descriptor,\n set() {\n descriptor?.set?.apply(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments as unknown as [unknown],\n );\n inputHandler();\n },\n });\n return {\n detach() {\n element.removeAttribute(ATTRIBUTE_NAME);\n element.removeEventListener(\"input\", inputHandler);\n },\n update: inputHandler,\n };\n};\n"],"names":["ATTRIBUTE_NAME","element","getAttribute","setAttribute","prevHeight","inputHandler","scrollHeight","clientHeight","style","height","resetScrollTops","scrollTopMap","Map","_element","set","scrollTop","parentNode","Element","_step","_iterator","_createForOfIteratorHelperLoose","done","_step$value","value","currentValue","scrollBehavior","cacheParentsScrollTop","overflow","offsetHeight","boxSizing","addEventListener","elementPrototype","Object","getPrototypeOf","descriptor","getOwnPropertyDescriptor","defineProperty","_extends","_descriptor$set","apply","this","arguments","detach","removeAttribute","removeEventListener","update"],"mappings":"8UAAA,IAAMA,EAAiB,8CAqBD,SAACC,GACrB,IAAIA,EAAQC,aAAaF,GAAzB,CACAC,EAAQE,aAAaH,EAAgB,IAErC,IAAII,EAAa,GACXC,EAAe,WACnB,GACEJ,EAAQK,aAAeL,EAAQM,cAC/BH,IAAeH,EAAQO,MAAMC,OAC7B,CACA,IAAMC,EA7BkB,SAACT,GAC7B,IAAMU,EAAe,IAAIC,IAEzB,EAAG,KAAAC,EACDF,EAAaG,IAAIb,EAASA,EAAQc,UACpC,QAAUd,SAAOY,EAAGZ,UAAAY,EAASG,sBAAkCC,SAE/D,kBACE,IAAA,IAA+CC,EAA/CC,2qBAAAC,CAAmCT,KAAYO,EAAAC,KAAAE,MAAE,CAAA,IAAAC,EAAAJ,EAAAK,MAArCtB,EAAOqB,KAAEP,EAASO,EAC5B,GAAA,GAAI,UAAWrB,EAAS,CACtB,IAAMuB,EAAevB,EAAQO,MAAMiB,eACnCxB,EAAQO,MAAMiB,eAAiB,OAC/BxB,EAAQc,UAAYA,EACpBd,EAAQO,MAAMiB,eAAiBD,CACjC,MAAOvB,EAAQc,UAAYA,CAC7B,CACF,CACF,CAY8BW,CAAsBzB,GAC9CA,EAAQO,MAAMC,OAAS,OAEvB,IAAMe,EAAevB,EAAQO,MAAMmB,SACnC1B,EAAQO,MAAMmB,SAAW,SACzB1B,EAAQO,MAAMC,OAASL,EACrBH,EAAQK,cAAgBL,EAAQ2B,aAAe3B,EAAQM,cACrD,KACJN,EAAQO,MAAMmB,SAAWH,EAEzBd,GACF,CACF,EAEAT,EAAQO,MAAMqB,UAAY,aAE1BxB,IAEAJ,EAAQ6B,iBAAiB,QAASzB,GAElC,IAAM0B,EAAmBC,OAAOC,eAAehC,GACzCiC,EAAaF,OAAOG,yBAAyBJ,EAAkB,SAYrE,OAXAC,OAAOI,eAAenC,EAAS,QAAOoC,EAAA,CAAA,EACjCH,EACHpB,CAAAA,mBAAGwB,EACSA,MAAVJ,GAAAI,OAAUA,EAAVJ,EAAYpB,MAAZwB,EAAiBC,MACfC,KAEAC,WAEFpC,GACF,KAEK,CACLqC,OAAMA,WACJzC,EAAQ0C,gBAAgB3C,GACxBC,EAAQ2C,oBAAoB,QAASvC,EACvC,EACAwC,OAAQxC,EA/CgC,CAiD5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.mjs","sources":["../src/index.ts"],"sourcesContent":["const ATTRIBUTE_NAME = \"data-frs-autoresize-textarea\";\n\nconst cacheParentsScrollTop = (element: Element) => {\n const scrollTopMap = new Map<Element | HTMLElement, number>();\n\n do {\n scrollTopMap.set(element, element.scrollTop);\n } while ((element = element?.parentNode as Element) instanceof Element);\n\n return () => {\n for (const [element, scrollTop] of scrollTopMap) {\n if (\"style\" in element) {\n const currentValue = element.style.scrollBehavior;\n element.style.scrollBehavior = \"auto\";\n element.scrollTop = scrollTop;\n element.style.scrollBehavior = currentValue;\n } else element.scrollTop = scrollTop;\n }\n };\n};\n\nexport const attach = (element: HTMLTextAreaElement) => {\n if (element.getAttribute(ATTRIBUTE_NAME)) return;\n element.setAttribute(ATTRIBUTE_NAME, \"\");\n\n let prevHeight = \"\";\n const inputHandler = () => {\n if (\n element.scrollHeight > element.clientHeight ||\n prevHeight === element.style.height\n ) {\n const resetScrollTops = cacheParentsScrollTop(element);\n element.style.height = \"auto\";\n\n const currentValue = element.style.overflow;\n element.style.overflow = \"hidden\";\n element.style.height = prevHeight = `${\n element.scrollHeight + (element.offsetHeight - element.clientHeight)\n }px`;\n element.style.overflow = currentValue;\n\n resetScrollTops();\n }\n };\n\n element.style.boxSizing = \"border-box\";\n\n inputHandler();\n\n element.addEventListener(\"input\", inputHandler);\n\n const elementPrototype = Object.getPrototypeOf(element);\n const descriptor = Object.getOwnPropertyDescriptor(elementPrototype, \"value\");\n Object.defineProperty(element, \"value\", {\n ...descriptor,\n set() {\n descriptor?.set?.apply(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments as unknown as [unknown],\n );\n inputHandler();\n },\n });\n return {\n detach() {\n element.removeAttribute(ATTRIBUTE_NAME);\n element.removeEventListener(\"input\", inputHandler);\n },\n update: inputHandler,\n };\n};\n"],"names":["ATTRIBUTE_NAME","attach","element","getAttribute","setAttribute","prevHeight","inputHandler","scrollHeight","clientHeight","style","height","resetScrollTops","scrollTopMap","Map","_element","set","scrollTop","parentNode","Element","currentValue","scrollBehavior","cacheParentsScrollTop","overflow","offsetHeight","boxSizing","addEventListener","elementPrototype","Object","getPrototypeOf","descriptor","getOwnPropertyDescriptor","defineProperty","_extends","_descriptor$set","apply","this","arguments","detach","removeAttribute","removeEventListener","update"],"mappings":"oOAAA,MAAMA,EAAiB,+BAqBVC,EAAUC,IACrB,GAAIA,EAAQC,aAAaH,GAAiB,OAC1CE,EAAQE,aAAaJ,EAAgB,IAErC,IAAIK,EAAa,GACjB,MAAMC,EAAeA,KACnB,GACEJ,EAAQK,aAAeL,EAAQM,cAC/BH,IAAeH,EAAQO,MAAMC,OAC7B,CACA,MAAMC,EA7BmBT,KAC7B,MAAMU,EAAe,IAAIC,IAEzB,EAAG,CAAA,IAAAC,EACDF,EAAaG,IAAIb,EAASA,EAAQc,kBAC1Bd,EAAUY,OAAHA,EAAGZ,QAAAY,EAAAA,EAASG,sBAAkCC,SAE/D,MAAO,KACL,IAAK,MAAOhB,EAASc,KAAcJ,EACjC,GAAI,UAAWV,EAAS,CACtB,MAAMiB,EAAejB,EAAQO,MAAMW,eACnClB,EAAQO,MAAMW,eAAiB,OAC/BlB,EAAQc,UAAYA,EACpBd,EAAQO,MAAMW,eAAiBD,CAChC,MAAMjB,EAAQc,UAAYA,CAC5B,CACH,EAa4BK,CAAsBnB,GAC9CA,EAAQO,MAAMC,OAAS,OAEvB,MAAMS,EAAejB,EAAQO,MAAMa,SACnCpB,EAAQO,MAAMa,SAAW,SACzBpB,EAAQO,MAAMC,OAASL,EACrB,GAAAH,EAAQK,cAAgBL,EAAQqB,aAAerB,EAAQM,kBAEzDN,EAAQO,MAAMa,SAAWH,EAEzBR,GACD,GAGHT,EAAQO,MAAMe,UAAY,aAE1BlB,IAEAJ,EAAQuB,iBAAiB,QAASnB,GAElC,MAAMoB,EAAmBC,OAAOC,eAAe1B,GACzC2B,EAAaF,OAAOG,yBAAyBJ,EAAkB,SAYrE,OAXAC,OAAOI,eAAe7B,EAAS,QAAO8B,KACjCH,EAAU,CACbd,UAAGkB,EACSA,MAAVJ,GAAe,OAALI,EAAVJ,EAAYd,MAAZkB,EAAiBC,MACfC,KAEAC,WAEF9B,GACF,KAEK,CACL+B,SACEnC,EAAQoC,gBAAgBtC,GACxBE,EAAQqC,oBAAoB,QAASjC,EACvC,EACAkC,OAAQlC"}
1
+ {"version":3,"file":"index.modern.mjs","sources":["../src/index.ts"],"sourcesContent":["const ATTRIBUTE_NAME = \"data-frs-autoresize-textarea\";\n\nconst cacheParentsScrollTop = (element: Element) => {\n const scrollTopMap = new Map<Element | HTMLElement, number>();\n\n do {\n scrollTopMap.set(element, element.scrollTop);\n } while ((element = element?.parentNode as Element) instanceof Element);\n\n return () => {\n for (const [element, scrollTop] of scrollTopMap) {\n if (\"style\" in element) {\n const currentValue = element.style.scrollBehavior;\n element.style.scrollBehavior = \"auto\";\n element.scrollTop = scrollTop;\n element.style.scrollBehavior = currentValue;\n } else element.scrollTop = scrollTop;\n }\n };\n};\n\nexport const attach = (element: HTMLTextAreaElement) => {\n if (element.getAttribute(ATTRIBUTE_NAME)) return;\n element.setAttribute(ATTRIBUTE_NAME, \"\");\n\n let prevHeight = \"\";\n const inputHandler = () => {\n if (\n element.scrollHeight > element.clientHeight ||\n prevHeight === element.style.height\n ) {\n const resetScrollTops = cacheParentsScrollTop(element);\n element.style.height = \"auto\";\n\n const currentValue = element.style.overflow;\n element.style.overflow = \"hidden\";\n element.style.height = prevHeight = `${\n element.scrollHeight + (element.offsetHeight - element.clientHeight)\n }px`;\n element.style.overflow = currentValue;\n\n resetScrollTops();\n }\n };\n\n element.style.boxSizing = \"border-box\";\n\n inputHandler();\n\n element.addEventListener(\"input\", inputHandler);\n\n const elementPrototype = Object.getPrototypeOf(element);\n const descriptor = Object.getOwnPropertyDescriptor(elementPrototype, \"value\");\n Object.defineProperty(element, \"value\", {\n ...descriptor,\n set() {\n descriptor?.set?.apply(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments as unknown as [unknown],\n );\n inputHandler();\n },\n });\n return {\n detach() {\n element.removeAttribute(ATTRIBUTE_NAME);\n element.removeEventListener(\"input\", inputHandler);\n },\n update: inputHandler,\n };\n};\n"],"names":["ATTRIBUTE_NAME","attach","element","getAttribute","setAttribute","prevHeight","inputHandler","scrollHeight","clientHeight","style","height","resetScrollTops","scrollTopMap","Map","_element","set","scrollTop","parentNode","Element","currentValue","scrollBehavior","cacheParentsScrollTop","overflow","offsetHeight","boxSizing","addEventListener","elementPrototype","Object","getPrototypeOf","descriptor","getOwnPropertyDescriptor","defineProperty","_extends","_descriptor$set","apply","this","arguments","detach","removeAttribute","removeEventListener","update"],"mappings":"oOAAA,MAAMA,EAAiB,+BAqBVC,EAAUC,IACrB,GAAIA,EAAQC,aAAaH,GAAiB,OAC1CE,EAAQE,aAAaJ,EAAgB,IAErC,IAAIK,EAAa,GACjB,MAAMC,EAAeA,KACnB,GACEJ,EAAQK,aAAeL,EAAQM,cAC/BH,IAAeH,EAAQO,MAAMC,OAC7B,CACA,MAAMC,EA7BmBT,KAC7B,MAAMU,EAAe,IAAIC,IAEzB,EAAG,CAAA,IAAAC,EACDF,EAAaG,IAAIb,EAASA,EAAQc,UACpC,QAAUd,EAAUY,OAAHA,EAAGZ,QAAAY,EAAAA,EAASG,sBAAkCC,SAE/D,MAAO,KACL,IAAK,MAAOhB,EAASc,KAAcJ,EACjC,GAAI,UAAWV,EAAS,CACtB,MAAMiB,EAAejB,EAAQO,MAAMW,eACnClB,EAAQO,MAAMW,eAAiB,OAC/BlB,EAAQc,UAAYA,EACpBd,EAAQO,MAAMW,eAAiBD,CACjC,MAAOjB,EAAQc,UAAYA,CAC7B,CACF,EAa4BK,CAAsBnB,GAC9CA,EAAQO,MAAMC,OAAS,OAEvB,MAAMS,EAAejB,EAAQO,MAAMa,SACnCpB,EAAQO,MAAMa,SAAW,SACzBpB,EAAQO,MAAMC,OAASL,EACrB,GAAAH,EAAQK,cAAgBL,EAAQqB,aAAerB,EAAQM,kBAEzDN,EAAQO,MAAMa,SAAWH,EAEzBR,GACF,GAGFT,EAAQO,MAAMe,UAAY,aAE1BlB,IAEAJ,EAAQuB,iBAAiB,QAASnB,GAElC,MAAMoB,EAAmBC,OAAOC,eAAe1B,GACzC2B,EAAaF,OAAOG,yBAAyBJ,EAAkB,SAYrE,OAXAC,OAAOI,eAAe7B,EAAS,QAAO8B,KACjCH,EAAU,CACbd,UAAGkB,EACSA,MAAVJ,GAAe,OAALI,EAAVJ,EAAYd,MAAZkB,EAAiBC,MACfC,KAEAC,WAEF9B,GACF,KAEK,CACL+B,SACEnC,EAAQoC,gBAAgBtC,GACxBE,EAAQqC,oBAAoB,QAASjC,EACvC,EACAkC,OAAQlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/index.ts"],"sourcesContent":["const ATTRIBUTE_NAME = \"data-frs-autoresize-textarea\";\n\nconst cacheParentsScrollTop = (element: Element) => {\n const scrollTopMap = new Map<Element | HTMLElement, number>();\n\n do {\n scrollTopMap.set(element, element.scrollTop);\n } while ((element = element?.parentNode as Element) instanceof Element);\n\n return () => {\n for (const [element, scrollTop] of scrollTopMap) {\n if (\"style\" in element) {\n const currentValue = element.style.scrollBehavior;\n element.style.scrollBehavior = \"auto\";\n element.scrollTop = scrollTop;\n element.style.scrollBehavior = currentValue;\n } else element.scrollTop = scrollTop;\n }\n };\n};\n\nexport const attach = (element: HTMLTextAreaElement) => {\n if (element.getAttribute(ATTRIBUTE_NAME)) return;\n element.setAttribute(ATTRIBUTE_NAME, \"\");\n\n let prevHeight = \"\";\n const inputHandler = () => {\n if (\n element.scrollHeight > element.clientHeight ||\n prevHeight === element.style.height\n ) {\n const resetScrollTops = cacheParentsScrollTop(element);\n element.style.height = \"auto\";\n\n const currentValue = element.style.overflow;\n element.style.overflow = \"hidden\";\n element.style.height = prevHeight = `${\n element.scrollHeight + (element.offsetHeight - element.clientHeight)\n }px`;\n element.style.overflow = currentValue;\n\n resetScrollTops();\n }\n };\n\n element.style.boxSizing = \"border-box\";\n\n inputHandler();\n\n element.addEventListener(\"input\", inputHandler);\n\n const elementPrototype = Object.getPrototypeOf(element);\n const descriptor = Object.getOwnPropertyDescriptor(elementPrototype, \"value\");\n Object.defineProperty(element, \"value\", {\n ...descriptor,\n set() {\n descriptor?.set?.apply(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments as unknown as [unknown],\n );\n inputHandler();\n },\n });\n return {\n detach() {\n element.removeAttribute(ATTRIBUTE_NAME);\n element.removeEventListener(\"input\", inputHandler);\n },\n update: inputHandler,\n };\n};\n"],"names":["ATTRIBUTE_NAME","element","getAttribute","setAttribute","prevHeight","inputHandler","scrollHeight","clientHeight","style","height","resetScrollTops","scrollTopMap","Map","_element","set","scrollTop","parentNode","Element","_step","_iterator","_createForOfIteratorHelperLoose","done","_step$value","value","currentValue","scrollBehavior","cacheParentsScrollTop","overflow","offsetHeight","boxSizing","addEventListener","elementPrototype","Object","getPrototypeOf","descriptor","getOwnPropertyDescriptor","defineProperty","_extends","_descriptor$set","apply","this","arguments","detach","removeAttribute","removeEventListener","update"],"mappings":"0jBAAA,IAAMA,EAAiB,wCAqBD,SAACC,GACrB,IAAIA,EAAQC,aAAaF,GAAzB,CACAC,EAAQE,aAAaH,EAAgB,IAErC,IAAII,EAAa,GACXC,EAAe,WACnB,GACEJ,EAAQK,aAAeL,EAAQM,cAC/BH,IAAeH,EAAQO,MAAMC,OAC7B,CACA,IAAMC,EA7BkB,SAACT,GAC7B,IAAMU,EAAe,IAAIC,IAEzB,EAAG,KAAAC,EACDF,EAAaG,IAAIb,EAASA,EAAQc,kBAC1Bd,SAAOY,EAAGZ,UAAAY,EAASG,sBAAkCC,SAE/D,kBACE,IAAA,IAA+CC,EAA/CC,2qBAAAC,CAAmCT,KAAYO,EAAAC,KAAAE,MAAE,CAAA,IAAAC,EAAAJ,EAAAK,MAArCtB,EAAOqB,KAAEP,EAASO,EAC5B,GAAA,GAAI,UAAWrB,EAAS,CACtB,IAAMuB,EAAevB,EAAQO,MAAMiB,eACnCxB,EAAQO,MAAMiB,eAAiB,OAC/BxB,EAAQc,UAAYA,EACpBd,EAAQO,MAAMiB,eAAiBD,CAChC,MAAMvB,EAAQc,UAAYA,CAC5B,CACH,CACF,CAY8BW,CAAsBzB,GAC9CA,EAAQO,MAAMC,OAAS,OAEvB,IAAMe,EAAevB,EAAQO,MAAMmB,SACnC1B,EAAQO,MAAMmB,SAAW,SACzB1B,EAAQO,MAAMC,OAASL,EACrBH,EAAQK,cAAgBL,EAAQ2B,aAAe3B,EAAQM,cACrD,KACJN,EAAQO,MAAMmB,SAAWH,EAEzBd,GACD,CACH,EAEAT,EAAQO,MAAMqB,UAAY,aAE1BxB,IAEAJ,EAAQ6B,iBAAiB,QAASzB,GAElC,IAAM0B,EAAmBC,OAAOC,eAAehC,GACzCiC,EAAaF,OAAOG,yBAAyBJ,EAAkB,SAYrE,OAXAC,OAAOI,eAAenC,EAAS,QAAOoC,EAAA,CAAA,EACjCH,EACHpB,CAAAA,mBAAGwB,EACSA,MAAVJ,GAAAI,OAAUA,EAAVJ,EAAYpB,MAAZwB,EAAiBC,MACfC,KAEAC,WAEFpC,GACF,KAEK,CACLqC,OAAMA,WACJzC,EAAQ0C,gBAAgB3C,GACxBC,EAAQ2C,oBAAoB,QAASvC,EACvC,EACAwC,OAAQxC,EA/CgC,CAiD5C"}
1
+ {"version":3,"file":"index.umd.js","sources":["../src/index.ts"],"sourcesContent":["const ATTRIBUTE_NAME = \"data-frs-autoresize-textarea\";\n\nconst cacheParentsScrollTop = (element: Element) => {\n const scrollTopMap = new Map<Element | HTMLElement, number>();\n\n do {\n scrollTopMap.set(element, element.scrollTop);\n } while ((element = element?.parentNode as Element) instanceof Element);\n\n return () => {\n for (const [element, scrollTop] of scrollTopMap) {\n if (\"style\" in element) {\n const currentValue = element.style.scrollBehavior;\n element.style.scrollBehavior = \"auto\";\n element.scrollTop = scrollTop;\n element.style.scrollBehavior = currentValue;\n } else element.scrollTop = scrollTop;\n }\n };\n};\n\nexport const attach = (element: HTMLTextAreaElement) => {\n if (element.getAttribute(ATTRIBUTE_NAME)) return;\n element.setAttribute(ATTRIBUTE_NAME, \"\");\n\n let prevHeight = \"\";\n const inputHandler = () => {\n if (\n element.scrollHeight > element.clientHeight ||\n prevHeight === element.style.height\n ) {\n const resetScrollTops = cacheParentsScrollTop(element);\n element.style.height = \"auto\";\n\n const currentValue = element.style.overflow;\n element.style.overflow = \"hidden\";\n element.style.height = prevHeight = `${\n element.scrollHeight + (element.offsetHeight - element.clientHeight)\n }px`;\n element.style.overflow = currentValue;\n\n resetScrollTops();\n }\n };\n\n element.style.boxSizing = \"border-box\";\n\n inputHandler();\n\n element.addEventListener(\"input\", inputHandler);\n\n const elementPrototype = Object.getPrototypeOf(element);\n const descriptor = Object.getOwnPropertyDescriptor(elementPrototype, \"value\");\n Object.defineProperty(element, \"value\", {\n ...descriptor,\n set() {\n descriptor?.set?.apply(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments as unknown as [unknown],\n );\n inputHandler();\n },\n });\n return {\n detach() {\n element.removeAttribute(ATTRIBUTE_NAME);\n element.removeEventListener(\"input\", inputHandler);\n },\n update: inputHandler,\n };\n};\n"],"names":["ATTRIBUTE_NAME","element","getAttribute","setAttribute","prevHeight","inputHandler","scrollHeight","clientHeight","style","height","resetScrollTops","scrollTopMap","Map","_element","set","scrollTop","parentNode","Element","_step","_iterator","_createForOfIteratorHelperLoose","done","_step$value","value","currentValue","scrollBehavior","cacheParentsScrollTop","overflow","offsetHeight","boxSizing","addEventListener","elementPrototype","Object","getPrototypeOf","descriptor","getOwnPropertyDescriptor","defineProperty","_extends","_descriptor$set","apply","this","arguments","detach","removeAttribute","removeEventListener","update"],"mappings":"0jBAAA,IAAMA,EAAiB,wCAqBD,SAACC,GACrB,IAAIA,EAAQC,aAAaF,GAAzB,CACAC,EAAQE,aAAaH,EAAgB,IAErC,IAAII,EAAa,GACXC,EAAe,WACnB,GACEJ,EAAQK,aAAeL,EAAQM,cAC/BH,IAAeH,EAAQO,MAAMC,OAC7B,CACA,IAAMC,EA7BkB,SAACT,GAC7B,IAAMU,EAAe,IAAIC,IAEzB,EAAG,KAAAC,EACDF,EAAaG,IAAIb,EAASA,EAAQc,UACpC,QAAUd,SAAOY,EAAGZ,UAAAY,EAASG,sBAAkCC,SAE/D,kBACE,IAAA,IAA+CC,EAA/CC,2qBAAAC,CAAmCT,KAAYO,EAAAC,KAAAE,MAAE,CAAA,IAAAC,EAAAJ,EAAAK,MAArCtB,EAAOqB,KAAEP,EAASO,EAC5B,GAAA,GAAI,UAAWrB,EAAS,CACtB,IAAMuB,EAAevB,EAAQO,MAAMiB,eACnCxB,EAAQO,MAAMiB,eAAiB,OAC/BxB,EAAQc,UAAYA,EACpBd,EAAQO,MAAMiB,eAAiBD,CACjC,MAAOvB,EAAQc,UAAYA,CAC7B,CACF,CACF,CAY8BW,CAAsBzB,GAC9CA,EAAQO,MAAMC,OAAS,OAEvB,IAAMe,EAAevB,EAAQO,MAAMmB,SACnC1B,EAAQO,MAAMmB,SAAW,SACzB1B,EAAQO,MAAMC,OAASL,EACrBH,EAAQK,cAAgBL,EAAQ2B,aAAe3B,EAAQM,cACrD,KACJN,EAAQO,MAAMmB,SAAWH,EAEzBd,GACF,CACF,EAEAT,EAAQO,MAAMqB,UAAY,aAE1BxB,IAEAJ,EAAQ6B,iBAAiB,QAASzB,GAElC,IAAM0B,EAAmBC,OAAOC,eAAehC,GACzCiC,EAAaF,OAAOG,yBAAyBJ,EAAkB,SAYrE,OAXAC,OAAOI,eAAenC,EAAS,QAAOoC,EAAA,CAAA,EACjCH,EACHpB,CAAAA,mBAAGwB,EACSA,MAAVJ,GAAAI,OAAUA,EAAVJ,EAAYpB,MAAZwB,EAAiBC,MACfC,KAEAC,WAEFpC,GACF,KAEK,CACLqC,OAAMA,WACJzC,EAAQ0C,gBAAgB3C,GACxBC,EAAQ2C,oBAAoB,QAASvC,EACvC,EACAwC,OAAQxC,EA/CgC,CAiD5C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frsource/autoresize-textarea",
3
- "version": "2.0.37",
3
+ "version": "2.0.39",
4
4
  "description": "Minimalistic plugin to autosize your textareas! 💪",
5
5
  "sideEffects": false,
6
6
  "source": "src/index.ts",
@@ -50,8 +50,8 @@
50
50
  "@semantic-release/github": "9.2.6",
51
51
  "@semantic-release/npm": "11.0.2",
52
52
  "@semantic-release/release-notes-generator": "12.1.0",
53
- "@typescript-eslint/eslint-plugin": "6.16.0",
54
- "@typescript-eslint/parser": "6.16.0",
53
+ "@typescript-eslint/eslint-plugin": "6.18.0",
54
+ "@typescript-eslint/parser": "6.18.0",
55
55
  "eslint": "8.56.0",
56
56
  "eslint-config-prettier": "9.1.0",
57
57
  "eslint-plugin-eslint-comments": "3.2.0",
@@ -59,12 +59,12 @@
59
59
  "prettier": "3.1.1",
60
60
  "rimraf": "^5.0.0",
61
61
  "semantic-release": "22.0.12",
62
- "typescript": "5.2.2"
62
+ "typescript": "5.3.3"
63
63
  },
64
64
  "publishConfig": {
65
65
  "access": "public"
66
66
  },
67
- "packageManager": "pnpm@8.10.5",
67
+ "packageManager": "pnpm@8.14.0",
68
68
  "files": [
69
69
  "dist",
70
70
  "package.json"