|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
- if (VueDemi.install) {
- return VueDemi
- }
- if (!Vue) {
- console.error('[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.')
- return VueDemi
- }
-
- // Vue 2.7
- if (Vue.version.slice(0, 4) === '2.7.') {
- for (var key in Vue) {
- VueDemi[key] = Vue[key]
- }
- VueDemi.isVue2 = true
- VueDemi.isVue3 = false
- VueDemi.install = function () {}
- VueDemi.Vue = Vue
- VueDemi.Vue2 = Vue
- VueDemi.version = Vue.version
- VueDemi.warn = Vue.util.warn
- function createApp(rootComponent, rootProps) {
- var vm
- var provide = {}
- var app = {
- config: Vue.config,
- use: Vue.use.bind(Vue),
- mixin: Vue.mixin.bind(Vue),
- component: Vue.component.bind(Vue),
- provide: function (key, value) {
- provide[key] = value
- return this
- },
- directive: function (name, dir) {
- if (dir) {
- Vue.directive(name, dir)
- return app
- } else {
- return Vue.directive(name)
- }
- },
- mount: function (el, hydrating) {
- if (!vm) {
- vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))
- vm.$mount(el, hydrating)
- return vm
- } else {
- return vm
- }
- },
- unmount: function () {
- if (vm) {
- vm.$destroy()
- vm = undefined
- }
- },
- }
- return app
- }
- VueDemi.createApp = createApp
- }
- // Vue 2.6.x
- else if (Vue.version.slice(0, 2) === '2.') {
- if (VueCompositionAPI) {
- for (var key in VueCompositionAPI) {
- VueDemi[key] = VueCompositionAPI[key]
- }
- VueDemi.isVue2 = true
- VueDemi.isVue3 = false
- VueDemi.install = function () {}
- VueDemi.Vue = Vue
- VueDemi.Vue2 = Vue
- VueDemi.version = Vue.version
- } else {
- console.error('[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.')
- }
- }
- // Vue 3
- else if (Vue.version.slice(0, 2) === '3.') {
- for (var key in Vue) {
- VueDemi[key] = Vue[key]
- }
- VueDemi.isVue2 = false
- VueDemi.isVue3 = true
- VueDemi.install = function () {}
- VueDemi.Vue = Vue
- VueDemi.Vue2 = undefined
- VueDemi.version = Vue.version
- VueDemi.set = function (target, key, val) {
- if (Array.isArray(target)) {
- target.length = Math.max(target.length, key)
- target.splice(key, 1, val)
- return val
- }
- target[key] = val
- return val
- }
- VueDemi.del = function (target, key) {
- if (Array.isArray(target)) {
- target.splice(key, 1)
- return
- }
- delete target[key]
- }
- } else {
- console.error('[vue-demi] Vue version ' + Vue.version + ' is unsupported.')
- }
- return VueDemi
- })(
- (this.VueDemi = this.VueDemi || (typeof VueDemi !== 'undefined' ? VueDemi : {})),
- this.Vue || (typeof Vue !== 'undefined' ? Vue : undefined),
- this.VueCompositionAPI || (typeof VueCompositionAPI !== 'undefined' ? VueCompositionAPI : undefined)
- );
- ;
- ;(function (exports, core, vueDemi, focusTrap) {
- 'use strict';
-
- 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;
-
- })(this.VueUse = this.VueUse || {}, VueUse, VueDemi, focusTrap);
|