{"version":3,"file":"use-restore-active.mjs","sources":["../../../../packages/utils/use-restore-active.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(() => toggle.value, 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 === 'testing') {\n        previousActive.focus.call(previousActive)\n      } else {\n        previousActive.focus()\n      }\n    }\n  })\n}\n"],"names":[],"mappings":";;AACY,MAAC,gBAAgB,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK;AAC1D,EAAE,IAAI,cAAc,CAAC;AACrB,EAAE,KAAK,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK;AACrC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC;AAC9C,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;AAC/B,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9E,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;AAC9C,QAAQ,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,cAAc,CAAC,KAAK,EAAE,CAAC;AAC/B,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL;;;;"}