hookehuyr

🎉 init: 项目初始化

1 +dist/
2 +deploy_versions/
3 +.temp/
4 +.rn_temp/
5 +node_modules/
6 +.DS_Store
7 +.swc
8 +.history
1 +// babel-preset-taro 更多选项和默认值:
2 +// https://github.com/NervJS/taro/blob/next/packages/babel-preset-taro/README.md
3 +module.exports = {
4 + presets: [
5 + ['taro', {
6 + framework: 'vue3',
7 + ts: false
8 + }]
9 + ]
10 +}
1 +// generated by unplugin-vue-components
2 +// We suggest you to commit this file into source control
3 +// Read more: https://github.com/vuejs/core/pull/3399
4 +import '@vue/runtime-core'
5 +
6 +export {}
7 +
8 +declare module '@vue/runtime-core' {
9 + export interface GlobalComponents {
10 + NutButton: typeof import('@nutui/nutui-taro')['Button']
11 + NutCol: typeof import('@nutui/nutui-taro')['Col']
12 + NutRow: typeof import('@nutui/nutui-taro')['Row']
13 + RouterLink: typeof import('vue-router')['RouterLink']
14 + RouterView: typeof import('vue-router')['RouterView']
15 + }
16 +}
1 +module.exports = {
2 + env: {
3 + NODE_ENV: '"development"'
4 + },
5 + defineConstants: {
6 + },
7 + mini: {},
8 + h5: {}
9 +}
1 +const path = require('path')
2 +
3 +import ComponentsPlugin from 'unplugin-vue-components/webpack'
4 +import NutUIResolver from '@nutui/nutui-taro/dist/resolver'
5 +
6 +const config = {
7 + projectName: 'custom_form',
8 + date: '2023-3-23',
9 + designWidth(input) {
10 + if (input?.file?.replace(/\\+/g, '/').indexOf('@nutui') > -1) {
11 + return 375
12 + }
13 + return 750
14 + },
15 + deviceRatio: {
16 + 640: 2.34 / 2,
17 + 750: 1,
18 + 828: 1.81 / 2,
19 + 375: 2 / 1,
20 + },
21 + alias: {
22 + // 配置目录别名
23 + '@/utils': path.resolve(__dirname, '../src/utils'),
24 + '@/components': path.resolve(__dirname, '../src/components'),
25 + '@/images': path.resolve(__dirname, '../src/assets/images'),
26 + '@/assets': path.resolve(__dirname, '../src/assets'),
27 + '@/composables': path.resolve(__dirname, '../src/composables'),
28 + '@/api': path.resolve(__dirname, '../src/api'),
29 + '@/stores': path.resolve(__dirname, '../src/stores'),
30 + '@/hooks': path.resolve(__dirname, '../src/hooks'),
31 + },
32 + sourceRoot: 'src',
33 + outputRoot: `dist/${process.env.TARO_ENV}`,
34 + plugins: ['@tarojs/plugin-html'],
35 + defineConstants: {},
36 + copy: {
37 + patterns: [],
38 + options: {},
39 + },
40 + framework: 'vue3',
41 + compiler: {
42 + type: 'webpack5',
43 + prebundle: { enable: false },
44 + },
45 + cache: {
46 + enable: false, // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache
47 + },
48 + sass: {
49 + data: `@import "@nutui/nutui-taro/dist/styles/variables.scss";`,
50 + },
51 + mini: {
52 + webpackChain(chain) {
53 + chain.plugin('unplugin-vue-components').use(
54 + ComponentsPlugin({
55 + resolvers: [NutUIResolver({ taro: true })],
56 + }),
57 + )
58 + },
59 + postcss: {
60 + pxtransform: {
61 + enable: true,
62 + config: {
63 + // selectorBlackList: ['nut-']
64 + },
65 + },
66 + url: {
67 + enable: true,
68 + config: {
69 + limit: 1024, // 设定转换尺寸上限
70 + },
71 + },
72 + cssModules: {
73 + enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
74 + config: {
75 + namingPattern: 'module', // 转换模式,取值为 global/module
76 + generateScopedName: '[name]__[local]___[hash:base64:5]',
77 + },
78 + },
79 + },
80 + enableSourceMap: false
81 + },
82 + h5: {
83 + webpackChain(chain) {
84 + chain.plugin('unplugin-vue-components').use(
85 + ComponentsPlugin({
86 + resolvers: [NutUIResolver({ taro: true })],
87 + }),
88 + )
89 + },
90 + publicPath: '/',
91 + staticDirectory: 'static',
92 + esnextModules: ['nutui-taro', 'icons-vue-taro'],
93 + postcss: {
94 + autoprefixer: {
95 + enable: true,
96 + config: {},
97 + },
98 + cssModules: {
99 + enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
100 + config: {
101 + namingPattern: 'module', // 转换模式,取值为 global/module
102 + generateScopedName: '[name]__[local]___[hash:base64:5]',
103 + },
104 + },
105 + },
106 + },
107 +}
108 +
109 +module.exports = function (merge) {
110 + if (process.env.NODE_ENV === 'development') {
111 + return merge({}, config, require('./dev'))
112 + }
113 + return merge({}, config, require('./prod'))
114 +}
1 +module.exports = {
2 + env: {
3 + NODE_ENV: '"production"'
4 + },
5 + defineConstants: {
6 + },
7 + mini: {},
8 + h5: {
9 + /**
10 + * WebpackChain 插件配置
11 + * @docs https://github.com/neutrinojs/webpack-chain
12 + */
13 + // webpackChain (chain) {
14 + // /**
15 + // * 如果 h5 端编译后体积过大,可以使用 webpack-bundle-analyzer 插件对打包体积进行分析。
16 + // * @docs https://github.com/webpack-contrib/webpack-bundle-analyzer
17 + // */
18 + // chain.plugin('analyzer')
19 + // .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [])
20 +
21 + // /**
22 + // * 如果 h5 端首屏加载时间过长,可以使用 prerender-spa-plugin 插件预加载首页。
23 + // * @docs https://github.com/chrisvfritz/prerender-spa-plugin
24 + // */
25 + // const path = require('path')
26 + // const Prerender = require('prerender-spa-plugin')
27 + // const staticDir = path.join(__dirname, '..', 'dist')
28 + // chain
29 + // .plugin('prerender')
30 + // .use(new Prerender({
31 + // staticDir,
32 + // routes: [ '/pages/index/index' ],
33 + // postProcess: (context) => ({ ...context, outputPath: path.join(staticDir, 'index.html') })
34 + // }))
35 + // }
36 + }
37 +}
1 +{
2 + "name": "custom_form",
3 + "version": "1.0.0",
4 + "private": true,
5 + "description": "自定义表单",
6 + "templateInfo": {
7 + "name": "vue3-NutUI4",
8 + "typescript": false,
9 + "css": "less"
10 + },
11 + "scripts": {
12 + "build:weapp": "taro build --type weapp",
13 + "build:swan": "taro build --type swan",
14 + "build:alipay": "taro build --type alipay",
15 + "build:tt": "taro build --type tt",
16 + "build:h5": "taro build --type h5",
17 + "build:rn": "taro build --type rn",
18 + "build:qq": "taro build --type qq",
19 + "build:jd": "taro build --type jd",
20 + "build:quickapp": "taro build --type quickapp",
21 + "dev:weapp": "npm run build:weapp -- --watch",
22 + "dev:swan": "npm run build:swan -- --watch",
23 + "dev:alipay": "npm run build:alipay -- --watch",
24 + "dev:tt": "npm run build:tt -- --watch",
25 + "dev:h5": "npm run build:h5 -- --watch",
26 + "dev:rn": "npm run build:rn -- --watch",
27 + "dev:qq": "npm run build:qq -- --watch",
28 + "dev:jd": "npm run build:jd -- --watch",
29 + "dev:quickapp": "npm run build:quickapp -- --watch"
30 + },
31 + "browserslist": [
32 + "last 3 versions",
33 + "Android >= 4.1",
34 + "ios >= 8"
35 + ],
36 + "author": "",
37 + "license": "MIT",
38 + "dependencies": {
39 + "@babel/runtime": "^7.7.7",
40 + "@nutui/icons-vue-taro": "^0.0.9",
41 + "@nutui/nutui-taro": "^4.0.0",
42 + "@tarojs/components": "3.6.2",
43 + "@tarojs/helper": "3.6.2",
44 + "@tarojs/plugin-framework-vue3": "3.6.2",
45 + "@tarojs/plugin-html": "3.6.2",
46 + "@tarojs/plugin-platform-alipay": "3.6.2",
47 + "@tarojs/plugin-platform-h5": "3.6.2",
48 + "@tarojs/plugin-platform-jd": "3.6.2",
49 + "@tarojs/plugin-platform-qq": "3.6.2",
50 + "@tarojs/plugin-platform-swan": "3.6.2",
51 + "@tarojs/plugin-platform-tt": "3.6.2",
52 + "@tarojs/plugin-platform-weapp": "3.6.2",
53 + "@tarojs/runtime": "3.6.2",
54 + "@tarojs/shared": "3.6.2",
55 + "@tarojs/taro": "3.6.2",
56 + "dayjs": "^1.11.7",
57 + "pinia": "^2.0.33",
58 + "vue": "^3.0.0"
59 + },
60 + "devDependencies": {
61 + "@babel/core": "^7.8.0",
62 + "@tarojs/cli": "3.6.2",
63 + "@tarojs/webpack5-runner": "3.6.2",
64 + "@types/webpack-env": "^1.13.6",
65 + "@vue/babel-plugin-jsx": "^1.0.6",
66 + "@vue/compiler-sfc": "^3.0.0",
67 + "babel-preset-taro": "3.6.2",
68 + "css-loader": "3.4.2",
69 + "eslint": "^8.12.0",
70 + "eslint-config-taro": "3.6.2",
71 + "eslint-plugin-vue": "^8.0.0",
72 + "style-loader": "1.3.0",
73 + "stylelint": "9.3.0",
74 + "unplugin-vue-components": "^0.23.0",
75 + "vue-loader": "^17.0.0",
76 + "webpack": "5.69.0"
77 + }
78 +}
1 +{
2 + "miniprogramRoot": "./dist",
3 + "projectname": "custom_form",
4 + "description": "自定义表单",
5 + "appid": "touristappid",
6 + "setting": {
7 + "urlCheck": true,
8 + "es6": false,
9 + "enhance": false,
10 + "compileHotReLoad": false,
11 + "postcss": false,
12 + "minified": false
13 + },
14 + "compileType": "miniprogram"
15 +}
1 +{
2 + "miniprogramRoot": "./",
3 + "projectname": "custom_form",
4 + "description": "自定义表单",
5 + "appid": "touristappid",
6 + "setting": {
7 + "urlCheck": true,
8 + "es6": false,
9 + "postcss": false,
10 + "minified": false
11 + },
12 + "compileType": "miniprogram"
13 +}
1 +export default defineAppConfig({
2 + pages: [
3 + 'pages/index/index'
4 + ],
5 + window: {
6 + backgroundTextStyle: 'light',
7 + navigationBarBackgroundColor: '#fff',
8 + navigationBarTitleText: 'WeChat',
9 + navigationBarTextStyle: 'black'
10 + }
11 +})
1 +/*
2 + * @Date: 2023-03-23 11:17:54
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2023-03-23 13:47:12
5 + * @FilePath: /custom_form/src/app.js
6 + * @Description: 文件描述
7 + */
8 +import { createApp } from 'vue'
9 +import { createPinia } from 'pinia'
10 +import './app.less'
11 +
12 +const App = createApp({
13 + onShow (options) {},
14 + // 入口组件不需要实现 render 方法,即使实现了也会被 taro 所覆盖
15 +})
16 +
17 +App.use(createPinia())
18 +
19 +export default App
File mode changed
1 +<!DOCTYPE html>
2 +<html>
3 +<head>
4 + <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
5 + <meta content="width=device-width,initial-scale=1,user-scalable=no" name="viewport">
6 + <meta name="apple-mobile-web-app-capable" content="yes">
7 + <meta name="apple-touch-fullscreen" content="yes">
8 + <meta name="format-detection" content="telephone=no,address=no">
9 + <meta name="apple-mobile-web-app-status-bar-style" content="white">
10 + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >
11 + <title>custom_form</title>
12 + <script><%= htmlWebpackPlugin.options.script %></script>
13 +</head>
14 +<body>
15 + <div id="app"></div>
16 +</body>
17 +</html>
1 +export default definePageConfig({
2 + navigationBarTitleText: '首页'
3 +})
1 +<template>
2 + <view class="index">
3 + <nut-row>
4 + <nut-col :span="is_pc ? 22 : 24" :offset="is_pc ? 1 : 0">
5 + <div style="background-color: red; color: white;">span:24</div>
6 + </nut-col>
7 + </nut-row>
8 + </view>
9 +</template>
10 +
11 +<script setup>
12 +import { storeToRefs } from 'pinia'
13 +import { mainStore } from '@/stores'
14 +import { wxInfo, getUrlParams } from "@/utils/tools";
15 +import { computed, watchEffect, onMounted } from "vue";
16 +
17 +// web端判断
18 +const is_pc = computed(() => process.env.TARO_ENV === 'h5' && wxInfo().isPC);
19 +
20 +const store = mainStore();
21 +const { formInfo } = storeToRefs(store);
22 +
23 +console.warn(is_pc.value);
24 +
25 +</script>
26 +
27 +<style lang="less">
28 +</style>
1 +/*
2 + * @Date: 2022-04-18 15:59:42
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2023-03-23 13:19:21
5 + * @FilePath: /custom_form/src/stores/index.js
6 + * @Description: 文件描述
7 + */
8 +import { defineStore } from 'pinia';
9 +// import { testStore } from './test'; // 另一个store
10 +
11 +export const mainStore = defineStore('main', {
12 + state: () => {
13 + return {
14 + fieldName: '',
15 + formInfo: {}, // 表单字段信息
16 + formSetting: {}, // 表单数据收集设置
17 + successInfo: {}, // 表单提交返回值
18 + };
19 + },
20 + getters: {
21 + getKeepPages () {
22 + return this.keepPages
23 + },
24 + // getTestStoreList () {
25 + // return testStore().list // 返回另一个store的值
26 + // }
27 + },
28 + actions: {
29 + changeFieldName (v) {
30 + this.fieldName = v;
31 + },
32 + changeFormInfo (v) {
33 + this.formInfo = v;
34 + },
35 + changeFormSetting (v) {
36 + this.formSetting = v;
37 + },
38 + changeSuccessInfo (v) {
39 + this.successInfo = v;
40 + },
41 + },
42 +});
1 +/*
2 + * @Date: 2022-06-20 01:22:50
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2022-06-20 01:23:18
5 + * @FilePath: /tswj/src/composables/useMonitorKeyboard.js
6 + * @Description: 文件描述
7 + */
8 +/**
9 + * @class 监听虚拟键盘
10 + * @classdesc 监听虚拟键盘弹出隐藏
11 + * @public onEnd 结束监听虚拟键盘
12 + * @public onShow 传递一个回调 监听虚拟键盘弹出
13 + * @public onHidden 传递一个回调 监听虚拟键盘隐藏
14 + */
15 +class MonitorKeyboard {
16 + constructor() {
17 + this.type = this.IsIA();
18 + this.originalHeight = window.innerHeight;
19 + }
20 +
21 + /**
22 + * @function IsIA 获取设备类型
23 + * @param 1 Android 2 iOS
24 + */
25 + IsIA = () => {
26 + const userAgent = typeof window === 'object' ? window.navigator.userAgent : '';
27 + if (/android/i.test(userAgent)) {
28 + return 1;
29 + } else if (/iPhone|iPod|iPad/i.test(userAgent)) {
30 + return 2;
31 + }
32 + }
33 +
34 + // Android系统
35 + onResize = () => {
36 + //键盘弹起与隐藏都会引起窗口的高度发生变化
37 + const resizeHeight = window.innerHeight;
38 +
39 + if (this.originalHeight - resizeHeight > 50) {
40 + this.show('Android系统: 软键盘弹出');
41 + } else {
42 + this.hidden('Android系统: 软键盘收起');
43 + }
44 + }
45 +
46 + // iOS获取焦点
47 + onFocusin = () => {
48 + this.show('iOS系统:软键盘弹出');
49 + }
50 +
51 + // iOS失去焦点
52 + onFocusout = () => {
53 + this.hidden('iOS系统:软键盘收起');
54 + }
55 +
56 + /**
57 + * @function onStart 开始监听虚拟键盘
58 + */
59 + onStart = () => {
60 + if (this.type == 1) {
61 + // 获取窗口的高度
62 + window.addEventListener('resize', this.onResize);
63 + }
64 + if (this.type == 2) {
65 + // iOS系统
66 + window.addEventListener('focusin', this.onFocusin);
67 + window.addEventListener('focusout', this.onFocusout);
68 + }
69 + }
70 +
71 + /**
72 + * @function onEnd 结束监听虚拟键盘
73 + */
74 + onEnd = () => {
75 + if (this.type == 1) {
76 + //获取窗口的高度
77 + window.removeEventListener('resize', this.onResize);
78 + }
79 + if (this.type == 2) {
80 + window.removeEventListener('focusin', this.onFocusin);
81 + window.removeEventListener('focusout', this.onFocusout);
82 + }
83 + }
84 +
85 + /**
86 + * @function onShow 传递一个回调函数
87 + * @param 虚拟键盘弹出时触发
88 + */
89 + onShow = (fn) => {
90 + this.show = fn;
91 + }
92 +
93 + /**
94 + * @function onHidden 传递一个回调函数
95 + * @param 虚拟键盘隐藏时触发
96 + */
97 + onHidden = (fn) => {
98 + this.hidden = fn;
99 + }
100 +}
101 +
102 +export default MonitorKeyboard
1 +/*
2 + * @Author: hookehuyr hookehuyr@gmail.com
3 + * @Date: 2022-05-28 10:17:40
4 + * @LastEditors: hookehuyr hookehuyr@gmail.com
5 + * @LastEditTime: 2022-12-01 16:33:51
6 + * @FilePath: /data-table/src/utils/axios.js
7 + * @Description:
8 + */
9 +import axios from 'axios';
10 +import router from '@/router';
11 +import qs from 'Qs'
12 +import { strExist } from '@/utils/tools'
13 +// import { parseQueryString } from '@/utils/tools'
14 +
15 +axios.defaults.params = {
16 + f: 'custom_form',
17 +};
18 +
19 +/**
20 + * @description 请求拦截器
21 + */
22 +axios.interceptors.request.use(
23 + config => {
24 + // const url_params = parseQueryString(location.href);
25 + // GET请求默认打上时间戳,避免从缓存中拿数据。
26 + const timestamp = config.method === 'get' ? (new Date()).valueOf() : '';
27 + /**
28 + * POST PHP需要修改数据格式
29 + * 序列化POST请求时需要屏蔽上传相关接口,上传相关接口序列化后报错
30 + */
31 + // config.data = config.method === 'post' && !strExist(['a=upload', 'upload.qiniup.com'], config.url) ? qs.stringify(config.data) : config.data;
32 + // 绑定默认请求头
33 + config.params = { ...config.params, timestamp }
34 + return config;
35 + },
36 + error => {
37 + // 请求错误处理
38 + return Promise.reject(error);
39 + });
40 +
41 +/**
42 + * @description 响应拦截器
43 + */
44 +axios.interceptors.response.use(
45 + response => {
46 + return response;
47 + },
48 + error => {
49 + return Promise.reject(error);
50 + });
51 +
52 +export default axios;
1 +/**
2 + * FingerprintJS v3.4.0 - Copyright (c) FingerprintJS, Inc, 2023 (https://fingerprint.com)
3 + * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
4 + *
5 + * This software contains code from open-source projects:
6 + * MurmurHash3 by Karan Lyons (https://github.com/karanlyons/murmurHash3.js)
7 + */
8 +var e = function () {
9 + return (
10 + (e =
11 + Object.assign ||
12 + function (e) {
13 + for (var n, t = 1, r = arguments.length; t < r; t++)
14 + for (var o in (n = arguments[t]))
15 + Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]);
16 + return e;
17 + }),
18 + e.apply(this, arguments)
19 + );
20 +};
21 +function n(e, n, t, r) {
22 + return new (t || (t = Promise))(function (o, a) {
23 + function i(e) {
24 + try {
25 + u(r.next(e));
26 + } catch (n) {
27 + a(n);
28 + }
29 + }
30 + function c(e) {
31 + try {
32 + u(r.throw(e));
33 + } catch (n) {
34 + a(n);
35 + }
36 + }
37 + function u(e) {
38 + var n;
39 + e.done
40 + ? o(e.value)
41 + : ((n = e.value),
42 + n instanceof t
43 + ? n
44 + : new t(function (e) {
45 + e(n);
46 + })).then(i, c);
47 + }
48 + u((r = r.apply(e, n || [])).next());
49 + });
50 +}
51 +function t(e, n) {
52 + var t,
53 + r,
54 + o,
55 + a,
56 + i = {
57 + label: 0,
58 + sent: function () {
59 + if (1 & o[0]) throw o[1];
60 + return o[1];
61 + },
62 + trys: [],
63 + ops: [],
64 + };
65 + return (
66 + (a = { next: c(0), throw: c(1), return: c(2) }),
67 + 'function' == typeof Symbol &&
68 + (a[Symbol.iterator] = function () {
69 + return this;
70 + }),
71 + a
72 + );
73 + function c(c) {
74 + return function (u) {
75 + return (function (c) {
76 + if (t) throw new TypeError('Generator is already executing.');
77 + for (; a && ((a = 0), c[0] && (i = 0)), i; )
78 + try {
79 + if (
80 + ((t = 1),
81 + r &&
82 + (o =
83 + 2 & c[0]
84 + ? r.return
85 + : c[0]
86 + ? r.throw || ((o = r.return) && o.call(r), 0)
87 + : r.next) &&
88 + !(o = o.call(r, c[1])).done)
89 + )
90 + return o;
91 + switch (((r = 0), o && (c = [2 & c[0], o.value]), c[0])) {
92 + case 0:
93 + case 1:
94 + o = c;
95 + break;
96 + case 4:
97 + return i.label++, { value: c[1], done: !1 };
98 + case 5:
99 + i.label++, (r = c[1]), (c = [0]);
100 + continue;
101 + case 7:
102 + (c = i.ops.pop()), i.trys.pop();
103 + continue;
104 + default:
105 + if (
106 + !((o = i.trys),
107 + (o = o.length > 0 && o[o.length - 1]) || (6 !== c[0] && 2 !== c[0]))
108 + ) {
109 + i = 0;
110 + continue;
111 + }
112 + if (3 === c[0] && (!o || (c[1] > o[0] && c[1] < o[3]))) {
113 + i.label = c[1];
114 + break;
115 + }
116 + if (6 === c[0] && i.label < o[1]) {
117 + (i.label = o[1]), (o = c);
118 + break;
119 + }
120 + if (o && i.label < o[2]) {
121 + (i.label = o[2]), i.ops.push(c);
122 + break;
123 + }
124 + o[2] && i.ops.pop(), i.trys.pop();
125 + continue;
126 + }
127 + c = n.call(e, i);
128 + } catch (u) {
129 + (c = [6, u]), (r = 0);
130 + } finally {
131 + t = o = 0;
132 + }
133 + if (5 & c[0]) throw c[1];
134 + return { value: c[0] ? c[1] : void 0, done: !0 };
135 + })([c, u]);
136 + };
137 + }
138 +}
139 +function r(e, n, t) {
140 + if (t || 2 === arguments.length)
141 + for (var r, o = 0, a = n.length; o < a; o++)
142 + (!r && o in n) || (r || (r = Array.prototype.slice.call(n, 0, o)), (r[o] = n[o]));
143 + return e.concat(r || Array.prototype.slice.call(n));
144 +}
145 +function o(e, n) {
146 + return new Promise(function (t) {
147 + return setTimeout(t, e, n);
148 + });
149 +}
150 +function a(e) {
151 + return !!e && 'function' == typeof e.then;
152 +}
153 +function i(e, n) {
154 + try {
155 + var t = e();
156 + a(t)
157 + ? t.then(
158 + function (e) {
159 + return n(!0, e);
160 + },
161 + function (e) {
162 + return n(!1, e);
163 + },
164 + )
165 + : n(!0, t);
166 + } catch (r) {
167 + n(!1, r);
168 + }
169 +}
170 +function c(e, r, a) {
171 + return (
172 + void 0 === a && (a = 16),
173 + n(this, void 0, void 0, function () {
174 + var n, i, c;
175 + return t(this, function (t) {
176 + switch (t.label) {
177 + case 0:
178 + (n = Date.now()), (i = 0), (t.label = 1);
179 + case 1:
180 + return i < e.length
181 + ? (r(e[i], i), (c = Date.now()) >= n + a ? ((n = c), [4, o(0)]) : [3, 3])
182 + : [3, 4];
183 + case 2:
184 + t.sent(), (t.label = 3);
185 + case 3:
186 + return ++i, [3, 1];
187 + case 4:
188 + return [2];
189 + }
190 + });
191 + })
192 + );
193 +}
194 +function u(e) {
195 + e.then(void 0, function () {});
196 +}
197 +function l(e, n) {
198 + (e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]]),
199 + (n = [n[0] >>> 16, 65535 & n[0], n[1] >>> 16, 65535 & n[1]]);
200 + var t = [0, 0, 0, 0];
201 + return (
202 + (t[3] += e[3] + n[3]),
203 + (t[2] += t[3] >>> 16),
204 + (t[3] &= 65535),
205 + (t[2] += e[2] + n[2]),
206 + (t[1] += t[2] >>> 16),
207 + (t[2] &= 65535),
208 + (t[1] += e[1] + n[1]),
209 + (t[0] += t[1] >>> 16),
210 + (t[1] &= 65535),
211 + (t[0] += e[0] + n[0]),
212 + (t[0] &= 65535),
213 + [(t[0] << 16) | t[1], (t[2] << 16) | t[3]]
214 + );
215 +}
216 +function s(e, n) {
217 + (e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]]),
218 + (n = [n[0] >>> 16, 65535 & n[0], n[1] >>> 16, 65535 & n[1]]);
219 + var t = [0, 0, 0, 0];
220 + return (
221 + (t[3] += e[3] * n[3]),
222 + (t[2] += t[3] >>> 16),
223 + (t[3] &= 65535),
224 + (t[2] += e[2] * n[3]),
225 + (t[1] += t[2] >>> 16),
226 + (t[2] &= 65535),
227 + (t[2] += e[3] * n[2]),
228 + (t[1] += t[2] >>> 16),
229 + (t[2] &= 65535),
230 + (t[1] += e[1] * n[3]),
231 + (t[0] += t[1] >>> 16),
232 + (t[1] &= 65535),
233 + (t[1] += e[2] * n[2]),
234 + (t[0] += t[1] >>> 16),
235 + (t[1] &= 65535),
236 + (t[1] += e[3] * n[1]),
237 + (t[0] += t[1] >>> 16),
238 + (t[1] &= 65535),
239 + (t[0] += e[0] * n[3] + e[1] * n[2] + e[2] * n[1] + e[3] * n[0]),
240 + (t[0] &= 65535),
241 + [(t[0] << 16) | t[1], (t[2] << 16) | t[3]]
242 + );
243 +}
244 +function d(e, n) {
245 + return 32 === (n %= 64)
246 + ? [e[1], e[0]]
247 + : n < 32
248 + ? [(e[0] << n) | (e[1] >>> (32 - n)), (e[1] << n) | (e[0] >>> (32 - n))]
249 + : ((n -= 32), [(e[1] << n) | (e[0] >>> (32 - n)), (e[0] << n) | (e[1] >>> (32 - n))]);
250 +}
251 +function m(e, n) {
252 + return 0 === (n %= 64)
253 + ? e
254 + : n < 32
255 + ? [(e[0] << n) | (e[1] >>> (32 - n)), e[1] << n]
256 + : [e[1] << (n - 32), 0];
257 +}
258 +function f(e, n) {
259 + return [e[0] ^ n[0], e[1] ^ n[1]];
260 +}
261 +function v(e) {
262 + return (
263 + (e = f(e, [0, e[0] >>> 1])),
264 + (e = f((e = s(e, [4283543511, 3981806797])), [0, e[0] >>> 1])),
265 + (e = f((e = s(e, [3301882366, 444984403])), [0, e[0] >>> 1]))
266 + );
267 +}
268 +function h(e, n) {
269 + n = n || 0;
270 + var t,
271 + r = (e = e || '').length % 16,
272 + o = e.length - r,
273 + a = [0, n],
274 + i = [0, n],
275 + c = [0, 0],
276 + u = [0, 0],
277 + h = [2277735313, 289559509],
278 + b = [1291169091, 658871167];
279 + for (t = 0; t < o; t += 16)
280 + (c = [
281 + (255 & e.charCodeAt(t + 4)) |
282 + ((255 & e.charCodeAt(t + 5)) << 8) |
283 + ((255 & e.charCodeAt(t + 6)) << 16) |
284 + ((255 & e.charCodeAt(t + 7)) << 24),
285 + (255 & e.charCodeAt(t)) |
286 + ((255 & e.charCodeAt(t + 1)) << 8) |
287 + ((255 & e.charCodeAt(t + 2)) << 16) |
288 + ((255 & e.charCodeAt(t + 3)) << 24),
289 + ]),
290 + (u = [
291 + (255 & e.charCodeAt(t + 12)) |
292 + ((255 & e.charCodeAt(t + 13)) << 8) |
293 + ((255 & e.charCodeAt(t + 14)) << 16) |
294 + ((255 & e.charCodeAt(t + 15)) << 24),
295 + (255 & e.charCodeAt(t + 8)) |
296 + ((255 & e.charCodeAt(t + 9)) << 8) |
297 + ((255 & e.charCodeAt(t + 10)) << 16) |
298 + ((255 & e.charCodeAt(t + 11)) << 24),
299 + ]),
300 + (c = d((c = s(c, h)), 31)),
301 + (a = l((a = d((a = f(a, (c = s(c, b)))), 27)), i)),
302 + (a = l(s(a, [0, 5]), [0, 1390208809])),
303 + (u = d((u = s(u, b)), 33)),
304 + (i = l((i = d((i = f(i, (u = s(u, h)))), 31)), a)),
305 + (i = l(s(i, [0, 5]), [0, 944331445]));
306 + switch (((c = [0, 0]), (u = [0, 0]), r)) {
307 + case 15:
308 + u = f(u, m([0, e.charCodeAt(t + 14)], 48));
309 + case 14:
310 + u = f(u, m([0, e.charCodeAt(t + 13)], 40));
311 + case 13:
312 + u = f(u, m([0, e.charCodeAt(t + 12)], 32));
313 + case 12:
314 + u = f(u, m([0, e.charCodeAt(t + 11)], 24));
315 + case 11:
316 + u = f(u, m([0, e.charCodeAt(t + 10)], 16));
317 + case 10:
318 + u = f(u, m([0, e.charCodeAt(t + 9)], 8));
319 + case 9:
320 + (u = s((u = f(u, [0, e.charCodeAt(t + 8)])), b)), (i = f(i, (u = s((u = d(u, 33)), h))));
321 + case 8:
322 + c = f(c, m([0, e.charCodeAt(t + 7)], 56));
323 + case 7:
324 + c = f(c, m([0, e.charCodeAt(t + 6)], 48));
325 + case 6:
326 + c = f(c, m([0, e.charCodeAt(t + 5)], 40));
327 + case 5:
328 + c = f(c, m([0, e.charCodeAt(t + 4)], 32));
329 + case 4:
330 + c = f(c, m([0, e.charCodeAt(t + 3)], 24));
331 + case 3:
332 + c = f(c, m([0, e.charCodeAt(t + 2)], 16));
333 + case 2:
334 + c = f(c, m([0, e.charCodeAt(t + 1)], 8));
335 + case 1:
336 + (c = s((c = f(c, [0, e.charCodeAt(t)])), h)), (a = f(a, (c = s((c = d(c, 31)), b))));
337 + }
338 + return (
339 + (a = l((a = f(a, [0, e.length])), (i = f(i, [0, e.length])))),
340 + (i = l(i, a)),
341 + (a = l((a = v(a)), (i = v(i)))),
342 + (i = l(i, a)),
343 + ('00000000' + (a[0] >>> 0).toString(16)).slice(-8) +
344 + ('00000000' + (a[1] >>> 0).toString(16)).slice(-8) +
345 + ('00000000' + (i[0] >>> 0).toString(16)).slice(-8) +
346 + ('00000000' + (i[1] >>> 0).toString(16)).slice(-8)
347 + );
348 +}
349 +function b(e) {
350 + return parseInt(e);
351 +}
352 +function p(e) {
353 + return parseFloat(e);
354 +}
355 +function y(e, n) {
356 + return 'number' == typeof e && isNaN(e) ? n : e;
357 +}
358 +function g(e) {
359 + return e.reduce(function (e, n) {
360 + return e + (n ? 1 : 0);
361 + }, 0);
362 +}
363 +function w(e, n) {
364 + if ((void 0 === n && (n = 1), Math.abs(n) >= 1)) return Math.round(e / n) * n;
365 + var t = 1 / n;
366 + return Math.round(e * t) / t;
367 +}
368 +function L(e) {
369 + return e && 'object' == typeof e && 'message' in e ? e : { message: e };
370 +}
371 +function k(e) {
372 + return 'function' != typeof e;
373 +}
374 +function V(e, r, a) {
375 + var l = Object.keys(e).filter(function (e) {
376 + return !(function (e, n) {
377 + for (var t = 0, r = e.length; t < r; ++t) if (e[t] === n) return !0;
378 + return !1;
379 + })(a, e);
380 + }),
381 + s = Array(l.length);
382 + return (
383 + c(l, function (n, t) {
384 + s[t] = (function (e, n) {
385 + var t = new Promise(function (t) {
386 + var r = Date.now();
387 + i(e.bind(null, n), function () {
388 + for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];
389 + var o = Date.now() - r;
390 + if (!e[0])
391 + return t(function () {
392 + return { error: L(e[1]), duration: o };
393 + });
394 + var a = e[1];
395 + if (k(a))
396 + return t(function () {
397 + return { value: a, duration: o };
398 + });
399 + t(function () {
400 + return new Promise(function (e) {
401 + var n = Date.now();
402 + i(a, function () {
403 + for (var t = [], r = 0; r < arguments.length; r++) t[r] = arguments[r];
404 + var a = o + Date.now() - n;
405 + if (!t[0]) return e({ error: L(t[1]), duration: a });
406 + e({ value: t[1], duration: a });
407 + });
408 + });
409 + });
410 + });
411 + });
412 + return (
413 + u(t),
414 + function () {
415 + return t.then(function (e) {
416 + return e();
417 + });
418 + }
419 + );
420 + })(e[n], r);
421 + }),
422 + function () {
423 + return n(this, void 0, void 0, function () {
424 + var e, n, r, a, i, d;
425 + return t(this, function (m) {
426 + switch (m.label) {
427 + case 0:
428 + for (e = {}, n = 0, r = l; n < r.length; n++) (a = r[n]), (e[a] = void 0);
429 + (i = Array(l.length)),
430 + (d = function () {
431 + var n;
432 + return t(this, function (t) {
433 + switch (t.label) {
434 + case 0:
435 + return (
436 + (n = !0),
437 + [
438 + 4,
439 + c(l, function (t, r) {
440 + if (!i[r])
441 + if (s[r]) {
442 + var o = s[r]().then(function (n) {
443 + return (e[t] = n);
444 + });
445 + u(o), (i[r] = o);
446 + } else n = !1;
447 + }),
448 + ]
449 + );
450 + case 1:
451 + return t.sent(), n ? [2, 'break'] : [4, o(1)];
452 + case 2:
453 + return t.sent(), [2];
454 + }
455 + });
456 + }),
457 + (m.label = 1);
458 + case 1:
459 + return [5, d()];
460 + case 2:
461 + if ('break' === m.sent()) return [3, 4];
462 + m.label = 3;
463 + case 3:
464 + return [3, 1];
465 + case 4:
466 + return [4, Promise.all(i)];
467 + case 5:
468 + return m.sent(), [2, e];
469 + }
470 + });
471 + });
472 + }
473 + );
474 +}
475 +function W(e, n) {
476 + var t = function (e) {
477 + return k(e)
478 + ? n(e)
479 + : function () {
480 + var t = e();
481 + return a(t) ? t.then(n) : n(t);
482 + };
483 + };
484 + return function (n) {
485 + var r = e(n);
486 + return a(r) ? r.then(t) : t(r);
487 + };
488 +}
489 +function Z() {
490 + var e = window,
491 + n = navigator;
492 + return (
493 + g([
494 + 'MSCSSMatrix' in e,
495 + 'msSetImmediate' in e,
496 + 'msIndexedDB' in e,
497 + 'msMaxTouchPoints' in n,
498 + 'msPointerEnabled' in n,
499 + ]) >= 4
500 + );
501 +}
502 +function S() {
503 + var e = window,
504 + n = navigator;
505 + return (
506 + g(['msWriteProfilerMark' in e, 'MSStream' in e, 'msLaunchUri' in n, 'msSaveBlob' in n]) >= 3 &&
507 + !Z()
508 + );
509 +}
510 +function X() {
511 + var e = window,
512 + n = navigator;
513 + return (
514 + g([
515 + 'webkitPersistentStorage' in n,
516 + 'webkitTemporaryStorage' in n,
517 + 0 === n.vendor.indexOf('Google'),
518 + 'webkitResolveLocalFileSystemURL' in e,
519 + 'BatteryManager' in e,
520 + 'webkitMediaStream' in e,
521 + 'webkitSpeechGrammar' in e,
522 + ]) >= 5
523 + );
524 +}
525 +function x() {
526 + var e = window,
527 + n = navigator;
528 + return (
529 + g([
530 + 'ApplePayError' in e,
531 + 'CSSPrimitiveValue' in e,
532 + 'Counter' in e,
533 + 0 === n.vendor.indexOf('Apple'),
534 + 'getStorageUpdates' in n,
535 + 'WebKitMediaKeys' in e,
536 + ]) >= 4
537 + );
538 +}
539 +function F() {
540 + var e = window;
541 + return (
542 + g([
543 + 'safari' in e,
544 + !('DeviceMotionEvent' in e),
545 + !('ongestureend' in e),
546 + !('standalone' in navigator),
547 + ]) >= 3
548 + );
549 +}
550 +function Y() {
551 + var e,
552 + n,
553 + t = window;
554 + return (
555 + g([
556 + 'buildID' in navigator,
557 + 'MozAppearance' in
558 + (null !==
559 + (n = null === (e = document.documentElement) || void 0 === e ? void 0 : e.style) &&
560 + void 0 !== n
561 + ? n
562 + : {}),
563 + 'onmozfullscreenchange' in t,
564 + 'mozInnerScreenX' in t,
565 + 'CSSMozDocumentRule' in t,
566 + 'CanvasCaptureMediaStream' in t,
567 + ]) >= 4
568 + );
569 +}
570 +function C() {
571 + var e = document;
572 + return (
573 + e.fullscreenElement ||
574 + e.msFullscreenElement ||
575 + e.mozFullScreenElement ||
576 + e.webkitFullscreenElement ||
577 + null
578 + );
579 +}
580 +function R() {
581 + var e = X(),
582 + n = Y();
583 + if (!e && !n) return !1;
584 + var t = window;
585 + return (
586 + g([
587 + 'onorientationchange' in t,
588 + 'orientation' in t,
589 + e && !('SharedWorker' in t),
590 + n && /android/i.test(navigator.appVersion),
591 + ]) >= 2
592 + );
593 +}
594 +function G(e) {
595 + var n = new Error(e);
596 + return (n.name = e), n;
597 +}
598 +function M(e, r, a) {
599 + var i, c, u;
600 + return (
601 + void 0 === a && (a = 50),
602 + n(this, void 0, void 0, function () {
603 + var n, l;
604 + return t(this, function (t) {
605 + switch (t.label) {
606 + case 0:
607 + (n = document), (t.label = 1);
608 + case 1:
609 + return n.body ? [3, 3] : [4, o(a)];
610 + case 2:
611 + return t.sent(), [3, 1];
612 + case 3:
613 + (l = n.createElement('iframe')), (t.label = 4);
614 + case 4:
615 + return (
616 + t.trys.push([4, , 10, 11]),
617 + [
618 + 4,
619 + new Promise(function (e, t) {
620 + var o = !1,
621 + a = function () {
622 + (o = !0), e();
623 + };
624 + (l.onload = a),
625 + (l.onerror = function (e) {
626 + (o = !0), t(e);
627 + });
628 + var i = l.style;
629 + i.setProperty('display', 'block', 'important'),
630 + (i.position = 'absolute'),
631 + (i.top = '0'),
632 + (i.left = '0'),
633 + (i.visibility = 'hidden'),
634 + r && 'srcdoc' in l ? (l.srcdoc = r) : (l.src = 'about:blank'),
635 + n.body.appendChild(l);
636 + var c = function () {
637 + var e, n;
638 + o ||
639 + ('complete' ===
640 + (null ===
641 + (n =
642 + null === (e = l.contentWindow) || void 0 === e ? void 0 : e.document) ||
643 + void 0 === n
644 + ? void 0
645 + : n.readyState)
646 + ? a()
647 + : setTimeout(c, 10));
648 + };
649 + c();
650 + }),
651 + ]
652 + );
653 + case 5:
654 + t.sent(), (t.label = 6);
655 + case 6:
656 + return (
657 + null === (c = null === (i = l.contentWindow) || void 0 === i ? void 0 : i.document) ||
658 + void 0 === c
659 + ? void 0
660 + : c.body
661 + )
662 + ? [3, 8]
663 + : [4, o(a)];
664 + case 7:
665 + return t.sent(), [3, 6];
666 + case 8:
667 + return [4, e(l, l.contentWindow)];
668 + case 9:
669 + return [2, t.sent()];
670 + case 10:
671 + return null === (u = l.parentNode) || void 0 === u || u.removeChild(l), [7];
672 + case 11:
673 + return [2];
674 + }
675 + });
676 + })
677 + );
678 +}
679 +function I(e) {
680 + for (
681 + var n = (function (e) {
682 + for (
683 + var n,
684 + t,
685 + r = "Unexpected syntax '".concat(e, "'"),
686 + o = /^\s*([a-z-]*)(.*)$/i.exec(e),
687 + a = o[1] || void 0,
688 + i = {},
689 + c = /([.:#][\w-]+|\[.+?\])/gi,
690 + u = function (e, n) {
691 + (i[e] = i[e] || []), i[e].push(n);
692 + };
693 + ;
694 +
695 + ) {
696 + var l = c.exec(o[2]);
697 + if (!l) break;
698 + var s = l[0];
699 + switch (s[0]) {
700 + case '.':
701 + u('class', s.slice(1));
702 + break;
703 + case '#':
704 + u('id', s.slice(1));
705 + break;
706 + case '[':
707 + var d = /^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(s);
708 + if (!d) throw new Error(r);
709 + u(
710 + d[1],
711 + null !== (t = null !== (n = d[4]) && void 0 !== n ? n : d[5]) && void 0 !== t
712 + ? t
713 + : '',
714 + );
715 + break;
716 + default:
717 + throw new Error(r);
718 + }
719 + }
720 + return [a, i];
721 + })(e),
722 + t = n[0],
723 + r = n[1],
724 + o = document.createElement(null != t ? t : 'div'),
725 + a = 0,
726 + i = Object.keys(r);
727 + a < i.length;
728 + a++
729 + ) {
730 + var c = i[a],
731 + u = r[c].join(' ');
732 + 'style' === c ? j(o.style, u) : o.setAttribute(c, u);
733 + }
734 + return o;
735 +}
736 +function j(e, n) {
737 + for (var t = 0, r = n.split(';'); t < r.length; t++) {
738 + var o = r[t],
739 + a = /^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(o);
740 + if (a) {
741 + var i = a[1],
742 + c = a[2],
743 + u = a[4];
744 + e.setProperty(i, c, u || '');
745 + }
746 + }
747 +}
748 +var A = ['monospace', 'sans-serif', 'serif'],
749 + J = [
750 + 'sans-serif-thin',
751 + 'ARNO PRO',
752 + 'Agency FB',
753 + 'Arabic Typesetting',
754 + 'Arial Unicode MS',
755 + 'AvantGarde Bk BT',
756 + 'BankGothic Md BT',
757 + 'Batang',
758 + 'Bitstream Vera Sans Mono',
759 + 'Calibri',
760 + 'Century',
761 + 'Century Gothic',
762 + 'Clarendon',
763 + 'EUROSTILE',
764 + 'Franklin Gothic',
765 + 'Futura Bk BT',
766 + 'Futura Md BT',
767 + 'GOTHAM',
768 + 'Gill Sans',
769 + 'HELV',
770 + 'Haettenschweiler',
771 + 'Helvetica Neue',
772 + 'Humanst521 BT',
773 + 'Leelawadee',
774 + 'Letter Gothic',
775 + 'Levenim MT',
776 + 'Lucida Bright',
777 + 'Lucida Sans',
778 + 'Menlo',
779 + 'MS Mincho',
780 + 'MS Outlook',
781 + 'MS Reference Specialty',
782 + 'MS UI Gothic',
783 + 'MT Extra',
784 + 'MYRIAD PRO',
785 + 'Marlett',
786 + 'Meiryo UI',
787 + 'Microsoft Uighur',
788 + 'Minion Pro',
789 + 'Monotype Corsiva',
790 + 'PMingLiU',
791 + 'Pristina',
792 + 'SCRIPTINA',
793 + 'Segoe UI Light',
794 + 'Serifa',
795 + 'SimHei',
796 + 'Small Fonts',
797 + 'Staccato222 BT',
798 + 'TRAJAN PRO',
799 + 'Univers CE 55 Medium',
800 + 'Vrinda',
801 + 'ZWAdobeF',
802 + ];
803 +function H(e) {
804 + return e.toDataURL();
805 +}
806 +var N, P;
807 +function z() {
808 + var e = this;
809 + return (
810 + (function () {
811 + if (void 0 === P) {
812 + var e = function () {
813 + var n = D();
814 + E(n) ? (P = setTimeout(e, 2500)) : ((N = n), (P = void 0));
815 + };
816 + e();
817 + }
818 + })(),
819 + function () {
820 + return n(e, void 0, void 0, function () {
821 + var e;
822 + return t(this, function (n) {
823 + switch (n.label) {
824 + case 0:
825 + return E((e = D()))
826 + ? N
827 + ? [2, r([], N, !0)]
828 + : C()
829 + ? [
830 + 4,
831 + ((t = document),
832 + (
833 + t.exitFullscreen ||
834 + t.msExitFullscreen ||
835 + t.mozCancelFullScreen ||
836 + t.webkitExitFullscreen
837 + ).call(t)),
838 + ]
839 + : [3, 2]
840 + : [3, 2];
841 + case 1:
842 + n.sent(), (e = D()), (n.label = 2);
843 + case 2:
844 + return E(e) || (N = e), [2, e];
845 + }
846 + var t;
847 + });
848 + });
849 + }
850 + );
851 +}
852 +function D() {
853 + var e = screen;
854 + return [
855 + y(p(e.availTop), null),
856 + y(p(e.width) - p(e.availWidth) - y(p(e.availLeft), 0), null),
857 + y(p(e.height) - p(e.availHeight) - y(p(e.availTop), 0), null),
858 + y(p(e.availLeft), null),
859 + ];
860 +}
861 +function E(e) {
862 + for (var n = 0; n < 4; ++n) if (e[n]) return !1;
863 + return !0;
864 +}
865 +function B(e) {
866 + var r;
867 + return n(this, void 0, void 0, function () {
868 + var n, a, i, c, u, l, s;
869 + return t(this, function (t) {
870 + switch (t.label) {
871 + case 0:
872 + for (
873 + n = document, a = n.createElement('div'), i = new Array(e.length), c = {}, T(a), s = 0;
874 + s < e.length;
875 + ++s
876 + )
877 + (u = I(e[s])),
878 + T((l = n.createElement('div'))),
879 + l.appendChild(u),
880 + a.appendChild(l),
881 + (i[s] = u);
882 + t.label = 1;
883 + case 1:
884 + return n.body ? [3, 3] : [4, o(50)];
885 + case 2:
886 + return t.sent(), [3, 1];
887 + case 3:
888 + n.body.appendChild(a);
889 + try {
890 + for (s = 0; s < e.length; ++s) i[s].offsetParent || (c[e[s]] = !0);
891 + } finally {
892 + null === (r = a.parentNode) || void 0 === r || r.removeChild(a);
893 + }
894 + return [2, c];
895 + }
896 + });
897 + });
898 +}
899 +function T(e) {
900 + e.style.setProperty('display', 'block', 'important');
901 +}
902 +function O(e) {
903 + return matchMedia('(inverted-colors: '.concat(e, ')')).matches;
904 +}
905 +function _(e) {
906 + return matchMedia('(forced-colors: '.concat(e, ')')).matches;
907 +}
908 +function Q(e) {
909 + return matchMedia('(prefers-contrast: '.concat(e, ')')).matches;
910 +}
911 +function U(e) {
912 + return matchMedia('(prefers-reduced-motion: '.concat(e, ')')).matches;
913 +}
914 +function K(e) {
915 + return matchMedia('(dynamic-range: '.concat(e, ')')).matches;
916 +}
917 +var q = Math,
918 + $ = function () {
919 + return 0;
920 + };
921 +var ee = {
922 + default: [],
923 + apple: [{ font: '-apple-system-body' }],
924 + serif: [{ fontFamily: 'serif' }],
925 + sans: [{ fontFamily: 'sans-serif' }],
926 + mono: [{ fontFamily: 'monospace' }],
927 + min: [{ fontSize: '1px' }],
928 + system: [{ fontFamily: 'system-ui' }],
929 +};
930 +var ne = {
931 + fonts: function () {
932 + return M(function (e, n) {
933 + var t = n.document,
934 + r = t.body;
935 + r.style.fontSize = '48px';
936 + var o = t.createElement('div'),
937 + a = {},
938 + i = {},
939 + c = function (e) {
940 + var n = t.createElement('span'),
941 + r = n.style;
942 + return (
943 + (r.position = 'absolute'),
944 + (r.top = '0'),
945 + (r.left = '0'),
946 + (r.fontFamily = e),
947 + (n.textContent = 'mmMwWLliI0O&1'),
948 + o.appendChild(n),
949 + n
950 + );
951 + },
952 + u = A.map(c),
953 + l = (function () {
954 + for (
955 + var e = {},
956 + n = function (n) {
957 + e[n] = A.map(function (e) {
958 + return (function (e, n) {
959 + return c("'".concat(e, "',").concat(n));
960 + })(n, e);
961 + });
962 + },
963 + t = 0,
964 + r = J;
965 + t < r.length;
966 + t++
967 + ) {
968 + n(r[t]);
969 + }
970 + return e;
971 + })();
972 + r.appendChild(o);
973 + for (var s = 0; s < A.length; s++)
974 + (a[A[s]] = u[s].offsetWidth), (i[A[s]] = u[s].offsetHeight);
975 + return J.filter(function (e) {
976 + return (
977 + (n = l[e]),
978 + A.some(function (e, t) {
979 + return n[t].offsetWidth !== a[e] || n[t].offsetHeight !== i[e];
980 + })
981 + );
982 + var n;
983 + });
984 + });
985 + },
986 + domBlockers: function (e) {
987 + var r = (void 0 === e ? {} : e).debug;
988 + return n(this, void 0, void 0, function () {
989 + var e, n, o, a, i;
990 + return t(this, function (t) {
991 + switch (t.label) {
992 + case 0:
993 + return x() || R()
994 + ? ((c = atob),
995 + (e = {
996 + abpIndo: [
997 + '#Iklan-Melayang',
998 + '#Kolom-Iklan-728',
999 + '#SidebarIklan-wrapper',
1000 + c('YVt0aXRsZT0iN25hZ2EgcG9rZXIiIGld'),
1001 + '[title="ALIENBOLA" i]',
1002 + ],
1003 + abpvn: [
1004 + '#quangcaomb',
1005 + c('Lmlvc0Fkc2lvc0Fkcy1sYXlvdXQ='),
1006 + '.quangcao',
1007 + c('W2hyZWZePSJodHRwczovL3I4OC52bi8iXQ=='),
1008 + c('W2hyZWZePSJodHRwczovL3piZXQudm4vIl0='),
1009 + ],
1010 + adBlockFinland: [
1011 + '.mainostila',
1012 + c('LnNwb25zb3JpdA=='),
1013 + '.ylamainos',
1014 + c('YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd'),
1015 + c('YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd'),
1016 + ],
1017 + adBlockPersian: [
1018 + '#navbar_notice_50',
1019 + '.kadr',
1020 + 'TABLE[width="140px"]',
1021 + '#divAgahi',
1022 + c('I2FkMl9pbmxpbmU='),
1023 + ],
1024 + adBlockWarningRemoval: [
1025 + '#adblock-honeypot',
1026 + '.adblocker-root',
1027 + '.wp_adblock_detect',
1028 + c('LmhlYWRlci1ibG9ja2VkLWFk'),
1029 + c('I2FkX2Jsb2NrZXI='),
1030 + ],
1031 + adGuardAnnoyances: [
1032 + 'amp-embed[type="zen"]',
1033 + '.hs-sosyal',
1034 + '#cookieconsentdiv',
1035 + 'div[class^="app_gdpr"]',
1036 + '.as-oil',
1037 + ],
1038 + adGuardBase: [
1039 + '.BetterJsPopOverlay',
1040 + c('I2FkXzMwMFgyNTA='),
1041 + c('I2Jhbm5lcmZsb2F0MjI='),
1042 + c('I2FkLWJhbm5lcg=='),
1043 + c('I2NhbXBhaWduLWJhbm5lcg=='),
1044 + ],
1045 + adGuardChinese: [
1046 + c('LlppX2FkX2FfSA=='),
1047 + c('YVtocmVmKj0iL29kMDA1LmNvbSJd'),
1048 + c('YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd'),
1049 + '.qq_nr_lad',
1050 + '#widget-quan',
1051 + ],
1052 + adGuardFrench: [
1053 + c('I2Jsb2NrLXZpZXdzLWFkcy1zaWRlYmFyLWJsb2NrLWJsb2Nr'),
1054 + '#pavePub',
1055 + c('LmFkLWRlc2t0b3AtcmVjdGFuZ2xl'),
1056 + '.mobile_adhesion',
1057 + '.widgetadv',
1058 + ],
1059 + adGuardGerman: [
1060 + c('LmJhbm5lcml0ZW13ZXJidW5nX2hlYWRfMQ=='),
1061 + c('LmJveHN0YXJ0d2VyYnVuZw=='),
1062 + c('LndlcmJ1bmcz'),
1063 + c('YVtocmVmXj0iaHR0cDovL3d3dy5laXMuZGUvaW5kZXgucGh0bWw/cmVmaWQ9Il0='),
1064 + c('YVtocmVmXj0iaHR0cHM6Ly93d3cudGlwaWNvLmNvbS8/YWZmaWxpYXRlSWQ9Il0='),
1065 + ],
1066 + adGuardJapanese: [
1067 + '#kauli_yad_1',
1068 + c('YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0='),
1069 + c('Ll9wb3BJbl9pbmZpbml0ZV9hZA=='),
1070 + c('LmFkZ29vZ2xl'),
1071 + c('LmFkX3JlZ3VsYXIz'),
1072 + ],
1073 + adGuardMobile: [
1074 + c('YW1wLWF1dG8tYWRz'),
1075 + c('LmFtcF9hZA=='),
1076 + 'amp-embed[type="24smi"]',
1077 + '#mgid_iframe1',
1078 + c('I2FkX2ludmlld19hcmVh'),
1079 + ],
1080 + adGuardRussian: [
1081 + c('YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0='),
1082 + c('LnJlY2xhbWE='),
1083 + 'div[id^="smi2adblock"]',
1084 + c('ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd'),
1085 + c('I2FkX3NxdWFyZQ=='),
1086 + ],
1087 + adGuardSocial: [
1088 + c('YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0='),
1089 + c('YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0='),
1090 + '.etsy-tweet',
1091 + '#inlineShare',
1092 + '.popup-social',
1093 + ],
1094 + adGuardSpanishPortuguese: [
1095 + '#barraPublicidade',
1096 + '#Publicidade',
1097 + '#publiEspecial',
1098 + '#queTooltip',
1099 + c('W2hyZWZePSJodHRwOi8vYWRzLmdsaXNwYS5jb20vIl0='),
1100 + ],
1101 + adGuardTrackingProtection: [
1102 + '#qoo-counter',
1103 + c('YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=='),
1104 + c('YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0='),
1105 + c('YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=='),
1106 + '#top100counter',
1107 + ],
1108 + adGuardTurkish: [
1109 + '#backkapat',
1110 + c('I3Jla2xhbWk='),
1111 + c('YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0='),
1112 + c('YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd'),
1113 + c('YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ=='),
1114 + ],
1115 + bulgarian: [
1116 + c('dGQjZnJlZW5ldF90YWJsZV9hZHM='),
1117 + '#ea_intext_div',
1118 + '.lapni-pop-over',
1119 + '#xenium_hot_offers',
1120 + c('I25ld0Fk'),
1121 + ],
1122 + easyList: [
1123 + c('I0FEX0NPTlRST0xfMjg='),
1124 + c('LnNlY29uZC1wb3N0LWFkcy13cmFwcGVy'),
1125 + '.universalboxADVBOX03',
1126 + c('LmFkdmVydGlzZW1lbnQtNzI4eDkw'),
1127 + c('LnNxdWFyZV9hZHM='),
1128 + ],
1129 + easyListChina: [
1130 + c('YVtocmVmKj0iLndlbnNpeHVldGFuZy5jb20vIl0='),
1131 + c('LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=='),
1132 + c('LmZyb250cGFnZUFkdk0='),
1133 + '#taotaole',
1134 + '#aafoot.top_box',
1135 + ],
1136 + easyListCookie: [
1137 + '#AdaCompliance.app-notice',
1138 + '.text-center.rgpd',
1139 + '.panel--cookie',
1140 + '.js-cookies-andromeda',
1141 + '.elxtr-consent',
1142 + ],
1143 + easyListCzechSlovak: [
1144 + '#onlajny-stickers',
1145 + c('I3Jla2xhbW5pLWJveA=='),
1146 + c('LnJla2xhbWEtbWVnYWJvYXJk'),
1147 + '.sklik',
1148 + c('W2lkXj0ic2tsaWtSZWtsYW1hIl0='),
1149 + ],
1150 + easyListDutch: [
1151 + c('I2FkdmVydGVudGll'),
1152 + c('I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=='),
1153 + '.adstekst',
1154 + c('YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0='),
1155 + '#semilo-lrectangle',
1156 + ],
1157 + easyListGermany: [
1158 + c('I0FkX1dpbjJkYXk='),
1159 + c('I3dlcmJ1bmdzYm94MzAw'),
1160 + c('YVtocmVmXj0iaHR0cDovL3d3dy5yb3RsaWNodGthcnRlaS5jb20vP3NjPSJd'),
1161 + c('I3dlcmJ1bmdfd2lkZXNreXNjcmFwZXJfc2NyZWVu'),
1162 + c('YVtocmVmXj0iaHR0cDovL2xhbmRpbmcucGFya3BsYXR6a2FydGVpLmNvbS8/YWc9Il0='),
1163 + ],
1164 + easyListItaly: [
1165 + c('LmJveF9hZHZfYW5udW5jaQ=='),
1166 + '.sb-box-pubbliredazionale',
1167 + c('YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd'),
1168 + c('YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd'),
1169 + c('YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ=='),
1170 + ],
1171 + easyListLithuania: [
1172 + c('LnJla2xhbW9zX3RhcnBhcw=='),
1173 + c('LnJla2xhbW9zX251b3JvZG9z'),
1174 + c('aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd'),
1175 + c('aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd'),
1176 + c('aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd'),
1177 + ],
1178 + estonian: [c('QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==')],
1179 + fanboyAnnoyances: [
1180 + '#feedback-tab',
1181 + '#taboola-below-article',
1182 + '.feedburnerFeedBlock',
1183 + '.widget-feedburner-counter',
1184 + '[title="Subscribe to our blog"]',
1185 + ],
1186 + fanboyAntiFacebook: ['.util-bar-module-firefly-visible'],
1187 + fanboyEnhancedTrackers: [
1188 + '.open.pushModal',
1189 + '#issuem-leaky-paywall-articles-zero-remaining-nag',
1190 + '#sovrn_container',
1191 + 'div[class$="-hide"][zoompage-fontsize][style="display: block;"]',
1192 + '.BlockNag__Card',
1193 + ],
1194 + fanboySocial: [
1195 + '.td-tags-and-social-wrapper-box',
1196 + '.twitterContainer',
1197 + '.youtube-social',
1198 + 'a[title^="Like us on Facebook"]',
1199 + 'img[alt^="Share on Digg"]',
1200 + ],
1201 + frellwitSwedish: [
1202 + c('YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=='),
1203 + c('YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=='),
1204 + 'article.category-samarbete',
1205 + c('ZGl2LmhvbGlkQWRz'),
1206 + 'ul.adsmodern',
1207 + ],
1208 + greekAdBlock: [
1209 + c('QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd'),
1210 + c('QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=='),
1211 + c('QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd'),
1212 + 'DIV.agores300',
1213 + 'TABLE.advright',
1214 + ],
1215 + hungarian: [
1216 + '#cemp_doboz',
1217 + '.optimonk-iframe-container',
1218 + c('LmFkX19tYWlu'),
1219 + c('W2NsYXNzKj0iR29vZ2xlQWRzIl0='),
1220 + '#hirdetesek_box',
1221 + ],
1222 + iDontCareAboutCookies: [
1223 + '.alert-info[data-block-track*="CookieNotice"]',
1224 + '.ModuleTemplateCookieIndicator',
1225 + '.o--cookies--container',
1226 + '.cookie-msg-info-container',
1227 + '#cookies-policy-sticky',
1228 + ],
1229 + icelandicAbp: [
1230 + c('QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ=='),
1231 + ],
1232 + latvian: [
1233 + c(
1234 + 'YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0=',
1235 + ),
1236 + c(
1237 + 'YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==',
1238 + ),
1239 + ],
1240 + listKr: [
1241 + c('YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0='),
1242 + c('I2xpdmVyZUFkV3JhcHBlcg=='),
1243 + c('YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=='),
1244 + c('aW5zLmZhc3R2aWV3LWFk'),
1245 + '.revenue_unit_item.dable',
1246 + ],
1247 + listeAr: [
1248 + c('LmdlbWluaUxCMUFk'),
1249 + '.right-and-left-sponsers',
1250 + c('YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=='),
1251 + c('YVtocmVmKj0iYm9vcmFxLm9yZyJd'),
1252 + c('YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd'),
1253 + ],
1254 + listeFr: [
1255 + c('YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=='),
1256 + c('I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=='),
1257 + c('YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0='),
1258 + '.site-pub-interstitiel',
1259 + 'div[id^="crt-"][data-criteo-id]',
1260 + ],
1261 + officialPolish: [
1262 + '#ceneo-placeholder-ceneo-12',
1263 + c('W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd'),
1264 + c('YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=='),
1265 + c('YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=='),
1266 + c('ZGl2I3NrYXBpZWNfYWQ='),
1267 + ],
1268 + ro: [
1269 + c('YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd'),
1270 + 'a[href^="/magazin/"]',
1271 + c('YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd'),
1272 + c('YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0='),
1273 + c('YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd'),
1274 + ],
1275 + ruAd: [
1276 + c('YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd'),
1277 + c('YVtocmVmKj0iLy91dGltZy5ydS8iXQ=='),
1278 + c('YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0='),
1279 + '#pgeldiz',
1280 + '.yandex-rtb-block',
1281 + ],
1282 + thaiAds: [
1283 + 'a[href*=macau-uta-popup]',
1284 + c('I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=='),
1285 + c('LmFkczMwMHM='),
1286 + '.bumq',
1287 + '.img-kosana',
1288 + ],
1289 + webAnnoyancesUltralist: [
1290 + '#mod-social-share-2',
1291 + '#social-tools',
1292 + c('LmN0cGwtZnVsbGJhbm5lcg=='),
1293 + '.zergnet-recommend',
1294 + '.yt.btn-link.btn-md.btn',
1295 + ],
1296 + }),
1297 + (n = Object.keys(e)),
1298 + [
1299 + 4,
1300 + B(
1301 + (i = []).concat.apply(
1302 + i,
1303 + n.map(function (n) {
1304 + return e[n];
1305 + }),
1306 + ),
1307 + ),
1308 + ])
1309 + : [2, void 0];
1310 + case 1:
1311 + return (
1312 + (o = t.sent()),
1313 + r &&
1314 + (function (e, n) {
1315 + for (
1316 + var t = 'DOM blockers debug:\n```', r = 0, o = Object.keys(e);
1317 + r < o.length;
1318 + r++
1319 + ) {
1320 + var a = o[r];
1321 + t += '\n'.concat(a, ':');
1322 + for (var i = 0, c = e[a]; i < c.length; i++) {
1323 + var u = c[i];
1324 + t += '\n '.concat(n[u] ? '🚫' : '➡️', ' ').concat(u);
1325 + }
1326 + }
1327 + console.log(''.concat(t, '\n```'));
1328 + })(e, o),
1329 + (a = n.filter(function (n) {
1330 + var t = e[n];
1331 + return (
1332 + g(
1333 + t.map(function (e) {
1334 + return o[e];
1335 + }),
1336 + ) >
1337 + 0.6 * t.length
1338 + );
1339 + })).sort(),
1340 + [2, a]
1341 + );
1342 + }
1343 + var c;
1344 + });
1345 + });
1346 + },
1347 + fontPreferences: function () {
1348 + return (function (e, n) {
1349 + void 0 === n && (n = 4e3);
1350 + return M(function (t, o) {
1351 + var a = o.document,
1352 + i = a.body,
1353 + c = i.style;
1354 + (c.width = ''.concat(n, 'px')),
1355 + (c.webkitTextSizeAdjust = c.textSizeAdjust = 'none'),
1356 + X()
1357 + ? (i.style.zoom = ''.concat(1 / o.devicePixelRatio))
1358 + : x() && (i.style.zoom = 'reset');
1359 + var u = a.createElement('div');
1360 + return (
1361 + (u.textContent = r([], Array((n / 20) << 0), !0)
1362 + .map(function () {
1363 + return 'word';
1364 + })
1365 + .join(' ')),
1366 + i.appendChild(u),
1367 + e(a, i)
1368 + );
1369 + }, '<!doctype html><html><head><meta name="viewport" content="width=device-width, initial-scale=1">');
1370 + })(function (e, n) {
1371 + for (var t = {}, r = {}, o = 0, a = Object.keys(ee); o < a.length; o++) {
1372 + var i = a[o],
1373 + c = ee[i],
1374 + u = c[0],
1375 + l = void 0 === u ? {} : u,
1376 + s = c[1],
1377 + d = void 0 === s ? 'mmMwWLliI0fiflO&1' : s,
1378 + m = e.createElement('span');
1379 + (m.textContent = d), (m.style.whiteSpace = 'nowrap');
1380 + for (var f = 0, v = Object.keys(l); f < v.length; f++) {
1381 + var h = v[f],
1382 + b = l[h];
1383 + void 0 !== b && (m.style[h] = b);
1384 + }
1385 + (t[i] = m), n.appendChild(e.createElement('br')), n.appendChild(m);
1386 + }
1387 + for (var p = 0, y = Object.keys(ee); p < y.length; p++) {
1388 + r[(i = y[p])] = t[i].getBoundingClientRect().width;
1389 + }
1390 + return r;
1391 + });
1392 + },
1393 + audio: function () {
1394 + var e = window,
1395 + n = e.OfflineAudioContext || e.webkitOfflineAudioContext;
1396 + if (!n) return -2;
1397 + if (
1398 + x() &&
1399 + !F() &&
1400 + !(function () {
1401 + var e = window;
1402 + return (
1403 + g([
1404 + 'DOMRectList' in e,
1405 + 'RTCPeerConnectionIceEvent' in e,
1406 + 'SVGGeometryElement' in e,
1407 + 'ontransitioncancel' in e,
1408 + ]) >= 3
1409 + );
1410 + })()
1411 + )
1412 + return -1;
1413 + var t = new n(1, 5e3, 44100),
1414 + r = t.createOscillator();
1415 + (r.type = 'triangle'), (r.frequency.value = 1e4);
1416 + var o = t.createDynamicsCompressor();
1417 + (o.threshold.value = -50),
1418 + (o.knee.value = 40),
1419 + (o.ratio.value = 12),
1420 + (o.attack.value = 0),
1421 + (o.release.value = 0.25),
1422 + r.connect(o),
1423 + o.connect(t.destination),
1424 + r.start(0);
1425 + var a = (function (e) {
1426 + var n = 3,
1427 + t = 500,
1428 + r = 500,
1429 + o = 5e3,
1430 + a = function () {};
1431 + return [
1432 + new Promise(function (i, c) {
1433 + var u = !1,
1434 + l = 0,
1435 + s = 0;
1436 + e.oncomplete = function (e) {
1437 + return i(e.renderedBuffer);
1438 + };
1439 + var d = function () {
1440 + setTimeout(function () {
1441 + return c(G('timeout'));
1442 + }, Math.min(r, s + o - Date.now()));
1443 + },
1444 + m = function () {
1445 + try {
1446 + switch ((e.startRendering(), e.state)) {
1447 + case 'running':
1448 + (s = Date.now()), u && d();
1449 + break;
1450 + case 'suspended':
1451 + document.hidden || l++, u && l >= n ? c(G('suspended')) : setTimeout(m, t);
1452 + }
1453 + } catch (r) {
1454 + c(r);
1455 + }
1456 + };
1457 + m(),
1458 + (a = function () {
1459 + u || ((u = !0), s > 0 && d());
1460 + });
1461 + }),
1462 + a,
1463 + ];
1464 + })(t),
1465 + i = a[0],
1466 + c = a[1],
1467 + l = i.then(
1468 + function (e) {
1469 + return (function (e) {
1470 + for (var n = 0, t = 0; t < e.length; ++t) n += Math.abs(e[t]);
1471 + return n;
1472 + })(e.getChannelData(0).subarray(4500));
1473 + },
1474 + function (e) {
1475 + if ('timeout' === e.name || 'suspended' === e.name) return -3;
1476 + throw e;
1477 + },
1478 + );
1479 + return (
1480 + u(l),
1481 + function () {
1482 + return c(), l;
1483 + }
1484 + );
1485 + },
1486 + screenFrame: function () {
1487 + var e = this,
1488 + r = z();
1489 + return function () {
1490 + return n(e, void 0, void 0, function () {
1491 + var e, n;
1492 + return t(this, function (t) {
1493 + switch (t.label) {
1494 + case 0:
1495 + return [4, r()];
1496 + case 1:
1497 + return (
1498 + (e = t.sent()),
1499 + [
1500 + 2,
1501 + [
1502 + (n = function (e) {
1503 + return null === e ? null : w(e, 10);
1504 + })(e[0]),
1505 + n(e[1]),
1506 + n(e[2]),
1507 + n(e[3]),
1508 + ],
1509 + ]
1510 + );
1511 + }
1512 + });
1513 + });
1514 + };
1515 + },
1516 + osCpu: function () {
1517 + return navigator.oscpu;
1518 + },
1519 + languages: function () {
1520 + var e,
1521 + n = navigator,
1522 + t = [],
1523 + r = n.language || n.userLanguage || n.browserLanguage || n.systemLanguage;
1524 + if ((void 0 !== r && t.push([r]), Array.isArray(n.languages)))
1525 + (X() &&
1526 + g([
1527 + !('MediaSettingsRange' in (e = window)),
1528 + 'RTCEncodedAudioFrame' in e,
1529 + '' + e.Intl == '[object Intl]',
1530 + '' + e.Reflect == '[object Reflect]',
1531 + ]) >= 3) ||
1532 + t.push(n.languages);
1533 + else if ('string' == typeof n.languages) {
1534 + var o = n.languages;
1535 + o && t.push(o.split(','));
1536 + }
1537 + return t;
1538 + },
1539 + colorDepth: function () {
1540 + return window.screen.colorDepth;
1541 + },
1542 + deviceMemory: function () {
1543 + return y(p(navigator.deviceMemory), void 0);
1544 + },
1545 + screenResolution: function () {
1546 + var e = screen,
1547 + n = function (e) {
1548 + return y(b(e), null);
1549 + },
1550 + t = [n(e.width), n(e.height)];
1551 + return t.sort().reverse(), t;
1552 + },
1553 + hardwareConcurrency: function () {
1554 + return y(b(navigator.hardwareConcurrency), void 0);
1555 + },
1556 + timezone: function () {
1557 + var e,
1558 + n = null === (e = window.Intl) || void 0 === e ? void 0 : e.DateTimeFormat;
1559 + if (n) {
1560 + var t = new n().resolvedOptions().timeZone;
1561 + if (t) return t;
1562 + }
1563 + var r,
1564 + o =
1565 + ((r = new Date().getFullYear()),
1566 + -Math.max(
1567 + p(new Date(r, 0, 1).getTimezoneOffset()),
1568 + p(new Date(r, 6, 1).getTimezoneOffset()),
1569 + ));
1570 + return 'UTC'.concat(o >= 0 ? '+' : '').concat(Math.abs(o));
1571 + },
1572 + sessionStorage: function () {
1573 + try {
1574 + return !!window.sessionStorage;
1575 + } catch (e) {
1576 + return !0;
1577 + }
1578 + },
1579 + localStorage: function () {
1580 + try {
1581 + return !!window.localStorage;
1582 + } catch (e) {
1583 + return !0;
1584 + }
1585 + },
1586 + indexedDB: function () {
1587 + if (!Z() && !S())
1588 + try {
1589 + return !!window.indexedDB;
1590 + } catch (e) {
1591 + return !0;
1592 + }
1593 + },
1594 + openDatabase: function () {
1595 + return !!window.openDatabase;
1596 + },
1597 + cpuClass: function () {
1598 + return navigator.cpuClass;
1599 + },
1600 + platform: function () {
1601 + var e = navigator.platform;
1602 + return 'MacIntel' === e && x() && !F()
1603 + ? (function () {
1604 + if ('iPad' === navigator.platform) return !0;
1605 + var e = screen,
1606 + n = e.width / e.height;
1607 + return (
1608 + g([
1609 + 'MediaSource' in window,
1610 + !!Element.prototype.webkitRequestFullscreen,
1611 + n > 0.65 && n < 1.53,
1612 + ]) >= 2
1613 + );
1614 + })()
1615 + ? 'iPad'
1616 + : 'iPhone'
1617 + : e;
1618 + },
1619 + plugins: function () {
1620 + var e = navigator.plugins;
1621 + if (e) {
1622 + for (var n = [], t = 0; t < e.length; ++t) {
1623 + var r = e[t];
1624 + if (r) {
1625 + for (var o = [], a = 0; a < r.length; ++a) {
1626 + var i = r[a];
1627 + o.push({ type: i.type, suffixes: i.suffixes });
1628 + }
1629 + n.push({ name: r.name, description: r.description, mimeTypes: o });
1630 + }
1631 + }
1632 + return n;
1633 + }
1634 + },
1635 + canvas: function () {
1636 + var e,
1637 + n,
1638 + t = !1,
1639 + r = (function () {
1640 + var e = document.createElement('canvas');
1641 + return (e.width = 1), (e.height = 1), [e, e.getContext('2d')];
1642 + })(),
1643 + o = r[0],
1644 + a = r[1];
1645 + if (
1646 + (function (e, n) {
1647 + return !(!n || !e.toDataURL);
1648 + })(o, a)
1649 + ) {
1650 + (t = (function (e) {
1651 + return e.rect(0, 0, 10, 10), e.rect(2, 2, 6, 6), !e.isPointInPath(5, 5, 'evenodd');
1652 + })(a)),
1653 + (function (e, n) {
1654 + (e.width = 240),
1655 + (e.height = 60),
1656 + (n.textBaseline = 'alphabetic'),
1657 + (n.fillStyle = '#f60'),
1658 + n.fillRect(100, 1, 62, 20),
1659 + (n.fillStyle = '#069'),
1660 + (n.font = '11pt "Times New Roman"');
1661 + var t = 'Cwm fjordbank gly '.concat(String.fromCharCode(55357, 56835));
1662 + n.fillText(t, 2, 15),
1663 + (n.fillStyle = 'rgba(102, 204, 0, 0.2)'),
1664 + (n.font = '18pt Arial'),
1665 + n.fillText(t, 4, 45);
1666 + })(o, a);
1667 + var i = H(o);
1668 + i !== H(o)
1669 + ? (e = n = 'unstable')
1670 + : ((n = i),
1671 + (function (e, n) {
1672 + (e.width = 122), (e.height = 110), (n.globalCompositeOperation = 'multiply');
1673 + for (
1674 + var t = 0,
1675 + r = [
1676 + ['#f2f', 40, 40],
1677 + ['#2ff', 80, 40],
1678 + ['#ff2', 60, 80],
1679 + ];
1680 + t < r.length;
1681 + t++
1682 + ) {
1683 + var o = r[t],
1684 + a = o[0],
1685 + i = o[1],
1686 + c = o[2];
1687 + (n.fillStyle = a),
1688 + n.beginPath(),
1689 + n.arc(i, c, 40, 0, 2 * Math.PI, !0),
1690 + n.closePath(),
1691 + n.fill();
1692 + }
1693 + (n.fillStyle = '#f9c'),
1694 + n.arc(60, 60, 60, 0, 2 * Math.PI, !0),
1695 + n.arc(60, 60, 20, 0, 2 * Math.PI, !0),
1696 + n.fill('evenodd');
1697 + })(o, a),
1698 + (e = H(o)));
1699 + } else e = n = '';
1700 + return { winding: t, geometry: e, text: n };
1701 + },
1702 + touchSupport: function () {
1703 + var e,
1704 + n = navigator,
1705 + t = 0;
1706 + void 0 !== n.maxTouchPoints
1707 + ? (t = b(n.maxTouchPoints))
1708 + : void 0 !== n.msMaxTouchPoints && (t = n.msMaxTouchPoints);
1709 + try {
1710 + document.createEvent('TouchEvent'), (e = !0);
1711 + } catch (r) {
1712 + e = !1;
1713 + }
1714 + return { maxTouchPoints: t, touchEvent: e, touchStart: 'ontouchstart' in window };
1715 + },
1716 + vendor: function () {
1717 + return navigator.vendor || '';
1718 + },
1719 + vendorFlavors: function () {
1720 + for (
1721 + var e = [],
1722 + n = 0,
1723 + t = [
1724 + 'chrome',
1725 + 'safari',
1726 + '__crWeb',
1727 + '__gCrWeb',
1728 + 'yandex',
1729 + '__yb',
1730 + '__ybro',
1731 + '__firefox__',
1732 + '__edgeTrackingPreventionStatistics',
1733 + 'webkit',
1734 + 'oprt',
1735 + 'samsungAr',
1736 + 'ucweb',
1737 + 'UCShellJava',
1738 + 'puffinDevice',
1739 + ];
1740 + n < t.length;
1741 + n++
1742 + ) {
1743 + var r = t[n],
1744 + o = window[r];
1745 + o && 'object' == typeof o && e.push(r);
1746 + }
1747 + return e.sort();
1748 + },
1749 + cookiesEnabled: function () {
1750 + var e = document;
1751 + try {
1752 + e.cookie = 'cookietest=1; SameSite=Strict;';
1753 + var n = -1 !== e.cookie.indexOf('cookietest=');
1754 + return (e.cookie = 'cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT'), n;
1755 + } catch (t) {
1756 + return !1;
1757 + }
1758 + },
1759 + colorGamut: function () {
1760 + for (var e = 0, n = ['rec2020', 'p3', 'srgb']; e < n.length; e++) {
1761 + var t = n[e];
1762 + if (matchMedia('(color-gamut: '.concat(t, ')')).matches) return t;
1763 + }
1764 + },
1765 + invertedColors: function () {
1766 + return !!O('inverted') || (!O('none') && void 0);
1767 + },
1768 + forcedColors: function () {
1769 + return !!_('active') || (!_('none') && void 0);
1770 + },
1771 + monochrome: function () {
1772 + if (matchMedia('(min-monochrome: 0)').matches) {
1773 + for (var e = 0; e <= 100; ++e)
1774 + if (matchMedia('(max-monochrome: '.concat(e, ')')).matches) return e;
1775 + throw new Error('Too high value');
1776 + }
1777 + },
1778 + contrast: function () {
1779 + return Q('no-preference')
1780 + ? 0
1781 + : Q('high') || Q('more')
1782 + ? 1
1783 + : Q('low') || Q('less')
1784 + ? -1
1785 + : Q('forced')
1786 + ? 10
1787 + : void 0;
1788 + },
1789 + reducedMotion: function () {
1790 + return !!U('reduce') || (!U('no-preference') && void 0);
1791 + },
1792 + hdr: function () {
1793 + return !!K('high') || (!K('standard') && void 0);
1794 + },
1795 + math: function () {
1796 + var e,
1797 + n = q.acos || $,
1798 + t = q.acosh || $,
1799 + r = q.asin || $,
1800 + o = q.asinh || $,
1801 + a = q.atanh || $,
1802 + i = q.atan || $,
1803 + c = q.sin || $,
1804 + u = q.sinh || $,
1805 + l = q.cos || $,
1806 + s = q.cosh || $,
1807 + d = q.tan || $,
1808 + m = q.tanh || $,
1809 + f = q.exp || $,
1810 + v = q.expm1 || $,
1811 + h = q.log1p || $;
1812 + return {
1813 + acos: n(0.12312423423423424),
1814 + acosh: t(1e308),
1815 + acoshPf: ((e = 1e154), q.log(e + q.sqrt(e * e - 1))),
1816 + asin: r(0.12312423423423424),
1817 + asinh: o(1),
1818 + asinhPf: (function (e) {
1819 + return q.log(e + q.sqrt(e * e + 1));
1820 + })(1),
1821 + atanh: a(0.5),
1822 + atanhPf: (function (e) {
1823 + return q.log((1 + e) / (1 - e)) / 2;
1824 + })(0.5),
1825 + atan: i(0.5),
1826 + sin: c(-1e300),
1827 + sinh: u(1),
1828 + sinhPf: (function (e) {
1829 + return q.exp(e) - 1 / q.exp(e) / 2;
1830 + })(1),
1831 + cos: l(10.000000000123),
1832 + cosh: s(1),
1833 + coshPf: (function (e) {
1834 + return (q.exp(e) + 1 / q.exp(e)) / 2;
1835 + })(1),
1836 + tan: d(-1e300),
1837 + tanh: m(1),
1838 + tanhPf: (function (e) {
1839 + return (q.exp(2 * e) - 1) / (q.exp(2 * e) + 1);
1840 + })(1),
1841 + exp: f(1),
1842 + expm1: v(1),
1843 + expm1Pf: (function (e) {
1844 + return q.exp(e) - 1;
1845 + })(1),
1846 + log1p: h(10),
1847 + log1pPf: (function (e) {
1848 + return q.log(1 + e);
1849 + })(10),
1850 + powPI: (function (e) {
1851 + return q.pow(q.PI, e);
1852 + })(-100),
1853 + };
1854 + },
1855 + videoCard: function () {
1856 + var e,
1857 + n = document.createElement('canvas'),
1858 + t =
1859 + null !== (e = n.getContext('webgl')) && void 0 !== e
1860 + ? e
1861 + : n.getContext('experimental-webgl');
1862 + if (t && 'getExtension' in t) {
1863 + var r = t.getExtension('WEBGL_debug_renderer_info');
1864 + if (r)
1865 + return {
1866 + vendor: (t.getParameter(r.UNMASKED_VENDOR_WEBGL) || '').toString(),
1867 + renderer: (t.getParameter(r.UNMASKED_RENDERER_WEBGL) || '').toString(),
1868 + };
1869 + }
1870 + },
1871 + pdfViewerEnabled: function () {
1872 + return navigator.pdfViewerEnabled;
1873 + },
1874 + architecture: function () {
1875 + var e = new Float32Array(1),
1876 + n = new Uint8Array(e.buffer);
1877 + return (e[0] = 1 / 0), (e[0] = e[0] - e[0]), n[3];
1878 + },
1879 +};
1880 +function te(e) {
1881 + var n = (function (e) {
1882 + if (R()) return 0.4;
1883 + if (x()) return F() ? 0.5 : 0.3;
1884 + var n = e.platform.value || '';
1885 + if (/^Win/.test(n)) return 0.6;
1886 + if (/^Mac/.test(n)) return 0.5;
1887 + return 0.7;
1888 + })(e),
1889 + t = (function (e) {
1890 + return w(0.99 + 0.01 * e, 1e-4);
1891 + })(n);
1892 + return {
1893 + score: n,
1894 + comment: '$ if upgrade to Pro: https://fpjs.dev/pro'.replace(/\$/g, ''.concat(t)),
1895 + };
1896 +}
1897 +function re(n) {
1898 + return JSON.stringify(
1899 + n,
1900 + function (n, t) {
1901 + return t instanceof Error
1902 + ? e(
1903 + {
1904 + name: (r = t).name,
1905 + message: r.message,
1906 + stack: null === (o = r.stack) || void 0 === o ? void 0 : o.split('\n'),
1907 + },
1908 + r,
1909 + )
1910 + : t;
1911 + var r, o;
1912 + },
1913 + 2,
1914 + );
1915 +}
1916 +function oe(e) {
1917 + return h(
1918 + (function (e) {
1919 + for (var n = '', t = 0, r = Object.keys(e).sort(); t < r.length; t++) {
1920 + var o = r[t],
1921 + a = e[o],
1922 + i = a.error ? 'error' : JSON.stringify(a.value);
1923 + n += ''
1924 + .concat(n ? '|' : '')
1925 + .concat(o.replace(/([:|\\])/g, '\\$1'), ':')
1926 + .concat(i);
1927 + }
1928 + return n;
1929 + })(e),
1930 + );
1931 +}
1932 +function ae(e) {
1933 + return (
1934 + void 0 === e && (e = 50),
1935 + (function (e, n) {
1936 + void 0 === n && (n = 1 / 0);
1937 + var t = window.requestIdleCallback;
1938 + return t
1939 + ? new Promise(function (e) {
1940 + return t.call(
1941 + window,
1942 + function () {
1943 + return e();
1944 + },
1945 + { timeout: n },
1946 + );
1947 + })
1948 + : o(Math.min(e, n));
1949 + })(e, 2 * e)
1950 + );
1951 +}
1952 +function ie(e, r) {
1953 + var o = Date.now();
1954 + return {
1955 + get: function (a) {
1956 + return n(this, void 0, void 0, function () {
1957 + var n, i, c;
1958 + return t(this, function (t) {
1959 + switch (t.label) {
1960 + case 0:
1961 + return (n = Date.now()), [4, e()];
1962 + case 1:
1963 + return (
1964 + (i = t.sent()),
1965 + (c = (function (e) {
1966 + var n;
1967 + return {
1968 + get visitorId() {
1969 + return void 0 === n && (n = oe(this.components)), n;
1970 + },
1971 + set visitorId(e) {
1972 + n = e;
1973 + },
1974 + confidence: te(e),
1975 + components: e,
1976 + version: '3.4.0',
1977 + };
1978 + })(i)),
1979 + (r || (null == a ? void 0 : a.debug)) &&
1980 + console.log(
1981 + 'Copy the text below to get the debug data:\n\n```\nversion: '
1982 + .concat(c.version, '\nuserAgent: ')
1983 + .concat(navigator.userAgent, '\ntimeBetweenLoadAndGet: ')
1984 + .concat(n - o, '\nvisitorId: ')
1985 + .concat(c.visitorId, '\ncomponents: ')
1986 + .concat(re(i), '\n```'),
1987 + ),
1988 + [2, c]
1989 + );
1990 + }
1991 + });
1992 + });
1993 + },
1994 + };
1995 +}
1996 +function ce(e) {
1997 + var r = void 0 === e ? {} : e,
1998 + o = r.delayFallback,
1999 + a = r.debug;
2000 + return (
2001 + r.monitoring,
2002 + n(this, void 0, void 0, function () {
2003 + return t(this, function (e) {
2004 + switch (e.label) {
2005 + case 0:
2006 + return [4, ae(o)];
2007 + case 1:
2008 + return e.sent(), [2, ie(V(ne, { debug: a }, []), a)];
2009 + }
2010 + });
2011 + })
2012 + );
2013 +}
2014 +var ue = { load: ce, hashComponents: oe, componentsToDebugString: re },
2015 + le = h;
2016 +export {
2017 + re as componentsToDebugString,
2018 + ue as default,
2019 + C as getFullscreenElement,
2020 + z as getScreenFrame,
2021 + oe as hashComponents,
2022 + R as isAndroid,
2023 + X as isChromium,
2024 + F as isDesktopSafari,
2025 + S as isEdgeHTML,
2026 + Y as isGecko,
2027 + Z as isTrident,
2028 + x as isWebKit,
2029 + ce as load,
2030 + V as loadSources,
2031 + le as murmurX64Hash128,
2032 + ae as prepareForSources,
2033 + ne as sources,
2034 + W as transformSource,
2035 +};
1 +/*
2 + * @Date: 2022-07-18 10:22:22
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2022-08-22 18:23:07
5 + * @FilePath: /front/src/utils/generateIcons.js
6 + * @Description: 文件描述
7 + */
8 +import icon_nav from '@images/icon/nav.png'
9 +import icon_gz from '@images/icon/icon_gz.png'
10 +
11 +export {
12 + icon_nav,
13 + icon_gz,
14 +}
1 +/*
2 + * @Author: hookehuyr hookehuyr@gmail.com
3 + * @Date: 2022-05-17 11:17:58
4 + * @LastEditors: hookehuyr hookehuyr@gmail.com
5 + * @LastEditTime: 2022-07-18 10:42:12
6 + * @FilePath: /front/src/utils/generateModules.js
7 + * @Description:
8 + */
9 +import MuiVideo from '@/components/MuiVideo/index.vue'
10 +
11 +export {
12 + MuiVideo,
13 +}
1 +/*
2 + * @Date: 2022-05-17 11:26:03
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2022-08-05 15:18:06
5 + * @FilePath: /front/src/utils/generatePackage.js
6 + * @Description: 文件描述
7 + */
8 +import Cookies from 'js-cookie'
9 +import $ from 'jquery'
10 +import _ from 'lodash'
11 +import dayjs from 'dayjs'
12 +import axios from '@/utils/axios';
13 +import { storeToRefs } from 'pinia'
14 +import { mainStore } from '@/store'
15 +import { Toast, Dialog } from 'vant';
16 +import { wxInfo, hasEllipsis } from '@/utils/tools';
17 +import { useTitle } from '@vueuse/core'
18 +
19 +export {
20 + Cookies,
21 + $,
22 + _,
23 + axios,
24 + storeToRefs,
25 + mainStore,
26 + Toast,
27 + Dialog,
28 + wxInfo,
29 + hasEllipsis,
30 + useTitle,
31 + dayjs
32 +}
1 +/*
2 + * @Date: 2022-05-16 17:21:45
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2022-06-29 17:00:15
5 + * @FilePath: /tswj/src/utils/generateRoute.js
6 + * @Description: 文件描述
7 + */
8 +
9 +/**
10 + * 根据后台返回的路径,生成页面的组件模版
11 + * @param {*} component
12 + * @returns 模版地址
13 + */
14 +function loadView(component) {
15 + return () => import(`../views/${component}.vue`)
16 +}
17 +
18 +/**
19 + * 生成路由结构
20 + * @param {*} routes
21 + */
22 +const generateRoutes = (routes) => {
23 + const arr = []
24 + routes.forEach(route => {
25 + const router = {}
26 + const {
27 + path,
28 + redirect,
29 + name,
30 + component,
31 + keepAlive,
32 + meta,
33 + children
34 + } = route
35 +
36 + router.path = path
37 + redirect && (router.redirect = redirect)
38 + name && (router.name = name)
39 + router.component = loadView(component)
40 + keepAlive && (router.keepAlive = keepAlive)
41 + meta && (router.meta = meta)
42 + router.children = !Array.isArray(children) || generateRoutes(children);
43 + arr.push(router)
44 + })
45 + return arr
46 +}
47 +
48 +export default generateRoutes;
1 +import sha1 from "js-sha1";
2 +
3 +function getEtag(buffer, callback) {
4 + // sha1算法
5 + var shA1 = sha1.digest;
6 +
7 + // 以4M为单位分割
8 + var blockSize = 4 * 1024 * 1024;
9 + var sha1String = [];
10 + var prefix = 0x16;
11 + var blockCount = 0;
12 +
13 + var bufferSize = buffer.size || buffer.length || buffer.byteLength;
14 + blockCount = Math.ceil(bufferSize / blockSize);
15 +
16 + for (var i = 0; i < blockCount; i++) {
17 + sha1String.push(shA1(buffer.slice(i * blockSize, (i + 1) * blockSize)));
18 + }
19 + function concatArr2Uint8(s) {//Array 2 Uint8Array
20 + var tmp = [];
21 + for (var i of s) tmp = tmp.concat(i);
22 + return new Uint8Array(tmp);
23 + }
24 + function Uint8ToBase64(u8Arr, urisafe) {//Uint8Array 2 Base64
25 + var CHUNK_SIZE = 0x8000; //arbitrary number
26 + var index = 0;
27 + var length = u8Arr.length;
28 + var result = '';
29 + var slice;
30 + while (index < length) {
31 + slice = u8Arr.subarray(index, Math.min(index + CHUNK_SIZE, length));
32 + result += String.fromCharCode.apply(null, slice);
33 + index += CHUNK_SIZE;
34 + }
35 + return urisafe ? btoa(result).replace(/\//g, '_').replace(/\+/g, '-') : btoa(result);
36 + }
37 + function calcEtag() {
38 + if (!sha1String.length) return 'Fto5o-5ea0sNMlW_75VgGJCv2AcJ';
39 + var sha1Buffer = concatArr2Uint8(sha1String);
40 + // 如果大于4M,则对各个块的sha1结果再次sha1
41 + if (blockCount > 1) {
42 + prefix = 0x96;
43 + sha1Buffer = shA1(sha1Buffer.buffer);
44 + } else {
45 + sha1Buffer = Array.apply([], sha1Buffer);
46 + }
47 + sha1Buffer = concatArr2Uint8([[prefix], sha1Buffer]);
48 + return Uint8ToBase64(sha1Buffer, true);
49 + }
50 + return (calcEtag());
51 +}
52 +
53 +export { getEtag }
1 +/*
2 + * [js-sha1]{@link https://github.com/emn178/js-sha1}
3 + *
4 + * @version 0.6.0
5 + * @author Chen, Yi-Cyuan [emn178@gmail.com]
6 + * @copyright Chen, Yi-Cyuan 2014-2017
7 + * @license MIT
8 + */
9 +/*jslint bitwise: true */
10 +(function () {
11 + 'use strict';
12 +
13 + var root = typeof window === 'object' ? window : {};
14 + var NODE_JS = !root.JS_SHA1_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;
15 + if (NODE_JS) {
16 + root = global;
17 + }
18 + var COMMON_JS = !root.JS_SHA1_NO_COMMON_JS && typeof module === 'object' && module.exports;
19 + var AMD = typeof define === 'function' && define.amd;
20 + var HEX_CHARS = '0123456789abcdef'.split('');
21 + var EXTRA = [-2147483648, 8388608, 32768, 128];
22 + var SHIFT = [24, 16, 8, 0];
23 + var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];
24 +
25 + var blocks = [];
26 +
27 + var createOutputMethod = function (outputType) {
28 + return function (message) {
29 + return new Sha1(true).update(message)[outputType]();
30 + };
31 + };
32 +
33 + var createMethod = function () {
34 + var method = createOutputMethod('hex');
35 + if (NODE_JS) {
36 + method = nodeWrap(method);
37 + }
38 + method.create = function () {
39 + return new Sha1();
40 + };
41 + method.update = function (message) {
42 + return method.create().update(message);
43 + };
44 + for (var i = 0; i < OUTPUT_TYPES.length; ++i) {
45 + var type = OUTPUT_TYPES[i];
46 + method[type] = createOutputMethod(type);
47 + }
48 + return method;
49 + };
50 +
51 + var nodeWrap = function (method) {
52 + var crypto = eval("require('crypto')");
53 + var Buffer = eval("require('buffer').Buffer");
54 + var nodeMethod = function (message) {
55 + if (typeof message === 'string') {
56 + return crypto.createHash('sha1').update(message, 'utf8').digest('hex');
57 + } else if (message.constructor === ArrayBuffer) {
58 + message = new Uint8Array(message);
59 + } else if (message.length === undefined) {
60 + return method(message);
61 + }
62 + return crypto.createHash('sha1').update(new Buffer(message)).digest('hex');
63 + };
64 + return nodeMethod;
65 + };
66 +
67 + function Sha1(sharedMemory) {
68 + if (sharedMemory) {
69 + blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =
70 + blocks[4] = blocks[5] = blocks[6] = blocks[7] =
71 + blocks[8] = blocks[9] = blocks[10] = blocks[11] =
72 + blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
73 + this.blocks = blocks;
74 + } else {
75 + this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
76 + }
77 +
78 + this.h0 = 0x67452301;
79 + this.h1 = 0xEFCDAB89;
80 + this.h2 = 0x98BADCFE;
81 + this.h3 = 0x10325476;
82 + this.h4 = 0xC3D2E1F0;
83 +
84 + this.block = this.start = this.bytes = this.hBytes = 0;
85 + this.finalized = this.hashed = false;
86 + this.first = true;
87 + }
88 +
89 + Sha1.prototype.update = function (message) {
90 + if (this.finalized) {
91 + return;
92 + }
93 + var notString = typeof (message) !== 'string';
94 + if (notString && message.constructor === root.ArrayBuffer) {
95 + message = new Uint8Array(message);
96 + }
97 + var code, index = 0, i, length = message.length || 0, blocks = this.blocks;
98 +
99 + while (index < length) {
100 + if (this.hashed) {
101 + this.hashed = false;
102 + blocks[0] = this.block;
103 + blocks[16] = blocks[1] = blocks[2] = blocks[3] =
104 + blocks[4] = blocks[5] = blocks[6] = blocks[7] =
105 + blocks[8] = blocks[9] = blocks[10] = blocks[11] =
106 + blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
107 + }
108 +
109 + if (notString) {
110 + for (i = this.start; index < length && i < 64; ++index) {
111 + blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];
112 + }
113 + } else {
114 + for (i = this.start; index < length && i < 64; ++index) {
115 + code = message.charCodeAt(index);
116 + if (code < 0x80) {
117 + blocks[i >> 2] |= code << SHIFT[i++ & 3];
118 + } else if (code < 0x800) {
119 + blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];
120 + blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
121 + } else if (code < 0xd800 || code >= 0xe000) {
122 + blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];
123 + blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];
124 + blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
125 + } else {
126 + code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));
127 + blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];
128 + blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];
129 + blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];
130 + blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
131 + }
132 + }
133 + }
134 +
135 + this.lastByteIndex = i;
136 + this.bytes += i - this.start;
137 + if (i >= 64) {
138 + this.block = blocks[16];
139 + this.start = i - 64;
140 + this.hash();
141 + this.hashed = true;
142 + } else {
143 + this.start = i;
144 + }
145 + }
146 + if (this.bytes > 4294967295) {
147 + this.hBytes += this.bytes / 4294967296 << 0;
148 + this.bytes = this.bytes % 4294967296;
149 + }
150 + return this;
151 + };
152 +
153 + Sha1.prototype.finalize = function () {
154 + if (this.finalized) {
155 + return;
156 + }
157 + this.finalized = true;
158 + var blocks = this.blocks, i = this.lastByteIndex;
159 + blocks[16] = this.block;
160 + blocks[i >> 2] |= EXTRA[i & 3];
161 + this.block = blocks[16];
162 + if (i >= 56) {
163 + if (!this.hashed) {
164 + this.hash();
165 + }
166 + blocks[0] = this.block;
167 + blocks[16] = blocks[1] = blocks[2] = blocks[3] =
168 + blocks[4] = blocks[5] = blocks[6] = blocks[7] =
169 + blocks[8] = blocks[9] = blocks[10] = blocks[11] =
170 + blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
171 + }
172 + blocks[14] = this.hBytes << 3 | this.bytes >>> 29;
173 + blocks[15] = this.bytes << 3;
174 + this.hash();
175 + };
176 +
177 + Sha1.prototype.hash = function () {
178 + var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4;
179 + var f, j, t, blocks = this.blocks;
180 +
181 + for (j = 16; j < 80; ++j) {
182 + t = blocks[j - 3] ^ blocks[j - 8] ^ blocks[j - 14] ^ blocks[j - 16];
183 + blocks[j] = (t << 1) | (t >>> 31);
184 + }
185 +
186 + for (j = 0; j < 20; j += 5) {
187 + f = (b & c) | ((~b) & d);
188 + t = (a << 5) | (a >>> 27);
189 + e = t + f + e + 1518500249 + blocks[j] << 0;
190 + b = (b << 30) | (b >>> 2);
191 +
192 + f = (a & b) | ((~a) & c);
193 + t = (e << 5) | (e >>> 27);
194 + d = t + f + d + 1518500249 + blocks[j + 1] << 0;
195 + a = (a << 30) | (a >>> 2);
196 +
197 + f = (e & a) | ((~e) & b);
198 + t = (d << 5) | (d >>> 27);
199 + c = t + f + c + 1518500249 + blocks[j + 2] << 0;
200 + e = (e << 30) | (e >>> 2);
201 +
202 + f = (d & e) | ((~d) & a);
203 + t = (c << 5) | (c >>> 27);
204 + b = t + f + b + 1518500249 + blocks[j + 3] << 0;
205 + d = (d << 30) | (d >>> 2);
206 +
207 + f = (c & d) | ((~c) & e);
208 + t = (b << 5) | (b >>> 27);
209 + a = t + f + a + 1518500249 + blocks[j + 4] << 0;
210 + c = (c << 30) | (c >>> 2);
211 + }
212 +
213 + for (; j < 40; j += 5) {
214 + f = b ^ c ^ d;
215 + t = (a << 5) | (a >>> 27);
216 + e = t + f + e + 1859775393 + blocks[j] << 0;
217 + b = (b << 30) | (b >>> 2);
218 +
219 + f = a ^ b ^ c;
220 + t = (e << 5) | (e >>> 27);
221 + d = t + f + d + 1859775393 + blocks[j + 1] << 0;
222 + a = (a << 30) | (a >>> 2);
223 +
224 + f = e ^ a ^ b;
225 + t = (d << 5) | (d >>> 27);
226 + c = t + f + c + 1859775393 + blocks[j + 2] << 0;
227 + e = (e << 30) | (e >>> 2);
228 +
229 + f = d ^ e ^ a;
230 + t = (c << 5) | (c >>> 27);
231 + b = t + f + b + 1859775393 + blocks[j + 3] << 0;
232 + d = (d << 30) | (d >>> 2);
233 +
234 + f = c ^ d ^ e;
235 + t = (b << 5) | (b >>> 27);
236 + a = t + f + a + 1859775393 + blocks[j + 4] << 0;
237 + c = (c << 30) | (c >>> 2);
238 + }
239 +
240 + for (; j < 60; j += 5) {
241 + f = (b & c) | (b & d) | (c & d);
242 + t = (a << 5) | (a >>> 27);
243 + e = t + f + e - 1894007588 + blocks[j] << 0;
244 + b = (b << 30) | (b >>> 2);
245 +
246 + f = (a & b) | (a & c) | (b & c);
247 + t = (e << 5) | (e >>> 27);
248 + d = t + f + d - 1894007588 + blocks[j + 1] << 0;
249 + a = (a << 30) | (a >>> 2);
250 +
251 + f = (e & a) | (e & b) | (a & b);
252 + t = (d << 5) | (d >>> 27);
253 + c = t + f + c - 1894007588 + blocks[j + 2] << 0;
254 + e = (e << 30) | (e >>> 2);
255 +
256 + f = (d & e) | (d & a) | (e & a);
257 + t = (c << 5) | (c >>> 27);
258 + b = t + f + b - 1894007588 + blocks[j + 3] << 0;
259 + d = (d << 30) | (d >>> 2);
260 +
261 + f = (c & d) | (c & e) | (d & e);
262 + t = (b << 5) | (b >>> 27);
263 + a = t + f + a - 1894007588 + blocks[j + 4] << 0;
264 + c = (c << 30) | (c >>> 2);
265 + }
266 +
267 + for (; j < 80; j += 5) {
268 + f = b ^ c ^ d;
269 + t = (a << 5) | (a >>> 27);
270 + e = t + f + e - 899497514 + blocks[j] << 0;
271 + b = (b << 30) | (b >>> 2);
272 +
273 + f = a ^ b ^ c;
274 + t = (e << 5) | (e >>> 27);
275 + d = t + f + d - 899497514 + blocks[j + 1] << 0;
276 + a = (a << 30) | (a >>> 2);
277 +
278 + f = e ^ a ^ b;
279 + t = (d << 5) | (d >>> 27);
280 + c = t + f + c - 899497514 + blocks[j + 2] << 0;
281 + e = (e << 30) | (e >>> 2);
282 +
283 + f = d ^ e ^ a;
284 + t = (c << 5) | (c >>> 27);
285 + b = t + f + b - 899497514 + blocks[j + 3] << 0;
286 + d = (d << 30) | (d >>> 2);
287 +
288 + f = c ^ d ^ e;
289 + t = (b << 5) | (b >>> 27);
290 + a = t + f + a - 899497514 + blocks[j + 4] << 0;
291 + c = (c << 30) | (c >>> 2);
292 + }
293 +
294 + this.h0 = this.h0 + a << 0;
295 + this.h1 = this.h1 + b << 0;
296 + this.h2 = this.h2 + c << 0;
297 + this.h3 = this.h3 + d << 0;
298 + this.h4 = this.h4 + e << 0;
299 + };
300 +
301 + Sha1.prototype.hex = function () {
302 + this.finalize();
303 +
304 + var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4;
305 +
306 + return HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +
307 + HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +
308 + HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +
309 + HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +
310 + HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +
311 + HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +
312 + HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +
313 + HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +
314 + HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +
315 + HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +
316 + HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +
317 + HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +
318 + HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +
319 + HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +
320 + HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +
321 + HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +
322 + HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +
323 + HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +
324 + HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +
325 + HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F];
326 + };
327 +
328 + Sha1.prototype.toString = Sha1.prototype.hex;
329 +
330 + Sha1.prototype.digest = function () {
331 + this.finalize();
332 +
333 + var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4;
334 +
335 + return [
336 + (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,
337 + (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,
338 + (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,
339 + (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,
340 + (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF
341 + ];
342 + };
343 +
344 + Sha1.prototype.array = Sha1.prototype.digest;
345 +
346 + Sha1.prototype.arrayBuffer = function () {
347 + this.finalize();
348 +
349 + var buffer = new ArrayBuffer(20);
350 + var dataView = new DataView(buffer);
351 + dataView.setUint32(0, this.h0);
352 + dataView.setUint32(4, this.h1);
353 + dataView.setUint32(8, this.h2);
354 + dataView.setUint32(12, this.h3);
355 + dataView.setUint32(16, this.h4);
356 + return buffer;
357 + };
358 +
359 + var exports = createMethod();
360 +
361 + if (COMMON_JS) {
362 + module.exports = exports;
363 + } else {
364 + root.sha1 = exports;
365 + if (AMD) {
366 + define(function () {
367 + return exports;
368 + });
369 + }
370 + }
371 +})();
1 +/*
2 + * @Date: 2022-04-18 15:59:42
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2023-02-24 16:13:06
5 + * @FilePath: /data-table/src/utils/tools.js
6 + * @Description: 文件描述
7 + */
8 +import dayjs from 'dayjs';
9 +
10 +// 格式化时间
11 +const formatDate = (date) => {
12 + return dayjs(date).format('YYYY-MM-DD HH:mm');
13 +};
14 +
15 +/**
16 + * @description 判断浏览器属于平台
17 + * @returns
18 + */
19 +const wxInfo = () => {
20 + let u = navigator.userAgent;
21 + let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
22 + let isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
23 + let isMobile = u.indexOf('Android') > -1 || u.indexOf('iPhone') > -1 || u.indexOf('iPad') > -1; // 移动端平台
24 + let isIpad = u.indexOf('iPad') > -1; // iPad平台
25 + let uAgent = navigator.userAgent.toLowerCase();
26 + let isWeiXin = (uAgent.match(/MicroMessenger/i) == 'micromessenger') ? true : false;
27 + let isPC = (uAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone|micromessenger)/i)) ? false : true;
28 + return {
29 + isAndroid,
30 + isiOS,
31 + isWeiXin,
32 + isMobile,
33 + isIpad,
34 + isPC
35 + };
36 +};
37 +
38 +/**
39 + * @description 判断多行省略文本
40 + * @param {*} id 目标dom标签
41 + * @returns
42 + */
43 +const hasEllipsis = (id) => {
44 + let oDiv = document.getElementById(id);
45 + let flag = false;
46 + if (oDiv.scrollHeight > oDiv.clientHeight) {
47 + flag = true
48 + }
49 + return flag
50 +}
51 +
52 +/**
53 + * @description 解析URL参数
54 + * @param {*} url
55 + * @returns
56 + */
57 +const parseQueryString = url => {
58 + var json = {};
59 + var arr = url.indexOf('?') >= 0 ? url.substr(url.indexOf('?') + 1).split('&') : [];
60 + arr.forEach(item => {
61 + var tmp = item.split('=');
62 + json[tmp[0]] = decodeURIComponent(tmp[1]);
63 + });
64 + return json;
65 +}
66 +
67 +/**
68 + * 字符串包含字符数组中字符的状态
69 + * @param {*} array 字符数组
70 + * @param {*} str 字符串
71 + * @returns 包含状态
72 + */
73 +const strExist = (array, str) => {
74 + const exist = array.filter(arr => {
75 + if (str.indexOf(arr) >= 0) return str;
76 + })
77 + return exist.length > 0
78 +}
79 +
80 +/**
81 + * 自定义替换参数
82 + * @param {*} url
83 + * @param {*} arg
84 + * @param {*} arg_val
85 + * @returns
86 + */
87 +const changeURLArg = (url, arg, arg_val) => {
88 + var pattern = arg + '=([^&]*)';
89 + var replaceText = arg + '=' + arg_val;
90 + if (url.match(pattern)) {
91 + var tmp = '/(' + arg + '=)([^&]*)/gi';
92 + tmp = url.replace(eval(tmp), replaceText);
93 + return tmp;
94 + } else {
95 + if (url.match('[\?]')) {
96 + return url + '&' + replaceText;
97 + } else {
98 + return url + '?' + replaceText;
99 + }
100 + }
101 + return url + '\n' + arg + '\n' + arg_val;
102 +}
103 +
104 +// 获取参数key/value值对
105 +const getUrlParams = (url) => {
106 + // 没有参数处理
107 + if (url.split('?').length === 1) return false;
108 + let arr = url.split('?');
109 + let res = arr[1].split('&');
110 + let items = {};
111 + for (let i = 0; i < res.length; i++) {
112 + let [key, value] = res[i].split('=');
113 + items[key] = value;
114 + }
115 + return items
116 +}
117 +
118 +// 格式化URL参数为字符串
119 +const stringifyQuery = (params) => {
120 + const queryString = [];
121 + Object.keys(params || {}).forEach((k) => {
122 + queryString.push(k + '=' + params[k]);
123 + });
124 +
125 + return '?' + queryString.join('&');
126 +};
127 +
128 +export {
129 + formatDate,
130 + wxInfo,
131 + hasEllipsis,
132 + parseQueryString,
133 + strExist,
134 + changeURLArg,
135 + getUrlParams,
136 + stringifyQuery,
137 +};
1 +import VConsole from 'vconsole';
2 +
3 +// const vConsole = new VConsole();
4 +let vConsole = '';
5 +// 或者使用配置参数来初始化,详情见文档
6 +if (+import.meta.env.VITE_CONSOLE) {
7 + vConsole = new VConsole({ theme: 'dark' });
8 +}
9 +
10 +export default vConsole
This diff could not be displayed because it is too large.