{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-restore-active/index.ts"],"sourcesContent":["import { isRef, watch } from 'vue'\nimport type { Ref } from 'vue'\n\n/**\n * This method provides dialogable components the ability to restore previously activated element before\n * the dialog gets opened\n */\nexport const useRestoreActive = (\n  toggle: Ref<boolean>,\n  initialFocus?: Ref<HTMLElement>\n) => {\n  let previousActive: HTMLElement\n  watch(\n    () => toggle.value,\n    (val) => {\n      if (val) {\n        previousActive = document.activeElement as HTMLElement\n        if (isRef(initialFocus)) {\n          initialFocus.value.focus?.()\n        }\n      } else {\n        if (process.env.NODE_ENV === 'test') {\n          previousActive.focus.call(previousActive)\n        } else {\n          previousActive.focus()\n        }\n      }\n    }\n  )\n}\n"],"names":[],"mappings":";;AAOa,MAAA,gBAAA,GAAmB,CAC9B,MAAA,EACA,YACG,KAAA;AACH,EAAI,IAAA,cAAA,CAAA;AACJ,EAAA,KAAA;AAAA,IACE,MAAM,MAAO,CAAA,KAAA;AAAA,IACb,CAAC,GAAQ,KAAA;AAdb,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAeM,MAAA,IAAI,GAAK,EAAA;AACP,QAAA,cAAA,GAAiB,QAAS,CAAA,aAAA,CAAA;AAC1B,QAAI,IAAA,KAAA,CAAM,YAAY,CAAG,EAAA;AACvB,UAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,YAAA,CAAa,OAAM,KAAnB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAAA;AAAA,SACF;AAAA,OACK,MAAA;AACL,QAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,MAAQ,EAAA;AACnC,UAAe,cAAA,CAAA,KAAA,CAAM,KAAK,cAAc,CAAA,CAAA;AAAA,SACnC,MAAA;AACL,UAAA,cAAA,CAAe,KAAM,EAAA,CAAA;AAAA,SACvB;AAAA,OACF;AAAA,KACF;AAAA,GACF,CAAA;AACF;;;;"}