|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629 |
- import { resolveUnref, until, isString, isFunction, tryOnScopeDispose, isNumber, isClient, resolveRef } from '@vueuse/shared';
- import Schema from 'async-validator';
- import { ref, computed, watchEffect, shallowRef, watch, unref } from 'vue-demi';
- import axios, { AxiosError } from 'axios';
- import { camelCase, capitalCase, constantCase, dotCase, headerCase, noCase, paramCase, pascalCase, pathCase, sentenceCase, snakeCase } from 'change-case';
- import Cookie from 'universal-cookie';
- import { createDrauu } from 'drauu';
- import { createEventHook, unrefElement, tryOnScopeDispose as tryOnScopeDispose$1 } from '@vueuse/core';
- import { createFocusTrap } from 'focus-trap';
- import Fuse from 'fuse.js';
- import { get, set, del, update } from 'idb-keyval';
- import jwt_decode from 'jwt-decode';
- import nprogress from 'nprogress';
- import QRCode from 'qrcode';
-
- var __defProp$5 = Object.defineProperty;
- var __defProps$2 = Object.defineProperties;
- var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
- var __spreadValues$5 = (a, b) => {
- for (var prop in b || (b = {}))
- if (__hasOwnProp$5.call(b, prop))
- __defNormalProp$5(a, prop, b[prop]);
- if (__getOwnPropSymbols$5)
- for (var prop of __getOwnPropSymbols$5(b)) {
- if (__propIsEnum$5.call(b, prop))
- __defNormalProp$5(a, prop, b[prop]);
- }
- return a;
- };
- var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
- const AsyncValidatorSchema = Schema || Schema.default;
- function useAsyncValidator(value, rules, options = {}) {
- const errorInfo = ref();
- const isFinished = ref(false);
- const pass = ref(false);
- const errors = computed(() => {
- var _a;
- return ((_a = errorInfo.value) == null ? void 0 : _a.errors) || [];
- });
- const errorFields = computed(() => {
- var _a;
- return ((_a = errorInfo.value) == null ? void 0 : _a.fields) || {};
- });
- const { validateOption = {} } = options;
- watchEffect(async () => {
- isFinished.value = false;
- pass.value = false;
- const validator = new AsyncValidatorSchema(resolveUnref(rules));
- try {
- await validator.validate(resolveUnref(value), validateOption);
- pass.value = true;
- errorInfo.value = null;
- } catch (err) {
- errorInfo.value = err;
- } finally {
- isFinished.value = true;
- }
- });
- const shell = {
- pass,
- isFinished,
- errorInfo,
- errors,
- errorFields
- };
- function waitUntilFinished() {
- return new Promise((resolve, reject) => {
- until(isFinished).toBe(true).then(() => resolve(shell)).catch((error) => reject(error));
- });
- }
- return __spreadProps$2(__spreadValues$5({}, shell), {
- then(onFulfilled, onRejected) {
- return waitUntilFinished().then(onFulfilled, onRejected);
- }
- });
- }
-
- var __defProp$4 = Object.defineProperty;
- var __defProps$1 = Object.defineProperties;
- var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
- var __spreadValues$4 = (a, b) => {
- for (var prop in b || (b = {}))
- if (__hasOwnProp$4.call(b, prop))
- __defNormalProp$4(a, prop, b[prop]);
- if (__getOwnPropSymbols$4)
- for (var prop of __getOwnPropSymbols$4(b)) {
- if (__propIsEnum$4.call(b, prop))
- __defNormalProp$4(a, prop, b[prop]);
- }
- return a;
- };
- var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
- function useAxios(...args) {
- const url = typeof args[0] === "string" ? args[0] : void 0;
- const argsPlaceholder = isString(url) ? 1 : 0;
- let defaultConfig = {};
- let instance = axios;
- let options = { immediate: !!argsPlaceholder, shallow: true };
- const isAxiosInstance = (val) => !!(val == null ? void 0 : val.request);
- if (args.length > 0 + argsPlaceholder) {
- if (isAxiosInstance(args[0 + argsPlaceholder]))
- instance = args[0 + argsPlaceholder];
- else
- defaultConfig = args[0 + argsPlaceholder];
- }
- if (args.length > 1 + argsPlaceholder) {
- if (isAxiosInstance(args[1 + argsPlaceholder]))
- instance = args[1 + argsPlaceholder];
- }
- if (args.length === 2 + argsPlaceholder && !isAxiosInstance(args[1 + argsPlaceholder]) || args.length === 3 + argsPlaceholder)
- options = args[args.length - 1];
- const response = shallowRef();
- const data = options.shallow ? shallowRef() : ref();
- const isFinished = ref(false);
- const isLoading = ref(false);
- const isAborted = ref(false);
- const error = shallowRef();
- const cancelTokenSource = axios.CancelToken.source;
- let cancelToken = cancelTokenSource();
- const abort = (message) => {
- if (isFinished.value || !isLoading.value)
- return;
- cancelToken.cancel(message);
- cancelToken = cancelTokenSource();
- isAborted.value = true;
- isLoading.value = false;
- isFinished.value = false;
- };
- const loading = (loading2) => {
- isLoading.value = loading2;
- isFinished.value = !loading2;
- };
- const waitUntilFinished = () => new Promise((resolve, reject) => {
- until(isFinished).toBe(true).then(() => resolve(result)).catch(reject);
- });
- const then = (onFulfilled, onRejected) => waitUntilFinished().then(onFulfilled, onRejected);
- const execute = (executeUrl = url, config = {}) => {
- error.value = void 0;
- const _url = typeof executeUrl === "string" ? executeUrl : url != null ? url : config.url;
- if (_url === void 0) {
- error.value = new AxiosError(AxiosError.ERR_INVALID_URL);
- isFinished.value = true;
- return { then };
- }
- abort();
- loading(true);
- instance(_url, __spreadProps$1(__spreadValues$4(__spreadValues$4({}, defaultConfig), typeof executeUrl === "object" ? executeUrl : config), { cancelToken: cancelToken.token })).then((r) => {
- var _a;
- response.value = r;
- const result2 = r.data;
- data.value = result2;
- (_a = options.onSuccess) == null ? void 0 : _a.call(options, result2);
- }).catch((e) => {
- var _a;
- error.value = e;
- (_a = options.onError) == null ? void 0 : _a.call(options, e);
- }).finally(() => loading(false));
- return { then };
- };
- if (options.immediate && url)
- execute();
- const result = {
- response,
- data,
- error,
- finished: isFinished,
- loading: isLoading,
- isFinished,
- isLoading,
- cancel: abort,
- isAborted,
- canceled: isAborted,
- aborted: isAborted,
- isCanceled: isAborted,
- abort,
- execute
- };
- return __spreadProps$1(__spreadValues$4({}, result), {
- then
- });
- }
-
- var changeCase = /*#__PURE__*/Object.freeze({
- __proto__: null,
- camelCase: camelCase,
- capitalCase: capitalCase,
- constantCase: constantCase,
- dotCase: dotCase,
- headerCase: headerCase,
- noCase: noCase,
- paramCase: paramCase,
- pascalCase: pascalCase,
- pathCase: pathCase,
- sentenceCase: sentenceCase,
- snakeCase: snakeCase
- });
-
- function useChangeCase(input, type, options) {
- if (isFunction(input))
- return computed(() => changeCase[type](resolveUnref(input), options));
- const text = ref(input);
- return computed({
- get() {
- return changeCase[type](text.value, options);
- },
- set(value) {
- text.value = value;
- }
- });
- }
-
- var __defProp$3 = Object.defineProperty;
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
- var __spreadValues$3 = (a, b) => {
- for (var prop in b || (b = {}))
- if (__hasOwnProp$3.call(b, prop))
- __defNormalProp$3(a, prop, b[prop]);
- if (__getOwnPropSymbols$3)
- for (var prop of __getOwnPropSymbols$3(b)) {
- if (__propIsEnum$3.call(b, prop))
- __defNormalProp$3(a, prop, b[prop]);
- }
- return a;
- };
- function createCookies(req) {
- const universalCookie = new Cookie(req ? req.headers.cookie : null);
- return (dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}) => useCookies(dependencies, { doNotParse, autoUpdateDependencies }, universalCookie);
- }
- function useCookies(dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}, cookies = new Cookie()) {
- const watchingDependencies = autoUpdateDependencies ? [...dependencies || []] : dependencies;
- let previousCookies = cookies.getAll({ doNotParse: true });
- const touches = ref(0);
- const onChange = () => {
- const newCookies = cookies.getAll({ doNotParse: true });
- if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies))
- touches.value++;
- previousCookies = newCookies;
- };
- cookies.addChangeListener(onChange);
- tryOnScopeDispose(() => {
- cookies.removeChangeListener(onChange);
- });
- return {
- get: (...args) => {
- if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0]))
- watchingDependencies.push(args[0]);
- touches.value;
- return cookies.get(args[0], __spreadValues$3({ doNotParse }, args[1]));
- },
- getAll: (...args) => {
- touches.value;
- return cookies.getAll(__spreadValues$3({ doNotParse }, args[0]));
- },
- set: (...args) => cookies.set(...args),
- remove: (...args) => cookies.remove(...args),
- addChangeListener: (...args) => cookies.addChangeListener(...args),
- removeChangeListener: (...args) => cookies.removeChangeListener(...args)
- };
- }
- function shouldUpdate(dependencies, newCookies, oldCookies) {
- if (!dependencies)
- return true;
- for (const dependency of dependencies) {
- if (newCookies[dependency] !== oldCookies[dependency])
- return true;
- }
- return false;
- }
-
- var __defProp$2 = Object.defineProperty;
- var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
- var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
- var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
- var __spreadValues$2 = (a, b) => {
- for (var prop in b || (b = {}))
- if (__hasOwnProp$2.call(b, prop))
- __defNormalProp$2(a, prop, b[prop]);
- if (__getOwnPropSymbols$2)
- for (var prop of __getOwnPropSymbols$2(b)) {
- if (__propIsEnum$2.call(b, prop))
- __defNormalProp$2(a, prop, b[prop]);
- }
- return a;
- };
- function useDrauu(target, options) {
- const drauuInstance = ref();
- let disposables = [];
- const onChangedHook = createEventHook();
- const onCanceledHook = createEventHook();
- const onCommittedHook = createEventHook();
- const onStartHook = createEventHook();
- const onEndHook = createEventHook();
- const canUndo = ref(false);
- const canRedo = ref(false);
- const altPressed = ref(false);
- const shiftPressed = ref(false);
- const brush = ref({
- color: "black",
- size: 3,
- arrowEnd: false,
- cornerRadius: 0,
- dasharray: void 0,
- fill: "transparent",
- mode: "draw"
- });
- watch(brush, () => {
- const instance = drauuInstance.value;
- if (instance) {
- instance.brush = brush.value;
- instance.mode = brush.value.mode;
- }
- }, { deep: true });
- const undo = () => {
- var _a;
- return (_a = drauuInstance.value) == null ? void 0 : _a.undo();
- };
- const redo = () => {
- var _a;
- return (_a = drauuInstance.value) == null ? void 0 : _a.redo();
- };
- const clear = () => {
- var _a;
- return (_a = drauuInstance.value) == null ? void 0 : _a.clear();
- };
- const cancel = () => {
- var _a;
- return (_a = drauuInstance.value) == null ? void 0 : _a.cancel();
- };
- const load = (svg) => {
- var _a;
- return (_a = drauuInstance.value) == null ? void 0 : _a.load(svg);
- };
- const dump = () => {
- var _a;
- return (_a = drauuInstance.value) == null ? void 0 : _a.dump();
- };
- const cleanup = () => {
- var _a;
- disposables.forEach((dispose) => dispose());
- (_a = drauuInstance.value) == null ? void 0 : _a.unmount();
- };
- const syncStatus = () => {
- if (drauuInstance.value) {
- canUndo.value = drauuInstance.value.canUndo();
- canRedo.value = drauuInstance.value.canRedo();
- altPressed.value = drauuInstance.value.altPressed;
- shiftPressed.value = drauuInstance.value.shiftPressed;
- }
- };
- watch(() => unrefElement(target), (el) => {
- if (!el || typeof SVGSVGElement === "undefined" || !(el instanceof SVGSVGElement))
- return;
- if (drauuInstance.value)
- cleanup();
- drauuInstance.value = createDrauu(__spreadValues$2({ el }, options));
- syncStatus();
- disposables = [
- drauuInstance.value.on("canceled", () => onCanceledHook.trigger()),
- drauuInstance.value.on("committed", () => onCommittedHook.trigger()),
- drauuInstance.value.on("start", () => onStartHook.trigger()),
- drauuInstance.value.on("end", () => onEndHook.trigger()),
- drauuInstance.value.on("changed", () => {
- syncStatus();
- onChangedHook.trigger();
- })
- ];
- }, { flush: "post" });
- tryOnScopeDispose(() => cleanup());
- return {
- drauuInstance,
- load,
- dump,
- clear,
- cancel,
- undo,
- redo,
- canUndo,
- canRedo,
- brush,
- onChanged: onChangedHook.on,
- onCommitted: onCommittedHook.on,
- onStart: onStartHook.on,
- onEnd: onEndHook.on,
- onCanceled: onCanceledHook.on
- };
- }
-
- var __defProp$1 = Object.defineProperty;
- var __defProps = Object.defineProperties;
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
- var __spreadValues$1 = (a, b) => {
- for (var prop in b || (b = {}))
- if (__hasOwnProp$1.call(b, prop))
- __defNormalProp$1(a, prop, b[prop]);
- if (__getOwnPropSymbols$1)
- for (var prop of __getOwnPropSymbols$1(b)) {
- if (__propIsEnum$1.call(b, prop))
- __defNormalProp$1(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$1.call(source, prop) && exclude.indexOf(prop) < 0)
- target[prop] = source[prop];
- if (source != null && __getOwnPropSymbols$1)
- for (var prop of __getOwnPropSymbols$1(source)) {
- if (exclude.indexOf(prop) < 0 && __propIsEnum$1.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 = ref(false);
- const isPaused = 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;
- }
- };
- watch(() => unrefElement(target), (el) => {
- if (!el)
- return;
- trap = createFocusTrap(el, __spreadProps(__spreadValues$1({}, focusTrapOptions), {
- onActivate() {
- hasFocus.value = true;
- if (options.onActivate)
- options.onActivate();
- },
- onDeactivate() {
- hasFocus.value = false;
- if (options.onDeactivate)
- options.onDeactivate();
- }
- }));
- if (immediate)
- activate();
- }, { flush: "post" });
- tryOnScopeDispose$1(() => deactivate());
- return {
- hasFocus,
- isPaused,
- activate,
- deactivate,
- pause,
- unpause
- };
- }
-
- function useFuse(search, data, options) {
- const createFuse = () => {
- var _a, _b;
- return new Fuse((_a = resolveUnref(data)) != null ? _a : [], (_b = resolveUnref(options)) == null ? void 0 : _b.fuseOptions);
- };
- const fuse = ref(createFuse());
- watch(() => {
- var _a;
- return (_a = resolveUnref(options)) == null ? void 0 : _a.fuseOptions;
- }, () => {
- fuse.value = createFuse();
- }, { deep: true });
- watch(() => resolveUnref(data), (newData) => {
- fuse.value.setCollection(newData);
- }, { deep: true });
- const results = computed(() => {
- const resolved = resolveUnref(options);
- if ((resolved == null ? void 0 : resolved.matchAllWhenSearchEmpty) && !unref(search))
- return resolveUnref(data).map((item, index) => ({ item, refIndex: index }));
- const limit = resolved == null ? void 0 : resolved.resultLimit;
- return fuse.value.search(resolveUnref(search), limit ? { limit } : void 0);
- });
- return {
- fuse,
- results
- };
- }
-
- var __defProp = Object.defineProperty;
- 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;
- };
- function useIDBKeyval(key, initialValue, options = {}) {
- const {
- flush = "pre",
- deep = true,
- shallow,
- onError = (e) => {
- console.error(e);
- }
- } = options;
- const data = (shallow ? shallowRef : ref)(initialValue);
- const rawInit = resolveUnref(initialValue);
- async function read() {
- try {
- const rawValue = await get(key);
- if (rawValue === void 0) {
- if (rawInit !== void 0 && rawInit !== null)
- await set(key, rawInit);
- } else {
- data.value = rawValue;
- }
- } catch (e) {
- onError(e);
- }
- }
- read();
- async function write() {
- try {
- if (data.value == null) {
- await del(key);
- } else {
- if (Array.isArray(data.value))
- await update(key, () => JSON.parse(JSON.stringify(data.value)));
- else if (typeof data.value === "object")
- await update(key, () => __spreadValues({}, data.value));
- else
- await update(key, () => data.value);
- }
- } catch (e) {
- onError(e);
- }
- }
- watch(data, () => write(), { flush, deep });
- return data;
- }
-
- function useJwt(encodedJwt, options = {}) {
- const {
- onError,
- fallbackValue = null
- } = options;
- const decodeWithFallback = (encodedJwt2, options2) => {
- try {
- return jwt_decode(encodedJwt2, options2);
- } catch (err) {
- onError == null ? void 0 : onError(err);
- return fallbackValue;
- }
- };
- const header = computed(() => decodeWithFallback(resolveUnref(encodedJwt), { header: true }));
- const payload = computed(() => decodeWithFallback(resolveUnref(encodedJwt)));
- return {
- header,
- payload
- };
- }
-
- function useNProgress(currentProgress = null, options) {
- const progress = ref(currentProgress);
- const isLoading = computed({
- set: (load) => load ? nprogress.start() : nprogress.done(),
- get: () => isNumber(progress.value) && progress.value < 1
- });
- if (options)
- nprogress.configure(options);
- const setProgress = nprogress.set;
- nprogress.set = (n) => {
- progress.value = n;
- return setProgress.call(nprogress, n);
- };
- watchEffect(() => {
- if (isNumber(progress.value) && isClient)
- setProgress.call(nprogress, progress.value);
- });
- tryOnScopeDispose(nprogress.remove);
- return {
- isLoading,
- progress,
- start: nprogress.start,
- done: nprogress.done,
- remove: () => {
- progress.value = null;
- nprogress.remove();
- }
- };
- }
-
- function useQRCode(text, options) {
- const src = resolveRef(text);
- const result = ref("");
- watch(src, async (value) => {
- if (src.value && isClient)
- result.value = await QRCode.toDataURL(value, options);
- }, { immediate: true });
- return result;
- }
-
- export { createCookies, useAsyncValidator, useAxios, useChangeCase, useCookies, useDrauu, useFocusTrap, useFuse, useIDBKeyval, useJwt, useNProgress, useQRCode };
|