|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- 'use strict';
-
- var core = require('@vueuse/core');
- var vueDemi = require('vue-demi');
- var focusTrap = require('focus-trap');
-
- var __defProp = Object.defineProperty;
- var __defProps = Object.defineProperties;
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
- var __hasOwnProp = Object.prototype.hasOwnProperty;
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
- var __spreadValues = (a, b) => {
- for (var prop in b || (b = {}))
- if (__hasOwnProp.call(b, prop))
- __defNormalProp(a, prop, b[prop]);
- if (__getOwnPropSymbols)
- for (var prop of __getOwnPropSymbols(b)) {
- if (__propIsEnum.call(b, prop))
- __defNormalProp(a, prop, b[prop]);
- }
- return a;
- };
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
- var __objRest = (source, exclude) => {
- var target = {};
- for (var prop in source)
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
- target[prop] = source[prop];
- if (source != null && __getOwnPropSymbols)
- for (var prop of __getOwnPropSymbols(source)) {
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
- target[prop] = source[prop];
- }
- return target;
- };
- function useFocusTrap(target, options = {}) {
- let trap;
- const _a = options, { immediate } = _a, focusTrapOptions = __objRest(_a, ["immediate"]);
- const hasFocus = vueDemi.ref(false);
- const isPaused = vueDemi.ref(false);
- const activate = (opts) => trap && trap.activate(opts);
- const deactivate = (opts) => trap && trap.deactivate(opts);
- const pause = () => {
- if (trap) {
- trap.pause();
- isPaused.value = true;
- }
- };
- const unpause = () => {
- if (trap) {
- trap.unpause();
- isPaused.value = false;
- }
- };
- vueDemi.watch(() => core.unrefElement(target), (el) => {
- if (!el)
- return;
- trap = focusTrap.createFocusTrap(el, __spreadProps(__spreadValues({}, focusTrapOptions), {
- onActivate() {
- hasFocus.value = true;
- if (options.onActivate)
- options.onActivate();
- },
- onDeactivate() {
- hasFocus.value = false;
- if (options.onDeactivate)
- options.onDeactivate();
- }
- }));
- if (immediate)
- activate();
- }, { flush: "post" });
- core.tryOnScopeDispose(() => deactivate());
- return {
- hasFocus,
- isPaused,
- activate,
- deactivate,
- pause,
- unpause
- };
- }
-
- exports.useFocusTrap = useFocusTrap;
|