├── docs
├── index.md
└── webgl
│ ├── style.css
│ ├── assets
│ ├── style.css
│ ├── index.4c180d81.js
│ └── vendor.4f6f7efc.js
│ ├── favicon.ico
│ └── index.html
├── example
├── .gitignore
├── public
│ └── favicon.ico
├── src
│ ├── assets
│ │ └── logo.png
│ ├── main.ts
│ ├── shims-vue.d.ts
│ ├── webglComponents
│ │ ├── metal.frag
│ │ ├── metal2.frag
│ │ ├── metal3.frag
│ │ ├── metal-button.frag
│ │ └── draw.frag
│ ├── components
│ │ ├── Slider
│ │ │ ├── VSlider.vue
│ │ │ ├── RotateSlider.vue
│ │ │ └── HSlider.vue
│ │ ├── Switch
│ │ │ └── Switch.vue
│ │ └── Button
│ │ │ └── Button.vue
│ └── App.vue
├── postcss.config.js
├── tailwind.config.js
├── vite.config.ts
├── index.html
├── tsconfig.json
├── package.json
├── README.md
└── yarn.lock
├── src
├── .DS_Store
├── components
│ ├── button
│ │ ├── index.ts
│ │ ├── Button.tsx
│ │ └── Button.cy.ts
│ ├── switch
│ │ ├── index.ts
│ │ ├── Switch.tsx
│ │ └── Switch.cy.ts
│ ├── .DS_Store
│ └── slider
│ │ ├── index.ts
│ │ ├── Slider.tsx
│ │ ├── Slider.cy.ts
│ │ └── SliderButton.tsx
├── main.ts
└── shims-vue.d.ts
├── cypress.json
├── .babelrc
├── vite.config.js
├── cypress
├── fixtures
│ └── example.json
├── plugins
│ └── index.js
└── support
│ ├── index.js
│ └── commands.js
├── tsconfig.json
├── rollup.config.js
├── README.md
├── scripts
└── verifyCommit.js
├── LICENSE
├── package.json
└── .gitignore
/docs/index.md:
--------------------------------------------------------------------------------
1 | # element3-core
2 |
--------------------------------------------------------------------------------
/docs/webgl/style.css:
--------------------------------------------------------------------------------
1 | .red {
2 | color: blue;
3 | }
4 |
--------------------------------------------------------------------------------
/docs/webgl/assets/style.css:
--------------------------------------------------------------------------------
1 | .red {
2 | color: red;
3 | }
4 |
--------------------------------------------------------------------------------
/example/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | dist-ssr
5 | *.local
6 |
--------------------------------------------------------------------------------
/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hug-sun/element3-core/HEAD/src/.DS_Store
--------------------------------------------------------------------------------
/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "testFiles": "**/*cy.*",
3 | "componentFolder": "src"
4 | }
5 |
--------------------------------------------------------------------------------
/src/components/button/index.ts:
--------------------------------------------------------------------------------
1 | import E3Button from "./Button";
2 |
3 | export { E3Button };
4 |
--------------------------------------------------------------------------------
/src/components/switch/index.ts:
--------------------------------------------------------------------------------
1 | import E3Switch from "./Switch";
2 |
3 | export { E3Switch };
4 |
--------------------------------------------------------------------------------
/docs/webgl/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hug-sun/element3-core/HEAD/docs/webgl/favicon.ico
--------------------------------------------------------------------------------
/src/components/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hug-sun/element3-core/HEAD/src/components/.DS_Store
--------------------------------------------------------------------------------
/example/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hug-sun/element3-core/HEAD/example/public/favicon.ico
--------------------------------------------------------------------------------
/example/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hug-sun/element3-core/HEAD/example/src/assets/logo.png
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | export * from "./components/switch";
2 | export * from "./components/button";
3 | export * from "./components/slider";
4 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [["@babel/preset-env", { "targets": { "node": "current" } }]],
3 | "plugins": ["@vue/babel-plugin-jsx"]
4 | }
5 |
--------------------------------------------------------------------------------
/example/postcss.config.js:
--------------------------------------------------------------------------------
1 | // postcss.config.js
2 | module.exports = {
3 | plugins: {
4 | tailwindcss: {},
5 | autoprefixer: {},
6 | },
7 | };
8 |
--------------------------------------------------------------------------------
/src/components/slider/index.ts:
--------------------------------------------------------------------------------
1 | import E3SliderButton from "./SliderButton";
2 | import E3Slider from "./Slider";
3 |
4 | export { E3Slider, E3SliderButton };
5 |
--------------------------------------------------------------------------------
/example/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from "vue";
2 | import App from "./App.vue";
3 | import "tailwindcss/tailwind.css";
4 |
5 | createApp(App).mount("#app");
6 |
--------------------------------------------------------------------------------
/example/src/shims-vue.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.vue' {
2 | import { DefineComponent } from 'vue'
3 | const component: DefineComponent<{}, {}, any>
4 | export default component
5 | }
6 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | // for cypress
2 | const vue = require("@vitejs/plugin-vue");
3 | const { defineConfig } = require("vite");
4 |
5 | module.exports = defineConfig({
6 | plugins: [vue()],
7 | });
8 |
--------------------------------------------------------------------------------
/cypress/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io",
4 | "body": "Fixtures are a great way to mock data for responses to routes"
5 | }
6 |
--------------------------------------------------------------------------------
/example/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | purge: [],
3 | darkMode: false, // or 'media' or 'class'
4 | theme: {
5 | extend: {},
6 | },
7 | variants: {},
8 | plugins: [],
9 | };
10 |
--------------------------------------------------------------------------------
/src/shims-vue.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.vue' {
2 | import type { DefineComponent } from 'vue'
3 | // eslint-disable-next-line @typescript-eslint/ban-types
4 | const component: DefineComponent<{}, {}, any>
5 | export default component
6 | }
7 |
--------------------------------------------------------------------------------
/example/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import vue from "@vitejs/plugin-vue";
3 | import element3Webgl from "rollup-plugin-element3-webgl";
4 |
5 | // https://vitejs.dev/config/
6 | export default defineConfig({
7 | base: "/webgl", // TODO 开发环境是 / 生产环境是 /webgl
8 | plugins: [vue(), element3Webgl()],
9 | });
10 |
--------------------------------------------------------------------------------
/example/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite App
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "esnext",
4 | "module": "esnext",
5 | "moduleResolution": "node",
6 | "strict": true,
7 | "jsx": "preserve",
8 | "sourceMap": true,
9 | "resolveJsonModule": true,
10 | "esModuleInterop": true,
11 | "lib": ["esnext", "dom"],
12 | "types": ["vite/client"],
13 | "noImplicitAny": false
14 | },
15 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
16 | }
17 |
--------------------------------------------------------------------------------
/src/components/switch/Switch.tsx:
--------------------------------------------------------------------------------
1 | import { defineComponent, h } from "vue";
2 | export default defineComponent({
3 | props: ["modelValue"],
4 | setup(props, { emit }) {
5 | const toggle = () => {
6 | emit("update:modelValue", !props.modelValue);
7 | };
8 |
9 | const onClick = () => {
10 | toggle();
11 | };
12 |
13 | return {
14 | onClick,
15 | };
16 | },
17 |
18 | render() {
19 | const children = this.$slots.default?.() || [];
20 | return ;
21 | },
22 | });
23 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "esnext",
4 | "module": "esnext",
5 | "jsx": "preserve",
6 | "declaration": false,
7 | "importHelpers": true,
8 | "moduleResolution": "node",
9 | "skipLibCheck": true,
10 | "esModuleInterop": true,
11 | "allowSyntheticDefaultImports": true,
12 | "sourceMap": true,
13 | "baseUrl": ".",
14 | "allowJs": true,
15 | "types": [],
16 | "lib": ["esnext", "dom", "dom.iterable", "scripthost"]
17 | },
18 | "include": ["src"],
19 | "exclude": ["node_modules"]
20 | }
21 |
--------------------------------------------------------------------------------
/cypress/plugins/index.js:
--------------------------------------------------------------------------------
1 | const { startDevServer } = require("@cypress/vite-dev-server");
2 |
3 | module.exports = (on, config) => {
4 | const viteConfig = {
5 | plugins: [],
6 | };
7 |
8 | viteConfig.esbuild = viteConfig.esbuild || {};
9 | viteConfig.esbuild.jsxFactory = "h";
10 | viteConfig.esbuild.jsxFragment = "Fragment";
11 | viteConfig.logLevel = "error";
12 | viteConfig.resolve = {
13 | alias: {
14 | vue: "vue/dist/vue.esm-bundler.js",
15 | },
16 | };
17 |
18 | on("dev-server:start", (options) => {
19 | return startDevServer({ options, viteConfig });
20 | });
21 | return config;
22 | };
23 |
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "-",
3 | "version": "0.0.0",
4 | "scripts": {
5 | "dev": "vite",
6 | "build": "vue-tsc --noEmit && vite build",
7 | "serve": "vite preview"
8 | },
9 | "dependencies": {
10 | "element3-core": "0.0.7",
11 | "vue": "^3.0.5"
12 | },
13 | "devDependencies": {
14 | "@vitejs/plugin-vue": "^1.2.2",
15 | "@vue/compiler-sfc": "^3.0.5",
16 | "autoprefixer": "^10.2.5",
17 | "postcss": "^8.2.15",
18 | "rollup-plugin-element3-webgl": "0.0.5",
19 | "tailwindcss": "^2.1.2",
20 | "typescript": "^4.1.3",
21 | "vite": "^2.3.0",
22 | "vue-tsc": "^0.0.24"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import vue from "rollup-plugin-vue";
2 | import resolve from "@rollup/plugin-node-resolve";
3 | import peerDepsExternal from "rollup-plugin-peer-deps-external";
4 | import ts from "rollup-plugin-typescript2";
5 | import babel from "@rollup/plugin-babel";
6 | export default {
7 | input: "src/main.ts",
8 | output: {
9 | file: "dist/element3-core.esm.js",
10 | format: "es",
11 | },
12 | plugins: [
13 | peerDepsExternal(),
14 | resolve({
15 | extensions: [".vue", ".jsx", ".js", ".ts", ".tsx"],
16 | }),
17 | vue(),
18 | ts(),
19 | babel({
20 | exclude: "node_modules/**",
21 | extensions: [".js", ".jsx", ".vue", ".tsx", ".ts"],
22 | babelHelpers: "bundled",
23 | }),
24 | ],
25 | };
26 |
--------------------------------------------------------------------------------
/cypress/support/index.js:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example support/index.js is processed and
3 | // loaded automatically before your test files.
4 | //
5 | // This is a great place to put global configuration and
6 | // behavior that modifies Cypress.
7 | //
8 | // You can change the location of this file or turn off
9 | // automatically serving support files with the
10 | // 'supportFile' configuration option.
11 | //
12 | // You can read more here:
13 | // https://on.cypress.io/configuration
14 | // ***********************************************************
15 |
16 | // Import commands.js using ES2015 syntax:
17 | import './commands'
18 |
19 | // Alternatively you can use CommonJS syntax:
20 | // require('./commands')
21 |
--------------------------------------------------------------------------------
/docs/webgl/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite App
8 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | red
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/components/button/Button.tsx:
--------------------------------------------------------------------------------
1 | // 状态:
2 | // v-model:
3 | // - 按下 true
4 | // - 抬起 false
5 |
6 | import { defineComponent, h } from "vue";
7 | export default defineComponent({
8 | props: ["modelValue"],
9 | setup(props, { emit }) {
10 | const enter = () => {
11 | emit("update:modelValue", true);
12 | };
13 |
14 | const putUp = () => {
15 | emit("update:modelValue", false);
16 | };
17 | const onMouseup = () => {
18 | putUp();
19 | };
20 |
21 | const onMousedown = () => {
22 | enter();
23 | };
24 |
25 | return {
26 | onMouseup,
27 | onMousedown,
28 | };
29 | },
30 |
31 | render() {
32 | const children = this.$slots.default?.() || [];
33 |
34 | // 动态创建标签
35 | const Tag = "button";
36 |
37 | return (
38 |
39 | {children}
40 |
41 | );
42 | },
43 | });
44 |
--------------------------------------------------------------------------------
/cypress/support/commands.js:
--------------------------------------------------------------------------------
1 | // ***********************************************
2 | // This example commands.js shows you how to
3 | // create various custom commands and overwrite
4 | // existing commands.
5 | //
6 | // For more comprehensive examples of custom
7 | // commands please read more here:
8 | // https://on.cypress.io/custom-commands
9 | // ***********************************************
10 | //
11 | //
12 | // -- This is a parent command --
13 | // Cypress.Commands.add('login', (email, password) => { ... })
14 | //
15 | //
16 | // -- This is a child command --
17 | // Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
18 | //
19 | //
20 | // -- This is a dual command --
21 | // Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
22 | //
23 | //
24 | // -- This will overwrite an existing command --
25 | // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
26 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # element3-core
2 | this is a headless ui components library based on the vue3
3 |
4 | ## chat
5 |
6 | 
7 |
8 |
9 | ## Features
10 |
11 | - Logic and style separation
12 | - No Style
13 | - Custom Ui Easy
14 |
15 |
16 | ## Installation
17 |
18 | Install element3-core with npm
19 |
20 | ```bash
21 | npm install element3-core
22 | ```
23 |
24 | ## Demo
25 |
26 | run demo
27 |
28 | > a base webgl ui
29 |
30 | clone the project
31 |
32 | ```bash
33 | git clone https://github.com/hug-sun/element3-core.git
34 | ```
35 | Go to the example project directory
36 |
37 | ```bash
38 | cd example
39 | ```
40 |
41 | Install dependencies
42 | ```base
43 | yarn
44 | // or npm install
45 | ```
46 |
47 | Start the server
48 |
49 | ```base
50 | yarn dev
51 | ```
52 |
53 |
54 | ## License
55 |
56 | [MIT](https://choosealicense.com/licenses/mit/)
57 |
58 |
59 |
--------------------------------------------------------------------------------
/scripts/verifyCommit.js:
--------------------------------------------------------------------------------
1 | // Invoked on the commit-msg git hook by yorkie.
2 |
3 | const chalk = require("chalk");
4 | const msgPath = process.env.GIT_PARAMS;
5 | const msg = require("fs").readFileSync(msgPath, "utf-8").trim();
6 |
7 | const commitRE =
8 | /^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(\(.+\))?: .{1,50}/;
9 |
10 | if (!commitRE.test(msg)) {
11 | console.log();
12 | console.error(
13 | ` ${chalk.bgRed.white(" ERROR ")} ${chalk.red(
14 | `invalid commit message format.`
15 | )}\n\n` +
16 | chalk.red(
17 | ` Proper commit message format is required for automated changelog generation. Examples:\n\n`
18 | ) +
19 | ` ${chalk.green(`feat(compiler): add 'comments' option`)}\n` +
20 | ` ${chalk.green(
21 | `fix(v-model): handle events on blur (close #28)`
22 | )}\n\n` +
23 | chalk.red(` See .github/commit-convention.md for more details.\n`)
24 | );
25 | process.exit(1);
26 | }
27 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 花果山前端团队
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src/components/button/Button.cy.ts:
--------------------------------------------------------------------------------
1 | import { mount } from "@cypress/vue";
2 | import { ref } from "vue";
3 | import Button from "./Button";
4 | describe("Button", () => {
5 | it("init", () => {
6 | mount(Button, {
7 | slots: {
8 | default: "click",
9 | },
10 | });
11 | });
12 |
13 | it("enter", () => {
14 | const Comp = {
15 | template: `
16 |
17 | {{boo}}
18 |
19 |
20 | `,
21 | components: {
22 | Button,
23 | },
24 | setup() {
25 | const boo = ref(true);
26 |
27 | return {
28 | boo,
29 | };
30 | },
31 | };
32 |
33 | mount(Comp);
34 |
35 | cy.contains("true");
36 | cy.get("button").click();
37 | cy.contains("false");
38 | });
39 |
40 | it("slots", () => {
41 | const Comp = {
42 | template: `
43 |
44 |
45 |
46 | `,
47 | components: {
48 | Button,
49 | },
50 | };
51 |
52 | mount(Comp);
53 |
54 | cy.contains("hi,element3-core button");
55 | });
56 | });
57 |
--------------------------------------------------------------------------------
/src/components/switch/Switch.cy.ts:
--------------------------------------------------------------------------------
1 | import { mount } from "@cypress/vue";
2 | import { ref } from "vue";
3 | import Switch from "./Switch";
4 | describe("Switch", () => {
5 | it("init", () => {
6 | mount(Switch, {
7 | slots: {
8 | default: "switch",
9 | },
10 | });
11 | });
12 |
13 | it("toggle", () => {
14 | const Comp = {
15 | template: `
16 |
17 | {{boo}}
18 | switch
19 |
20 | `,
21 | components: {
22 | Switch,
23 | },
24 | setup() {
25 | const boo = ref(true);
26 |
27 | return {
28 | boo,
29 | };
30 | },
31 | };
32 |
33 | mount(Comp);
34 |
35 | cy.contains("true");
36 | cy.get("button").click();
37 | cy.contains("false");
38 | });
39 |
40 | it("slots", () => {
41 | const Comp = {
42 | template: `
43 |
44 | hi,element3-core switch
45 |
46 | `,
47 | components: {
48 | Switch,
49 | },
50 | };
51 |
52 | mount(Comp);
53 |
54 | cy.contains("hi,element3-core switch");
55 | });
56 | });
57 |
--------------------------------------------------------------------------------
/example/src/webglComponents/metal.frag:
--------------------------------------------------------------------------------
1 | precision highp float;
2 |
3 | #define OCTAVES 6
4 |
5 | uniform float m1;
6 | uniform float m2;
7 |
8 | uniform float iWidth;
9 | uniform float iHeight;
10 |
11 | uniform float r;
12 | uniform float g;
13 | uniform float b;
14 |
15 | float radius=8.0;
16 |
17 | vec3 rgb=vec3(r,g,b);
18 |
19 | vec2 u_CanvasSize = vec2(iWidth, iHeight);
20 | vec2 center = u_CanvasSize / 2.0;
21 | float len1 = length(center);
22 | float pi = acos(-1.0);
23 |
24 | //渐变
25 | float texture1(float x) {
26 | float a = x / u_CanvasSize.x;
27 | float b = radians(360.0) * 0.5 * a+1.0;
28 | return (sin(b) + 1.0) / 2.0;
29 | }
30 |
31 | //水平拉丝
32 | float texture2(vec2 v) {
33 | vec2 a = vec2(0.2222, 0.4444);
34 | float n = dot(v, a);
35 | return fract(tan(n));
36 | }
37 |
38 | //杂色
39 | float texture3(vec2 v) {
40 | vec2 a = vec2(0.1234, 0.5678);
41 | float n = dot(v, a);
42 | return fract(tan(n) * 10000.0);
43 | }
44 |
45 |
46 |
47 |
48 | void main() {
49 | //极坐标系转二维直角坐标系
50 | //渐变
51 | float f1 = texture1(gl_FragCoord.x*cos(1.)-gl_FragCoord.y*sin(1.));
52 | f1 = 0.65 * f1 + 0.35;
53 |
54 | //拉丝
55 | float f2 = texture2(gl_FragCoord.xy);
56 | f2 = f2*0.3+0.5;
57 |
58 | //杂色
59 | float f3 = texture3(gl_FragCoord.xy);
60 |
61 | //复合颜色
62 | float f = f1*f2;
63 | vec3 color=rgb * f;
64 | color*=1.4;
65 | gl_FragColor = vec4(color, 1);
66 | }
67 |
68 |
--------------------------------------------------------------------------------
/example/src/components/Slider/VSlider.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/example/src/components/Slider/RotateSlider.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "element3-core",
3 | "version": "0.0.8",
4 | "description": "headless ui components library",
5 | "main": "dist/element3-core.esm.js",
6 | "module": "dist/element3-core.esm.js",
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1",
9 | "test-ct": "cypress open-ct",
10 | "build": "rollup -c"
11 | },
12 | "files": [
13 | "src",
14 | "dist",
15 | "types"
16 | ],
17 | "gitHooks": {
18 | "commit-msg": "node scripts/verifyCommit.js"
19 | },
20 | "repository": {
21 | "type": "git",
22 | "url": "git+https://github.com/hug-sun/element3-core.git"
23 | },
24 | "keywords": [],
25 | "author": "",
26 | "license": "ISC",
27 | "bugs": {
28 | "url": "https://github.com/hug-sun/element3-core/issues"
29 | },
30 | "peerDependencies": {
31 | "vue": "^3.0.11"
32 | },
33 | "homepage": "https://github.com/hug-sun/element3-core#readme",
34 | "devDependencies": {
35 | "@babel/core": "^7.14.3",
36 | "@babel/preset-env": "^7.14.2",
37 | "@cypress/vite-dev-server": "^1.2.7",
38 | "@cypress/vue": "^3.0.1",
39 | "@rollup/plugin-babel": "^5.3.0",
40 | "@rollup/plugin-node-resolve": "^13.0.0",
41 | "@vitejs/plugin-vue": "^1.2.2",
42 | "@vue/babel-plugin-jsx": "^1.0.6",
43 | "@vue/compiler-sfc": "^3.0.11",
44 | "chalk": "^4.1.1",
45 | "cypress": "^7.3.0",
46 | "rollup-plugin-peer-deps-external": "^2.2.4",
47 | "rollup-plugin-typescript2": "^0.30.0",
48 | "rollup-plugin-vue": "^6.0.0",
49 | "typescript": "^4.2.4",
50 | "vite": "^2.3.1",
51 | "vue": "^3.0.11",
52 | "yorkie": "^2.0.0"
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/example/README.md:
--------------------------------------------------------------------------------
1 | # Vue 3 + Typescript + Vite
2 |
3 | This template should help get you started developing with Vue 3 and Typescript in Vite.
4 |
5 | ## Recommended IDE Setup
6 |
7 | [VSCode](https://code.visualstudio.com/) + [Vetur](https://marketplace.visualstudio.com/items?itemName=octref.vetur). Make sure to enable `vetur.experimental.templateInterpolationService` in settings!
8 |
9 | ### If Using `
69 |
70 |
71 |
--------------------------------------------------------------------------------
/src/components/slider/Slider.tsx:
--------------------------------------------------------------------------------
1 | import { Ref, unref, defineComponent, h, provide, computed } from "vue";
2 |
3 | type sliderContext = {
4 | setPosition(position: number): any;
5 | currentPosition: Ref;
6 | vertical: boolean;
7 | };
8 |
9 | export { sliderContext };
10 |
11 | export default defineComponent({
12 | props: {
13 | modelValue: {
14 | type: Number,
15 | default: 0,
16 | },
17 | min: {
18 | type: Number,
19 | default: 0,
20 | },
21 | max: {
22 | type: Number,
23 | default: 100,
24 | },
25 | step: {
26 | type: Number,
27 | default: 1,
28 | },
29 | vertical: {
30 | type: Boolean,
31 | default: false,
32 | },
33 | },
34 |
35 | setup(props, { emit }) {
36 | const currentPosition = computed(
37 | () =>
38 | `${
39 | ((props.modelValue - unref(props.min)) /
40 | (unref(props.max) - unref(props.min))) *
41 | 100
42 | }%`
43 | );
44 |
45 | const api = {
46 | vertical: props.vertical,
47 | currentPosition,
48 | setPosition(newPosition) {
49 | if (newPosition === null || isNaN(newPosition)) return;
50 | if (newPosition < 0) {
51 | newPosition = 0;
52 | } else if (newPosition > 100) {
53 | newPosition = 100;
54 | }
55 | const lengthPerStep = 100 / ((props.max - props.min) / props.step);
56 | console.log(props.step);
57 | const steps = Math.round(newPosition / lengthPerStep);
58 | let value =
59 | steps * lengthPerStep * (props.max - props.min) * 0.01 + props.min;
60 | value = parseFloat(value.toFixed(1));
61 |
62 | emit("update:modelValue", value);
63 | },
64 | };
65 |
66 | provide("sliderContext", api);
67 | },
68 |
69 | render() {
70 | const children = this.$slots.default?.() || [];
71 |
72 | return {children}
;
73 | },
74 | });
75 |
--------------------------------------------------------------------------------
/example/src/components/Switch/Switch.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
17 |
18 |
19 |
31 |
32 |
33 |
34 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29 | .grunt
30 |
31 | # Bower dependency directory (https://bower.io/)
32 | bower_components
33 |
34 | # node-waf configuration
35 | .lock-wscript
36 |
37 | # Compiled binary addons (https://nodejs.org/api/addons.html)
38 | build/Release
39 |
40 | # Dependency directories
41 | node_modules/
42 | jspm_packages/
43 |
44 | # TypeScript v1 declaration files
45 | typings/
46 |
47 | # TypeScript cache
48 | *.tsbuildinfo
49 |
50 | # Optional npm cache directory
51 | .npm
52 |
53 | # Optional eslint cache
54 | .eslintcache
55 |
56 | # Microbundle cache
57 | .rpt2_cache/
58 | .rts2_cache_cjs/
59 | .rts2_cache_es/
60 | .rts2_cache_umd/
61 |
62 | # Optional REPL history
63 | .node_repl_history
64 |
65 | # Output of 'npm pack'
66 | *.tgz
67 |
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | # dotenv environment variables file
72 | .env
73 | .env.test
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 |
78 | # Next.js build output
79 | .next
80 |
81 | # Nuxt.js build / generate output
82 | .nuxt
83 | dist
84 |
85 | # Gatsby files
86 | .cache/
87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js
88 | # https://nextjs.org/blog/next-9-1#public-directory-support
89 | # public
90 |
91 | # vuepress build output
92 | .vuepress/dist
93 |
94 | # Serverless directories
95 | .serverless/
96 |
97 | # FuseBox cache
98 | .fusebox/
99 |
100 | # DynamoDB Local files
101 | .dynamodb/
102 |
103 | # TernJS port file
104 | .tern-port
105 |
106 | .DS_Store
107 |
108 |
--------------------------------------------------------------------------------
/example/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | hi element3-core
4 |
5 |
9 |
10 |
11 |
button
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
71 |
72 |
88 |
--------------------------------------------------------------------------------
/src/components/slider/Slider.cy.ts:
--------------------------------------------------------------------------------
1 | import { mount } from "@cypress/vue";
2 | import { ref, computed } from "vue";
3 | import SliderButton from "./SliderButton";
4 | import Slider from "./Slider";
5 | describe("Slider", () => {
6 | it("init", () => {
7 | const Comp = {
8 | template: `
9 |
10 |
11 |
12 | {{value}}
13 |
14 |
15 |
16 | `,
17 | setup() {
18 | const width = 400;
19 | const value = ref(11);
20 | const style = computed(() => {
21 | return {
22 | background: "pink",
23 | borderRadius: "50%",
24 | width: "30px",
25 | height: "30px",
26 | textAlign: "center",
27 | transform: `translateX(${(value.value / 100) * width}px)`,
28 | };
29 | });
30 | const barStyle = {
31 | height: "50px",
32 | background: "red",
33 | width: width + "px",
34 | };
35 | return {
36 | style,
37 | value,
38 | barStyle,
39 | };
40 | },
41 | components: {
42 | Slider,
43 | SliderButton,
44 | },
45 | };
46 | mount(Comp, {});
47 | });
48 |
49 | it("vertical", () => {
50 | const Comp = {
51 | template: `
52 |
53 |
54 |
55 | {{value}}
56 |
57 |
58 |
59 | `,
60 | setup() {
61 | const height = 400;
62 | const value = ref(11);
63 | const style = computed(() => {
64 | return {
65 | background: "pink",
66 | borderRadius: "50%",
67 | width: "30px",
68 | height: "30px",
69 | textAlign: "center",
70 | transform: `translateY(${(value.value / 100) * height}px)`,
71 | };
72 | });
73 | const barStyle = {
74 | width: "50px",
75 | background: "red",
76 | height: height + "px",
77 | };
78 | return {
79 | style,
80 | value,
81 | barStyle,
82 | };
83 | },
84 | components: {
85 | Slider,
86 | SliderButton,
87 | },
88 | };
89 | mount(Comp, {});
90 | });
91 | });
92 |
--------------------------------------------------------------------------------
/src/components/slider/SliderButton.tsx:
--------------------------------------------------------------------------------
1 | import { defineComponent, h, unref, inject } from "vue";
2 | import { sliderContext } from "./Slider";
3 | export default defineComponent({
4 | setup() {
5 | const context = inject("sliderContext");
6 |
7 | let dragging = false;
8 | const onDragEnd = () => {
9 | dragEnd();
10 | removeEventListeners();
11 | };
12 |
13 | const onMousedown = (e) => {
14 | dragStart(e);
15 | addEventListeners();
16 | };
17 |
18 | function removeEventListeners() {
19 | window.removeEventListener("mousemove", onDragging);
20 | window.removeEventListener("touchmove", onDragging);
21 | window.removeEventListener("mouseup", onDragEnd);
22 | window.removeEventListener("touchend", onDragEnd);
23 | }
24 |
25 | function addEventListeners() {
26 | window.addEventListener("mousemove", onDragging);
27 | window.addEventListener("touchmove", onDragging);
28 | window.addEventListener("mouseup", onDragEnd);
29 | window.addEventListener("touchend", onDragEnd);
30 | }
31 |
32 | function dragEnd() {
33 | dragging = false;
34 | }
35 |
36 | let startX = 0;
37 | let startY = 0;
38 | let startPosition = 0;
39 | const dragStart = (e) => {
40 | dragging = true;
41 |
42 | if (e.type === "touchstart") {
43 | e.clientY = e.touches[0].clientY;
44 | e.clientX = e.touches[0].clientX;
45 | }
46 |
47 | startY = e.clientY;
48 | startX = e.clientX;
49 |
50 | startPosition = parseFloat(unref(context.currentPosition));
51 | };
52 |
53 | const onDragging = (e) => {
54 | if (!dragging) return;
55 |
56 | if (e.type === "touchmove") {
57 | e.clientY = e.touches[0].clientY;
58 | e.clientX = e.touches[0].clientX;
59 | }
60 |
61 | if (context.vertical) {
62 | // 上下
63 | const currentY = e.clientY;
64 | const sliderHeight = 400;
65 | let diffY = ((currentY - startY) / sliderHeight) * 100;
66 | context.setPosition(diffY + startPosition);
67 | } else {
68 | // 处理 左右 移动
69 | const currentX = e.clientX;
70 | const sliderWidth = 400;
71 | let diffX = ((currentX - startX) / sliderWidth) * 100;
72 | context.setPosition(diffX + startPosition);
73 | }
74 | };
75 |
76 | return {
77 | onMousedown,
78 | };
79 | },
80 |
81 | render() {
82 | const children = this.$slots.default?.() || [];
83 | return {children}
;
84 | },
85 | });
86 |
--------------------------------------------------------------------------------
/example/src/webglComponents/metal3.frag:
--------------------------------------------------------------------------------
1 | precision mediump float;
2 |
3 | uniform float iTime;
4 | uniform float iWidth;
5 | uniform float iHeight;
6 |
7 | vec2 u_CanvasSize=vec2(iWidth,iHeight);
8 | vec2 center = u_CanvasSize / 2.0;
9 | float len1 = length(center);
10 | float pi = radians(360.0) / 2.0;
11 |
12 |
13 | //渐变
14 | float texture1(float x) {
15 | float a = x / u_CanvasSize.x;
16 | float b = radians(360.0) * 5.0 * a;
17 | return (sin(b) + 1.0) / 2.0;
18 | }
19 |
20 | //水平拉丝
21 | float texture2(vec2 v) {
22 | vec2 a = vec2(0.0, 1.0);
23 | float n = dot(v, a);
24 | return fract(tan(n) * 10000.0);
25 | }
26 |
27 | //杂色
28 | float texture3(vec2 v) {
29 | vec2 a = vec2(0.1234, 0.5678);
30 | float n = dot(v, a);
31 | return fract(tan(n) * 10000.0);
32 | }
33 |
34 | //比例尺
35 | float scaler(float ax, float ay, float bx, float by, float x) {
36 | float x1 = bx - ax;
37 | float y1 = by - ay;
38 | float k = y1 / x1;
39 | float b = ay - ax * k;
40 | return k * x + b;
41 | }
42 |
43 |
44 |
45 | void main(){
46 | //极坐标系转二维直角坐标系
47 | vec2 p = gl_FragCoord.xy - center;
48 | float len2 = length(p);
49 | float ang = atan(p.y, p.x);
50 | float x = scaler(-pi, 0.0, pi, u_CanvasSize.x, ang);
51 | float y = (len2 / len1) * u_CanvasSize.y;
52 |
53 | //渐变
54 | float f1 = texture1(x);
55 | f1 = 0.65 * f1 + 0.35;
56 |
57 | //拉丝
58 | float f2 = texture2(vec2(int(x), int(y)));
59 | f2 = clamp(f2, 0.75, 0.8);
60 |
61 | //杂色
62 | float f3 = texture3(gl_FragCoord.xy);
63 |
64 | //复合颜色
65 | float f = (f1 * f2 + f3 * 0.07) * 1.2;
66 |
67 |
68 | //平行光方向
69 | vec2 lightDir1 = normalize(vec2(0.5, -1));
70 | vec2 lightDir2 = lightDir1 * -1.0;
71 |
72 | //片元和光线的夹角
73 | float cosAng1 = (dot(normalize(p), lightDir1) + 1.0) / 1.5 + 0.3;
74 | //cosAng1*=cosAng1/2.0;
75 | float cosAng2 = (dot(normalize(p), lightDir2) + 1.0) / 4.0 + 0.2;
76 | float cosAng3 = (dot(normalize(p), lightDir2) + 1.0) / 2.0 + 0.3;
77 | cosAng3 *= cosAng3;
78 | float cosAng4 = (dot(normalize(p), lightDir1) + 1.0) / 2.0 + 0.3;
79 |
80 | //扩展1
81 | float expand1=2.0;
82 | float expand2=4.0;
83 | float expand3=2.0;
84 | float expand4=3.0;
85 |
86 | //初始半径
87 | float r = center.y-expand1-expand2-expand3-expand4;
88 |
89 | float r1 = r + expand1;
90 | float r2 = r1 + expand2;
91 | float r3 = r2 + expand3;
92 |
93 | if(len2 < r) {
94 | gl_FragColor = vec4(vec3(f), 1);
95 | } else if(len2 >= r && len2 < r1) {
96 | f *= cosAng1;
97 | } else if(len2 >= r1 && len2 < r2) {
98 | f *= cosAng2;
99 | } else if(len2 >= r2 && len2 < r3) {
100 | f *= cosAng3;
101 | }
102 |
103 | gl_FragColor = vec4(vec3(f), 1);
104 |
105 | }
--------------------------------------------------------------------------------
/example/src/webglComponents/metal-button.frag:
--------------------------------------------------------------------------------
1 | precision highp float;
2 |
3 | #define OCTAVES 6
4 |
5 | uniform float m1;
6 | uniform float m2;
7 |
8 | uniform float iWidth;
9 | uniform float iHeight;
10 |
11 | uniform float r;
12 | uniform float g;
13 | uniform float b;
14 |
15 |
16 | highp float random(vec2 co)
17 | {
18 | highp float a = 12.9898;
19 | highp float b = 78.233;
20 | highp float c = 43758.5453;
21 | highp float dt= dot(co.xy ,vec2(a,b));
22 | highp float sn= mod(dt,3.14);
23 | return fract(sin(sn) * c);
24 | }
25 |
26 | float noise (in vec2 st) {
27 | vec2 i = floor(st);
28 | vec2 f = fract(st);
29 |
30 | // Four corners in 2D of a tile
31 | highp float a = random(vec2(i.x, i.y));
32 | highp float b = random(floor(vec2(i.x + 1., i.y)));
33 | highp float c = random(floor(vec2(i.x, i.y + 1.)));
34 | highp float d = random(floor(vec2(i.x + 1., i.y + 1.)));
35 |
36 | vec2 u = f*f*(3.0-2.0*f);
37 | // u = smoothstep(0.,1.,f);
38 |
39 | // Mix 4 coorners percentages
40 | //return a;
41 | return mix(a, b, u.x) +
42 | (c - a)* u.y * (1.0 - u.x) +
43 | (d - b) * u.x * u.y;
44 | }
45 |
46 | float fbm (in vec2 st) {
47 | // Initial values
48 | float value = 0.0;
49 | float amplitude = .5;
50 | float frequency = 0.;
51 | //
52 | // Loop of octaves
53 | for (int i = 0; i < OCTAVES; i++) {
54 | value += amplitude * noise(st);
55 | st *= 3.;
56 | amplitude *= .7;
57 | }
58 | return value;
59 | }
60 |
61 | vec2 roundToPrec(in vec2 st, float prec) {
62 | return floor(st / prec) * prec;
63 | }
64 |
65 |
66 | const int count = 15;
67 |
68 | vec3 blur(vec2 st, float prec){
69 | vec4 color = vec4(0, 0, 0, 0);
70 | float theta = atan(1., 2.);
71 |
72 | for(int i = -count; i <= count; i++) {
73 | float v = random(roundToPrec(st + vec2(float(i) * 0.5 , float(i)) * 0.4, 0.4)) ;
74 | color = color + vec4(vec3(v / (float(count) * 2.0 + 1.0)) , 1.0);
75 | }
76 | return color.xyz;
77 | }
78 |
79 | vec3 gradient(vec2 st) {
80 | float d = (st.x * 2. + st.y * 1.0);
81 | //d += iTime;
82 | vec3 color = vec3(r, g, b);
83 |
84 | //color = vec3(.85, .7, .45);
85 | float v = (sin(d / iWidth * 1.));
86 | return vec3((color + v + 3.) / 4.);
87 | }
88 |
89 | vec4 gradient2(vec2 co)
90 | {
91 | vec4 color = vec4(0.0, 1.0, 1.0, 1.0);
92 | float x = co.x - iWidth / 2.;
93 | float y = co.y - iHeight / 2.;
94 | float theta = atan(co.x - iWidth / 2., co.y - iHeight / 2.);
95 | //theta += iTime;
96 | float r = sqrt(x * x + y * y);
97 | color = vec4(vec3(sin(theta * 4.0) + 3.0) / 4.0, 1.0);
98 | return color;
99 | }
100 |
101 | void main() {
102 | vec2 st = gl_FragCoord.xy/600.0;
103 |
104 | vec3 color1 = vec3(0.0);
105 | color1 += fbm(st*1.0);
106 |
107 | vec3 color2 = blur(gl_FragCoord.xy, 0.1);
108 |
109 | vec3 color3 = gradient(gl_FragCoord.xy).xyz;
110 |
111 | vec3 color = mix(color3, color2, m1 / 100.);
112 |
113 | gl_FragColor = vec4(color.xyz, 1.0);
114 | //gl_FragColor = vec4(0., 0., 0., 1.);
115 | }
116 |
117 |
--------------------------------------------------------------------------------
/example/src/components/Button/Button.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
22 | {{label}}
23 |
24 |
37 |
38 |
39 |
40 |
41 |
124 |
125 |
130 |
--------------------------------------------------------------------------------
/example/src/webglComponents/draw.frag:
--------------------------------------------------------------------------------
1 | precision mediump float;
2 | uniform vec4 u_FragColor;
3 | const mat2 m = mat2( 0.80, 0.60, -0.60, 0.80 );
4 |
5 | float noise( in vec2 p )
6 | {
7 | return sin(p.x)*sin(p.y);
8 | }
9 |
10 | float fbm4( vec2 p )
11 | {
12 | float f = 0.0;
13 | f += 0.5000*noise( p ); p = m*p*2.02;
14 | f += 0.2500*noise( p ); p = m*p*2.03;
15 | f += 0.1250*noise( p ); p = m*p*2.01;
16 | f += 0.0625*noise( p );
17 | return f/0.9375;
18 | }
19 |
20 | float fbm6( vec2 p )
21 | {
22 | float f = 0.0;
23 | f += 0.500000*(0.5+0.5*noise( p )); p = m*p*2.02;
24 | f += 0.250000*(0.5+0.5*noise( p )); p = m*p*2.03;
25 | f += 0.125000*(0.5+0.5*noise( p )); p = m*p*2.01;
26 | f += 0.062500*(0.5+0.5*noise( p )); p = m*p*2.04;
27 | f += 0.031250*(0.5+0.5*noise( p )); p = m*p*2.01;
28 | f += 0.015625*(0.5+0.5*noise( p ));
29 | return f/0.96875;
30 | }
31 |
32 | vec2 fbm4_2( vec2 p )
33 | {
34 | return vec2(fbm4(p), fbm4(p+vec2(7.8)));
35 | }
36 |
37 | vec2 fbm6_2( vec2 p )
38 | {
39 | return vec2(fbm6(p+vec2(16.8)), fbm6(p+vec2(11.5)));
40 | }
41 | uniform float iTime;
42 | vec3 iResolution = vec3(100.0, 100.0, 1.0);
43 | float func( vec2 q, out vec4 ron )
44 | {
45 | q += 0.03*sin( vec2(0.27,0.23)*iTime + length(q)*vec2(4.1,4.3));
46 |
47 | vec2 o = fbm4_2( 0.9*q );
48 |
49 | o += 0.04*sin( vec2(0.12,0.14)*iTime + length(o));
50 |
51 | vec2 n = fbm6_2( 3.0*o );
52 |
53 | ron = vec4( o, n );
54 |
55 | float f = 0.5 + 0.5*fbm4( 1.8*q + 6.0*n );
56 |
57 | return mix( f, f*f*f*3.5, f*abs(n.x) );
58 | }
59 | void mainImage( out vec4 fragColor, in vec2 fragCoord )
60 | {
61 | vec3 r = vec3(100.0, 100.0, 1.0);
62 | vec2 p = (2.0*fragCoord-r.xy)/r.y;
63 | float e = 2.0/r.y;
64 |
65 | vec4 on = vec4(0.0);
66 | float f = func(p, on);
67 |
68 | vec3 col = vec3(0.0);
69 | col = mix( vec3(0.2,0.1,0.4), vec3(0.3,0.05,0.05), f );
70 | col = mix( col, vec3(0.9,0.9,0.9), dot(on.zw,on.zw) );
71 | col = mix( col, vec3(0.4,0.3,0.3), 0.2 + 0.5*on.y*on.y );
72 | col = mix( col, vec3(0.0,0.2,0.4), 0.5*smoothstep(1.2,1.3,abs(on.z)+abs(on.w)) );
73 | col = clamp( col*f*2.0, 0.0, 1.0 );
74 |
75 | #if 0
76 | // gpu derivatives - bad quality, but fast
77 | vec3 nor = normalize( vec3( dFdx(f)*iResolution.x, 6.0, dFdy(f)*iResolution.y ) );
78 | #else
79 | // manual derivatives - better quality, but slower
80 | vec4 kk;
81 | vec3 nor = normalize( vec3( func(p+vec2(e,0.0),kk)-f,
82 | 2.0*e,
83 | func(p+vec2(0.0,e),kk)-f ) );
84 | #endif
85 |
86 | vec3 lig = normalize( vec3( 0.9, 0.2, -0.4 ) );
87 | float dif = clamp( 0.3+0.7*dot( nor, lig ), 0.0, 1.0 );
88 | vec3 lin = vec3(0.70,0.90,0.95)*(nor.y*0.5+0.5) + vec3(0.15,0.10,0.05)*dif;
89 | col *= 1.2*lin;
90 | col = 1.0 - col;
91 | col = 1.1*col*col;
92 |
93 | fragColor = vec4( col, 1.0 );
94 | }
95 |
96 | void main(){
97 | vec4 a = vec4(1.0, 1.0, 1.0, 1.0);
98 | vec4 color = vec4(1.0, 1.0, 1.0, 1.0);
99 | vec4 coord = gl_FragCoord;
100 | mainImage(color, coord.xy);
101 |
102 | gl_FragColor=color;
103 | }
--------------------------------------------------------------------------------
/docs/webgl/assets/index.4c180d81.js:
--------------------------------------------------------------------------------
1 | import{r as t,w as e,o as n,a as i,h as r,S as a,b as o,c as l,d,e as u,f as s,B as c,g as f,t as h,i as m,j as g,k as p,l as b,m as S}from"./vendor.4f6f7efc.js";var x={name:"webgl-renderer",props:{width:String,height:String,indicesCount:{default:()=>5},indicesStart:{default:()=>0},iTime:{},iWidth:{},iHeight:{}},setup(r){const a=t(null);let o,l;return e((()=>{o&&l&&o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)})),n((()=>{o=a.value.getContext("webgl");var t=o.createShader(o.VERTEX_SHADER);o.shaderSource(t,"attribute vec4 a_Position;\nvoid main(){\n gl_Position=a_Position;\n}\n"),o.compileShader(t);var e=o.createShader(o.FRAGMENT_SHADER);o.shaderSource(e,"precision mediump float;\n\nuniform float iTime;\nuniform float iWidth;\nuniform float iHeight;\n\nvec2 u_CanvasSize=vec2(iWidth,iHeight);\nvec2 center = u_CanvasSize / 2.0;\nfloat len1 = length(center);\nfloat pi = radians(360.0) / 2.0;\n\n\n//渐变\nfloat texture1(float x) {\n float a = x / u_CanvasSize.x;\n float b = radians(360.0) * 5.0 * a;\n return (sin(b) + 1.0) / 2.0;\n}\n\n//水平拉丝\nfloat texture2(vec2 v) {\n vec2 a = vec2(0.0, 1.0);\n float n = dot(v, a);\n return fract(tan(n) * 10000.0);\n}\n\n//杂色\nfloat texture3(vec2 v) {\n vec2 a = vec2(0.1234, 0.5678);\n float n = dot(v, a);\n return fract(tan(n) * 10000.0);\n}\n\n//比例尺\nfloat scaler(float ax, float ay, float bx, float by, float x) {\n float x1 = bx - ax;\n float y1 = by - ay;\n float k = y1 / x1;\n float b = ay - ax * k;\n return k * x + b;\n}\n\n\n\nvoid main(){\n //极坐标系转二维直角坐标系\n vec2 p = gl_FragCoord.xy - center;\n float len2 = length(p);\n float ang = atan(p.y, p.x);\n float x = scaler(-pi, 0.0, pi, u_CanvasSize.x, ang);\n float y = (len2 / len1) * u_CanvasSize.y;\n\n //渐变\n float f1 = texture1(x);\n f1 = 0.65 * f1 + 0.35;\n\n //拉丝\n float f2 = texture2(vec2(int(x), int(y)));\n f2 = clamp(f2, 0.75, 0.8);\n\n //杂色\n float f3 = texture3(gl_FragCoord.xy);\n\n //复合颜色\n float f = (f1 * f2 + f3 * 0.07) * 1.2;\n\n \n //平行光方向\n vec2 lightDir1 = normalize(vec2(0.5, -1));\n vec2 lightDir2 = lightDir1 * -1.0;\n\n //片元和光线的夹角\n float cosAng1 = (dot(normalize(p), lightDir1) + 1.0) / 1.5 + 0.3;\n //cosAng1*=cosAng1/2.0;\n float cosAng2 = (dot(normalize(p), lightDir2) + 1.0) / 4.0 + 0.2;\n float cosAng3 = (dot(normalize(p), lightDir2) + 1.0) / 2.0 + 0.3;\n cosAng3 *= cosAng3;\n float cosAng4 = (dot(normalize(p), lightDir1) + 1.0) / 2.0 + 0.3;\n\n //扩展1\n float expand1=2.0;\n float expand2=4.0;\n float expand3=2.0;\n float expand4=3.0;\n\n //初始半径\n float r = center.y-expand1-expand2-expand3-expand4;\n\n float r1 = r + expand1;\n float r2 = r1 + expand2;\n float r3 = r2 + expand3;\n\n if(len2 < r) {\n gl_FragColor = vec4(vec3(f), 1);\n } else if(len2 >= r && len2 < r1) {\n f *= cosAng1;\n } else if(len2 >= r1 && len2 < r2) {\n f *= cosAng2;\n } else if(len2 >= r2 && len2 < r3) {\n f *= cosAng3;\n }\n\n gl_FragColor = vec4(vec3(f), 1);\n \n}"),o.compileShader(e),l=o.createProgram(),o.attachShader(l,t),o.attachShader(l,e),o.linkProgram(l),o.useProgram(l);var n=o.getAttribLocation(l,"a_PointSize");o.vertexAttrib1f(n,30);var i=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,i);var d=new Float32Array([-1,-1,-1,1,1,1,1,-1,-1,-1]);o.bufferData(o.ARRAY_BUFFER,d,o.STATIC_DRAW);var u=o.getAttribLocation(l,"a_Position");o.vertexAttribPointer(u,2,o.FLOAT,!1,0,0),o.enableVertexAttribArray(u),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let s=o.getUniformLocation(l,"iTime");o.uniform1f(s,Number(r.iTime)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let c=o.getUniformLocation(l,"iWidth");o.uniform1f(c,Number(r.iWidth)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let f=o.getUniformLocation(l,"iHeight");o.uniform1f(f,Number(r.iHeight)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)})),i((()=>r.iTime),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"iTime");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),i((()=>r.iWidth),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"iWidth");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),i((()=>r.iHeight),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"iHeight");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),{canvas:a}},render:function(){return r("canvas",{ref:"canvas",width:this.$props.width,height:this.$props.height})}};const v={components:{E3Switch:a,draw:x},setup(){const e=t(!1);return{buttonWidth:t(100),buttonHeight:t(100),backgroundStyle:{background:"linear-gradient(#333, #666)",width:"70px",height:"44px",borderRadius:"25px",border:"2px solid #333"},enabled:e,buttonStyle:{width:"40px",height:"40px",transform:"translate(0px,0px)",borderRadius:"50%",position:"absolute",boxShadow:"0px 3px 4px #000",transition:"all .2s ease-in"},buttonEnterStyle:{width:"40px",height:"40px",transform:"translate(30px,0px)",borderRadius:"50%",position:"absolute",boxShadow:"0px 3px 4px #000",transition:"all .2s ease-in"}}}};v.render=function(t,e,n,i,r,a){const c=o("draw"),f=o("E3Switch");return l(),d(f,{modelValue:i.enabled,"onUpdate:modelValue":e[1]||(e[1]=t=>i.enabled=t),class:"\n relative \n focus:outline-none\n "},{default:u((()=>[s(c,{width:"100",height:"100",iTime:0,iWidth:i.buttonWidth,iHeight:i.buttonHeight,style:i.enabled?i.buttonEnterStyle:i.buttonStyle},null,8,["iWidth","iHeight","style"]),s("div",{style:i.backgroundStyle},null,4)])),_:1},8,["modelValue"])};const A={components:{E3Button:c,draw:{name:"webgl-renderer",props:{width:String,height:String,indicesCount:{default:()=>5},indicesStart:{default:()=>0},m1:{},m2:{},iWidth:{},iHeight:{},r:{},g:{},b:{}},setup(r){const a=t(null);let o,l;return e((()=>{o&&l&&o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)})),n((()=>{o=a.value.getContext("webgl");var t=o.createShader(o.VERTEX_SHADER);o.shaderSource(t,"attribute vec4 a_Position;\nvoid main(){\n gl_Position=a_Position;\n}\n"),o.compileShader(t);var e=o.createShader(o.FRAGMENT_SHADER);o.shaderSource(e,"precision highp float;\n\n#define OCTAVES 6\n\nuniform float m1;\nuniform float m2;\n\nuniform float iWidth;\nuniform float iHeight;\n\nuniform float r;\nuniform float g;\nuniform float b;\n\nfloat radius=8.0;\n\nvec3 rgb=vec3(r,g,b);\n\nvec2 u_CanvasSize = vec2(iWidth, iHeight);\nvec2 center = u_CanvasSize / 2.0;\nfloat len1 = length(center);\nfloat pi = acos(-1.0);\n\n//渐变\nfloat texture1(float x) {\n float a = x / u_CanvasSize.x;\n float b = radians(360.0) * 0.5 * a+1.0;\n return (sin(b) + 1.0) / 2.0;\n}\n\n//水平拉丝\nfloat texture2(vec2 v) {\n vec2 a = vec2(0.2222, 0.4444);\n float n = dot(v, a);\n return fract(tan(n));\n}\n\n//杂色\nfloat texture3(vec2 v) {\n vec2 a = vec2(0.1234, 0.5678);\n float n = dot(v, a);\n return fract(tan(n) * 10000.0);\n}\n\n\n\n\nvoid main() {\n //极坐标系转二维直角坐标系\n //渐变\n float f1 = texture1(gl_FragCoord.x*cos(1.)-gl_FragCoord.y*sin(1.));\n f1 = 0.65 * f1 + 0.35;\n\n //拉丝\n float f2 = texture2(gl_FragCoord.xy);\n f2 = f2*0.3+0.5;\n\n //杂色\n float f3 = texture3(gl_FragCoord.xy);\n\n //复合颜色\n float f = f1*f2;\n vec3 color=rgb * f;\n color*=1.4;\n gl_FragColor = vec4(color, 1);\n}\n\n"),o.compileShader(e),l=o.createProgram(),o.attachShader(l,t),o.attachShader(l,e),o.linkProgram(l),o.useProgram(l);var n=o.getAttribLocation(l,"a_PointSize");o.vertexAttrib1f(n,30);var i=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,i);var d=new Float32Array([-1,-1,-1,1,1,1,1,-1,-1,-1]);o.bufferData(o.ARRAY_BUFFER,d,o.STATIC_DRAW);var u=o.getAttribLocation(l,"a_Position");o.vertexAttribPointer(u,2,o.FLOAT,!1,0,0),o.enableVertexAttribArray(u),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let s=o.getUniformLocation(l,"m1");o.uniform1f(s,Number(r.m1)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let c=o.getUniformLocation(l,"m2");o.uniform1f(c,Number(r.m2)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let f=o.getUniformLocation(l,"iWidth");o.uniform1f(f,Number(r.iWidth)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let h=o.getUniformLocation(l,"iHeight");o.uniform1f(h,Number(r.iHeight)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let m=o.getUniformLocation(l,"r");o.uniform1f(m,Number(r.r)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let g=o.getUniformLocation(l,"g");o.uniform1f(g,Number(r.g)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let p=o.getUniformLocation(l,"b");o.uniform1f(p,Number(r.b)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)})),i((()=>r.m1),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"m1");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),i((()=>r.m2),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"m2");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),i((()=>r.iWidth),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"iWidth");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),i((()=>r.iHeight),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"iHeight");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),i((()=>r.r),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"r");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),i((()=>r.g),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"g");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),i((()=>r.b),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"b");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),{canvas:a}},render:function(){return r("canvas",{ref:"canvas",width:this.$props.width,height:this.$props.height})}}},props:{label:{type:String,default:""},type:{type:String,default:"normal"}},setup(e){i((()=>e.r),(()=>{console.log("r",e.r)}));const n=t(!1);return{buttonWidth:t(120),buttonHeight:t(60),buttonStyle:{width:"120px",height:"60px",boxShadow:"0px 3px 4px #000",borderRadius:"8px",transform:"translateY(0px)"},buttonEnterStyle:{width:"120px",height:"60px",boxShadow:"0px 1px 4px #000",borderRadius:"8px",transform:"translateY(2px)"},color:f((()=>"primary"==e.type?{r:97/255,g:139/255,b:239/255}:"success"==e.type?{r:152/255,g:195/255,b:121/255}:"danger"==e.type?{r:224/255,g:108/255,b:117/255}:{r:.1,g:.1,b:.1})),m1:t(40),m2:t(20),enter:n}}};A.render=function(t,e,n,i,r,a){const c=o("draw"),f=o("E3Button");return l(),d("div",null,[s(f,{class:"EButton",modelValue:i.enter,"onUpdate:modelValue":e[1]||(e[1]=t=>i.enter=t),style:{position:"relative","border-radius":"8px"}},{default:u((()=>[s("div",{style:[{transform:"translateY("+(i.enter?2:0)+"px)"},{"font-family":"'verdana'","font-size":"24px",position:"absolute",width:"100%","text-align":"center","line-height":"60px",color:"rgba(255,255,255,.8)","text-shadow":"0px -1px 0px rgba(0,0,0,.6)","z-index":"2"}]},h(n.label),5),s(c,{iTime:3.14159/8,m1:i.m1,m2:i.m2,r:i.color.r,g:i.color.g,b:i.color.b,style:i.enter?i.buttonEnterStyle:i.buttonStyle,width:i.buttonWidth,height:i.buttonHeight,iWidth:i.buttonWidth,iHeight:i.buttonHeight},null,8,["iTime","m1","m2","r","g","b","style","width","height","iWidth","iHeight"])])),_:1},8,["modelValue"])])};const y={components:{E3Slider:m,E3SliderButton:g,draw:{name:"webgl-renderer",props:{width:String,height:String,indicesCount:{default:()=>5},indicesStart:{default:()=>0},iTime:{},iWidth:{},iHeight:{}},setup(r){const a=t(null);let o,l;return e((()=>{o&&l&&o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)})),n((()=>{o=a.value.getContext("webgl");var t=o.createShader(o.VERTEX_SHADER);o.shaderSource(t,"attribute vec4 a_Position;\nvoid main(){\n gl_Position=a_Position;\n}\n"),o.compileShader(t);var e=o.createShader(o.FRAGMENT_SHADER);o.shaderSource(e,"precision mediump float;\n\nuniform float iTime;\nuniform float iWidth;\nuniform float iHeight;\n\nhighp float rand(vec2 co)\n{\n /*if(int(co.x) < 50 && int(co.x) > 46 && int(co.y) < 50 && int(co.y) > 46) {\n return 0.0;\n } else {\n return 1.0;\n }*/\n co = vec2(float(int(co.x / 0.5)), float(int(co.y / 0.5)));\n highp float a = 12.9898;\n highp float b = 78.233;\n highp float c = 43758.5453;\n highp float dt= dot(co.xy ,vec2(a,b));\n highp float sn= mod(dt,3.14);\n return fract(sin(sn) * c);\n}\nconst int count = 15;\n\nvec4 blur(vec2 co)\n{\n vec4 color = vec4(0.0, 0.0, 0.0, 0.0);\n float x = co.x - iWidth / 2.;\n float y = co.y - iHeight / 2.;\n\n float theta = atan(co.y - iHeight / 2., co.x - iWidth / 2.);\n float r = sqrt(x * x + y * y);\n \n for(int i = -count; i <= count; i++) {\n float v1 = rand( vec2(cos(theta + float(i) / r) * r, sin(theta + float(i) / r) * r)) / (float(count) * 2.0 - 1.0);\n color = color + vec4(v1, v1, v1, 1.0); \n }\n return color;\n}\n\nvec4 gradient(vec2 co)\n{\n vec4 color = vec4(0.0, 1.0, 1.0, 1.0);\n float x = co.x - iWidth / 2.;\n float y = co.y - iHeight / 2.;\n float theta = atan(co.y - iWidth / 2., co.x - iHeight / 2.);\n theta += iTime;\n float r = sqrt(x * x + y * y);\n color = vec4(vec3(sin(theta * 4.0) + 3.0) / 4.0, 1.0);\n return color;\n}\n\n\n\nvoid main(){\n gl_FragColor = mix(gradient(gl_FragCoord.xy), blur(gl_FragCoord.xy), 0.4) ;\n}"),o.compileShader(e),l=o.createProgram(),o.attachShader(l,t),o.attachShader(l,e),o.linkProgram(l),o.useProgram(l);var n=o.getAttribLocation(l,"a_PointSize");o.vertexAttrib1f(n,30);var i=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,i);var d=new Float32Array([-1,-1,-1,1,1,1,1,-1,-1,-1]);o.bufferData(o.ARRAY_BUFFER,d,o.STATIC_DRAW);var u=o.getAttribLocation(l,"a_Position");o.vertexAttribPointer(u,2,o.FLOAT,!1,0,0),o.enableVertexAttribArray(u),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let s=o.getUniformLocation(l,"iTime");o.uniform1f(s,Number(r.iTime)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let c=o.getUniformLocation(l,"iWidth");o.uniform1f(c,Number(r.iWidth)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount);let f=o.getUniformLocation(l,"iHeight");o.uniform1f(f,Number(r.iHeight)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)})),i((()=>r.iTime),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"iTime");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),i((()=>r.iWidth),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"iWidth");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),i((()=>r.iHeight),(t=>{if(!o||!l)return;let e=o.getUniformLocation(l,"iHeight");o.uniform1f(e,Number(t)),o.drawArrays(o.TRIANGLE_STRIP,r.indicesStart,r.indicesCount)}),{immediate:!0}),{canvas:a}},render:function(){return r("canvas",{ref:"canvas",width:this.$props.width,height:this.$props.height})}}},setup(){const e=t(0),n=t(80),i=t(80),r={height:"18px",margin:"0 auto",background:"linear-gradient(#333, #666)",width:"400px",borderRadius:"9px",border:"2px solid #333"},a=t(0);setInterval((()=>{a.value=Date.now()/1e4%(2*Math.PI)}),20);const o=f((()=>({background:"pink",borderRadius:"50%",overflow:"hidden",width:"40px",height:"40px",cursor:"pointer",textAlign:"center",transform:`translate(${e.value/100*400-20}px,-16px)`,boxShadow:"0px 3px 4px #000"})));return{myTime:a,buttonWidth:n,buttonHeight:i,sliderStyle:r,buttonStyle:o,value:e}}};y.render=function(t,e,n,i,r,a){const c=o("draw"),f=o("E3SliderButton"),h=o("E3Slider");return l(),d("div",null,[s(h,{style:i.sliderStyle,modelValue:i.value,"onUpdate:modelValue":e[1]||(e[1]=t=>i.value=t)},{default:u((()=>[s(f,{style:i.buttonStyle},{default:u((()=>[s(c,{iTime:i.myTime,style:{width:"40px",height:"40px"},width:"80",height:"80",iWidth:i.buttonWidth,iHeight:i.buttonHeight},null,8,["iTime","iWidth","iHeight"])])),_:1},8,["style"])])),_:1},8,["style","modelValue"])])};const R={components:{E3Slider:m,E3SliderButton:g,draw:x},setup(){const e=t(100),n=t(100),i=t(0);return{buttonStyle:f((()=>({width:e.value+"px",height:n.value+"px",position:"relative",overflow:"hidden",borderRadius:"50%",boxShadow:"0px 3px 4px #000",transform:"rotate("+Math.ceil(i.value/100*360)+"deg)",overflow:"hidden"}))),buttonWidth:e,buttonHeight:n,value:i}}},T=s("div",{style:{background:"rgba(0,0,0,.3)",top:"180px",left:"95px","border-radius":"50%",width:"10px",height:"10px",position:"absolute","z-index":"2"}},null,-1);R.render=function(t,e,n,i,r,a){const c=o("draw"),f=o("E3SliderButton"),h=o("E3Slider");return l(),d("div",null,[s(h,{modelValue:i.value,"onUpdate:modelValue":e[1]||(e[1]=t=>i.value=t)},{default:u((()=>[s(f,{style:i.buttonStyle},{default:u((()=>[T,s(c,{style:{"border-radius":"50%"},iTime:0,width:i.buttonWidth,height:i.buttonHeight,iWidth:i.buttonWidth,iHeight:i.buttonHeight},null,8,["width","height","iWidth","iHeight"])])),_:1},8,["style"])])),_:1},8,["modelValue"])])};var w=p({name:"App",components:{Switch:v,Button:A,HSlider:y,RotateSlider:R},setup(){const e=t(0),n=t(0),i=t(0);return{colorR:f((()=>e.value/255)),colorG:f((()=>n.value/255)),colorB:f((()=>i.value/255)),slideR:e,slideG:n,slideB:i}}});const _={style:{height:"1000px"}},E=b(" hi element3-core "),I=s("p",null,"switch",-1),L=s("p",null,"button",-1),C={style:{display:"flex","justify-content":"space-evenly"}},N=s("p",null,"slider 水平",-1);w.render=function(t,e,n,i,r,a){const u=o("Switch"),c=o("Button"),f=o("HSlider");return l(),d("div",_,[E,s("div",null,[s("div",null,[I,s(u)]),s("div",null,[L,s("div",C,[s(c,{type:"success",label:"success"}),s(c,{type:"danger",label:"danger"}),s(c,{type:"primary",label:"primary"})])]),s("div",null,[N,s(f)])])])};S(w).mount("#app");
2 |
--------------------------------------------------------------------------------
/docs/webgl/assets/vendor.4f6f7efc.js:
--------------------------------------------------------------------------------
1 | function e(e,t){const n=Object.create(null),o=e.split(",");for(let s=0;s!!n[e.toLowerCase()]:e=>!!n[e]}const t=e("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt"),n=e("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function o(e){if(x(e)){const t={};for(let n=0;n{if(e){const n=e.split(r);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function i(e){let t="";if(k(e))t=e;else if(x(e))for(let n=0;nnull==e?"":F(e)?JSON.stringify(e,u,2):String(e),u=(e,t)=>w(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:S(t)?{[`Set(${t.size})`]:[...t.values()]}:!F(t)||x(t)||R(t)?t:String(t),a={},f=[],p=()=>{},d=()=>!1,h=/^on[^a-z]/,m=e=>h.test(e),v=e=>e.startsWith("onUpdate:"),g=Object.assign,_=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},y=Object.prototype.hasOwnProperty,b=(e,t)=>y.call(e,t),x=Array.isArray,w=e=>"[object Map]"===P(e),S=e=>"[object Set]"===P(e),C=e=>"function"==typeof e,k=e=>"string"==typeof e,E=e=>"symbol"==typeof e,F=e=>null!==e&&"object"==typeof e,O=e=>F(e)&&C(e.then)&&C(e.catch),M=Object.prototype.toString,P=e=>M.call(e),R=e=>"[object Object]"===P(e),N=e=>k(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,V=e(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),T=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},j=/-(\w)/g,$=T((e=>e.replace(j,((e,t)=>t?t.toUpperCase():"")))),I=/\B([A-Z])/g,A=T((e=>e.replace(I,"-$1").toLowerCase())),U=T((e=>e.charAt(0).toUpperCase()+e.slice(1))),L=T((e=>e?`on${U(e)}`:"")),B=(e,t)=>e!==t&&(e==e||t==t),z=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},W=e=>{const t=parseFloat(e);return isNaN(t)?e:t},H=new WeakMap,X=[];let Y;const K=Symbol(""),q=Symbol("");function G(e,t=a){(function(e){return e&&!0===e._isEffect})(e)&&(e=e.raw);const n=function(e,t){const n=function(){if(!n.active)return t.scheduler?void 0:e();if(!X.includes(n)){Q(n);try{return te.push(ee),ee=!0,X.push(n),Y=n,e()}finally{X.pop(),oe(),Y=X[X.length-1]}}};return n.id=Z++,n.allowRecurse=!!t.allowRecurse,n._isEffect=!0,n.active=!0,n.raw=e,n.deps=[],n.options=t,n}(e,t);return t.lazy||n(),n}function J(e){e.active&&(Q(e),e.options.onStop&&e.options.onStop(),e.active=!1)}let Z=0;function Q(e){const{deps:t}=e;if(t.length){for(let n=0;n{e&&e.forEach((e=>{(e!==Y||e.allowRecurse)&&i.add(e)}))};if("clear"===t)l.forEach(c);else if("length"===n&&x(e))l.forEach(((e,t)=>{("length"===t||t>=o)&&c(e)}));else switch(void 0!==n&&c(l.get(n)),t){case"add":x(e)?N(n)&&c(l.get("length")):(c(l.get(K)),w(e)&&c(l.get(q)));break;case"delete":x(e)||(c(l.get(K)),w(e)&&c(l.get(q)));break;case"set":w(e)&&c(l.get(K))}i.forEach((e=>{e.options.scheduler?e.options.scheduler(e):e()}))}const le=e("__proto__,__v_isRef,__isVue"),ie=new Set(Object.getOwnPropertyNames(Symbol).map((e=>Symbol[e])).filter(E)),ce=de(),ue=de(!1,!0),ae=de(!0),fe=de(!0,!0),pe={};function de(e=!1,t=!1){return function(n,o,s){if("__v_isReactive"===o)return!e;if("__v_isReadonly"===o)return e;if("__v_raw"===o&&s===(e?t?De:ze:t?Be:Le).get(n))return n;const r=x(n);if(!e&&r&&b(pe,o))return Reflect.get(pe,o,s);const l=Reflect.get(n,o,s);if(E(o)?ie.has(o):le(o))return l;if(e||se(n,0,o),t)return l;if(Qe(l)){return!r||!N(o)?l.value:l}return F(l)?e?Xe(l):He(l):l}}["includes","indexOf","lastIndexOf"].forEach((e=>{const t=Array.prototype[e];pe[e]=function(...e){const n=Je(this);for(let t=0,s=this.length;t{const t=Array.prototype[e];pe[e]=function(...e){ne();const n=t.apply(this,e);return oe(),n}}));function he(e=!1){return function(t,n,o,s){let r=t[n];if(!e&&(o=Je(o),r=Je(r),!x(t)&&Qe(r)&&!Qe(o)))return r.value=o,!0;const l=x(t)&&N(n)?Number(n)!0,deleteProperty:(e,t)=>!0},ge=g({},me,{get:ue,set:he(!0)});g({},ve,{get:fe});const _e=e=>F(e)?He(e):e,ye=e=>F(e)?Xe(e):e,be=e=>e,xe=e=>Reflect.getPrototypeOf(e);function we(e,t,n=!1,o=!1){const s=Je(e=e.__v_raw),r=Je(t);t!==r&&!n&&se(s,0,t),!n&&se(s,0,r);const{has:l}=xe(s),i=o?be:n?ye:_e;return l.call(s,t)?i(e.get(t)):l.call(s,r)?i(e.get(r)):void 0}function Se(e,t=!1){const n=this.__v_raw,o=Je(n),s=Je(e);return e!==s&&!t&&se(o,0,e),!t&&se(o,0,s),e===s?n.has(e):n.has(e)||n.has(s)}function Ce(e,t=!1){return e=e.__v_raw,!t&&se(Je(e),0,K),Reflect.get(e,"size",e)}function ke(e){e=Je(e);const t=Je(this);return xe(t).has.call(t,e)||(t.add(e),re(t,"add",e,e)),this}function Ee(e,t){t=Je(t);const n=Je(this),{has:o,get:s}=xe(n);let r=o.call(n,e);r||(e=Je(e),r=o.call(n,e));const l=s.call(n,e);return n.set(e,t),r?B(t,l)&&re(n,"set",e,t):re(n,"add",e,t),this}function Fe(e){const t=Je(this),{has:n,get:o}=xe(t);let s=n.call(t,e);s||(e=Je(e),s=n.call(t,e)),o&&o.call(t,e);const r=t.delete(e);return s&&re(t,"delete",e,void 0),r}function Oe(){const e=Je(this),t=0!==e.size,n=e.clear();return t&&re(e,"clear",void 0,void 0),n}function Me(e,t){return function(n,o){const s=this,r=s.__v_raw,l=Je(r),i=t?be:e?ye:_e;return!e&&se(l,0,K),r.forEach(((e,t)=>n.call(o,i(e),i(t),s)))}}function Pe(e,t,n){return function(...o){const s=this.__v_raw,r=Je(s),l=w(r),i="entries"===e||e===Symbol.iterator&&l,c="keys"===e&&l,u=s[e](...o),a=n?be:t?ye:_e;return!t&&se(r,0,c?q:K),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:i?[a(e[0]),a(e[1])]:a(e),done:t}},[Symbol.iterator](){return this}}}}function Re(e){return function(...t){return"delete"!==e&&this}}const Ne={get(e){return we(this,e)},get size(){return Ce(this)},has:Se,add:ke,set:Ee,delete:Fe,clear:Oe,forEach:Me(!1,!1)},Ve={get(e){return we(this,e,!1,!0)},get size(){return Ce(this)},has:Se,add:ke,set:Ee,delete:Fe,clear:Oe,forEach:Me(!1,!0)},Te={get(e){return we(this,e,!0)},get size(){return Ce(this,!0)},has(e){return Se.call(this,e,!0)},add:Re("add"),set:Re("set"),delete:Re("delete"),clear:Re("clear"),forEach:Me(!0,!1)},je={get(e){return we(this,e,!0,!0)},get size(){return Ce(this,!0)},has(e){return Se.call(this,e,!0)},add:Re("add"),set:Re("set"),delete:Re("delete"),clear:Re("clear"),forEach:Me(!0,!0)};function $e(e,t){const n=t?e?je:Ve:e?Te:Ne;return(t,o,s)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(b(n,o)&&o in t?n:t,o,s)}["keys","values","entries",Symbol.iterator].forEach((e=>{Ne[e]=Pe(e,!1,!1),Te[e]=Pe(e,!0,!1),Ve[e]=Pe(e,!1,!0),je[e]=Pe(e,!0,!0)}));const Ie={get:$e(!1,!1)},Ae={get:$e(!1,!0)},Ue={get:$e(!0,!1)},Le=new WeakMap,Be=new WeakMap,ze=new WeakMap,De=new WeakMap;function We(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>P(e).slice(8,-1))(e))}function He(e){return e&&e.__v_isReadonly?e:Ye(e,!1,me,Ie,Le)}function Xe(e){return Ye(e,!0,ve,Ue,ze)}function Ye(e,t,n,o,s){if(!F(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const r=s.get(e);if(r)return r;const l=We(e);if(0===l)return e;const i=new Proxy(e,2===l?o:n);return s.set(e,i),i}function Ke(e){return qe(e)?Ke(e.__v_raw):!(!e||!e.__v_isReactive)}function qe(e){return!(!e||!e.__v_isReadonly)}function Ge(e){return Ke(e)||qe(e)}function Je(e){return e&&Je(e.__v_raw)||e}const Ze=e=>F(e)?He(e):e;function Qe(e){return Boolean(e&&!0===e.__v_isRef)}function et(e){return function(e,t=!1){if(Qe(e))return e;return new tt(e,t)}(e)}class tt{constructor(e,t=!1){this._rawValue=e,this._shallow=t,this.__v_isRef=!0,this._value=t?e:Ze(e)}get value(){return se(Je(this),0,"value"),this._value}set value(e){B(Je(e),this._rawValue)&&(this._rawValue=e,this._value=this._shallow?e:Ze(e),re(Je(this),"set","value",e))}}function nt(e){return Qe(e)?e.value:e}const ot={get:(e,t,n)=>nt(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return Qe(s)&&!Qe(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function st(e){return Ke(e)?e:new Proxy(e,ot)}class rt{constructor(e,t){this._object=e,this._key=t,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(e){this._object[this._key]=e}}class lt{constructor(e,t,n){this._setter=t,this._dirty=!0,this.__v_isRef=!0,this.effect=G(e,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,re(Je(this),"set","value"))}}),this.__v_isReadonly=n}get value(){const e=Je(this);return e._dirty&&(e._value=this.effect(),e._dirty=!1),se(e,0,"value"),e._value}set value(e){this._setter(e)}}function it(e,t,n,o){let s;try{s=o?e(...o):e()}catch(r){ut(r,t,n)}return s}function ct(e,t,n,o){if(C(e)){const s=it(e,t,n,o);return s&&O(s)&&s.catch((e=>{ut(e,t,n)})),s}const s=[];for(let r=0;r>>1;Mt(pt[e])-1?pt.splice(t,0,e):pt.push(e),kt()}}function kt(){at||ft||(ft=!0,xt=bt.then(Pt))}function Et(e,t,n,o){x(e)?n.push(...e):t&&t.includes(e,e.allowRecurse?o+1:o)||n.push(e),kt()}function Ft(e,t=null){if(ht.length){for(wt=t,mt=[...new Set(ht)],ht.length=0,vt=0;vtMt(e)-Mt(t))),yt=0;yt<_t.length;yt++)_t[yt]();_t=null,yt=0}}const Mt=e=>null==e.id?1/0:e.id;function Pt(e){ft=!1,at=!0,Ft(e),pt.sort(((e,t)=>Mt(e)-Mt(t)));try{for(dt=0;dte.trim())):t&&(s=n.map(W))}let i,c=o[i=L(t)]||o[i=L($(t))];!c&&r&&(c=o[i=L(A(t))]),c&&ct(c,e,6,s);const u=o[i+"Once"];if(u){if(e.emitted){if(e.emitted[i])return}else(e.emitted={})[i]=!0;ct(u,e,6,s)}}function Nt(e,t,n=!1){if(!t.deopt&&void 0!==e.__emits)return e.__emits;const o=e.emits;let s={},r=!1;if(!C(e)){const o=e=>{const n=Nt(e,t,!0);n&&(r=!0,g(s,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return o||r?(x(o)?o.forEach((e=>s[e]=null)):g(s,o),e.__emits=s):e.__emits=null}function Vt(e,t){return!(!e||!m(t))&&(t=t.slice(2).replace(/Once$/,""),b(e,t[0].toLowerCase()+t.slice(1))||b(e,A(t))||b(e,t))}let Tt=0;const jt=e=>Tt+=e;let $t=null,It=null;function At(e){const t=$t;return $t=e,It=e&&e.type.__scopeId||null,t}function Ut(e,t=$t){if(!t)return e;const n=(...n)=>{Tt||Hn(!0);const o=At(t),s=e(...n);return At(o),Tt||Xn(),s};return n._c=!0,n}function Lt(e){const{type:t,vnode:n,proxy:o,withProxy:s,props:r,propsOptions:[l],slots:i,attrs:c,emit:u,render:a,renderCache:f,data:p,setupState:d,ctx:h}=e;let m;const g=At(e);try{let e;if(4&n.shapeFlag){const t=s||o;m=no(a.call(t,t,f,r,d,p,h)),e=c}else{const n=t;0,m=no(n.length>1?n(r,{attrs:c,slots:i,emit:u}):n(r,null)),e=t.props?c:zt(c)}let g=m;if(!1!==t.inheritAttrs&&e){const t=Object.keys(e),{shapeFlag:n}=g;t.length&&(1&n||6&n)&&(l&&t.some(v)&&(e=Dt(e,l)),g=eo(g,e))}n.dirs&&(g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&(g.transition=n.transition),m=g}catch(_){Dn.length=0,ut(_,e,1),m=Qn(Bn)}return At(g),m}function Bt(e){let t;for(let n=0;n{let t;for(const n in e)("class"===n||"style"===n||m(n))&&((t||(t={}))[n]=e[n]);return t},Dt=(e,t)=>{const n={};for(const o in e)v(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function Wt(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let s=0;s{l=!0;const[n,o]=qt(e,t,!0);g(s,n),o&&r.push(...o)};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}if(!o&&!l)return e.__props=f;if(x(o))for(let i=0;i-1,n[1]=o<0||t-1||b(n,"default"))&&r.push(e)}}}return e.__props=[s,r]}function Gt(e){return"$"!==e[0]}function Jt(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function Zt(e,t){return Jt(e)===Jt(t)}function Qt(e,t){return x(t)?t.findIndex((t=>Zt(t,e))):C(t)&&Zt(t,e)?0:-1}function en(e,t,n=wo,o=!1){if(n){const s=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;ne(),So(n);const s=ct(t,n,e,o);return So(null),oe(),s});return o?s.unshift(r):s.push(r),r}}const tn=e=>(t,n=wo)=>!ko&&en(e,t,n),nn=tn("bm"),on=tn("m"),sn=tn("bu"),rn=tn("u"),ln=tn("bum"),cn=tn("um"),un=tn("rtg"),an=tn("rtc");function fn(e,t){return hn(e,null,t)}const pn={};function dn(e,t,n){return hn(e,t,n)}function hn(e,t,{immediate:n,deep:o,flush:s,onTrack:r,onTrigger:l}=a,i=wo){let c,u,f=!1;if(Qe(e)?(c=()=>e.value,f=!!e._shallow):Ke(e)?(c=()=>e,o=!0):c=x(e)?()=>e.map((e=>Qe(e)?e.value:Ke(e)?vn(e):C(e)?it(e,i,2,[i&&i.proxy]):void 0)):C(e)?t?()=>it(e,i,2,[i&&i.proxy]):()=>{if(!i||!i.isUnmounted)return u&&u(),ct(e,i,3,[d])}:p,t&&o){const e=c;c=()=>vn(e())}let d=e=>{u=g.options.onStop=()=>{it(e,i,4)}},h=x(e)?[]:pn;const m=()=>{if(g.active)if(t){const e=g();(o||f||B(e,h))&&(u&&u(),ct(t,i,3,[e,h===pn?void 0:h,d]),h=e)}else g()};let v;m.allowRecurse=!!t,v="sync"===s?m:"post"===s?()=>Rn(m,i&&i.suspense):()=>{!i||i.isMounted?function(e){Et(e,mt,ht,vt)}(m):m()};const g=G(c,{lazy:!0,onTrack:r,onTrigger:l,scheduler:v});return Oo(g,i),t?n?m():h=g():"post"===s?Rn(g,i&&i.suspense):g(),()=>{J(g),i&&_(i.effects,g)}}function mn(e,t,n){const o=this.proxy;return hn(k(e)?()=>o[e]:e.bind(o),t.bind(o),n,this)}function vn(e,t=new Set){if(!F(e)||t.has(e))return e;if(t.add(e),Qe(e))vn(e.value,t);else if(x(e))for(let n=0;n{vn(e,t)}));else for(const n in e)vn(e[n],t);return e}const gn=e=>e.type.__isKeepAlive;function _n(e,t,n=wo){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}e()});if(en(t,o,n),n){let e=n.parent;for(;e&&e.parent;)gn(e.parent.vnode)&&yn(o,t,n,e),e=e.parent}}function yn(e,t,n,o){const s=en(t,e,o,!0);cn((()=>{_(o[t],s)}),n)}const bn=e=>"_"===e[0]||"$stable"===e,xn=e=>x(e)?e.map(no):[no(e)],wn=(e,t,n)=>Ut((e=>xn(t(e))),n),Sn=(e,t)=>{const n=e._ctx;for(const o in e){if(bn(o))continue;const s=e[o];if(C(s))t[o]=wn(0,s,n);else if(null!=s){const e=xn(s);t[o]=()=>e}}},Cn=(e,t)=>{const n=xn(t);e.slots.default=()=>n};function kn(e,t,n,o){const s=e.dirs,r=t&&t.dirs;for(let l=0;l(r.has(e)||(e&&C(e.install)?(r.add(e),e.install(i,...t)):C(e)&&(r.add(e),e(i,...t))),i),mixin:e=>(s.mixins.includes(e)||(s.mixins.push(e),(e.props||e.emits)&&(s.deopt=!0)),i),component:(e,t)=>t?(s.components[e]=t,i):s.components[e],directive:(e,t)=>t?(s.directives[e]=t,i):s.directives[e],mount(r,c,u){if(!l){const a=Qn(n,o);return a.appContext=s,c&&t?t(a,r):e(a,r,u),l=!0,i._container=r,r.__vue_app__=i,a.component.proxy}},unmount(){l&&(e(null,i._container),delete i._container.__vue_app__)},provide:(e,t)=>(s.provides[e]=t,i)};return i}}function Mn(e){return C(e)?{setup:e,name:e.name}:e}const Pn={scheduler:Ct,allowRecurse:!0},Rn=function(e,t){t&&t.pendingBranch?x(e)?t.effects.push(...e):t.effects.push(e):Et(e,_t,gt,yt)},Nn=(e,t,n,o)=>{if(x(e))return void e.forEach(((e,s)=>Nn(e,t&&(x(t)?t[s]:t),n,o)));let s;if(o){if(o.type.__asyncLoader)return;s=4&o.shapeFlag?o.component.exposed||o.component.proxy:o.el}else s=null;const{i:r,r:l}=e,i=t&&t.r,c=r.refs===a?r.refs={}:r.refs,u=r.setupState;if(null!=i&&i!==l&&(k(i)?(c[i]=null,b(u,i)&&(u[i]=null)):Qe(i)&&(i.value=null)),k(l)){const e=()=>{c[l]=s,b(u,l)&&(u[l]=s)};s?(e.id=-1,Rn(e,n)):e()}else if(Qe(l)){const e=()=>{l.value=s};s?(e.id=-1,Rn(e,n)):e()}else C(l)&&it(l,r,12,[s,c])};function Vn(e){return function(e,t){const{insert:n,remove:o,patchProp:s,forcePatchProp:r,createElement:l,createText:i,createComment:c,setText:u,setElementText:d,parentNode:h,nextSibling:m,setScopeId:v=p,cloneNode:_,insertStaticContent:y}=e,x=(e,t,n,o=null,s=null,r=null,l=!1,i=null,c=!1)=>{e&&!qn(e,t)&&(o=le(e),Z(e,s,r,!0),e=null),-2===t.patchFlag&&(c=!1,t.dynamicChildren=null);const{type:u,ref:a,shapeFlag:f}=t;switch(u){case Ln:w(e,t,n,o);break;case Bn:S(e,t,n,o);break;case zn:null==e&&C(t,n,o,l);break;case Un:I(e,t,n,o,s,r,l,i,c);break;default:1&f?F(e,t,n,o,s,r,l,i,c):6&f?U(e,t,n,o,s,r,l,i,c):(64&f||128&f)&&u.process(e,t,n,o,s,r,l,i,c,ce)}null!=a&&s&&Nn(a,e&&e.ref,r,t)},w=(e,t,o,s)=>{if(null==e)n(t.el=i(t.children),o,s);else{const n=t.el=e.el;t.children!==e.children&&u(n,t.children)}},S=(e,t,o,s)=>{null==e?n(t.el=c(t.children||""),o,s):t.el=e.el},C=(e,t,n,o)=>{[e.el,e.anchor]=y(e.children,t,n,o)},k=({el:e,anchor:t},o,s)=>{let r;for(;e&&e!==t;)r=m(e),n(e,o,s),e=r;n(t,o,s)},E=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=m(e),o(e),e=n;o(t)},F=(e,t,n,o,s,r,l,i,c)=>{l=l||"svg"===t.type,null==e?M(t,n,o,s,r,l,i,c):N(e,t,s,r,l,i,c)},M=(e,t,o,r,i,c,u,a)=>{let f,p;const{type:h,props:m,shapeFlag:v,transition:g,patchFlag:y,dirs:b}=e;if(e.el&&void 0!==_&&-1===y)f=e.el=_(e.el);else{if(f=e.el=l(e.type,c,m&&m.is,m),8&v?d(f,e.children):16&v&&R(e.children,f,null,r,i,c&&"foreignObject"!==h,u,a||!!e.dynamicChildren),b&&kn(e,null,r,"created"),m){for(const t in m)V(t)||s(f,t,null,m[t],c,e.children,r,i,se);(p=m.onVnodeBeforeMount)&&Tn(p,r,e)}P(f,e,e.scopeId,u,r)}b&&kn(e,null,r,"beforeMount");const x=(!i||i&&!i.pendingBranch)&&g&&!g.persisted;x&&g.beforeEnter(f),n(f,t,o),((p=m&&m.onVnodeMounted)||x||b)&&Rn((()=>{p&&Tn(p,r,e),x&&g.enter(f),b&&kn(e,null,r,"mounted")}),i)},P=(e,t,n,o,s)=>{if(n&&v(e,n),o)for(let r=0;r{for(let u=c;u{const u=t.el=e.el;let{patchFlag:f,dynamicChildren:p,dirs:h}=t;f|=16&e.patchFlag;const m=e.props||a,v=t.props||a;let g;if((g=v.onVnodeBeforeUpdate)&&Tn(g,n,t,e),h&&kn(t,e,n,"beforeUpdate"),f>0){if(16&f)j(u,t,m,v,n,o,l);else if(2&f&&m.class!==v.class&&s(u,"class",null,v.class,l),4&f&&s(u,"style",m.style,v.style,l),8&f){const i=t.dynamicProps;for(let t=0;t{g&&Tn(g,n,t,e),h&&kn(t,e,n,"updated")}),o)},T=(e,t,n,o,s,r,l)=>{for(let i=0;i{if(n!==o){for(const u in o){if(V(u))continue;const a=o[u],f=n[u];(a!==f||r&&r(e,u))&&s(e,u,f,a,c,t.children,l,i,se)}if(n!==a)for(const r in n)V(r)||r in o||s(e,r,n[r],null,c,t.children,l,i,se)}},I=(e,t,o,s,r,l,c,u,a)=>{const f=t.el=e?e.el:i(""),p=t.anchor=e?e.anchor:i("");let{patchFlag:d,dynamicChildren:h,slotScopeIds:m}=t;d>0&&(a=!0),m&&(u=u?u.concat(m):m),null==e?(n(f,o,s),n(p,o,s),R(t.children,o,p,r,l,c,u,a)):d>0&&64&d&&h&&e.dynamicChildren?(T(e.dynamicChildren,h,o,r,l,c,u),(null!=t.key||r&&t===r.subTree)&&jn(e,t,!0)):X(e,t,o,p,r,l,c,u,a)},U=(e,t,n,o,s,r,l,i,c)=>{t.slotScopeIds=i,null==e?512&t.shapeFlag?s.ctx.activate(t,n,o,l,c):L(t,n,o,s,r,l,c):B(e,t,c)},L=(e,t,n,o,s,r,l)=>{const i=e.component=function(e,t,n){const o=e.type,s=(t?t.appContext:e.appContext)||bo,r={uid:xo++,vnode:e,type:o,parent:t,appContext:s,root:null,next:null,subTree:null,update:null,render:null,proxy:null,exposed:null,withProxy:null,effects:null,provides:t?t.provides:Object.create(s.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:qt(o,s),emitsOptions:Nt(o,s),emit:null,emitted:null,propsDefaults:a,ctx:a,data:a,props:a,attrs:a,slots:a,refs:a,setupState:a,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null};return r.ctx={_:r},r.root=t?t.root:r,r.emit=Rt.bind(null,r),r}(e,o,s);if(gn(e)&&(i.ctx.renderer=ce),function(e,t=!1){ko=t;const{props:n,children:o}=e.vnode,s=Co(e);Xt(e,n,s,t),((e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=t,D(t,"_",n)):Sn(t,e.slots={})}else e.slots={},t&&Cn(e,t);D(e.slots,Gn,1)})(e,o);const r=s?function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,_o);const{setup:o}=n;if(o){const n=e.setupContext=o.length>1?function(e){const t=t=>{e.exposed=st(t)};return{attrs:e.attrs,slots:e.slots,emit:e.emit,expose:t}}(e):null;wo=e,ne();const s=it(o,e,0,[e.props,n]);if(oe(),wo=null,O(s)){if(t)return s.then((t=>{Eo(e,t)})).catch((t=>{ut(t,e,0)}));e.asyncDep=s}else Eo(e,s)}else Fo(e)}(e,t):void 0;ko=!1}(i),i.asyncDep){if(s&&s.registerDep(i,W),!e.el){const e=i.subTree=Qn(Bn);S(null,e,t,n)}}else W(i,e,t,n,s,r,l)},B=(e,t,n)=>{const o=t.component=e.component;if(function(e,t,n){const{props:o,children:s,component:r}=e,{props:l,children:i,patchFlag:c}=t,u=r.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&c>=0))return!(!s&&!i||i&&i.$stable)||o!==l&&(o?!l||Wt(o,l,u):!!l);if(1024&c)return!0;if(16&c)return o?Wt(o,l,u):!!l;if(8&c){const e=t.dynamicProps;for(let t=0;tdt&&pt.splice(t,1)}(o.update),o.update()}else t.component=e.component,t.el=e.el,o.vnode=t},W=(e,t,n,o,s,r,l)=>{e.update=G((function(){if(e.isMounted){let t,{next:n,bu:o,u:i,parent:c,vnode:u}=e,a=n;n?(n.el=u.el,H(e,n,l)):n=u,o&&z(o),(t=n.props&&n.props.onVnodeBeforeUpdate)&&Tn(t,c,n,u);const f=Lt(e),p=e.subTree;e.subTree=f,x(p,f,h(p.el),le(p),e,s,r),n.el=f.el,null===a&&function({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}(e,f.el),i&&Rn(i,s),(t=n.props&&n.props.onVnodeUpdated)&&Rn((()=>{Tn(t,c,n,u)}),s)}else{let l;const{el:i,props:c}=t,{bm:u,m:a,parent:f}=e;u&&z(u),(l=c&&c.onVnodeBeforeMount)&&Tn(l,f,t);const p=e.subTree=Lt(e);if(i&&ae?ae(t.el,p,e,s,null):(x(null,p,n,o,e,s,r),t.el=p.el),a&&Rn(a,s),l=c&&c.onVnodeMounted){const e=t;Rn((()=>{Tn(l,f,e)}),s)}const{a:d}=e;d&&256&t.shapeFlag&&Rn(d,s),e.isMounted=!0,t=n=o=null}}),Pn)},H=(e,t,n)=>{t.component=e;const o=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:s,attrs:r,vnode:{patchFlag:l}}=e,i=Je(s),[c]=e.propsOptions;if(!(o||l>0)||16&l){let o;Yt(e,t,s,r);for(const r in i)t&&(b(t,r)||(o=A(r))!==r&&b(t,o))||(c?!n||void 0===n[r]&&void 0===n[o]||(s[r]=Kt(c,t||a,r,void 0,e)):delete s[r]);if(r!==i)for(const e in r)t&&b(t,e)||delete r[e]}else if(8&l){const n=e.vnode.dynamicProps;for(let o=0;o{const{vnode:o,slots:s}=e;let r=!0,l=a;if(32&o.shapeFlag){const e=t._;e?n&&1===e?r=!1:(g(s,t),n||1!==e||delete s._):(r=!t.$stable,Sn(t,s)),l=t}else t&&(Cn(e,t),l={default:1});if(r)for(const i in s)bn(i)||i in l||delete s[i]})(e,t.children,n),ne(),Ft(void 0,e.update),oe()},X=(e,t,n,o,s,r,l,i,c=!1)=>{const u=e&&e.children,a=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:h}=t;if(p>0){if(128&p)return void K(u,f,n,o,s,r,l,i,c);if(256&p)return void Y(u,f,n,o,s,r,l,i,c)}8&h?(16&a&&se(u,s,r),f!==u&&d(n,f)):16&a?16&h?K(u,f,n,o,s,r,l,i,c):se(u,s,r,!0):(8&a&&d(n,""),16&h&&R(f,n,o,s,r,l,i,c))},Y=(e,t,n,o,s,r,l,i,c)=>{t=t||f;const u=(e=e||f).length,a=t.length,p=Math.min(u,a);let d;for(d=0;da?se(e,s,r,!0,!1,p):R(t,n,o,s,r,l,i,c,p)},K=(e,t,n,o,s,r,l,i,c)=>{let u=0;const a=t.length;let p=e.length-1,d=a-1;for(;u<=p&&u<=d;){const o=e[u],a=t[u]=c?oo(t[u]):no(t[u]);if(!qn(o,a))break;x(o,a,n,null,s,r,l,i,c),u++}for(;u<=p&&u<=d;){const o=e[p],u=t[d]=c?oo(t[d]):no(t[d]);if(!qn(o,u))break;x(o,u,n,null,s,r,l,i,c),p--,d--}if(u>p){if(u<=d){const e=d+1,f=ed)for(;u<=p;)Z(e[u],s,r,!0),u++;else{const h=u,m=u,v=new Map;for(u=m;u<=d;u++){const e=t[u]=c?oo(t[u]):no(t[u]);null!=e.key&&v.set(e.key,u)}let g,_=0;const y=d-m+1;let b=!1,w=0;const S=new Array(y);for(u=0;u=y){Z(o,s,r,!0);continue}let a;if(null!=o.key)a=v.get(o.key);else for(g=m;g<=d;g++)if(0===S[g-m]&&qn(o,t[g])){a=g;break}void 0===a?Z(o,s,r,!0):(S[a-m]=u+1,a>=w?w=a:b=!0,x(o,t[a],n,null,s,r,l,i,c),_++)}const C=b?function(e){const t=e.slice(),n=[0];let o,s,r,l,i;const c=e.length;for(o=0;o0&&(t[o]=n[r-1]),n[r]=o)}}r=n.length,l=n[r-1];for(;r-- >0;)n[r]=l,l=t[l];return n}(S):f;for(g=C.length-1,u=y-1;u>=0;u--){const e=m+u,f=t[e],p=e+1{const{el:l,type:i,transition:c,children:u,shapeFlag:a}=e;if(6&a)return void q(e.component.subTree,t,o,s);if(128&a)return void e.suspense.move(t,o,s);if(64&a)return void i.move(e,t,o,ce);if(i===Un){n(l,t,o);for(let e=0;ec.enter(l)),r);else{const{leave:e,delayLeave:s,afterLeave:r}=c,i=()=>n(l,t,o),u=()=>{e(l,(()=>{i(),r&&r()}))};s?s(l,i,u):u()}else n(l,t,o)},Z=(e,t,n,o=!1,s=!1)=>{const{type:r,props:l,ref:i,children:c,dynamicChildren:u,shapeFlag:a,patchFlag:f,dirs:p}=e;if(null!=i&&Nn(i,null,n,null),256&a)return void t.ctx.deactivate(e);const d=1&a&&p;let h;if((h=l&&l.onVnodeBeforeUnmount)&&Tn(h,t,e),6&a)te(e.component,n,o);else{if(128&a)return void e.suspense.unmount(n,o);d&&kn(e,null,t,"beforeUnmount"),64&a?e.type.remove(e,t,n,s,ce,o):u&&(r!==Un||f>0&&64&f)?se(u,t,n,!1,!0):(r===Un&&(128&f||256&f)||!s&&16&a)&&se(c,t,n),o&&Q(e)}((h=l&&l.onVnodeUnmounted)||d)&&Rn((()=>{h&&Tn(h,t,e),d&&kn(e,null,t,"unmounted")}),n)},Q=e=>{const{type:t,el:n,anchor:s,transition:r}=e;if(t===Un)return void ee(n,s);if(t===zn)return void E(e);const l=()=>{o(n),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){const{leave:t,delayLeave:o}=r,s=()=>t(n,l);o?o(e.el,l,s):s()}else l()},ee=(e,t)=>{let n;for(;e!==t;)n=m(e),o(e),e=n;o(t)},te=(e,t,n)=>{const{bum:o,effects:s,update:r,subTree:l,um:i}=e;if(o&&z(o),s)for(let c=0;c{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},se=(e,t,n,o=!1,s=!1,r=0)=>{for(let l=r;l6&e.shapeFlag?le(e.component.subTree):128&e.shapeFlag?e.suspense.next():m(e.anchor||e.el),ie=(e,t,n)=>{null==e?t._vnode&&Z(t._vnode,null,null,!0):x(t._vnode||null,e,t,null,null,null,n),Ot(),t._vnode=e},ce={p:x,um:Z,m:q,r:Q,mt:L,mc:R,pc:X,pbc:T,n:le,o:e};let ue,ae;t&&([ue,ae]=t(ce));return{render:ie,hydrate:ue,createApp:On(ie,ue)}}(e)}function Tn(e,t,n,o=null){ct(e,t,7,[n,o])}function jn(e,t,n=!1){const o=e.children,s=t.children;if(x(o)&&x(s))for(let r=0;rnull!=e?e:null,Zn=({ref:e})=>null!=e?k(e)||Qe(e)||C(e)?{i:$t,r:e}:e:null,Qn=function(e,t=null,n=null,s=0,r=null,l=!1){e&&e!==In||(e=Bn);if(Kn(e)){const o=eo(e,t,!0);return n&&so(o,n),o}c=e,C(c)&&"__vccOpts"in c&&(e=e.__vccOpts);var c;if(t){(Ge(t)||Gn in t)&&(t=g({},t));let{class:e,style:n}=t;e&&!k(e)&&(t.class=i(e)),F(n)&&(Ge(n)&&!x(n)&&(n=g({},n)),t.style=o(n))}const u=k(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:F(e)?4:C(e)?2:0,a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Jn(t),ref:t&&Zn(t),scopeId:It,slotScopeIds:null,children:null,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:u,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null};if(so(a,n),128&u){const{content:e,fallback:t}=function(e){const{shapeFlag:t,children:n}=e;let o,s;return 32&t?(o=Ht(n.default),s=Ht(n.fallback)):(o=Ht(n),s=no(null)),{content:o,fallback:s}}(a);a.ssContent=e,a.ssFallback=t}!l&&Wn&&(s>0||6&u)&&32!==s&&Wn.push(a);return a};function eo(e,t,n=!1){const{props:s,ref:r,patchFlag:l,children:c}=e,u=t?function(...e){const t=g({},e[0]);for(let n=1;n1)return n&&C(t)?t():t}}let io=!0;function co(e,t,n=[],o=[],s=[],r=!1){const{mixins:l,extends:i,data:c,computed:u,methods:f,watch:d,provide:h,inject:m,components:v,directives:_,beforeMount:y,mounted:b,beforeUpdate:w,updated:S,activated:k,deactivated:E,beforeDestroy:O,beforeUnmount:M,destroyed:P,unmounted:R,render:N,renderTracked:V,renderTriggered:T,errorCaptured:j,expose:$}=t,I=e.proxy,A=e.ctx,U=e.appContext.mixins;if(r&&N&&e.render===p&&(e.render=N),r||(io=!1,uo("beforeCreate","bc",t,e,U),io=!0,fo(e,U,n,o,s)),i&&co(e,i,n,o,s,!0),l&&fo(e,l,n,o,s),m)if(x(m))for(let a=0;apo(e,t,I))),c&&po(e,c,I)),u)for(const a in u){const e=u[a],t=Po({get:C(e)?e.bind(I,I):C(e.get)?e.get.bind(I,I):p,set:!C(e)&&C(e.set)?e.set.bind(I):p});Object.defineProperty(A,a,{enumerable:!0,configurable:!0,get:()=>t.value,set:e=>t.value=e})}var L;if(d&&o.push(d),!r&&o.length&&o.forEach((e=>{for(const t in e)ho(e[t],A,I,t)})),h&&s.push(h),!r&&s.length&&s.forEach((e=>{const t=C(e)?e.call(I):e;Reflect.ownKeys(t).forEach((e=>{ro(e,t[e])}))})),r&&(v&&g(e.components||(e.components=g({},e.type.components)),v),_&&g(e.directives||(e.directives=g({},e.type.directives)),_)),r||uo("created","c",t,e,U),y&&nn(y.bind(I)),b&&on(b.bind(I)),w&&sn(w.bind(I)),S&&rn(S.bind(I)),k&&_n(k.bind(I),"a",L),E&&function(e,t){_n(e,"da",t)}(E.bind(I)),j&&((e,t=wo)=>{en("ec",e,t)})(j.bind(I)),V&&an(V.bind(I)),T&&un(T.bind(I)),M&&ln(M.bind(I)),R&&cn(R.bind(I)),x($)&&!r)if($.length){const t=e.exposed||(e.exposed=st({}));$.forEach((e=>{t[e]=function(e,t){return Qe(e[t])?e[t]:new rt(e,t)}(I,e)}))}else e.exposed||(e.exposed=a)}function uo(e,t,n,o,s){for(let r=0;r{let t=e;for(let e=0;en[o];if(k(e)){const n=t[e];C(n)&&dn(s,n)}else if(C(e))dn(s,e.bind(n));else if(F(e))if(x(e))e.forEach((e=>ho(e,t,n,o)));else{const o=C(e.handler)?e.handler.bind(n):t[e.handler];C(o)&&dn(s,o,e)}}function mo(e,t,n){const o=n.appContext.config.optionMergeStrategies,{mixins:s,extends:r}=t;r&&mo(e,r,n),s&&s.forEach((t=>mo(e,t,n)));for(const l in t)o&&b(o,l)?e[l]=o[l](e[l],t[l],n.proxy,l):e[l]=t[l]}const vo=e=>e?Co(e)?e.exposed?e.exposed:e.proxy:vo(e.parent):null,go=g(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>vo(e.parent),$root:e=>vo(e.root),$emit:e=>e.emit,$options:e=>function(e){const t=e.type,{__merged:n,mixins:o,extends:s}=t;if(n)return n;const r=e.appContext.mixins;if(!r.length&&!o&&!s)return t;const l={};return r.forEach((t=>mo(l,t,e))),mo(l,t,e),t.__merged=l}(e),$forceUpdate:e=>()=>Ct(e.update),$nextTick:e=>St.bind(e.proxy),$watch:e=>mn.bind(e)}),_o={get({_:e},t){const{ctx:n,setupState:o,data:s,props:r,accessCache:l,type:i,appContext:c}=e;if("__v_skip"===t)return!0;let u;if("$"!==t[0]){const i=l[t];if(void 0!==i)switch(i){case 0:return o[t];case 1:return s[t];case 3:return n[t];case 2:return r[t]}else{if(o!==a&&b(o,t))return l[t]=0,o[t];if(s!==a&&b(s,t))return l[t]=1,s[t];if((u=e.propsOptions[0])&&b(u,t))return l[t]=2,r[t];if(n!==a&&b(n,t))return l[t]=3,n[t];io&&(l[t]=4)}}const f=go[t];let p,d;return f?("$attrs"===t&&se(e,0,t),f(e)):(p=i.__cssModules)&&(p=p[t])?p:n!==a&&b(n,t)?(l[t]=3,n[t]):(d=c.config.globalProperties,b(d,t)?d[t]:void 0)},set({_:e},t,n){const{data:o,setupState:s,ctx:r}=e;if(s!==a&&b(s,t))s[t]=n;else if(o!==a&&b(o,t))o[t]=n;else if(b(e.props,t))return!1;return("$"!==t[0]||!(t.slice(1)in e))&&(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:s,propsOptions:r}},l){let i;return void 0!==n[l]||e!==a&&b(e,l)||t!==a&&b(t,l)||(i=r[0])&&b(i,l)||b(o,l)||b(go,l)||b(s.config.globalProperties,l)}},yo=g({},_o,{get(e,t){if(t!==Symbol.unscopables)return _o.get(e,t,e)},has:(e,n)=>"_"!==n[0]&&!t(n)}),bo=En();let xo=0;let wo=null;const So=e=>{wo=e};function Co(e){return 4&e.vnode.shapeFlag}let ko=!1;function Eo(e,t,n){C(t)?e.render=t:F(t)&&(e.setupState=st(t)),Fo(e)}function Fo(e,t){const n=e.type;e.render||(e.render=n.render||p,e.render._rc&&(e.withProxy=new Proxy(e.ctx,yo))),wo=e,ne(),co(e,n),oe(),wo=null}function Oo(e,t=wo){t&&(t.effects||(t.effects=[])).push(e)}function Mo(e){return C(e)&&e.displayName||e.name}function Po(e){const t=function(e){let t,n;return C(e)?(t=e,n=p):(t=e.get,n=e.set),new lt(t,n,C(e)||!e.set)}(e);return Oo(t.effect),t}function Ro(e,t,n){const o=arguments.length;return 2===o?F(t)&&!x(t)?Kn(t)?Qn(e,null,[t]):Qn(e,t):Qn(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):3===o&&Kn(n)&&(n=[n]),Qn(e,t,n))}const No="3.0.11",Vo="http://www.w3.org/2000/svg",To="undefined"!=typeof document?document:null;let jo,$o;const Io={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const s=t?To.createElementNS(Vo,e):To.createElement(e,n?{is:n}:void 0);return"select"===e&&o&&null!=o.multiple&&s.setAttribute("multiple",o.multiple),s},createText:e=>To.createTextNode(e),createComment:e=>To.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>To.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,o){const s=o?$o||($o=To.createElementNS(Vo,"svg")):jo||(jo=To.createElement("div"));s.innerHTML=e;const r=s.firstChild;let l=r,i=l;for(;l;)i=l,Io.insert(l,t,n),l=s.firstChild;return[r,i]}};const Ao=/\s*!important$/;function Uo(e,t,n){if(x(n))n.forEach((n=>Uo(e,t,n)));else if(t.startsWith("--"))e.setProperty(t,n);else{const o=function(e,t){const n=Bo[t];if(n)return n;let o=$(t);if("filter"!==o&&o in e)return Bo[t]=o;o=U(o);for(let s=0;sdocument.createEvent("Event").timeStamp&&(Do=()=>performance.now());const e=navigator.userAgent.match(/firefox\/(\d+)/i);Wo=!!(e&&Number(e[1])<=53)}let Ho=0;const Xo=Promise.resolve(),Yo=()=>{Ho=0};function Ko(e,t,n,o,s=null){const r=e._vei||(e._vei={}),l=r[t];if(o&&l)l.value=o;else{const[n,i]=function(e){let t;if(qo.test(e)){let n;for(t={};n=e.match(qo);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[A(e.slice(2)),t]}(t);if(o){!function(e,t,n,o){e.addEventListener(t,n,o)}(e,n,r[t]=function(e,t){const n=e=>{const o=e.timeStamp||Do();(Wo||o>=n.attached-1)&&ct(function(e,t){if(x(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=(()=>Ho||(Xo.then(Yo),Ho=Do()))(),n}(o,s),i)}else l&&(!function(e,t,n,o){e.removeEventListener(t,n,o)}(e,n,l,i),r[t]=void 0)}}const qo=/(?:Once|Passive|Capture)$/;const Go=/^on[a-z]/;const Jo=g({patchProp:(e,t,o,s,r=!1,l,i,c,u)=>{switch(t){case"class":!function(e,t,n){if(null==t&&(t=""),n)e.setAttribute("class",t);else{const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),e.className=t}}(e,s,r);break;case"style":!function(e,t,n){const o=e.style;if(n)if(k(n)){if(t!==n){const t=o.display;o.cssText=n,"_vod"in e&&(o.display=t)}}else{for(const e in n)Uo(o,e,n[e]);if(t&&!k(t))for(const e in t)null==n[e]&&Uo(o,e,"")}else e.removeAttribute("style")}(e,o,s);break;default:m(t)?v(t)||Ko(e,t,0,s,i):function(e,t,n,o){if(o)return"innerHTML"===t||!!(t in e&&Go.test(t)&&C(n));if("spellcheck"===t||"draggable"===t)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if(Go.test(t)&&k(n))return!1;return t in e}(e,t,s,r)?function(e,t,n,o,s,r,l){if("innerHTML"===t||"textContent"===t)return o&&l(o,s,r),void(e[t]=null==n?"":n);if("value"!==t||"PROGRESS"===e.tagName){if(""===n||null==n){const o=typeof e[t];if(""===n&&"boolean"===o)return void(e[t]=!0);if(null==n&&"string"===o)return e[t]="",void e.removeAttribute(t);if("number"===o)return e[t]=0,void e.removeAttribute(t)}try{e[t]=n}catch(i){}}else{e._value=n;const t=null==n?"":n;e.value!==t&&(e.value=t)}}(e,t,s,l,i,c,u):("true-value"===t?e._trueValue=s:"false-value"===t&&(e._falseValue=s),function(e,t,o,s){if(s&&t.startsWith("xlink:"))null==o?e.removeAttributeNS(zo,t.slice(6,t.length)):e.setAttributeNS(zo,t,o);else{const s=n(t);null==o||s&&!1===o?e.removeAttribute(t):e.setAttribute(t,s?"":o)}}(e,t,s,r))}},forcePatchProp:(e,t)=>"value"===t},Io);let Zo;const Qo=(...e)=>{const t=(Zo||(Zo=Vn(Jo))).createApp(...e),{mount:n}=t;return t.mount=e=>{const o=function(e){if(k(e)){return document.querySelector(e)}return e}(e);if(!o)return;const s=t._component;C(s)||s.render||s.template||(s.template=o.innerHTML),o.innerHTML="";const r=n(o,!1,o instanceof SVGElement);return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},t};var es=Mn({props:["modelValue"],setup:(e,{emit:t})=>({onClick:()=>{t("update:modelValue",!e.modelValue)}}),render(){var e,t;const n=(null==(t=(e=this.$slots).default)?void 0:t.call(e))||[];return Ro("button",{onClick:this.onClick},n)}}),ts=Mn({props:["modelValue"],setup:(e,{emit:t})=>({onMouseup:()=>{t("update:modelValue",!1)},onMousedown:()=>{t("update:modelValue",!0)}}),render(){var e,t;const n=(null==(t=(e=this.$slots).default)?void 0:t.call(e))||[];return Ro("button",{onMouseup:this.onMouseup,onMousedown:this.onMousedown},n)}}),ns=Mn({setup(){const e=lo("sliderContext");let t=!1;const n=()=>{t=!1,window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",i),window.removeEventListener("mouseup",n),window.removeEventListener("touchend",n)};let o=0,s=0,r=0;const l=n=>{t=!0,"touchstart"===n.type&&(n.clientY=n.touches[0].clientY,n.clientX=n.touches[0].clientX),s=n.clientY,o=n.clientX,r=parseFloat(nt(e.currentPosition))},i=n=>{if(t)if("touchmove"===n.type&&(n.clientY=n.touches[0].clientY,n.clientX=n.touches[0].clientX),e.vertical){let t=(n.clientY-s)/400*100;e.setPosition(t+r)}else{let t=(n.clientX-o)/400*100;e.setPosition(t+r)}};return{onMousedown:e=>{l(e),window.addEventListener("mousemove",i),window.addEventListener("touchmove",i),window.addEventListener("mouseup",n),window.addEventListener("touchend",n)}}},render(){var e,t;const n=(null==(t=(e=this.$slots).default)?void 0:t.call(e))||[];return Ro("div",{onMousedown:this.onMousedown},n)}}),os=Mn({props:{modelValue:{type:Number,default:0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},vertical:{type:Boolean,default:!1}},setup(e,{emit:t}){const n=Po((()=>(e.modelValue-nt(e.min))/(nt(e.max)-nt(e.min))*100+"%"));ro("sliderContext",{vertical:e.vertical,currentPosition:n,setPosition(n){if(null===n||isNaN(n))return;n<0?n=0:n>100&&(n=100);const o=100/((e.max-e.min)/e.step);console.log(e.step);let s=Math.round(n/o)*o*(e.max-e.min)*.01+e.min;s=parseFloat(s.toFixed(1)),t("update:modelValue",s)}})},render(){var e,t;return Ro("div",(null==(t=(e=this.$slots).default)?void 0:t.call(e))||[])}});export{ts as B,es as S,dn as a,$n as b,Hn as c,Yn as d,Ut as e,Qn as f,Po as g,Ro as h,os as i,ns as j,Mn as k,to as l,Qo as m,on as o,et as r,c as t,fn as w};
2 |
--------------------------------------------------------------------------------
/example/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/helper-validator-identifier@^7.14.0":
6 | version "7.14.0"
7 | resolved "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.0.tgz?cache=0&sync_timestamp=1619727412592&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
8 | integrity sha1-0mytikfGUoaxXfFUcxml0Lzycog=
9 |
10 | "@babel/parser@^7.12.0", "@babel/parser@^7.13.9":
11 | version "7.14.3"
12 | resolved "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.14.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298"
13 | integrity sha1-m1MO7LBx/QyTUZ3yXF/58UdZ8pg=
14 |
15 | "@babel/types@^7.12.0", "@babel/types@^7.13.0":
16 | version "7.14.2"
17 | resolved "https://registry.nlark.com/@babel/types/download/@babel/types-7.14.2.tgz?cache=0&sync_timestamp=1620839504820&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3"
18 | integrity sha1-QgiuADEH74oFfqgzPlbrZNL2osM=
19 | dependencies:
20 | "@babel/helper-validator-identifier" "^7.14.0"
21 | to-fast-properties "^2.0.0"
22 |
23 | "@fullhuman/postcss-purgecss@^3.1.3":
24 | version "3.1.3"
25 | resolved "https://registry.npm.taobao.org/@fullhuman/postcss-purgecss/download/@fullhuman/postcss-purgecss-3.1.3.tgz#47af7b87c9bfb3de4bc94a38f875b928fffdf339"
26 | integrity sha1-R697h8m/s95LyUo4+HW5KP/98zk=
27 | dependencies:
28 | purgecss "^3.1.3"
29 |
30 | "@nodelib/fs.scandir@2.1.4":
31 | version "2.1.4"
32 | resolved "https://registry.npm.taobao.org/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.4.tgz?cache=0&sync_timestamp=1609074594471&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69"
33 | integrity sha1-1LNUml213iaD4MEHGrTxQJBLv2k=
34 | dependencies:
35 | "@nodelib/fs.stat" "2.0.4"
36 | run-parallel "^1.1.9"
37 |
38 | "@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2":
39 | version "2.0.4"
40 | resolved "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655"
41 | integrity sha1-o/LdYbq0O424+hCKEhz//kxnZlU=
42 |
43 | "@nodelib/fs.walk@^1.2.3":
44 | version "1.2.6"
45 | resolved "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063"
46 | integrity sha1-zOk5azCqWv6eN1Zgj1gxrctT0GM=
47 | dependencies:
48 | "@nodelib/fs.scandir" "2.1.4"
49 | fastq "^1.6.0"
50 |
51 | "@vitejs/plugin-vue@^1.2.2":
52 | version "1.2.2"
53 | resolved "https://registry.nlark.com/@vitejs/plugin-vue/download/@vitejs/plugin-vue-1.2.2.tgz#b0038fc11b9099f4cd01fcbf0ee419adda417b52"
54 | integrity sha1-sAOPwRuQmfTNAfy/DuQZrdpBe1I=
55 |
56 | "@vue/compiler-core@3.0.11":
57 | version "3.0.11"
58 | resolved "https://registry.nlark.com/@vue/compiler-core/download/@vue/compiler-core-3.0.11.tgz?cache=0&sync_timestamp=1620856071726&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcompiler-core%2Fdownload%2F%40vue%2Fcompiler-core-3.0.11.tgz#5ef579e46d7b336b8735228758d1c2c505aae69a"
59 | integrity sha1-XvV55G17M2uHNSKHWNHCxQWq5po=
60 | dependencies:
61 | "@babel/parser" "^7.12.0"
62 | "@babel/types" "^7.12.0"
63 | "@vue/shared" "3.0.11"
64 | estree-walker "^2.0.1"
65 | source-map "^0.6.1"
66 |
67 | "@vue/compiler-dom@3.0.11":
68 | version "3.0.11"
69 | resolved "https://registry.nlark.com/@vue/compiler-dom/download/@vue/compiler-dom-3.0.11.tgz#b15fc1c909371fd671746020ba55b5dab4a730ee"
70 | integrity sha1-sV/ByQk3H9ZxdGAgulW12rSnMO4=
71 | dependencies:
72 | "@vue/compiler-core" "3.0.11"
73 | "@vue/shared" "3.0.11"
74 |
75 | "@vue/compiler-sfc@^3.0.5":
76 | version "3.0.11"
77 | resolved "https://registry.nlark.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.0.11.tgz?cache=0&sync_timestamp=1620856029904&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcompiler-sfc%2Fdownload%2F%40vue%2Fcompiler-sfc-3.0.11.tgz#cd8ca2154b88967b521f5ad3b10f5f8b6b665679"
78 | integrity sha1-zYyiFUuIlntSH1rTsQ9fi2tmVnk=
79 | dependencies:
80 | "@babel/parser" "^7.13.9"
81 | "@babel/types" "^7.13.0"
82 | "@vue/compiler-core" "3.0.11"
83 | "@vue/compiler-dom" "3.0.11"
84 | "@vue/compiler-ssr" "3.0.11"
85 | "@vue/shared" "3.0.11"
86 | consolidate "^0.16.0"
87 | estree-walker "^2.0.1"
88 | hash-sum "^2.0.0"
89 | lru-cache "^5.1.1"
90 | magic-string "^0.25.7"
91 | merge-source-map "^1.1.0"
92 | postcss "^8.1.10"
93 | postcss-modules "^4.0.0"
94 | postcss-selector-parser "^6.0.4"
95 | source-map "^0.6.1"
96 |
97 | "@vue/compiler-ssr@3.0.11":
98 | version "3.0.11"
99 | resolved "https://registry.nlark.com/@vue/compiler-ssr/download/@vue/compiler-ssr-3.0.11.tgz?cache=0&sync_timestamp=1620856071906&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcompiler-ssr%2Fdownload%2F%40vue%2Fcompiler-ssr-3.0.11.tgz#ac5a05fd1257412fa66079c823d8203b6a889a13"
100 | integrity sha1-rFoF/RJXQS+mYHnII9ggO2qImhM=
101 | dependencies:
102 | "@vue/compiler-dom" "3.0.11"
103 | "@vue/shared" "3.0.11"
104 |
105 | "@vue/reactivity@3.0.11":
106 | version "3.0.11"
107 | resolved "https://registry.nlark.com/@vue/reactivity/download/@vue/reactivity-3.0.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Freactivity%2Fdownload%2F%40vue%2Freactivity-3.0.11.tgz#07b588349fd05626b17f3500cbef7d4bdb4dbd0b"
108 | integrity sha1-B7WINJ/QViaxfzUAy+99S9tNvQs=
109 | dependencies:
110 | "@vue/shared" "3.0.11"
111 |
112 | "@vue/runtime-core@3.0.11":
113 | version "3.0.11"
114 | resolved "https://registry.nlark.com/@vue/runtime-core/download/@vue/runtime-core-3.0.11.tgz#c52dfc6acf3215493623552c1c2919080c562e44"
115 | integrity sha1-xS38as8yFUk2I1UsHCkZCAxWLkQ=
116 | dependencies:
117 | "@vue/reactivity" "3.0.11"
118 | "@vue/shared" "3.0.11"
119 |
120 | "@vue/runtime-dom@3.0.11":
121 | version "3.0.11"
122 | resolved "https://registry.nlark.com/@vue/runtime-dom/download/@vue/runtime-dom-3.0.11.tgz?cache=0&sync_timestamp=1620856078760&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fruntime-dom%2Fdownload%2F%40vue%2Fruntime-dom-3.0.11.tgz#7a552df21907942721feb6961c418e222a699337"
123 | integrity sha1-elUt8hkHlCch/raWHEGOIippkzc=
124 | dependencies:
125 | "@vue/runtime-core" "3.0.11"
126 | "@vue/shared" "3.0.11"
127 | csstype "^2.6.8"
128 |
129 | "@vue/shared@3.0.11":
130 | version "3.0.11"
131 | resolved "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.0.11.tgz#20d22dd0da7d358bb21c17f9bde8628152642c77"
132 | integrity sha1-INIt0Np9NYuyHBf5vehigVJkLHc=
133 |
134 | acorn-node@^1.6.1:
135 | version "1.8.2"
136 | resolved "https://registry.npm.taobao.org/acorn-node/download/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
137 | integrity sha1-EUyV1kU55T3t4j3oudlt98euKvg=
138 | dependencies:
139 | acorn "^7.0.0"
140 | acorn-walk "^7.0.0"
141 | xtend "^4.0.2"
142 |
143 | acorn-walk@^7.0.0:
144 | version "7.2.0"
145 | resolved "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1619259236377&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
146 | integrity sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=
147 |
148 | acorn@^7.0.0:
149 | version "7.4.1"
150 | resolved "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1620134156200&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
151 | integrity sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=
152 |
153 | ansi-styles@^3.2.1:
154 | version "3.2.1"
155 | resolved "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995625950&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
156 | integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=
157 | dependencies:
158 | color-convert "^1.9.0"
159 |
160 | ansi-styles@^4.1.0:
161 | version "4.3.0"
162 | resolved "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995625950&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
163 | integrity sha1-7dgDYornHATIWuegkG7a00tkiTc=
164 | dependencies:
165 | color-convert "^2.0.1"
166 |
167 | anymatch@~3.1.1:
168 | version "3.1.2"
169 | resolved "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
170 | integrity sha1-wFV8CWrzLxBhmPT04qODU343hxY=
171 | dependencies:
172 | normalize-path "^3.0.0"
173 | picomatch "^2.0.4"
174 |
175 | at-least-node@^1.0.0:
176 | version "1.0.0"
177 | resolved "https://registry.npm.taobao.org/at-least-node/download/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
178 | integrity sha1-YCzUtG6EStTv/JKoARo8RuAjjcI=
179 |
180 | autoprefixer@^10.2.5:
181 | version "10.2.5"
182 | resolved "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-10.2.5.tgz?cache=0&sync_timestamp=1614956773875&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-10.2.5.tgz#096a0337dbc96c0873526d7fef5de4428d05382d"
183 | integrity sha1-CWoDN9vJbAhzUm1/713kQo0FOC0=
184 | dependencies:
185 | browserslist "^4.16.3"
186 | caniuse-lite "^1.0.30001196"
187 | colorette "^1.2.2"
188 | fraction.js "^4.0.13"
189 | normalize-range "^0.1.2"
190 | postcss-value-parser "^4.1.0"
191 |
192 | balanced-match@^1.0.0:
193 | version "1.0.2"
194 | resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
195 | integrity sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=
196 |
197 | big-integer@^1.6.17:
198 | version "1.6.48"
199 | resolved "https://registry.npm.taobao.org/big-integer/download/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e"
200 | integrity sha1-j9iL0WMsukocjD49cVnwi7lbS54=
201 |
202 | big.js@^5.2.2:
203 | version "5.2.2"
204 | resolved "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
205 | integrity sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=
206 |
207 | binary-extensions@^2.0.0:
208 | version "2.2.0"
209 | resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299268308&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
210 | integrity sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=
211 |
212 | binary@~0.3.0:
213 | version "0.3.0"
214 | resolved "https://registry.npm.taobao.org/binary/download/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
215 | integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=
216 | dependencies:
217 | buffers "~0.1.1"
218 | chainsaw "~0.1.0"
219 |
220 | bluebird@^3.7.2:
221 | version "3.7.2"
222 | resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz?cache=0&sync_timestamp=1593529666861&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbluebird%2Fdownload%2Fbluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
223 | integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28=
224 |
225 | bluebird@~3.4.1:
226 | version "3.4.7"
227 | resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.4.7.tgz?cache=0&sync_timestamp=1593529666861&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbluebird%2Fdownload%2Fbluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3"
228 | integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=
229 |
230 | brace-expansion@^1.1.7:
231 | version "1.1.11"
232 | resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
233 | integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=
234 | dependencies:
235 | balanced-match "^1.0.0"
236 | concat-map "0.0.1"
237 |
238 | braces@^3.0.1, braces@~3.0.2:
239 | version "3.0.2"
240 | resolved "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
241 | integrity sha1-NFThpGLujVmeI23zNs2epPiv4Qc=
242 | dependencies:
243 | fill-range "^7.0.1"
244 |
245 | browserslist@^4.16.3:
246 | version "4.16.6"
247 | resolved "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
248 | integrity sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=
249 | dependencies:
250 | caniuse-lite "^1.0.30001219"
251 | colorette "^1.2.2"
252 | electron-to-chromium "^1.3.723"
253 | escalade "^3.1.1"
254 | node-releases "^1.1.71"
255 |
256 | buffer-indexof-polyfill@~1.0.0:
257 | version "1.0.2"
258 | resolved "https://registry.npm.taobao.org/buffer-indexof-polyfill/download/buffer-indexof-polyfill-1.0.2.tgz?cache=0&sync_timestamp=1599618932660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-indexof-polyfill%2Fdownload%2Fbuffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c"
259 | integrity sha1-0nMhNcWZnGSyd/z5savjSYJUcpw=
260 |
261 | buffers@~0.1.1:
262 | version "0.1.1"
263 | resolved "https://registry.npm.taobao.org/buffers/download/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
264 | integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s=
265 |
266 | bytes@^3.0.0:
267 | version "3.1.0"
268 | resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
269 | integrity sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=
270 |
271 | camelcase-css@^2.0.1:
272 | version "2.0.1"
273 | resolved "https://registry.npm.taobao.org/camelcase-css/download/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
274 | integrity sha1-7pePaUeRTMMMa0R0G27R338EP9U=
275 |
276 | caniuse-lite@^1.0.30001196, caniuse-lite@^1.0.30001219:
277 | version "1.0.30001228"
278 | resolved "https://registry.nlark.com/caniuse-lite/download/caniuse-lite-1.0.30001228.tgz?cache=0&sync_timestamp=1620658846602&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa"
279 | integrity sha1-v9xZQs0zJvpR7gtC++9NqdSSp/o=
280 |
281 | chainsaw@~0.1.0:
282 | version "0.1.0"
283 | resolved "https://registry.npm.taobao.org/chainsaw/download/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
284 | integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=
285 | dependencies:
286 | traverse ">=0.3.0 <0.4"
287 |
288 | chalk@^2.4.1:
289 | version "2.4.2"
290 | resolved "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1618995297666&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
291 | integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=
292 | dependencies:
293 | ansi-styles "^3.2.1"
294 | escape-string-regexp "^1.0.5"
295 | supports-color "^5.3.0"
296 |
297 | chalk@^4.1.0:
298 | version "4.1.1"
299 | resolved "https://registry.nlark.com/chalk/download/chalk-4.1.1.tgz?cache=0&sync_timestamp=1618995297666&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
300 | integrity sha1-yAs/qyi/Y3HmhjMl7uZ+YYt35q0=
301 | dependencies:
302 | ansi-styles "^4.1.0"
303 | supports-color "^7.1.0"
304 |
305 | chokidar@^3.5.1:
306 | version "3.5.1"
307 | resolved "https://registry.npm.taobao.org/chokidar/download/chokidar-3.5.1.tgz?cache=0&sync_timestamp=1610719499558&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
308 | integrity sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=
309 | dependencies:
310 | anymatch "~3.1.1"
311 | braces "~3.0.2"
312 | glob-parent "~5.1.0"
313 | is-binary-path "~2.1.0"
314 | is-glob "~4.0.1"
315 | normalize-path "~3.0.0"
316 | readdirp "~3.5.0"
317 | optionalDependencies:
318 | fsevents "~2.3.1"
319 |
320 | color-convert@^1.9.0, color-convert@^1.9.1:
321 | version "1.9.3"
322 | resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
323 | integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=
324 | dependencies:
325 | color-name "1.1.3"
326 |
327 | color-convert@^2.0.1:
328 | version "2.0.1"
329 | resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
330 | integrity sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=
331 | dependencies:
332 | color-name "~1.1.4"
333 |
334 | color-name@1.1.3:
335 | version "1.1.3"
336 | resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
337 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
338 |
339 | color-name@^1.0.0, color-name@~1.1.4:
340 | version "1.1.4"
341 | resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
342 | integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=
343 |
344 | color-string@^1.5.4:
345 | version "1.5.5"
346 | resolved "https://registry.npm.taobao.org/color-string/download/color-string-1.5.5.tgz?cache=0&sync_timestamp=1614967248053&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-string%2Fdownload%2Fcolor-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014"
347 | integrity sha1-ZUdKjw50OWJfPSemoZ2J/EUiMBQ=
348 | dependencies:
349 | color-name "^1.0.0"
350 | simple-swizzle "^0.2.2"
351 |
352 | color@^3.1.3:
353 | version "3.1.3"
354 | resolved "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e"
355 | integrity sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4=
356 | dependencies:
357 | color-convert "^1.9.1"
358 | color-string "^1.5.4"
359 |
360 | colorette@^1.2.2:
361 | version "1.2.2"
362 | resolved "https://registry.nlark.com/colorette/download/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
363 | integrity sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=
364 |
365 | commander@^6.0.0:
366 | version "6.2.1"
367 | resolved "https://registry.nlark.com/commander/download/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
368 | integrity sha1-B5LraC37wyWZm7K4T93duhEKxzw=
369 |
370 | concat-map@0.0.1:
371 | version "0.0.1"
372 | resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
373 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
374 |
375 | consolidate@^0.16.0:
376 | version "0.16.0"
377 | resolved "https://registry.npm.taobao.org/consolidate/download/consolidate-0.16.0.tgz?cache=0&sync_timestamp=1599604996729&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16"
378 | integrity sha1-oRhkdokw8vGUMWYKZZBmaPX73BY=
379 | dependencies:
380 | bluebird "^3.7.2"
381 |
382 | core-util-is@~1.0.0:
383 | version "1.0.2"
384 | resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
385 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
386 |
387 | css-unit-converter@^1.1.1:
388 | version "1.1.2"
389 | resolved "https://registry.npm.taobao.org/css-unit-converter/download/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21"
390 | integrity sha1-THf1oZVObb/2BpXsshTjJwQ2qyE=
391 |
392 | cssesc@^3.0.0:
393 | version "3.0.0"
394 | resolved "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
395 | integrity sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=
396 |
397 | csstype@^2.6.8:
398 | version "2.6.17"
399 | resolved "https://registry.nlark.com/csstype/download/csstype-2.6.17.tgz?cache=0&sync_timestamp=1618818427821&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcsstype%2Fdownload%2Fcsstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e"
400 | integrity sha1-TPMOuH4dGgBdi2UQ+VKSQT9qHA4=
401 |
402 | defined@^1.0.0:
403 | version "1.0.0"
404 | resolved "https://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
405 | integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
406 |
407 | detective@^5.2.0:
408 | version "5.2.0"
409 | resolved "https://registry.npm.taobao.org/detective/download/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
410 | integrity sha1-/rKnfoW5BOzepFmtiXzJCpm9Kns=
411 | dependencies:
412 | acorn-node "^1.6.1"
413 | defined "^1.0.0"
414 | minimist "^1.1.1"
415 |
416 | didyoumean@^1.2.1:
417 | version "1.2.1"
418 | resolved "https://registry.npm.taobao.org/didyoumean/download/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff"
419 | integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=
420 |
421 | dlv@^1.1.3:
422 | version "1.1.3"
423 | resolved "https://registry.npm.taobao.org/dlv/download/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
424 | integrity sha1-XBmKihFFNZbnUUlNSYdLx3MvLnk=
425 |
426 | duplexer2@~0.1.4:
427 | version "0.1.4"
428 | resolved "https://registry.npm.taobao.org/duplexer2/download/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
429 | integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=
430 | dependencies:
431 | readable-stream "^2.0.2"
432 |
433 | electron-to-chromium@^1.3.723:
434 | version "1.3.730"
435 | resolved "https://registry.nlark.com/electron-to-chromium/download/electron-to-chromium-1.3.730.tgz?cache=0&sync_timestamp=1621303385576&other_urls=https%3A%2F%2Fregistry.nlark.com%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.730.tgz#6e1fad8f250827f5524672e572f823b34a6417e1"
436 | integrity sha1-bh+tjyUIJ/VSRnLlcvgjs0pkF+E=
437 |
438 | element3-core@0.0.7:
439 | version "0.0.7"
440 | resolved "https://registry.nlark.com/element3-core/download/element3-core-0.0.7.tgz#aef2ffdc71f63c559451a14069669fc76b47063e"
441 | integrity sha1-rvL/3HH2PFWUUaFAaWafx2tHBj4=
442 |
443 | emojis-list@^3.0.0:
444 | version "3.0.0"
445 | resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
446 | integrity sha1-VXBmIEatKeLpFucariYKvf9Pang=
447 |
448 | esbuild@^0.11.23:
449 | version "0.11.23"
450 | resolved "https://registry.nlark.com/esbuild/download/esbuild-0.11.23.tgz?cache=0&sync_timestamp=1621313450736&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fesbuild%2Fdownload%2Fesbuild-0.11.23.tgz#c42534f632e165120671d64db67883634333b4b8"
451 | integrity sha1-xCU09jLhZRIGcdZNtniDY0MztLg=
452 |
453 | escalade@^3.1.1:
454 | version "3.1.1"
455 | resolved "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
456 | integrity sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=
457 |
458 | escape-string-regexp@^1.0.5:
459 | version "1.0.5"
460 | resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
461 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
462 |
463 | estree-walker@^2.0.1:
464 | version "2.0.2"
465 | resolved "https://registry.npm.taobao.org/estree-walker/download/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
466 | integrity sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=
467 |
468 | fast-glob@^3.2.5:
469 | version "3.2.5"
470 | resolved "https://registry.npm.taobao.org/fast-glob/download/fast-glob-3.2.5.tgz?cache=0&sync_timestamp=1610876574130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661"
471 | integrity sha1-eTmvKmVt55pPGQGQPuityqfLlmE=
472 | dependencies:
473 | "@nodelib/fs.stat" "^2.0.2"
474 | "@nodelib/fs.walk" "^1.2.3"
475 | glob-parent "^5.1.0"
476 | merge2 "^1.3.0"
477 | micromatch "^4.0.2"
478 | picomatch "^2.2.1"
479 |
480 | fastq@^1.6.0:
481 | version "1.11.0"
482 | resolved "https://registry.npm.taobao.org/fastq/download/fastq-1.11.0.tgz?cache=0&sync_timestamp=1614183622904&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffastq%2Fdownload%2Ffastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858"
483 | integrity sha1-u5+5VaBxMKkY62PB9RYcwypdCFg=
484 | dependencies:
485 | reusify "^1.0.4"
486 |
487 | fill-range@^7.0.1:
488 | version "7.0.1"
489 | resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
490 | integrity sha1-GRmmp8df44ssfHflGYU12prN2kA=
491 | dependencies:
492 | to-regex-range "^5.0.1"
493 |
494 | fraction.js@^4.0.13:
495 | version "4.1.0"
496 | resolved "https://registry.nlark.com/fraction.js/download/fraction.js-4.1.0.tgz#229ec1cedc8c3c7e5d2d20688ba64f0a43af5830"
497 | integrity sha1-Ip7BztyMPH5dLSBoi6ZPCkOvWDA=
498 |
499 | fs-extra@^9.1.0:
500 | version "9.1.0"
501 | resolved "https://registry.nlark.com/fs-extra/download/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
502 | integrity sha1-WVRGDHZKjaIJS6NVS/g55rmnyG0=
503 | dependencies:
504 | at-least-node "^1.0.0"
505 | graceful-fs "^4.2.0"
506 | jsonfile "^6.0.1"
507 | universalify "^2.0.0"
508 |
509 | fs.realpath@^1.0.0:
510 | version "1.0.0"
511 | resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
512 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
513 |
514 | fsevents@~2.3.1:
515 | version "2.3.2"
516 | resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.2.tgz?cache=0&sync_timestamp=1612536512306&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
517 | integrity sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=
518 |
519 | fstream@^1.0.12:
520 | version "1.0.12"
521 | resolved "https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045"
522 | integrity sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU=
523 | dependencies:
524 | graceful-fs "^4.1.2"
525 | inherits "~2.0.0"
526 | mkdirp ">=0.5 0"
527 | rimraf "2"
528 |
529 | function-bind@^1.1.1:
530 | version "1.1.1"
531 | resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
532 | integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=
533 |
534 | generic-names@^2.0.1:
535 | version "2.0.1"
536 | resolved "https://registry.npm.taobao.org/generic-names/download/generic-names-2.0.1.tgz?cache=0&sync_timestamp=1603542291410&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgeneric-names%2Fdownload%2Fgeneric-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872"
537 | integrity sha1-+KN46tLMqno08DF7BVVIMq5BuHI=
538 | dependencies:
539 | loader-utils "^1.1.0"
540 |
541 | glob-base@^0.3.0:
542 | version "0.3.0"
543 | resolved "https://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
544 | integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
545 | dependencies:
546 | glob-parent "^2.0.0"
547 | is-glob "^2.0.0"
548 |
549 | glob-parent@^2.0.0:
550 | version "2.0.0"
551 | resolved "https://registry.nlark.com/glob-parent/download/glob-parent-2.0.0.tgz?cache=0&sync_timestamp=1620073671816&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob-parent%2Fdownload%2Fglob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
552 | integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
553 | dependencies:
554 | is-glob "^2.0.0"
555 |
556 | glob-parent@^5.1.0, glob-parent@~5.1.0:
557 | version "5.1.2"
558 | resolved "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1620073671816&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
559 | integrity sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=
560 | dependencies:
561 | is-glob "^4.0.1"
562 |
563 | glob@^7.0.0, glob@^7.1.2, glob@^7.1.3:
564 | version "7.1.7"
565 | resolved "https://registry.nlark.com/glob/download/glob-7.1.7.tgz?cache=0&sync_timestamp=1620337382269&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob%2Fdownload%2Fglob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
566 | integrity sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=
567 | dependencies:
568 | fs.realpath "^1.0.0"
569 | inflight "^1.0.4"
570 | inherits "2"
571 | minimatch "^3.0.4"
572 | once "^1.3.0"
573 | path-is-absolute "^1.0.0"
574 |
575 | graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2:
576 | version "4.2.6"
577 | resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
578 | integrity sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4=
579 |
580 | has-flag@^3.0.0:
581 | version "3.0.0"
582 | resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
583 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
584 |
585 | has-flag@^4.0.0:
586 | version "4.0.0"
587 | resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
588 | integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=
589 |
590 | has@^1.0.3:
591 | version "1.0.3"
592 | resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
593 | integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=
594 | dependencies:
595 | function-bind "^1.1.1"
596 |
597 | hash-sum@^2.0.0:
598 | version "2.0.0"
599 | resolved "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a"
600 | integrity sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=
601 |
602 | html-tags@^3.1.0:
603 | version "3.1.0"
604 | resolved "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140"
605 | integrity sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=
606 |
607 | icss-replace-symbols@^1.1.0:
608 | version "1.1.0"
609 | resolved "https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
610 | integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
611 |
612 | icss-utils@^5.0.0:
613 | version "5.1.0"
614 | resolved "https://registry.npm.taobao.org/icss-utils/download/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
615 | integrity sha1-xr5oWKvQE9do6YNmrkfiXViHsa4=
616 |
617 | inflight@^1.0.4:
618 | version "1.0.6"
619 | resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
620 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
621 | dependencies:
622 | once "^1.3.0"
623 | wrappy "1"
624 |
625 | inherits@2, inherits@~2.0.0, inherits@~2.0.3:
626 | version "2.0.4"
627 | resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
628 | integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=
629 |
630 | is-arrayish@^0.3.1:
631 | version "0.3.2"
632 | resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
633 | integrity sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=
634 |
635 | is-binary-path@~2.1.0:
636 | version "2.1.0"
637 | resolved "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
638 | integrity sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=
639 | dependencies:
640 | binary-extensions "^2.0.0"
641 |
642 | is-core-module@^2.2.0:
643 | version "2.4.0"
644 | resolved "https://registry.nlark.com/is-core-module/download/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1"
645 | integrity sha1-jp/I4VAnsBFBgCbpjw5vTYYwXME=
646 | dependencies:
647 | has "^1.0.3"
648 |
649 | is-dotfile@^1.0.0:
650 | version "1.0.3"
651 | resolved "https://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
652 | integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
653 |
654 | is-extglob@^1.0.0:
655 | version "1.0.0"
656 | resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
657 | integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
658 |
659 | is-extglob@^2.1.1:
660 | version "2.1.1"
661 | resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
662 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
663 |
664 | is-glob@^2.0.0:
665 | version "2.0.1"
666 | resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
667 | integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
668 | dependencies:
669 | is-extglob "^1.0.0"
670 |
671 | is-glob@^4.0.1, is-glob@~4.0.1:
672 | version "4.0.1"
673 | resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
674 | integrity sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=
675 | dependencies:
676 | is-extglob "^2.1.1"
677 |
678 | is-number@^7.0.0:
679 | version "7.0.0"
680 | resolved "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
681 | integrity sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=
682 |
683 | isarray@~1.0.0:
684 | version "1.0.0"
685 | resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
686 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
687 |
688 | json5@^1.0.1:
689 | version "1.0.1"
690 | resolved "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
691 | integrity sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=
692 | dependencies:
693 | minimist "^1.2.0"
694 |
695 | jsonfile@^6.0.1:
696 | version "6.1.0"
697 | resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-6.1.0.tgz?cache=0&sync_timestamp=1604161844511&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
698 | integrity sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=
699 | dependencies:
700 | universalify "^2.0.0"
701 | optionalDependencies:
702 | graceful-fs "^4.1.6"
703 |
704 | listenercount@~1.0.1:
705 | version "1.0.1"
706 | resolved "https://registry.npm.taobao.org/listenercount/download/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937"
707 | integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=
708 |
709 | loader-utils@^1.1.0:
710 | version "1.4.0"
711 | resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
712 | integrity sha1-xXm140yzSxp07cbB+za/o3HVphM=
713 | dependencies:
714 | big.js "^5.2.2"
715 | emojis-list "^3.0.0"
716 | json5 "^1.0.1"
717 |
718 | lodash.camelcase@^4.3.0:
719 | version "4.3.0"
720 | resolved "https://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
721 | integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
722 |
723 | lodash.toarray@^4.4.0:
724 | version "4.4.0"
725 | resolved "https://registry.npm.taobao.org/lodash.toarray/download/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
726 | integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE=
727 |
728 | lodash.topath@^4.5.2:
729 | version "4.5.2"
730 | resolved "https://registry.npm.taobao.org/lodash.topath/download/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009"
731 | integrity sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=
732 |
733 | lodash@^4.17.21:
734 | version "4.17.21"
735 | resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1613835817439&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
736 | integrity sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=
737 |
738 | lru-cache@^5.1.1:
739 | version "5.1.1"
740 | resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427567713&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
741 | integrity sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=
742 | dependencies:
743 | yallist "^3.0.2"
744 |
745 | magic-string@^0.25.7:
746 | version "0.25.7"
747 | resolved "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
748 | integrity sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=
749 | dependencies:
750 | sourcemap-codec "^1.4.4"
751 |
752 | merge-source-map@^1.1.0:
753 | version "1.1.0"
754 | resolved "https://registry.nlark.com/merge-source-map/download/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
755 | integrity sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=
756 | dependencies:
757 | source-map "^0.6.1"
758 |
759 | merge2@^1.3.0:
760 | version "1.4.1"
761 | resolved "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
762 | integrity sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=
763 |
764 | micromatch@^4.0.2:
765 | version "4.0.4"
766 | resolved "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.4.tgz?cache=0&sync_timestamp=1618054740956&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
767 | integrity sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=
768 | dependencies:
769 | braces "^3.0.1"
770 | picomatch "^2.2.3"
771 |
772 | minimatch@^3.0.4:
773 | version "3.0.4"
774 | resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
775 | integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=
776 | dependencies:
777 | brace-expansion "^1.1.7"
778 |
779 | minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
780 | version "1.2.5"
781 | resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
782 | integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=
783 |
784 | "mkdirp@>=0.5 0":
785 | version "0.5.5"
786 | resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
787 | integrity sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=
788 | dependencies:
789 | minimist "^1.2.5"
790 |
791 | modern-normalize@^1.0.0:
792 | version "1.1.0"
793 | resolved "https://registry.nlark.com/modern-normalize/download/modern-normalize-1.1.0.tgz?cache=0&sync_timestamp=1619951149003&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmodern-normalize%2Fdownload%2Fmodern-normalize-1.1.0.tgz#da8e80140d9221426bd4f725c6e11283d34f90b7"
794 | integrity sha1-2o6AFA2SIUJr1PclxuESg9NPkLc=
795 |
796 | nanoid@^3.1.23:
797 | version "3.1.23"
798 | resolved "https://registry.nlark.com/nanoid/download/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
799 | integrity sha1-90QIbOfCvEfuCoRyV01ceOQYOoE=
800 |
801 | node-emoji@^1.8.1:
802 | version "1.10.0"
803 | resolved "https://registry.npm.taobao.org/node-emoji/download/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da"
804 | integrity sha1-iIar0l2ce7YYAqZYUj0fjSqJsto=
805 | dependencies:
806 | lodash.toarray "^4.4.0"
807 |
808 | node-releases@^1.1.71:
809 | version "1.1.72"
810 | resolved "https://registry.nlark.com/node-releases/download/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
811 | integrity sha1-FIAqtrEDmnmgx9ZithClu9durL4=
812 |
813 | normalize-path@^3.0.0, normalize-path@~3.0.0:
814 | version "3.0.0"
815 | resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
816 | integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=
817 |
818 | normalize-range@^0.1.2:
819 | version "0.1.2"
820 | resolved "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
821 | integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
822 |
823 | object-assign@^4.1.1:
824 | version "4.1.1"
825 | resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
826 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
827 |
828 | object-hash@^2.1.1:
829 | version "2.1.1"
830 | resolved "https://registry.npm.taobao.org/object-hash/download/object-hash-2.1.1.tgz#9447d0279b4fcf80cff3259bf66a1dc73afabe09"
831 | integrity sha1-lEfQJ5tPz4DP8yWb9modxzr6vgk=
832 |
833 | once@^1.3.0:
834 | version "1.4.0"
835 | resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
836 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
837 | dependencies:
838 | wrappy "1"
839 |
840 | parse-glob@^3.0.4:
841 | version "3.0.4"
842 | resolved "https://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
843 | integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
844 | dependencies:
845 | glob-base "^0.3.0"
846 | is-dotfile "^1.0.0"
847 | is-extglob "^1.0.0"
848 | is-glob "^2.0.0"
849 |
850 | path-is-absolute@^1.0.0:
851 | version "1.0.1"
852 | resolved "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
853 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
854 |
855 | path-parse@^1.0.6:
856 | version "1.0.6"
857 | resolved "https://registry.nlark.com/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
858 | integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=
859 |
860 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
861 | version "2.2.3"
862 | resolved "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.3.tgz?cache=0&sync_timestamp=1618049925917&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d"
863 | integrity sha1-RlVH81nMwgbTxI5Goby4m/fuYZ0=
864 |
865 | postcss-functions@^3:
866 | version "3.0.0"
867 | resolved "https://registry.npm.taobao.org/postcss-functions/download/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e"
868 | integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=
869 | dependencies:
870 | glob "^7.1.2"
871 | object-assign "^4.1.1"
872 | postcss "^6.0.9"
873 | postcss-value-parser "^3.3.0"
874 |
875 | postcss-js@^3.0.3:
876 | version "3.0.3"
877 | resolved "https://registry.npm.taobao.org/postcss-js/download/postcss-js-3.0.3.tgz#2f0bd370a2e8599d45439f6970403b5873abda33"
878 | integrity sha1-LwvTcKLoWZ1FQ59pcEA7WHOr2jM=
879 | dependencies:
880 | camelcase-css "^2.0.1"
881 | postcss "^8.1.6"
882 |
883 | postcss-modules-extract-imports@^3.0.0:
884 | version "3.0.0"
885 | resolved "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
886 | integrity sha1-zaHwR8CugMl9vijD52pDuIAldB0=
887 |
888 | postcss-modules-local-by-default@^4.0.0:
889 | version "4.0.0"
890 | resolved "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-4.0.0.tgz?cache=0&sync_timestamp=1602587624722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c"
891 | integrity sha1-67tU+uFZjuz99pGgKz/zs5ClpRw=
892 | dependencies:
893 | icss-utils "^5.0.0"
894 | postcss-selector-parser "^6.0.2"
895 | postcss-value-parser "^4.1.0"
896 |
897 | postcss-modules-scope@^3.0.0:
898 | version "3.0.0"
899 | resolved "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-3.0.0.tgz?cache=0&sync_timestamp=1602593128276&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06"
900 | integrity sha1-nvMVFFbTu/oSDKRImN/Kby+gHwY=
901 | dependencies:
902 | postcss-selector-parser "^6.0.4"
903 |
904 | postcss-modules-values@^4.0.0:
905 | version "4.0.0"
906 | resolved "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c"
907 | integrity sha1-18Xn5ow7s8myfL9Iyguz/7RgLJw=
908 | dependencies:
909 | icss-utils "^5.0.0"
910 |
911 | postcss-modules@^4.0.0:
912 | version "4.0.0"
913 | resolved "https://registry.npm.taobao.org/postcss-modules/download/postcss-modules-4.0.0.tgz?cache=0&sync_timestamp=1606641094666&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules%2Fdownload%2Fpostcss-modules-4.0.0.tgz#2bc7f276ab88f3f1b0fadf6cbd7772d43b5f3b9b"
914 | integrity sha1-K8fydquI8/Gw+t9svXdy1DtfO5s=
915 | dependencies:
916 | generic-names "^2.0.1"
917 | icss-replace-symbols "^1.1.0"
918 | lodash.camelcase "^4.3.0"
919 | postcss-modules-extract-imports "^3.0.0"
920 | postcss-modules-local-by-default "^4.0.0"
921 | postcss-modules-scope "^3.0.0"
922 | postcss-modules-values "^4.0.0"
923 | string-hash "^1.1.1"
924 |
925 | postcss-nested@5.0.5:
926 | version "5.0.5"
927 | resolved "https://registry.npm.taobao.org/postcss-nested/download/postcss-nested-5.0.5.tgz?cache=0&sync_timestamp=1614914862199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-nested%2Fdownload%2Fpostcss-nested-5.0.5.tgz#f0a107d33a9fab11d7637205f5321e27223e3603"
928 | integrity sha1-8KEH0zqfqxHXY3IF9TIeJyI+NgM=
929 | dependencies:
930 | postcss-selector-parser "^6.0.4"
931 |
932 | postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
933 | version "6.0.6"
934 | resolved "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea"
935 | integrity sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=
936 | dependencies:
937 | cssesc "^3.0.0"
938 | util-deprecate "^1.0.2"
939 |
940 | postcss-value-parser@^3.3.0:
941 | version "3.3.1"
942 | resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
943 | integrity sha1-n/giVH4okyE88cMO+lGsX9G6goE=
944 |
945 | postcss-value-parser@^4.1.0:
946 | version "4.1.0"
947 | resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
948 | integrity sha1-RD9qIM7WSBor2k+oUypuVdeJoss=
949 |
950 | postcss@^6.0.9:
951 | version "6.0.23"
952 | resolved "https://registry.nlark.com/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1620677860208&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
953 | integrity sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=
954 | dependencies:
955 | chalk "^2.4.1"
956 | source-map "^0.6.1"
957 | supports-color "^5.4.0"
958 |
959 | postcss@^8.1.10, postcss@^8.1.6, postcss@^8.2.1, postcss@^8.2.10, postcss@^8.2.15:
960 | version "8.2.15"
961 | resolved "https://registry.nlark.com/postcss/download/postcss-8.2.15.tgz?cache=0&sync_timestamp=1620677860208&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss%2Fdownload%2Fpostcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65"
962 | integrity sha1-nmbM8HKSgX0ib8MVy7+bwUj7ymU=
963 | dependencies:
964 | colorette "^1.2.2"
965 | nanoid "^3.1.23"
966 | source-map "^0.6.1"
967 |
968 | pretty-hrtime@^1.0.3:
969 | version "1.0.3"
970 | resolved "https://registry.npm.taobao.org/pretty-hrtime/download/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
971 | integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
972 |
973 | process-nextick-args@~2.0.0:
974 | version "2.0.1"
975 | resolved "https://registry.nlark.com/process-nextick-args/download/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
976 | integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I=
977 |
978 | purgecss@^3.1.3:
979 | version "3.1.3"
980 | resolved "https://registry.npm.taobao.org/purgecss/download/purgecss-3.1.3.tgz#26987ec09d12eeadc318e22f6e5a9eb0be094f41"
981 | integrity sha1-Jph+wJ0S7q3DGOIvblqesL4JT0E=
982 | dependencies:
983 | commander "^6.0.0"
984 | glob "^7.0.0"
985 | postcss "^8.2.1"
986 | postcss-selector-parser "^6.0.2"
987 |
988 | queue-microtask@^1.2.2:
989 | version "1.2.3"
990 | resolved "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz?cache=0&sync_timestamp=1616391583732&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqueue-microtask%2Fdownload%2Fqueue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
991 | integrity sha1-SSkii7xyTfrEPg77BYyve2z7YkM=
992 |
993 | quick-lru@^5.1.1:
994 | version "5.1.1"
995 | resolved "https://registry.npm.taobao.org/quick-lru/download/quick-lru-5.1.1.tgz?cache=0&sync_timestamp=1610610616551&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquick-lru%2Fdownload%2Fquick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
996 | integrity sha1-NmST5rPkKjpoheLpnRj4D7eoyTI=
997 |
998 | readable-stream@^2.0.2, readable-stream@~2.3.6:
999 | version "2.3.7"
1000 | resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
1001 | integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=
1002 | dependencies:
1003 | core-util-is "~1.0.0"
1004 | inherits "~2.0.3"
1005 | isarray "~1.0.0"
1006 | process-nextick-args "~2.0.0"
1007 | safe-buffer "~5.1.1"
1008 | string_decoder "~1.1.1"
1009 | util-deprecate "~1.0.1"
1010 |
1011 | readdirp@~3.5.0:
1012 | version "3.5.0"
1013 | resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz?cache=0&sync_timestamp=1615717677435&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
1014 | integrity sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=
1015 | dependencies:
1016 | picomatch "^2.2.1"
1017 |
1018 | reduce-css-calc@^2.1.8:
1019 | version "2.1.8"
1020 | resolved "https://registry.npm.taobao.org/reduce-css-calc/download/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03"
1021 | integrity sha1-fvh2GijWFJgNwMmC93LJP3qZ3gM=
1022 | dependencies:
1023 | css-unit-converter "^1.1.1"
1024 | postcss-value-parser "^3.3.0"
1025 |
1026 | resolve@^1.19.0, resolve@^1.20.0:
1027 | version "1.20.0"
1028 | resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
1029 | integrity sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=
1030 | dependencies:
1031 | is-core-module "^2.2.0"
1032 | path-parse "^1.0.6"
1033 |
1034 | reusify@^1.0.4:
1035 | version "1.0.4"
1036 | resolved "https://registry.npm.taobao.org/reusify/download/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
1037 | integrity sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=
1038 |
1039 | rimraf@2:
1040 | version "2.7.1"
1041 | resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
1042 | integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=
1043 | dependencies:
1044 | glob "^7.1.3"
1045 |
1046 | rollup-plugin-element3-webgl@0.0.5:
1047 | version "0.0.5"
1048 | resolved "https://registry.nlark.com/rollup-plugin-element3-webgl/download/rollup-plugin-element3-webgl-0.0.5.tgz#7c4b3ee45a083b7d3ff12e1c46254f8b70419d05"
1049 | integrity sha1-fEs+5FoIO30/8S4cRiVPi3BBnQU=
1050 |
1051 | rollup@^2.38.5:
1052 | version "2.48.0"
1053 | resolved "https://registry.nlark.com/rollup/download/rollup-2.48.0.tgz#fceb01ed771f991f29f7bd2ff7838146e55acb74"
1054 | integrity sha1-/OsB7XcfmR8p970v94OBRuVay3Q=
1055 | optionalDependencies:
1056 | fsevents "~2.3.1"
1057 |
1058 | run-parallel@^1.1.9:
1059 | version "1.2.0"
1060 | resolved "https://registry.npm.taobao.org/run-parallel/download/run-parallel-1.2.0.tgz?cache=0&sync_timestamp=1612926037406&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
1061 | integrity sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=
1062 | dependencies:
1063 | queue-microtask "^1.2.2"
1064 |
1065 | safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1066 | version "5.1.2"
1067 | resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1068 | integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0=
1069 |
1070 | setimmediate@~1.0.4:
1071 | version "1.0.5"
1072 | resolved "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
1073 | integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
1074 |
1075 | simple-swizzle@^0.2.2:
1076 | version "0.2.2"
1077 | resolved "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
1078 | integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
1079 | dependencies:
1080 | is-arrayish "^0.3.1"
1081 |
1082 | source-map@^0.6.1:
1083 | version "0.6.1"
1084 | resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1085 | integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM=
1086 |
1087 | sourcemap-codec@^1.4.4:
1088 | version "1.4.8"
1089 | resolved "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
1090 | integrity sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=
1091 |
1092 | string-hash@^1.1.1:
1093 | version "1.1.3"
1094 | resolved "https://registry.npm.taobao.org/string-hash/download/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b"
1095 | integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=
1096 |
1097 | string_decoder@~1.1.1:
1098 | version "1.1.1"
1099 | resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
1100 | integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=
1101 | dependencies:
1102 | safe-buffer "~5.1.0"
1103 |
1104 | supports-color@^5.3.0, supports-color@^5.4.0:
1105 | version "5.5.0"
1106 | resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1618560998281&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1107 | integrity sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=
1108 | dependencies:
1109 | has-flag "^3.0.0"
1110 |
1111 | supports-color@^7.1.0:
1112 | version "7.2.0"
1113 | resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1618560998281&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1114 | integrity sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=
1115 | dependencies:
1116 | has-flag "^4.0.0"
1117 |
1118 | tailwindcss@^2.1.2:
1119 | version "2.1.2"
1120 | resolved "https://registry.nlark.com/tailwindcss/download/tailwindcss-2.1.2.tgz#29402bf73a445faedd03df6d3b177e7b52b7c4a1"
1121 | integrity sha1-KUAr9zpEX67dA99tOxd+e1K3xKE=
1122 | dependencies:
1123 | "@fullhuman/postcss-purgecss" "^3.1.3"
1124 | bytes "^3.0.0"
1125 | chalk "^4.1.0"
1126 | chokidar "^3.5.1"
1127 | color "^3.1.3"
1128 | detective "^5.2.0"
1129 | didyoumean "^1.2.1"
1130 | dlv "^1.1.3"
1131 | fast-glob "^3.2.5"
1132 | fs-extra "^9.1.0"
1133 | html-tags "^3.1.0"
1134 | lodash "^4.17.21"
1135 | lodash.topath "^4.5.2"
1136 | modern-normalize "^1.0.0"
1137 | node-emoji "^1.8.1"
1138 | normalize-path "^3.0.0"
1139 | object-hash "^2.1.1"
1140 | parse-glob "^3.0.4"
1141 | postcss-functions "^3"
1142 | postcss-js "^3.0.3"
1143 | postcss-nested "5.0.5"
1144 | postcss-selector-parser "^6.0.4"
1145 | postcss-value-parser "^4.1.0"
1146 | pretty-hrtime "^1.0.3"
1147 | quick-lru "^5.1.1"
1148 | reduce-css-calc "^2.1.8"
1149 | resolve "^1.20.0"
1150 |
1151 | to-fast-properties@^2.0.0:
1152 | version "2.0.0"
1153 | resolved "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1154 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
1155 |
1156 | to-regex-range@^5.0.1:
1157 | version "5.0.1"
1158 | resolved "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1159 | integrity sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=
1160 | dependencies:
1161 | is-number "^7.0.0"
1162 |
1163 | "traverse@>=0.3.0 <0.4":
1164 | version "0.3.9"
1165 | resolved "https://registry.npm.taobao.org/traverse/download/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
1166 | integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=
1167 |
1168 | typescript@^4.1.3:
1169 | version "4.2.4"
1170 | resolved "https://registry.nlark.com/typescript/download/typescript-4.2.4.tgz?cache=0&sync_timestamp=1621322949574&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftypescript%2Fdownload%2Ftypescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961"
1171 | integrity sha1-hhC1l0feAo/aiYqK7w4QPxVtCWE=
1172 |
1173 | universalify@^2.0.0:
1174 | version "2.0.0"
1175 | resolved "https://registry.npm.taobao.org/universalify/download/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
1176 | integrity sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=
1177 |
1178 | unzipper@0.10.11:
1179 | version "0.10.11"
1180 | resolved "https://registry.npm.taobao.org/unzipper/download/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e"
1181 | integrity sha1-C0mRRGRyy9uS7nQDkJ8mwkGceC4=
1182 | dependencies:
1183 | big-integer "^1.6.17"
1184 | binary "~0.3.0"
1185 | bluebird "~3.4.1"
1186 | buffer-indexof-polyfill "~1.0.0"
1187 | duplexer2 "~0.1.4"
1188 | fstream "^1.0.12"
1189 | graceful-fs "^4.2.2"
1190 | listenercount "~1.0.1"
1191 | readable-stream "~2.3.6"
1192 | setimmediate "~1.0.4"
1193 |
1194 | util-deprecate@^1.0.2, util-deprecate@~1.0.1:
1195 | version "1.0.2"
1196 | resolved "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1197 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
1198 |
1199 | vite@^2.3.0:
1200 | version "2.3.3"
1201 | resolved "https://registry.nlark.com/vite/download/vite-2.3.3.tgz?cache=0&sync_timestamp=1621261121898&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvite%2Fdownload%2Fvite-2.3.3.tgz#7e88a71abd03985c647789938d784cce0ee3b0fd"
1202 | integrity sha1-foinGr0DmFxkd4mTjXhMzg7jsP0=
1203 | dependencies:
1204 | esbuild "^0.11.23"
1205 | postcss "^8.2.10"
1206 | resolve "^1.19.0"
1207 | rollup "^2.38.5"
1208 | optionalDependencies:
1209 | fsevents "~2.3.1"
1210 |
1211 | vue-tsc@^0.0.24:
1212 | version "0.0.24"
1213 | resolved "https://registry.nlark.com/vue-tsc/download/vue-tsc-0.0.24.tgz#0cd90db679f53ea1694254b8663fdb3d624a0872"
1214 | integrity sha1-DNkNtnn1PqFpQlS4Zj/bPWJKCHI=
1215 | dependencies:
1216 | unzipper "0.10.11"
1217 |
1218 | vue@^3.0.5:
1219 | version "3.0.11"
1220 | resolved "https://registry.nlark.com/vue/download/vue-3.0.11.tgz?cache=0&sync_timestamp=1620855840824&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue%2Fdownload%2Fvue-3.0.11.tgz#c82f9594cbf4dcc869241d4c8dd3e08d9a8f4b5f"
1221 | integrity sha1-yC+VlMv03MhpJB1MjdPgjZqPS18=
1222 | dependencies:
1223 | "@vue/compiler-dom" "3.0.11"
1224 | "@vue/runtime-dom" "3.0.11"
1225 | "@vue/shared" "3.0.11"
1226 |
1227 | wrappy@1:
1228 | version "1.0.2"
1229 | resolved "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1230 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1231 |
1232 | xtend@^4.0.2:
1233 | version "4.0.2"
1234 | resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
1235 | integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=
1236 |
1237 | yallist@^3.0.2:
1238 | version "3.1.1"
1239 | resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
1240 | integrity sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=
1241 |
--------------------------------------------------------------------------------