You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 lines
3.0 KiB

{"ast":null,"code":"import { onMounted, onBeforeUnmount } from 'vue';\nimport { isClient } from '@vueuse/core';\nimport { EVENT_CODE } from '../../constants/aria.mjs';\nlet registeredEscapeHandlers = [];\nconst cachedHandler = event => {\n if (event.code === EVENT_CODE.esc) {\n registeredEscapeHandlers.forEach(registeredHandler => registeredHandler(event));\n }\n};\nconst useEscapeKeydown = handler => {\n onMounted(() => {\n if (registeredEscapeHandlers.length === 0) {\n document.addEventListener(\"keydown\", cachedHandler);\n }\n if (isClient) registeredEscapeHandlers.push(handler);\n });\n onBeforeUnmount(() => {\n registeredEscapeHandlers = registeredEscapeHandlers.filter(registeredHandler => registeredHandler !== handler);\n if (registeredEscapeHandlers.length === 0) {\n if (isClient) document.removeEventListener(\"keydown\", cachedHandler);\n }\n });\n};\nexport { useEscapeKeydown };","map":{"version":3,"names":["registeredEscapeHandlers","cachedHandler","event","code","EVENT_CODE","esc","forEach","registeredHandler","useEscapeKeydown","handler","onMounted","length","document","addEventListener","isClient","push","onBeforeUnmount","filter","removeEventListener"],"sources":["../../../../../packages/hooks/use-escape-keydown/index.ts"],"sourcesContent":["import { onBeforeUnmount, onMounted } from 'vue'\nimport { isClient } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\n\nlet registeredEscapeHandlers: ((e: KeyboardEvent) => void)[] = []\n\nconst cachedHandler = (event: KeyboardEvent) => {\n if (event.code === EVENT_CODE.esc) {\n registeredEscapeHandlers.forEach((registeredHandler) =>\n registeredHandler(event)\n )\n }\n}\n\nexport const useEscapeKeydown = (handler: (e: KeyboardEvent) => void) => {\n onMounted(() => {\n if (registeredEscapeHandlers.length === 0) {\n document.addEventListener('keydown', cachedHandler)\n }\n if (isClient) registeredEscapeHandlers.push(handler)\n })\n\n onBeforeUnmount(() => {\n registeredEscapeHandlers = registeredEscapeHandlers.filter(\n (registeredHandler) => registeredHandler !== handler\n )\n if (registeredEscapeHandlers.length === 0) {\n if (isClient) document.removeEventListener('keydown', cachedHandler)\n }\n })\n}\n"],"mappings":";;;AAGA,IAAIA,wBAAwB,GAAG,EAAE;AACjC,MAAMC,aAAa,GAAIC,KAAK,IAAK;EAC/B,IAAIA,KAAK,CAACC,IAAI,KAAKC,UAAU,CAACC,GAAG,EAAE;IACjCL,wBAAwB,CAACM,OAAO,CAAEC,iBAAiB,IAAKA,iBAAiB,CAACL,KAAK,CAAC,CAAC;EACrF;AACA,CAAC;AACW,MAACM,gBAAgB,GAAIC,OAAO,IAAK;EAC3CC,SAAS,CAAC,MAAM;IACd,IAAIV,wBAAwB,CAACW,MAAM,KAAK,CAAC,EAAE;MACzCC,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEZ,aAAa,CAAC;IACzD;IACI,IAAIa,QAAQ,EACVd,wBAAwB,CAACe,IAAI,CAACN,OAAO,CAAC;EAC5C,CAAG,CAAC;EACFO,eAAe,CAAC,MAAM;IACpBhB,wBAAwB,GAAGA,wBAAwB,CAACiB,MAAM,CAAEV,iBAAiB,IAAKA,iBAAiB,KAAKE,OAAO,CAAC;IAChH,IAAIT,wBAAwB,CAACW,MAAM,KAAK,CAAC,EAAE;MACzC,IAAIG,QAAQ,EACVF,QAAQ,CAACM,mBAAmB,CAAC,SAAS,EAAEjB,aAAa,CAAC;IAC9D;EACA,CAAG,CAAC;AACJ","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}