ab9b5da3c253941a5e11fd18f014a888bf9a535455520c9ca27333582bafcf8d9f76bfd73e6b441e1e97ad38ef6b9a4d5f09f9641d0222ec0a4013f20ce7f1 794 B

1234567891011121314151617181920212223242526272829303132
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var core = require('@vueuse/core');
  5. var aria = require('../../constants/aria.js');
  6. const modalStack = [];
  7. const closeModal = (e) => {
  8. if (modalStack.length === 0)
  9. return;
  10. if (e.code === aria.EVENT_CODE.esc) {
  11. e.stopPropagation();
  12. const topModal = modalStack[modalStack.length - 1];
  13. topModal.handleClose();
  14. }
  15. };
  16. const useModal = (instance, visibleRef) => {
  17. vue.watch(visibleRef, (val) => {
  18. if (val) {
  19. modalStack.push(instance);
  20. } else {
  21. modalStack.splice(modalStack.indexOf(instance), 1);
  22. }
  23. });
  24. };
  25. if (core.isClient)
  26. core.useEventListener(document, "keydown", closeModal);
  27. exports.useModal = useModal;
  28. //# sourceMappingURL=index.js.map