@vueuse/integrations 6.3.3 → 6.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,186 @@
1
+ ;(function (window) {
2
+ if (window.VueDemi) {
3
+ return
4
+ }
5
+ var VueDemi = {}
6
+ var Vue = window.Vue
7
+ if (Vue) {
8
+ if (Vue.version.slice(0, 2) === '2.') {
9
+ var VueCompositionAPI = window.VueCompositionAPI
10
+ if (VueCompositionAPI) {
11
+ for (var key in VueCompositionAPI) {
12
+ VueDemi[key] = VueCompositionAPI[key]
13
+ }
14
+ VueDemi.isVue2 = true
15
+ VueDemi.isVue3 = false
16
+ VueDemi.install = function (){}
17
+ VueDemi.Vue = Vue
18
+ VueDemi.Vue2 = Vue
19
+ VueDemi.version = Vue.version
20
+ } else {
21
+ console.error(
22
+ '[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.'
23
+ )
24
+ }
25
+ } else if (Vue.version.slice(0, 2) === '3.') {
26
+ for (var key in Vue) {
27
+ VueDemi[key] = Vue[key]
28
+ }
29
+ VueDemi.isVue2 = false
30
+ VueDemi.isVue3 = true
31
+ VueDemi.install = function (){}
32
+ VueDemi.Vue = Vue
33
+ VueDemi.Vue2 = undefined
34
+ VueDemi.version = Vue.version
35
+ VueDemi.set = function(target, key, val) {
36
+ if (Array.isArray(target)) {
37
+ target.length = Math.max(target.length, key)
38
+ target.splice(key, 1, val)
39
+ return val
40
+ }
41
+ target[key] = val
42
+ return val
43
+ }
44
+ VueDemi.del = function(target, key) {
45
+ if (Array.isArray(target)) {
46
+ target.splice(key, 1)
47
+ return
48
+ }
49
+ delete target[key]
50
+ }
51
+ } else {
52
+ console.error('[vue-demi] Vue version ' + Vue.version + ' is unsupported.')
53
+ }
54
+ } else {
55
+ console.error(
56
+ '[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.'
57
+ )
58
+ }
59
+ window.VueDemi = VueDemi
60
+ })(window)
61
+ ;
62
+ ;(function (exports, vueDemi, drauu, core, shared) {
63
+ 'use strict';
64
+
65
+ var __defProp = Object.defineProperty;
66
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
67
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
68
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
69
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
70
+ var __spreadValues = (a, b) => {
71
+ for (var prop in b || (b = {}))
72
+ if (__hasOwnProp.call(b, prop))
73
+ __defNormalProp(a, prop, b[prop]);
74
+ if (__getOwnPropSymbols)
75
+ for (var prop of __getOwnPropSymbols(b)) {
76
+ if (__propIsEnum.call(b, prop))
77
+ __defNormalProp(a, prop, b[prop]);
78
+ }
79
+ return a;
80
+ };
81
+ function useDrauu(target, options) {
82
+ const drauuInstance = vueDemi.ref();
83
+ let disposables = [];
84
+ const onChangedHook = core.createEventHook();
85
+ const onCanceledHook = core.createEventHook();
86
+ const onCommittedHook = core.createEventHook();
87
+ const onStartHook = core.createEventHook();
88
+ const onEndHook = core.createEventHook();
89
+ const canUndo = vueDemi.ref(false);
90
+ const canRedo = vueDemi.ref(false);
91
+ const altPressed = vueDemi.ref(false);
92
+ const shiftPressed = vueDemi.ref(false);
93
+ const brush = vueDemi.ref({
94
+ color: "black",
95
+ size: 3,
96
+ arrowEnd: false,
97
+ cornerRadius: 0,
98
+ dasharray: void 0,
99
+ fill: "transparent",
100
+ mode: "draw"
101
+ });
102
+ vueDemi.watch(brush, () => {
103
+ const instance = drauuInstance.value;
104
+ if (instance)
105
+ instance.brush = brush.value;
106
+ }, { deep: true });
107
+ const undo = () => {
108
+ var _a;
109
+ return (_a = drauuInstance.value) == null ? void 0 : _a.undo();
110
+ };
111
+ const redo = () => {
112
+ var _a;
113
+ return (_a = drauuInstance.value) == null ? void 0 : _a.redo();
114
+ };
115
+ const clear = () => {
116
+ var _a;
117
+ return (_a = drauuInstance.value) == null ? void 0 : _a.clear();
118
+ };
119
+ const cancel = () => {
120
+ var _a;
121
+ return (_a = drauuInstance.value) == null ? void 0 : _a.cancel();
122
+ };
123
+ const load = (svg) => {
124
+ var _a;
125
+ return (_a = drauuInstance.value) == null ? void 0 : _a.load(svg);
126
+ };
127
+ const dump = () => {
128
+ var _a;
129
+ return (_a = drauuInstance.value) == null ? void 0 : _a.dump();
130
+ };
131
+ const cleanup = () => {
132
+ var _a;
133
+ disposables.forEach((dispose) => dispose());
134
+ (_a = drauuInstance.value) == null ? void 0 : _a.unmount();
135
+ };
136
+ const syncStatus = () => {
137
+ if (drauuInstance.value) {
138
+ canUndo.value = drauuInstance.value.canUndo();
139
+ canRedo.value = drauuInstance.value.canRedo();
140
+ altPressed.value = drauuInstance.value.altPressed;
141
+ shiftPressed.value = drauuInstance.value.shiftPressed;
142
+ }
143
+ };
144
+ vueDemi.watch(() => core.unrefElement(target), (el) => {
145
+ if (!el || !(el instanceof SVGSVGElement))
146
+ return;
147
+ if (drauuInstance.value)
148
+ cleanup();
149
+ drauuInstance.value = drauu.createDrauu(__spreadValues({ el }, options));
150
+ syncStatus();
151
+ disposables = [
152
+ drauuInstance.value.on("canceled", () => onCanceledHook.trigger()),
153
+ drauuInstance.value.on("committed", () => onCommittedHook.trigger()),
154
+ drauuInstance.value.on("start", () => onStartHook.trigger()),
155
+ drauuInstance.value.on("end", () => onEndHook.trigger()),
156
+ drauuInstance.value.on("changed", () => {
157
+ syncStatus();
158
+ onChangedHook.trigger();
159
+ })
160
+ ];
161
+ }, { flush: "post" });
162
+ shared.tryOnScopeDispose(() => cleanup());
163
+ return {
164
+ drauuInstance,
165
+ load,
166
+ dump,
167
+ clear,
168
+ cancel,
169
+ undo,
170
+ redo,
171
+ canUndo,
172
+ canRedo,
173
+ brush,
174
+ onChanged: onChangedHook.on,
175
+ onCommitted: onCommittedHook.on,
176
+ onStart: onStartHook.on,
177
+ onEnd: onEndHook.on,
178
+ onCanceled: onCanceledHook.on
179
+ };
180
+ }
181
+
182
+ exports.useDrauu = useDrauu;
183
+
184
+ Object.defineProperty(exports, '__esModule', { value: true });
185
+
186
+ })(this.VueUse = this.VueUse || {}, VueDemi, Drauu, VueUse, VueUse);
@@ -0,0 +1 @@
1
+ (function(i){if(!i.VueDemi){var n={},o=i.Vue;if(o)if(o.version.slice(0,2)==="2."){var t=i.VueCompositionAPI;if(t){for(var c in t)n[c]=t[c];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=o,n.Vue2=o,n.version=o.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.")}else if(o.version.slice(0,2)==="3."){for(var c in o)n[c]=o[c];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=o,n.Vue2=void 0,n.version=o.version,n.set=function(u,s,v){return Array.isArray(u)?(u.length=Math.max(u.length,s),u.splice(s,1,v),v):(u[s]=v,v)},n.del=function(u,s){if(Array.isArray(u)){u.splice(s,1);return}delete u[s]}}else console.error("[vue-demi] Vue version "+o.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");i.VueDemi=n}})(window),function(i,n,o,t,c){"use strict";var u=Object.defineProperty,s=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,p=(l,a,e)=>a in l?u(l,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):l[a]=e,S=(l,a)=>{for(var e in a||(a={}))v.call(a,e)&&p(l,e,a[e]);if(s)for(var e of s(a))O.call(a,e)&&p(l,e,a[e]);return l};function k(l,a){const e=n.ref();let m=[];const V=t.createEventHook(),_=t.createEventHook(),h=t.createEventHook(),E=t.createEventHook(),g=t.createEventHook(),P=n.ref(!1),b=n.ref(!1),C=n.ref(!1),U=n.ref(!1),f=n.ref({color:"black",size:3,arrowEnd:!1,cornerRadius:0,dasharray:void 0,fill:"transparent",mode:"draw"});n.watch(f,()=>{const r=e.value;r&&(r.brush=f.value)},{deep:!0});const w=()=>{var r;return(r=e.value)==null?void 0:r.undo()},A=()=>{var r;return(r=e.value)==null?void 0:r.redo()},j=()=>{var r;return(r=e.value)==null?void 0:r.clear()},I=()=>{var r;return(r=e.value)==null?void 0:r.cancel()},R=r=>{var d;return(d=e.value)==null?void 0:d.load(r)},D=()=>{var r;return(r=e.value)==null?void 0:r.dump()},y=()=>{var r;m.forEach(d=>d()),(r=e.value)==null||r.unmount()},H=()=>{e.value&&(P.value=e.value.canUndo(),b.value=e.value.canRedo(),C.value=e.value.altPressed,U.value=e.value.shiftPressed)};return n.watch(()=>t.unrefElement(l),r=>{!r||!(r instanceof SVGSVGElement)||(e.value&&y(),e.value=o.createDrauu(S({el:r},a)),H(),m=[e.value.on("canceled",()=>_.trigger()),e.value.on("committed",()=>h.trigger()),e.value.on("start",()=>E.trigger()),e.value.on("end",()=>g.trigger()),e.value.on("changed",()=>{H(),V.trigger()})])},{flush:"post"}),c.tryOnScopeDispose(()=>y()),{drauuInstance:e,load:R,dump:D,clear:j,cancel:I,undo:w,redo:A,canUndo:P,canRedo:b,brush:f,onChanged:V.on,onCommitted:h.on,onStart:E.on,onEnd:g.on,onCanceled:_.on}}i.useDrauu=k,Object.defineProperty(i,"__esModule",{value:!0})}(this.VueUse=this.VueUse||{},VueDemi,Drauu,VueUse,VueUse);
package/useDrauu.mjs ADDED
@@ -0,0 +1,123 @@
1
+ import { ref, watch } from 'vue-demi';
2
+ import { createDrauu } from 'drauu';
3
+ import { createEventHook, unrefElement } from '@vueuse/core';
4
+ import { tryOnScopeDispose } from '@vueuse/shared';
5
+
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ function useDrauu(target, options) {
23
+ const drauuInstance = ref();
24
+ let disposables = [];
25
+ const onChangedHook = createEventHook();
26
+ const onCanceledHook = createEventHook();
27
+ const onCommittedHook = createEventHook();
28
+ const onStartHook = createEventHook();
29
+ const onEndHook = createEventHook();
30
+ const canUndo = ref(false);
31
+ const canRedo = ref(false);
32
+ const altPressed = ref(false);
33
+ const shiftPressed = ref(false);
34
+ const brush = ref({
35
+ color: "black",
36
+ size: 3,
37
+ arrowEnd: false,
38
+ cornerRadius: 0,
39
+ dasharray: void 0,
40
+ fill: "transparent",
41
+ mode: "draw"
42
+ });
43
+ watch(brush, () => {
44
+ const instance = drauuInstance.value;
45
+ if (instance)
46
+ instance.brush = brush.value;
47
+ }, { deep: true });
48
+ const undo = () => {
49
+ var _a;
50
+ return (_a = drauuInstance.value) == null ? void 0 : _a.undo();
51
+ };
52
+ const redo = () => {
53
+ var _a;
54
+ return (_a = drauuInstance.value) == null ? void 0 : _a.redo();
55
+ };
56
+ const clear = () => {
57
+ var _a;
58
+ return (_a = drauuInstance.value) == null ? void 0 : _a.clear();
59
+ };
60
+ const cancel = () => {
61
+ var _a;
62
+ return (_a = drauuInstance.value) == null ? void 0 : _a.cancel();
63
+ };
64
+ const load = (svg) => {
65
+ var _a;
66
+ return (_a = drauuInstance.value) == null ? void 0 : _a.load(svg);
67
+ };
68
+ const dump = () => {
69
+ var _a;
70
+ return (_a = drauuInstance.value) == null ? void 0 : _a.dump();
71
+ };
72
+ const cleanup = () => {
73
+ var _a;
74
+ disposables.forEach((dispose) => dispose());
75
+ (_a = drauuInstance.value) == null ? void 0 : _a.unmount();
76
+ };
77
+ const syncStatus = () => {
78
+ if (drauuInstance.value) {
79
+ canUndo.value = drauuInstance.value.canUndo();
80
+ canRedo.value = drauuInstance.value.canRedo();
81
+ altPressed.value = drauuInstance.value.altPressed;
82
+ shiftPressed.value = drauuInstance.value.shiftPressed;
83
+ }
84
+ };
85
+ watch(() => unrefElement(target), (el) => {
86
+ if (!el || !(el instanceof SVGSVGElement))
87
+ return;
88
+ if (drauuInstance.value)
89
+ cleanup();
90
+ drauuInstance.value = createDrauu(__spreadValues({ el }, options));
91
+ syncStatus();
92
+ disposables = [
93
+ drauuInstance.value.on("canceled", () => onCanceledHook.trigger()),
94
+ drauuInstance.value.on("committed", () => onCommittedHook.trigger()),
95
+ drauuInstance.value.on("start", () => onStartHook.trigger()),
96
+ drauuInstance.value.on("end", () => onEndHook.trigger()),
97
+ drauuInstance.value.on("changed", () => {
98
+ syncStatus();
99
+ onChangedHook.trigger();
100
+ })
101
+ ];
102
+ }, { flush: "post" });
103
+ tryOnScopeDispose(() => cleanup());
104
+ return {
105
+ drauuInstance,
106
+ load,
107
+ dump,
108
+ clear,
109
+ cancel,
110
+ undo,
111
+ redo,
112
+ canUndo,
113
+ canRedo,
114
+ brush,
115
+ onChanged: onChangedHook.on,
116
+ onCommitted: onCommittedHook.on,
117
+ onStart: onStartHook.on,
118
+ onEnd: onEndHook.on,
119
+ onCanceled: onCanceledHook.on
120
+ };
121
+ }
122
+
123
+ export { useDrauu };
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vueDemi = require('vue-demi');
6
+ var focusTrap = require('focus-trap');
7
+ var core = require('@vueuse/core');
8
+
9
+ const UseFocusTrap = vueDemi.defineComponent({
10
+ name: "UseFocusTrap",
11
+ props: ["as"],
12
+ setup(props, { slots }) {
13
+ let trap;
14
+ const target = vueDemi.ref();
15
+ const activate = () => trap && trap.activate();
16
+ const deactivate = () => trap && trap.deactivate();
17
+ vueDemi.watch(() => core.unrefElement(target), (el) => {
18
+ if (!el)
19
+ return;
20
+ trap = focusTrap.createFocusTrap(el, {});
21
+ activate();
22
+ }, { flush: "post" });
23
+ vueDemi.onUnmounted(() => deactivate());
24
+ return () => {
25
+ if (slots.default)
26
+ return vueDemi.h(props.as || "div", { ref: target }, slots.default());
27
+ };
28
+ }
29
+ });
30
+
31
+ exports.UseFocusTrap = UseFocusTrap;
@@ -0,0 +1,6 @@
1
+ import * as vue_demi from 'vue-demi';
2
+ import { RenderableComponent } from '@vueuse/core/types';
3
+
4
+ declare const UseFocusTrap: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}>;
5
+
6
+ export { UseFocusTrap };
@@ -0,0 +1,27 @@
1
+ import { defineComponent, ref, watch, onUnmounted, h } from 'vue-demi';
2
+ import { createFocusTrap } from 'focus-trap';
3
+ import { unrefElement } from '@vueuse/core';
4
+
5
+ const UseFocusTrap = defineComponent({
6
+ name: "UseFocusTrap",
7
+ props: ["as"],
8
+ setup(props, { slots }) {
9
+ let trap;
10
+ const target = ref();
11
+ const activate = () => trap && trap.activate();
12
+ const deactivate = () => trap && trap.deactivate();
13
+ watch(() => unrefElement(target), (el) => {
14
+ if (!el)
15
+ return;
16
+ trap = createFocusTrap(el, {});
17
+ activate();
18
+ }, { flush: "post" });
19
+ onUnmounted(() => deactivate());
20
+ return () => {
21
+ if (slots.default)
22
+ return h(props.as || "div", { ref: target }, slots.default());
23
+ };
24
+ }
25
+ });
26
+
27
+ export { UseFocusTrap };
package/useFocusTrap.cjs CHANGED
@@ -2,113 +2,87 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var core = require('@vueuse/core');
5
6
  var vueDemi = require('vue-demi');
6
- var shared = require('@vueuse/shared');
7
7
  var focusTrap = require('focus-trap');
8
8
 
9
- /*! *****************************************************************************
10
- Copyright (c) Microsoft Corporation.
11
-
12
- Permission to use, copy, modify, and/or distribute this software for any
13
- purpose with or without fee is hereby granted.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
16
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
17
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
18
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
19
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
20
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
21
- PERFORMANCE OF THIS SOFTWARE.
22
- ***************************************************************************** */
23
-
24
- function __rest(s, e) {
25
- var t = {};
26
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
27
- t[p] = s[p];
28
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
29
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
30
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
31
- t[p[i]] = s[p[i]];
32
- }
33
- return t;
34
- }
35
-
36
- /**
37
- * Get the dom element of a ref of element or Vue component instance
38
- *
39
- * @param elRef
40
- */
41
- function unrefElement(elRef) {
42
- var _a, _b;
43
- const plain = vueDemi.unref(elRef);
44
- return (_b = (_a = plain) === null || _a === void 0 ? void 0 : _a.$el) !== null && _b !== void 0 ? _b : plain;
45
- }
46
-
47
- var SwipeDirection;
48
- (function (SwipeDirection) {
49
- SwipeDirection["UP"] = "UP";
50
- SwipeDirection["RIGHT"] = "RIGHT";
51
- SwipeDirection["DOWN"] = "DOWN";
52
- SwipeDirection["LEFT"] = "LEFT";
53
- SwipeDirection["NONE"] = "NONE";
54
- })(SwipeDirection || (SwipeDirection = {}));
55
-
56
- /**
57
- * Reactive focus-trap
58
- *
59
- * @see https://vueuse.org/useFocusTrap
60
- * @param target The target element to trap focus within
61
- * @param options Focus trap options
62
- * @param autoFocus Focus trap automatically when mounted
63
- */
64
- function useFocusTrap(target, options = {}) {
65
- let trap;
66
- const { immediate } = options, focusTrapOptions = __rest(options, ["immediate"]);
67
- const hasFocus = vueDemi.ref(false);
68
- const isPaused = vueDemi.ref(false);
69
- const activate = (opts) => trap && trap.activate(opts);
70
- const deactivate = (opts) => trap && trap.deactivate(opts);
71
- const pause = () => {
72
- if (trap) {
73
- trap.pause();
74
- isPaused.value = true;
75
- }
76
- };
77
- const unpause = () => {
78
- if (trap) {
79
- trap.unpause();
80
- isPaused.value = false;
81
- }
82
- };
83
- vueDemi.watch(() => unrefElement(target), (el) => {
84
- if (!el)
85
- return;
86
- trap = focusTrap.createFocusTrap(el, Object.assign(Object.assign({}, focusTrapOptions), { onActivate() {
87
- hasFocus.value = true;
88
- // Apply if user provided onActivate option
89
- if (options.onActivate)
90
- options.onActivate();
91
- },
92
- onDeactivate() {
93
- hasFocus.value = false;
94
- // Apply if user provided onDeactivate option
95
- if (options.onDeactivate)
96
- options.onDeactivate();
97
- } }));
98
- // Focus if immediate is set to true
99
- if (immediate)
100
- activate();
101
- }, { flush: 'post' });
102
- // Cleanup on unmount
103
- shared.tryOnScopeDispose(() => deactivate());
104
- return {
105
- hasFocus,
106
- isPaused,
107
- activate,
108
- deactivate,
109
- pause,
110
- unpause,
111
- };
9
+ var __defProp = Object.defineProperty;
10
+ var __defProps = Object.defineProperties;
11
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
12
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
15
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
16
+ var __spreadValues = (a, b) => {
17
+ for (var prop in b || (b = {}))
18
+ if (__hasOwnProp.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ if (__getOwnPropSymbols)
21
+ for (var prop of __getOwnPropSymbols(b)) {
22
+ if (__propIsEnum.call(b, prop))
23
+ __defNormalProp(a, prop, b[prop]);
24
+ }
25
+ return a;
26
+ };
27
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
28
+ var __objRest = (source, exclude) => {
29
+ var target = {};
30
+ for (var prop in source)
31
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
32
+ target[prop] = source[prop];
33
+ if (source != null && __getOwnPropSymbols)
34
+ for (var prop of __getOwnPropSymbols(source)) {
35
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
36
+ target[prop] = source[prop];
37
+ }
38
+ return target;
39
+ };
40
+ function useFocusTrap(target, options = {}) {
41
+ let trap;
42
+ const _a = options, { immediate } = _a, focusTrapOptions = __objRest(_a, ["immediate"]);
43
+ const hasFocus = vueDemi.ref(false);
44
+ const isPaused = vueDemi.ref(false);
45
+ const activate = (opts) => trap && trap.activate(opts);
46
+ const deactivate = (opts) => trap && trap.deactivate(opts);
47
+ const pause = () => {
48
+ if (trap) {
49
+ trap.pause();
50
+ isPaused.value = true;
51
+ }
52
+ };
53
+ const unpause = () => {
54
+ if (trap) {
55
+ trap.unpause();
56
+ isPaused.value = false;
57
+ }
58
+ };
59
+ vueDemi.watch(() => core.unrefElement(target), (el) => {
60
+ if (!el)
61
+ return;
62
+ trap = focusTrap.createFocusTrap(el, __spreadProps(__spreadValues({}, focusTrapOptions), {
63
+ onActivate() {
64
+ hasFocus.value = true;
65
+ if (options.onActivate)
66
+ options.onActivate();
67
+ },
68
+ onDeactivate() {
69
+ hasFocus.value = false;
70
+ if (options.onDeactivate)
71
+ options.onDeactivate();
72
+ }
73
+ }));
74
+ if (immediate)
75
+ activate();
76
+ }, { flush: "post" });
77
+ core.tryOnScopeDispose(() => deactivate());
78
+ return {
79
+ hasFocus,
80
+ isPaused,
81
+ activate,
82
+ deactivate,
83
+ pause,
84
+ unpause
85
+ };
112
86
  }
113
87
 
114
88
  exports.useFocusTrap = useFocusTrap;