From 26301dd14732085e5e0044e867b383c84c99fdba Mon Sep 17 00:00:00 2001 From: akimyou Date: Fri, 18 Sep 2020 13:40:19 +0800 Subject: [PATCH 1/6] add app-template-vue-typescript --- .../app-scripts-vue/tsconfig.base.json | 21 +++++ .../app-template-vue-typescript/.npmignore | 3 + .../app-template-vue-typescript/README.md | 26 +++++ .../app-template-vue-typescript/package.json | 27 ++++++ .../public/favicon-32x32.png | Bin 0 -> 854 bytes .../public/favicon.ico | Bin 0 -> 1150 bytes .../public/index.html | 25 +++++ .../public/logo.svg | 4 + .../public/robots.txt | 3 + .../snowpack.config.json | 4 + .../app-template-vue-typescript/src/App.vue | 89 ++++++++++++++++++ .../src/components/Bar.jsx | 17 ++++ .../src/components/Bar.module.css | 3 + .../src/components/BarJsx.vue | 25 +++++ .../src/components/Foo.module.css | 3 + .../src/components/Foo.tsx | 21 +++++ .../src/components/FooTsx.vue | 29 ++++++ .../app-template-vue-typescript/src/index.js | 14 +++ .../app-template-vue-typescript/tsconfig.json | 17 ++++ .../types/shims-vue.d.ts | 5 + .../types/static.d.ts | 32 +++++++ 21 files changed, 368 insertions(+) create mode 100644 create-snowpack-app/app-scripts-vue/tsconfig.base.json create mode 100644 create-snowpack-app/app-template-vue-typescript/.npmignore create mode 100644 create-snowpack-app/app-template-vue-typescript/README.md create mode 100644 create-snowpack-app/app-template-vue-typescript/package.json create mode 100644 create-snowpack-app/app-template-vue-typescript/public/favicon-32x32.png create mode 100644 create-snowpack-app/app-template-vue-typescript/public/favicon.ico create mode 100644 create-snowpack-app/app-template-vue-typescript/public/index.html create mode 100644 create-snowpack-app/app-template-vue-typescript/public/logo.svg create mode 100644 create-snowpack-app/app-template-vue-typescript/public/robots.txt create mode 100644 create-snowpack-app/app-template-vue-typescript/snowpack.config.json create mode 100644 create-snowpack-app/app-template-vue-typescript/src/App.vue create mode 100644 create-snowpack-app/app-template-vue-typescript/src/components/Bar.jsx create mode 100644 create-snowpack-app/app-template-vue-typescript/src/components/Bar.module.css create mode 100644 create-snowpack-app/app-template-vue-typescript/src/components/BarJsx.vue create mode 100644 create-snowpack-app/app-template-vue-typescript/src/components/Foo.module.css create mode 100644 create-snowpack-app/app-template-vue-typescript/src/components/Foo.tsx create mode 100644 create-snowpack-app/app-template-vue-typescript/src/components/FooTsx.vue create mode 100644 create-snowpack-app/app-template-vue-typescript/src/index.js create mode 100644 create-snowpack-app/app-template-vue-typescript/tsconfig.json create mode 100644 create-snowpack-app/app-template-vue-typescript/types/shims-vue.d.ts create mode 100644 create-snowpack-app/app-template-vue-typescript/types/static.d.ts diff --git a/create-snowpack-app/app-scripts-vue/tsconfig.base.json b/create-snowpack-app/app-scripts-vue/tsconfig.base.json new file mode 100644 index 0000000000..0255644726 --- /dev/null +++ b/create-snowpack-app/app-scripts-vue/tsconfig.base.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "esnext", + "target": "es2015", + "moduleResolution": "node", + "jsx": "preserve", + "baseUrl": "./", + "paths": { "*": ["web_modules/.types/*"] }, + "allowSyntheticDefaultImports": true, + "importsNotUsedAsValues": "error", + /* more strict checking for errors that per-file transpilers like `esbuild` would crash */ + "isolatedModules": true, + /* noEmit - We only use TypeScript for type checking. */ + "noEmit": true, + /* Additional Options */ + "strict": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true + } +} diff --git a/create-snowpack-app/app-template-vue-typescript/.npmignore b/create-snowpack-app/app-template-vue-typescript/.npmignore new file mode 100644 index 0000000000..9e379c1c77 --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/.npmignore @@ -0,0 +1,3 @@ +.build +build +web_modules \ No newline at end of file diff --git a/create-snowpack-app/app-template-vue-typescript/README.md b/create-snowpack-app/app-template-vue-typescript/README.md new file mode 100644 index 0000000000..9d4ed548de --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/README.md @@ -0,0 +1,26 @@ +# New Project + +> ✨ Bootstrapped with Create Snowpack App (CSA). + +## Available Scripts + +### npm start + +Runs the app in the development mode. +Open http://localhost:8080 to view it in the browser. + +The page will reload if you make edits. +You will also see any lint errors in the console. + +### npm test + +**⚠️ NOTE:** Vue 3 testing support is still in progress. This template does not ship with a test runner. + +### npm run build + +Builds the app for production to the `build/` folder. +It correctly bundles Vue in production mode and optimizes the build for the best performance. + +### Q: What about Eject? + +No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same. diff --git a/create-snowpack-app/app-template-vue-typescript/package.json b/create-snowpack-app/app-template-vue-typescript/package.json new file mode 100644 index 0000000000..7c18a84e71 --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/package.json @@ -0,0 +1,27 @@ +{ + "name": "@snowpack/app-template-vue-typescript", + "version": "1.8.8", + "license": "MIT", + "keywords": [ + "csa-template" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "start": "snowpack dev", + "build": "snowpack build", + "type-check": "tsc", + "test": "echo \"Vue 3.0 test support is still in progress.\" && exit 1" + }, + "dependencies": { + "vue": "^3.0.0-rc.4" + }, + "devDependencies": { + "@snowpack/app-scripts-vue": "^1.8.4", + "@snowpack/plugin-vue": "^2.2.0", + "snowpack": "^2.10.0", + "typescript": "^4.0.2" + }, + "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4" +} diff --git a/create-snowpack-app/app-template-vue-typescript/public/favicon-32x32.png b/create-snowpack-app/app-template-vue-typescript/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..ce327e86819cb99fd8081428a1b1de9d904bea32 GIT binary patch literal 854 zcmV-c1F8IpP)A z?61@+rEx&ll#YX=1s#xz9GC%4g5%%>0S8W4ruI3Zso^>SBmOyswXWvg-Qx4&hBh4% z;Jd!GNAV17SZ4M;0SCzTKS+x-Cy)cJz&pVH0SB0U+i<3D(~fDXv|=#iM|I~TZ7sK+ zcK~Y^eD_$fx2lur+qWlMut~NRyaf%&fh1rVUqw7Z6v4Qya(3?y*WWWgVtmYd<3;a)2fq!bz)kMW|V3uLQGT3 zMLk0;@D`Je(9R1c@JKMe8-1d4N9q;yvrPOU(1yjp5+6*E#R6(Qf>O2K4-dOq;%*ogc51%A#nL{#rwy8r+H07*qoM6N<$f_htrHvj+t literal 0 HcmV?d00001 diff --git a/create-snowpack-app/app-template-vue-typescript/public/favicon.ico b/create-snowpack-app/app-template-vue-typescript/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4f6c96a67a1b0c994f03c86b91bbedac6088ed16 GIT binary patch literal 1150 zcma)+IZpyn6ooI5XpDu#Lg`#8et?4*H8_ncv7*ud#z3&JaVac}8x~qwSlHRv(ApR@ zF|qI;Kte-dXG39uiHXbeoHuu3aEl=y_r7z_VeSkBkpNzykl?*fmV+YQA`$_Rpm;ip z2xeU!9`^jlTcP9%2q=FzzmGJ_{J6sYyYUxA^C8q5h5aw?W?8emULL$C?Ekfc`ub5T zz$omgHDBz@iF3ebb_o2eU#W5SCFLEdD>2juVD>J?E$mg}?8p01y&bg(>@`>SMhx-K zI-{p)2cDHA>Qmv$HCyL#vy_Zl*i*B!l1oq14tnlJy#r?d(lsk!NNlzmW*i++-9zd_3V~v0scjPn6=VB%`X|oOF8|n>eRQ3ag&`N^6q=usb&(+0KpDbJ`2w1 z(a)%B_6)TGt&H!g3||@ka%RTKEx3b1*i++-9(rx2 + + + + + + + Snowpack App + + +
+ + + + + diff --git a/create-snowpack-app/app-template-vue-typescript/public/logo.svg b/create-snowpack-app/app-template-vue-typescript/public/logo.svg new file mode 100644 index 0000000000..883a9f3d99 --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/public/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/create-snowpack-app/app-template-vue-typescript/public/robots.txt b/create-snowpack-app/app-template-vue-typescript/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/create-snowpack-app/app-template-vue-typescript/snowpack.config.json b/create-snowpack-app/app-template-vue-typescript/snowpack.config.json new file mode 100644 index 0000000000..a8a1420122 --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/snowpack.config.json @@ -0,0 +1,4 @@ +{ + "extends": "@snowpack/app-scripts-vue", + "plugins": ["@snowpack/plugin-vue/plugin-tsx-jsx.js"] +} diff --git a/create-snowpack-app/app-template-vue-typescript/src/App.vue b/create-snowpack-app/app-template-vue-typescript/src/App.vue new file mode 100644 index 0000000000..e629cfde3f --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/src/App.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/create-snowpack-app/app-template-vue-typescript/src/components/Bar.jsx b/create-snowpack-app/app-template-vue-typescript/src/components/Bar.jsx new file mode 100644 index 0000000000..fe815b08cc --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/src/components/Bar.jsx @@ -0,0 +1,17 @@ +import {defineComponent, reactive} from 'vue'; +import styles from './Bar.module.css'; + +export default defineComponent({ + name: 'BarJsx', + setup() { + const state = reactive({ + name: 'BarJsx', + }); + + return () => ( + <> +
{state.name}
+ + ); + }, +}); diff --git a/create-snowpack-app/app-template-vue-typescript/src/components/Bar.module.css b/create-snowpack-app/app-template-vue-typescript/src/components/Bar.module.css new file mode 100644 index 0000000000..7ce58222db --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/src/components/Bar.module.css @@ -0,0 +1,3 @@ +.bar-jsx { + color: red; +} diff --git a/create-snowpack-app/app-template-vue-typescript/src/components/BarJsx.vue b/create-snowpack-app/app-template-vue-typescript/src/components/BarJsx.vue new file mode 100644 index 0000000000..aad910e7c2 --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/src/components/BarJsx.vue @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/create-snowpack-app/app-template-vue-typescript/src/components/Foo.module.css b/create-snowpack-app/app-template-vue-typescript/src/components/Foo.module.css new file mode 100644 index 0000000000..352ec88927 --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/src/components/Foo.module.css @@ -0,0 +1,3 @@ +.foo-tsx { + color: green; +} \ No newline at end of file diff --git a/create-snowpack-app/app-template-vue-typescript/src/components/Foo.tsx b/create-snowpack-app/app-template-vue-typescript/src/components/Foo.tsx new file mode 100644 index 0000000000..eb08231f12 --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/src/components/Foo.tsx @@ -0,0 +1,21 @@ +import {defineComponent, reactive} from 'vue'; +import styles from './Foo.module.css'; + +interface State { + name: string; +} + +export default defineComponent({ + name: 'FooTsx', + setup() { + const state = reactive({ + name: 'FooTsx', + }); + + return () => ( + <> +
{state.name}
+ + ); + }, +}); \ No newline at end of file diff --git a/create-snowpack-app/app-template-vue-typescript/src/components/FooTsx.vue b/create-snowpack-app/app-template-vue-typescript/src/components/FooTsx.vue new file mode 100644 index 0000000000..a4f6e015ea --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/src/components/FooTsx.vue @@ -0,0 +1,29 @@ + + + \ No newline at end of file diff --git a/create-snowpack-app/app-template-vue-typescript/src/index.js b/create-snowpack-app/app-template-vue-typescript/src/index.js new file mode 100644 index 0000000000..224283c148 --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/src/index.js @@ -0,0 +1,14 @@ +import { createApp } from "vue"; +import App from "./App.vue"; + +const app = createApp(App); +app.mount("#app"); + +// Hot Module Replacement (HMR) - Remove this snippet to remove HMR. +// Learn more: https://www.snowpack.dev/#hot-module-replacement +if (import.meta.hot) { + import.meta.hot.accept(); + import.meta.hot.dispose(() => { + app.unmount(); + }); +} diff --git a/create-snowpack-app/app-template-vue-typescript/tsconfig.json b/create-snowpack-app/app-template-vue-typescript/tsconfig.json new file mode 100644 index 0000000000..4c51e5aee6 --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/tsconfig.json @@ -0,0 +1,17 @@ +{ + "include": ["src", "types"], + "exclude": ["node_modules"], + "extends": "@snowpack/app-scripts-vue/tsconfig.base.json", + "compilerOptions": { + // You can't currently define paths in your 'extends' config, + // so we have to set 'baseUrl' & 'paths' here. + // Don't change these unless you know what you're doing. + // See: https://github.com/microsoft/TypeScript/issues/25430 + "baseUrl": "./", + /* more strict checking for errors that per-file transpilers like `esbuild` would crash */ + "isolatedModules": true, + "paths": { "*": ["web_modules/.types/*"] } + // Feel free to add/edit new config options below: + // ... + } +} diff --git a/create-snowpack-app/app-template-vue-typescript/types/shims-vue.d.ts b/create-snowpack-app/app-template-vue-typescript/types/shims-vue.d.ts new file mode 100644 index 0000000000..1e1696e01e --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/types/shims-vue.d.ts @@ -0,0 +1,5 @@ +declare module '*.vue' { + import { defineComponent } from 'vue' + const component: ReturnType + export default component +} \ No newline at end of file diff --git a/create-snowpack-app/app-template-vue-typescript/types/static.d.ts b/create-snowpack-app/app-template-vue-typescript/types/static.d.ts new file mode 100644 index 0000000000..a81b1be4e7 --- /dev/null +++ b/create-snowpack-app/app-template-vue-typescript/types/static.d.ts @@ -0,0 +1,32 @@ +/* Use this file to declare any custom file extensions for importing */ +/* Use this folder to also add/extend a package d.ts file, if needed. */ + +declare module '*.css'; +declare module '*.svg' { + const ref: string; + export default ref; +} +declare module '*.bmp' { + const ref: string; + export default ref; +} +declare module '*.gif' { + const ref: string; + export default ref; +} +declare module '*.jpg' { + const ref: string; + export default ref; +} +declare module '*.jpeg' { + const ref: string; + export default ref; +} +declare module '*.png' { + const ref: string; + export default ref; +} +declare module '*.webp' { + const ref: string; + export default ref; +} From cc66efafcfa98c6bd8bb2700a0bbade7284aad7d Mon Sep 17 00:00:00 2001 From: akimyou Date: Fri, 18 Sep 2020 17:01:52 +0800 Subject: [PATCH 2/6] update test snap --- .../test/__snapshots__/plugin-tsx-jsx.test.js.snap | 8 ++++---- .../test/__snapshots__/plugin-vue-ts-tsx-jsx.test.js.snap | 8 ++++---- .../test/__snapshots__/script-compilers.test.js.snap | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/plugins/plugin-vue/test/__snapshots__/plugin-tsx-jsx.test.js.snap b/plugins/plugin-vue/test/__snapshots__/plugin-tsx-jsx.test.js.snap index 4f68d3db2a..8b216b1558 100644 --- a/plugins/plugin-vue/test/__snapshots__/plugin-tsx-jsx.test.js.snap +++ b/plugins/plugin-vue/test/__snapshots__/plugin-tsx-jsx.test.js.snap @@ -1,8 +1,8 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`plugin with jsx 1`] = ` -"import { Fragment } from '/web_modules/vue.js'; -import {createVNode, isVNode} from '/web_modules/vue.js'; +"import { Fragment } from 'vue'; +import {createVNode, isVNode} from 'vue'; const slice = Array.prototype.slice; export function jsx(tag, props = null, children = null) { if (arguments.length > 3 || isVNode(children)) { @@ -21,8 +21,8 @@ export default defineComponent({ `; exports[`plugin with tsx 1`] = ` -"import { Fragment } from '/web_modules/vue.js'; -import {createVNode, isVNode} from '/web_modules/vue.js'; +"import { Fragment } from 'vue'; +import {createVNode, isVNode} from 'vue'; const slice = Array.prototype.slice; export function jsx(tag, props = null, children = null) { if (arguments.length > 3 || isVNode(children)) { diff --git a/plugins/plugin-vue/test/__snapshots__/plugin-vue-ts-tsx-jsx.test.js.snap b/plugins/plugin-vue/test/__snapshots__/plugin-vue-ts-tsx-jsx.test.js.snap index e40dc97bd5..6e9a5aa518 100644 --- a/plugins/plugin-vue/test/__snapshots__/plugin-vue-ts-tsx-jsx.test.js.snap +++ b/plugins/plugin-vue/test/__snapshots__/plugin-vue-ts-tsx-jsx.test.js.snap @@ -7,8 +7,8 @@ Object { "map": "", }, ".js": Object { - "code": "import { Fragment } from '/web_modules/vue.js'; -import {createVNode, isVNode} from '/web_modules/vue.js'; + "code": "import { Fragment } from 'vue'; +import {createVNode, isVNode} from 'vue'; const slice = Array.prototype.slice; export function jsx(tag, props = null, children = null) { if (arguments.length > 3 || isVNode(children)) { @@ -63,8 +63,8 @@ Object { "map": "", }, ".js": Object { - "code": "import { Fragment } from '/web_modules/vue.js'; -import {createVNode, isVNode} from '/web_modules/vue.js'; + "code": "import { Fragment } from 'vue'; +import {createVNode, isVNode} from 'vue'; const slice = Array.prototype.slice; export function jsx(tag, props = null, children = null) { if (arguments.length > 3 || isVNode(children)) { diff --git a/plugins/plugin-vue/test/__snapshots__/script-compilers.test.js.snap b/plugins/plugin-vue/test/__snapshots__/script-compilers.test.js.snap index 9375e0de31..c9628a8dc2 100644 --- a/plugins/plugin-vue/test/__snapshots__/script-compilers.test.js.snap +++ b/plugins/plugin-vue/test/__snapshots__/script-compilers.test.js.snap @@ -1,8 +1,8 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`esbuildCompile jsx 1`] = ` -"import { Fragment } from '/web_modules/vue.js'; -import {createVNode, isVNode} from '/web_modules/vue.js'; +"import { Fragment } from 'vue'; +import {createVNode, isVNode} from 'vue'; const slice = Array.prototype.slice; export function jsx(tag, props = null, children = null) { if (arguments.length > 3 || isVNode(children)) { @@ -31,8 +31,8 @@ export default defineComponent({ `; exports[`esbuildCompile tsx 1`] = ` -"import { Fragment } from '/web_modules/vue.js'; -import {createVNode, isVNode} from '/web_modules/vue.js'; +"import { Fragment } from 'vue'; +import {createVNode, isVNode} from 'vue'; const slice = Array.prototype.slice; export function jsx(tag, props = null, children = null) { if (arguments.length > 3 || isVNode(children)) { From ded3784edf6dceadd6ba8f6c63c9aa827082cd02 Mon Sep 17 00:00:00 2001 From: akimyou Date: Fri, 18 Sep 2020 17:19:19 +0800 Subject: [PATCH 3/6] update create-snowpack-app snap --- .../create-snowpack-app.test.js.snap | 283 +++++++++++++++++- 1 file changed, 276 insertions(+), 7 deletions(-) diff --git a/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap b/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap index 672cb41590..558de015d6 100644 --- a/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap +++ b/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap @@ -10577,7 +10577,9 @@ function flushJobs(seen) { for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { const job = queue[flushIndex]; if (job) { - if ((\\"production\\" !== 'production')) ; + if ((\\"production\\" !== 'production')) { + checkRecursiveUpdates(seen, job); + } callWithErrorHandling(job, null, 14 /* SCHEDULER */); } } @@ -10643,7 +10645,9 @@ function renderComponentRoot(instance) { // functional const render = Component; // in dev, mark attrs accessed if optional props (attrs === props) - if ((\\"production\\" !== 'production') && attrs === props) ; + if ((\\"production\\" !== 'production') && attrs === props) { + markAttrsAccessed(); + } result = normalizeVNode(render.length > 1 ? render(props, (\\"production\\" !== 'production') ? { @@ -10665,7 +10669,10 @@ function renderComponentRoot(instance) { // to have comments along side the root element which makes it a fragment let root = result; let setRoot = undefined; - if ((\\"production\\" !== 'production')) ; + if ((\\"production\\" !== 'production')) { + ; + [root, setRoot] = getChildRoot(result); + } if (Component.inheritAttrs !== false && fallthroughAttrs) { const keys = Object.keys(fallthroughAttrs); const { shapeFlag } = root; @@ -10681,20 +10688,60 @@ function renderComponentRoot(instance) { } root = cloneVNode(root, fallthroughAttrs); } - else if ((\\"production\\" !== 'production') && !accessedAttrs && root.type !== Comment) ; + else if ((\\"production\\" !== 'production') && !accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + // ignore v-model handlers when they fail to fallthrough + if (!isModelListener(key)) { + // remove \`on\`, lowercase first letter to reflect event casing + // accurately + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } + else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn(\`Extraneous non-props attributes (\` + + \`\${extraAttrs.join(', ')}) \` + + \`were passed to component but could not be automatically inherited \` + + \`because component renders fragment or text root nodes.\`); + } + if (eventAttrs.length) { + warn(\`Extraneous non-emits event listeners (\` + + \`\${eventAttrs.join(', ')}) \` + + \`were passed to component but could not be automatically inherited \` + + \`because component renders fragment or text root nodes. \` + + \`If the listener is intended to be a component custom event listener only, \` + + \`declare it using the \\"emits\\" option.\`); + } + } } } // inherit directives if (vnode.dirs) { - if ((\\"production\\" !== 'production') && !isElementRoot(root)) ; + if ((\\"production\\" !== 'production') && !isElementRoot(root)) { + warn(\`Runtime directive used on component with non-element root node. \` + + \`The directives will not function as intended.\`); + } root.dirs = vnode.dirs; } // inherit transition data if (vnode.transition) { - if ((\\"production\\" !== 'production') && !isElementRoot(root)) ; + if ((\\"production\\" !== 'production') && !isElementRoot(root)) { + warn(\`Component inside renders non-element root node \` + + \`that cannot be animated.\`); + } root.transition = vnode.transition; } - if ((\\"production\\" !== 'production') && setRoot) ; + if ((\\"production\\" !== 'production') && setRoot) { + setRoot(root); + } else { result = root; } @@ -14239,3 +14286,225 @@ function normalizeContainer(container) { } export { createApp, createBlock, createTextVNode, createVNode, openBlock, toDisplayString };" `; + +exports[`create-snowpack-app app-template-vue-typescript: __snowpack__/env.js 1`] = `"export default {\\"MODE\\":\\"production\\",\\"NODE_ENV\\":\\"production\\"};"`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/App.css 1`] = ` +" +.App { + text-align: center; +} +.App-header { + background-color: #f9f6f6; + color: #32485f; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); +} +.App-link { + color: #00c185; +} +.App-logo { + height: 40vmin; + pointer-events: none; + margin-bottom: 1rem; + animation: App-logo-spin infinite 1.6s ease-in-out alternate; +} +.App-tsx { + display: flex; +} +.App-tsx > div { + margin-left: 30px; + font-size: 16px; +} +@keyframes App-logo-spin { +from { + transform: scale(1); +} +to { + transform: scale(1.06); +} +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/App.css.proxy.js 1`] = ` +"const code=\` +.App { + text-align: center; +} +.App-header { + background-color: #f9f6f6; + color: #32485f; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); +} +.App-link { + color: #00c185; +} +.App-logo { + height: 40vmin; + pointer-events: none; + margin-bottom: 1rem; + animation: App-logo-spin infinite 1.6s ease-in-out alternate; +} +.App-tsx { + display: flex; +} +.App-tsx > div { + margin-left: 30px; + font-size: 16px; +} +@keyframes App-logo-spin { +from { + transform: scale(1); +} +to { + transform: scale(1.06); +} +} +\`,styleEl=document.createElement(\\"style\\"),codeEl=document.createTextNode(code);styleEl.type=\\"text/css\\",styleEl.appendChild(codeEl),document.head.appendChild(styleEl);" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/App.js 1`] = `"import\\"./App.css.proxy.js\\";import{defineComponent as c,reactive as l}from\\"../web_modules/vue.js\\";import m from\\"./components/FooTsx.js\\";import d from\\"./components/Foo.js\\";import i from\\"./components/BarJsx.js\\";import x from\\"./components/Bar.js\\";const t=c({components:{FooTsxVue:m,FooTsx:d,BarJsxVue:i,BarJsx:x},setup(){const s=l({message:\\"Learn Vue\\"});return{state:s}}});import{createVNode as o,createTextVNode as r,resolveComponent as e,toDisplayString as u,openBlock as B,createBlock as f}from\\"../web_modules/vue.js\\";const g={class:\\"App\\"},h={class:\\"App-header\\"},V=o(\\"img\\",{src:\\"/logo.svg\\",class:\\"App-logo\\",alt:\\"logo\\"},null,-1),v=o(\\"p\\",null,[r(\\" Edit \\"),o(\\"code\\",null,\\"src/App.vue\\"),r(\\" and save to reload. \\")],-1),T={class:\\"App-tsx\\"},F={class:\\"App-link\\",href:\\"https://vuejs.org\\",target:\\"_blank\\",rel:\\"noopener noreferrer\\"};export function render(s,j){const n=e(\\"FooTsxVue\\"),_=e(\\"FooTsx\\"),a=e(\\"BarJsxVue\\"),p=e(\\"BarJsx\\");return B(),f(\\"div\\",g,[o(\\"header\\",h,[V,v,o(\\"p\\",T,[o(n),o(_),o(a),o(p)]),o(\\"a\\",F,u(s.state.message),1)])])}t.render=render;export default t;"`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Bar.js 1`] = `"import{Fragment as t}from\\"../../web_modules/vue.js\\";import{createVNode as o,isVNode as m}from\\"../../web_modules/vue.js\\";const a=Array.prototype.slice;export function jsx(e,r=null,s=null){return(arguments.length>3||m(s))&&(s=a.call(arguments,2)),o(e,r,s)}import{defineComponent as n,reactive as u}from\\"../../web_modules/vue.js\\";import l from\\"./Bar.module.css.proxy.js\\";export default n({name:\\"BarJsx\\",setup(){const e=u({name:\\"BarJsx\\"});return()=>jsx(t,null,jsx(\\"div\\",{className:l[\\"bar-jsx\\"]},e.name))}});"`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Bar.module.css 1`] = ` +".bar-jsx { + color: red; +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Bar.module.css.proxy.js 1`] = ` +"export let code=\`._dist_components_Bar_module__bar-jsx { + color: red; +} +\`;let t={\\"bar-jsx\\":\\"_dist_components_Bar_module__bar-jsx\\"};export default t;const e=document.createElement(\\"style\\"),o=document.createTextNode(code);e.type=\\"text/css\\",e.appendChild(o),document.head.appendChild(e);" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/BarJsx.css 1`] = ` +" +.bar-jsx-vue { + color: red; +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/BarJsx.css.proxy.js 1`] = ` +"const code=\` +.bar-jsx-vue { + color: red; +} +\`,styleEl=document.createElement(\\"style\\"),codeEl=document.createTextNode(code);styleEl.type=\\"text/css\\",styleEl.appendChild(codeEl),document.head.appendChild(styleEl);" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/BarJsx.js 1`] = `"import\\"./BarJsx.css.proxy.js\\";import{Fragment as t}from\\"../../web_modules/vue.js\\";import{createVNode as o,isVNode as u}from\\"../../web_modules/vue.js\\";const a=Array.prototype.slice;export function jsx(e,r=null,s=null){return(arguments.length>3||u(s))&&(s=a.call(arguments,2)),o(e,r,s)}import{defineComponent as m,reactive as n}from\\"../../web_modules/vue.js\\";export default m({name:\\"BarJsxVue\\",setup(){const e=n({name:\\"BarJsxVue\\"});return()=>jsx(t,null,jsx(\\"div\\",{className:\\"bar-jsx-vue\\"},e.name))}});"`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Foo.js 1`] = `"import{Fragment as t}from\\"../../web_modules/vue.js\\";import{createVNode as r,isVNode as m}from\\"../../web_modules/vue.js\\";const n=Array.prototype.slice;export function jsx(e,s=null,o=null){return(arguments.length>3||m(o))&&(o=n.call(arguments,2)),r(e,s,o)}import{defineComponent as u,reactive as l}from\\"../../web_modules/vue.js\\";import a from\\"./Foo.module.css.proxy.js\\";export default u({name:\\"FooTsx\\",setup(){const e=l({name:\\"FooTsx\\"});return()=>jsx(t,null,jsx(\\"div\\",{className:a[\\"foo-tsx\\"]},e.name))}});"`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Foo.module.css 1`] = ` +".foo-tsx { + color: green; +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Foo.module.css.proxy.js 1`] = ` +"export let code=\`._dist_components_Foo_module__foo-tsx { + color: green; +}\`;let o={\\"foo-tsx\\":\\"_dist_components_Foo_module__foo-tsx\\"};export default o;const e=document.createElement(\\"style\\"),t=document.createTextNode(code);e.type=\\"text/css\\",e.appendChild(t),document.head.appendChild(e);" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/FooTsx.css 1`] = ` +" +.foo-tsx-vue { + color: green; +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/FooTsx.css.proxy.js 1`] = ` +"const code=\` +.foo-tsx-vue { + color: green; +} +\`,styleEl=document.createElement(\\"style\\"),codeEl=document.createTextNode(code);styleEl.type=\\"text/css\\",styleEl.appendChild(codeEl),document.head.appendChild(styleEl);" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/FooTsx.js 1`] = `"import\\"./FooTsx.css.proxy.js\\";import{Fragment as t}from\\"../../web_modules/vue.js\\";import{createVNode as r,isVNode as u}from\\"../../web_modules/vue.js\\";const m=Array.prototype.slice;export function jsx(e,s=null,o=null){return(arguments.length>3||u(o))&&(o=m.call(arguments,2)),r(e,s,o)}import{defineComponent as n,reactive as a}from\\"../../web_modules/vue.js\\";export default n({name:\\"FooTsxVue\\",setup(){const e=a({name:\\"FooTsxVue\\"});return()=>jsx(t,null,jsx(\\"div\\",{className:\\"foo-tsx-vue\\"},e.name))}});"`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/index.js 1`] = `"import o from\\"../__snowpack__/env.js\\";import.meta.env=o;import{createApp as t}from\\"../web_modules/vue.js\\";import p from\\"./App.js\\";const e=t(p);e.mount(\\"#app\\"),import.meta.hot&&(import.meta.hot.accept(),import.meta.hot.dispose(()=>{e.unmount()}));"`; + +exports[`create-snowpack-app app-template-vue-typescript: allFiles 1`] = ` +Array [ + "__snowpack__/env.js", + "_dist_/App.css", + "_dist_/App.css.proxy.js", + "_dist_/App.js", + "_dist_/components/Bar.js", + "_dist_/components/Bar.module.css", + "_dist_/components/Bar.module.css.proxy.js", + "_dist_/components/BarJsx.css", + "_dist_/components/BarJsx.css.proxy.js", + "_dist_/components/BarJsx.js", + "_dist_/components/Foo.js", + "_dist_/components/Foo.module.css", + "_dist_/components/Foo.module.css.proxy.js", + "_dist_/components/FooTsx.css", + "_dist_/components/FooTsx.css.proxy.js", + "_dist_/components/FooTsx.js", + "_dist_/index.js", + "favicon-32x32.png", + "favicon.ico", + "index.html", + "logo.svg", + "robots.txt", + "web_modules/import-map.json", + "web_modules/vue.js", +] +`; + +exports[`create-snowpack-app app-template-vue-typescript: index.html 1`] = ` +" + + + + + + + Snowpack App + + +
+ + + + +" +`; + +exports[`create-snowpack-app app-template-vue-typescript: web_modules/import-map.json 1`] = ` +"{ + \\"imports\\": { + \\"vue\\": \\"./vue.js\\" + } +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: web_modules/vue.js 1`] = ` +"function xn(){throw new Error(\\"setTimeout has not been defined\\")}function In(){throw new Error(\\"clearTimeout has not been defined\\")}var ue=xn,de=In;typeof window.setTimeout==\\"function\\"&&(ue=setTimeout),typeof window.clearTimeout==\\"function\\"&&(de=clearTimeout);function Nn(e){if(ue===setTimeout)return setTimeout(e,0);if((ue===xn||!ue)&&setTimeout)return ue=setTimeout,setTimeout(e,0);try{return ue(e,0)}catch(t){try{return ue.call(null,e,0)}catch(n){return ue.call(this,e,0)}}}function os(e){if(de===clearTimeout)return clearTimeout(e);if((de===In||!de)&&clearTimeout)return de=clearTimeout,clearTimeout(e);try{return de(e)}catch(t){try{return de.call(null,e)}catch(n){return de.call(this,e)}}}var le=[],ke=!1,we,it=-1;function ss(){if(!ke||!we)return;ke=!1,we.length?le=we.concat(le):it=-1,le.length&&Pn()}function Pn(){if(ke)return;var e=Nn(ss);ke=!0;for(var t=le.length;t;){for(we=le,le=[];++it1)for(var n=1;n!!n[s.toLowerCase()]:s=>!!n[s]}const Ps=\\"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl\\",As=It(Ps),Cs=\\"itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly\\",Ss=It(Cs);function Nt(e){if(k(e)){const t={};for(let n=0;n{if(n){const o=n.split(ks);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Pt(e){let t=\\"\\";if(z(e))t=e;else if(k(e))for(let n=0;n{},Cn=()=>!1,Ms=/^on[^a-z]/,at=e=>Ms.test(e),At=e=>e.startsWith(\\"onUpdate:\\"),V=Object.assign,Sn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Us=Object.prototype.hasOwnProperty,P=(e,t)=>Us.call(e,t),k=Array.isArray,I=e=>typeof e==\\"function\\",z=e=>typeof e==\\"string\\",Ct=e=>typeof e==\\"symbol\\",K=e=>e!==null&&typeof e==\\"object\\",Ln=e=>K(e)&&I(e.then)&&I(e.catch),Fs=Object.prototype.toString,Hs=e=>Fs.call(e),js=e=>Hs(e).slice(8,-1),St=e=>z(e)&&e[0]!==\\"-\\"&&\\"\\"+parseInt(e,10)===e,ct=It(\\"key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\\"),Lt=e=>{const t=Object.create(null);return n=>{const o=t[n];return o||(t[n]=e(n))}},Vs=/-(\\\\w)/g,Ke=Lt(e=>e.replace(Vs,(t,n)=>n?n.toUpperCase():\\"\\")),$s=/\\\\B([A-Z])/g,ft=Lt(e=>e.replace($s,\\"-$1\\").toLowerCase()),kt=Lt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Dt=(e,t)=>e!==t&&(e===e||t===t),Mt=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})};let kn;const Dn=()=>kn||(kn=typeof globalThis!=\\"undefined\\"?globalThis:typeof self!=\\"undefined\\"?self:typeof window!=\\"undefined\\"?window:typeof global!=\\"undefined\\"?global:{}),Ft=new WeakMap(),We=[];let Te;const qe=Symbol(\\"\\"),Mn=Symbol(\\"\\");function Bs(e){return e&&e._isEffect===!0}function Ht(e,t=L){Bs(e)&&(e=e.raw);const n=Ws(e,t);return t.lazy||n(),n}function jt(e){e.active&&(Un(e),e.options.onStop&&e.options.onStop(),e.active=!1)}let Ks=0;function Ws(e,t){const n=function(){if(!n.active)return t.scheduler?void 0:e();if(!We.includes(n)){Un(n);try{return qs(),We.push(n),Te=n,e()}finally{We.pop(),ut(),Te=We[We.length-1]}}};return n.id=Ks++,n._isEffect=!0,n.active=!0,n.raw=e,n.deps=[],n.options=t,n}function Un(e){const{deps:t}=e;if(t.length){for(let n=0;n{b&&b.forEach(E=>{E!==Te&&c.add(E)})};if(t===\\"clear\\")l.forEach(u);else if(n===\\"length\\"&&k(e))l.forEach((b,E)=>{(E===\\"length\\"||E>=o)&&u(b)});else{n!==void 0&&u(l.get(n));const b=t===\\"add\\"&&(!k(e)||St(n))||t===\\"delete\\"&&!k(e);(b||t===\\"set\\"&&e instanceof Map)&&u(l.get(k(e)?\\"length\\":qe)),b&&e instanceof Map&&u(l.get(Mn))}const g=b=>{b.options.scheduler?b.options.scheduler(b):b()};c.forEach(g)}const Fn=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(Ct)),zs=dt(),Ys=dt(!1,!0),Xs=dt(!0),Js=dt(!0,!0),Bt={};[\\"includes\\",\\"indexOf\\",\\"lastIndexOf\\"].forEach(e=>{Bt[e]=function(...t){const n=D(this);for(let s=0,r=this.length;sK(e)?pt(e):e,Wt=e=>K(e)?Zn(e):e,qt=e=>e,ze=e=>Reflect.getPrototypeOf(e);function zt(e,t,n=!1,o=!1){e=e.__v_raw;const s=D(e),r=D(t);t!==r&&(!n&&J(s,\\"get\\",t)),!n&&J(s,\\"get\\",r);const{has:l}=ze(s),c=n?Wt:o?qt:Kt;if(l.call(s,t))return c(e.get(t));if(l.call(s,r))return c(e.get(r))}function Yt(e,t=!1){const n=this.__v_raw,o=D(n),s=D(e);return e!==s&&(!t&&J(o,\\"has\\",e)),!t&&J(o,\\"has\\",s),e===s?n.has(e):n.has(e)||n.has(s)}function Xt(e,t=!1){return e=e.__v_raw,!t&&J(D(e),\\"iterate\\",qe),Reflect.get(e,\\"size\\",e)}function $n(e){e=D(e);const t=D(this),n=ze(t),o=n.has.call(t,e),s=n.add.call(t,e);return o||ne(t,\\"add\\",e,e),s}function Bn(e,t){t=D(t);const n=D(this),{has:o,get:s,set:r}=ze(n);let l=o.call(n,e);l||(e=D(e),l=o.call(n,e));const c=s.call(n,e),u=r.call(n,e,t);return l?Dt(t,c)&&ne(n,\\"set\\",e,t):ne(n,\\"add\\",e,t),u}function Kn(e){const t=D(this),{has:n,get:o,delete:s}=ze(t);let r=n.call(t,e);r||(e=D(e),r=n.call(t,e));const l=o?o.call(t,e):void 0,c=s.call(t,e);return r&&ne(t,\\"delete\\",e,void 0),c}function Wn(){const e=D(this),t=e.size!==0,n=ze(e).clear.call(e);return t&&ne(e,\\"clear\\",void 0,void 0),n}function Jt(e,t){return function(o,s){const r=this,l=r.__v_raw,c=D(l),u=e?Wt:t?qt:Kt;return!e&&J(c,\\"iterate\\",qe),l.forEach((g,b)=>o.call(s,u(g),u(b),r))}}function Zt(e,t,n){return function(...o){const s=this.__v_raw,r=D(s),l=r instanceof Map,c=e===\\"entries\\"||e===Symbol.iterator&&l,u=e===\\"keys\\"&&l,g=s[e](...o),b=t?Wt:n?qt:Kt;return!t&&J(r,\\"iterate\\",u?Mn:qe),{next(){const{value:E,done:x}=g.next();return x?{value:E,done:x}:{value:c?[b(E[0]),b(E[1])]:b(E),done:x}},[Symbol.iterator](){return this}}}}function ht(e){return function(...t){return e===\\"delete\\"?!1:this}}const qn={get(e){return zt(this,e)},get size(){return Xt(this)},has:Yt,add:$n,set:Bn,delete:Kn,clear:Wn,forEach:Jt(!1,!1)},zn={get(e){return zt(this,e,!1,!0)},get size(){return Xt(this)},has:Yt,add:$n,set:Bn,delete:Kn,clear:Wn,forEach:Jt(!1,!0)},Yn={get(e){return zt(this,e,!0)},get size(){return Xt(this,!0)},has(e){return Yt.call(this,e,!0)},add:ht(\\"add\\"),set:ht(\\"set\\"),delete:ht(\\"delete\\"),clear:ht(\\"clear\\"),forEach:Jt(!0,!1)},or=[\\"keys\\",\\"values\\",\\"entries\\",Symbol.iterator];or.forEach(e=>{qn[e]=Zt(e,!1,!1),Yn[e]=Zt(e,!0,!1),zn[e]=Zt(e,!1,!0)});function Qt(e,t){const n=t?zn:e?Yn:qn;return(o,s,r)=>s===\\"__v_isReactive\\"?!e:s===\\"__v_isReadonly\\"?e:s===\\"__v_raw\\"?o:Reflect.get(P(n,s)&&s in o?n:o,s,r)}const sr={get:Qt(!1,!1)},rr={get:Qt(!1,!0)},ir={get:Qt(!0,!1)},Xn=new WeakMap(),Jn=new WeakMap();function lr(e){switch(e){case\\"Object\\":case\\"Array\\":return 1;case\\"Map\\":case\\"Set\\":case\\"WeakMap\\":case\\"WeakSet\\":return 2;default:return 0}}function ar(e){return e.__v_skip||!Object.isExtensible(e)?0:lr(js(e))}function pt(e){return e&&e.__v_isReadonly?e:Gt(e,!1,jn,sr)}function cr(e){return Gt(e,!1,nr,rr)}function Zn(e){return Gt(e,!0,Vn,ir)}function Gt(e,t,n,o){if(!K(e))return e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=t?Jn:Xn,r=s.get(e);if(r)return r;const l=ar(e);if(l===0)return e;const c=new Proxy(e,l===2?o:n);return s.set(e,c),c}function Ye(e){return Qn(e)?Ye(e.__v_raw):!!(e&&e.__v_isReactive)}function Qn(e){return!!(e&&e.__v_isReadonly)}function Gn(e){return Ye(e)||Qn(e)}function D(e){return e&&D(e.__v_raw)||e}function Z(e){return Boolean(e&&e.__v_isRef===!0)}function fr(e){return Z(e)?e.value:e}const ur={get:(e,t,n)=>fr(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return Z(s)&&!Z(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function dr(e){return Ye(e)?e:new Proxy(e,ur)}class hr{constructor(e,t,n){this._setter=t,this._dirty=!0,this.__v_isRef=!0,this.effect=Ht(e,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,ne(D(this),\\"set\\",\\"value\\"))}}),this.__v_isReadonly=n}get value(){return this._dirty&&(this._value=this.effect(),this._dirty=!1),J(D(this),\\"get\\",\\"value\\"),this._value}set value(e){this._setter(e)}}function pr(e){let t,n;return I(e)?(t=e,n=pe):(t=e.get,n=e.set),new hr(t,n,I(e)||!e.set)}const Xe=[];function Zi(e,...t){$t();const n=Xe.length?Xe[Xe.length-1].component:null,o=n&&n.appContext.config.warnHandler,s=mr();if(o)oe(o,n,11,[e+t.join(\\"\\"),n&&n.proxy,s.map(({vnode:r})=>\`at <\${Ko(n,r.type)}>\`).join(\` +\`),s]);else{const r=[\`[Vue warn]: \${e}\`,...t];s.length&&!0&&r.push(\` +\`,...gr(s)),console.warn(...r)}ut()}function mr(){let e=Xe[Xe.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function gr(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[\` +\`],...br(n))}),t}function br({vnode:e,recurseCount:t}){const n=t>0?\`... (\${t} recursive calls)\`:\\"\\",o=e.component?e.component.parent==null:!1,s=\` at <\${Ko(e.component,e.type,o)}\`,r=\\">\\"+n;return e.props?[s,..._r(e.props),r]:[s+r]}function _r(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...eo(o,e[o]))}),n.length>3&&t.push(\\" ...\\"),t}function eo(e,t,n){return z(t)?(t=JSON.stringify(t),n?t:[\`\${e}=\${t}\`]):typeof t==\\"number\\"||typeof t==\\"boolean\\"||t==null?n?t:[\`\${e}=\${t}\`]:Z(t)?(t=eo(e,D(t.value),!0),n?t:[\`\${e}=Ref<\`,t,\\">\\"]):I(t)?[\`\${e}=fn\${t.name?\`<\${t.name}>\`:\\"\\"}\`]:(t=D(t),n?t:[\`\${e}=\`,t])}function oe(e,t,n,o){let s;try{s=o?e(...o):e()}catch(r){en(r,t,n)}return s}function Oe(e,t,n,o){if(I(e)){const r=oe(e,t,n,o);return r&&Ln(r)&&r.catch(l=>{en(l,t,n)}),r}const s=[];for(let r=0;r-1&&(se[t]=null)}function so(e,t,n,o){k(e)?n.push(...e):(!t||!t.includes(e,e.allowRecurse?o+1:o))&&n.push(e),oo()}function Tr(e){so(e,Je,gt,Ue)}function Or(e){so(e,me,Ze,Fe)}function sn(e,t=null){if(gt.length){for(on=t,Je=[...new Set(gt)],gt.length=0,Ue=0;Uebt(n)-bt(o)),Fe=0;Fee.id==null?Infinity:e.id;function io(e){tn=!1,mt=!0,sn(e),se.sort((t,n)=>bt(t)-bt(n));try{for(Re=0;ReEr)throw new Error(\\"Maximum recursive updates exceeded. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.\\");e.set(t,n+1)}}let G=null;function lo(e){G=e}let ao=!1;function Rr(){ao=!0}function co(e){const{type:t,vnode:n,proxy:o,withProxy:s,props:r,propsOptions:[l],slots:c,attrs:u,emit:g,render:b,renderCache:E,data:x,setupState:A,ctx:$}=e;let U;G=e;try{let R;if(n.shapeFlag&4){const q=s||o;U=ee(b.call(q,q,E,r,A,x,$)),R=u}else{const q=t;he.env.NODE_ENV!==\\"production\\"&&u===r,U=ee(q.length>1?q(r,he.env.NODE_ENV!==\\"production\\"?{get attrs(){return Rr(),u},slots:c,emit:g}:{attrs:u,slots:c,emit:g}):q(r,null)),R=t.props?u:xr(u)}let W=U,ye;if(he.env.NODE_ENV!==\\"production\\",t.inheritAttrs!==!1&&R){const q=Object.keys(R),{shapeFlag:Ee}=W;q.length&&(Ee&1||Ee&6?(l&&q.some(At)&&(R=Ir(R,l)),W=wt(W,R)):he.env.NODE_ENV!==\\"production\\"&&!ao&&W.type!==be)}n.dirs&&(he.env.NODE_ENV!==\\"production\\"&&!fo(W),W.dirs=n.dirs),n.transition&&(he.env.NODE_ENV!==\\"production\\"&&!fo(W),W.transition=n.transition),he.env.NODE_ENV!==\\"production\\"&&ye||(U=W)}catch(R){en(R,e,1),U=xe(be)}return G=null,U}const Gi=e=>{if(e.type!==ge)return[e,void 0];const t=e.children,n=e.dynamicChildren,o=t.filter(u=>!(po(u)&&u.type===be&&u.children!==\\"v-if\\"));if(o.length!==1)return[e,void 0];const s=o[0],r=t.indexOf(s),l=n?n.indexOf(s):-1,c=u=>{t[r]=u,l>-1?n[l]=u:n&&u.patchFlag>0&&n.push(u)};return[ee(s),c]},xr=e=>{let t;for(const n in e)(n===\\"class\\"||n===\\"style\\"||at(n))&&((t||(t={}))[n]=e[n]);return t},Ir=(e,t)=>{const n={};for(const o in e)(!At(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n},fo=e=>e.shapeFlag&6||e.shapeFlag&1||e.type===be;function Nr(e,t,n){const{props:o,children:s}=e,{props:r,children:l,patchFlag:c}=t;if(t.dirs||t.transition)return!0;if(n&&c>0){if(c&1024)return!0;if(c&16)return o?uo(o,r):!!r;if(c&8){const u=t.dynamicProps;for(let g=0;ge.__isSuspense;function Cr(e,t){t&&!t.isResolved?k(e)?t.effects.push(...e):t.effects.push(e):Or(e)}let rn=0;const ho=e=>rn+=e;function Sr(e,t=G){if(!t)return e;const n=(...o)=>{rn||Ur(!0);const s=G;lo(t);const r=e(...o);return lo(s),rn||Fr(),r};return n._c=!0,n}let Lr=null;const kr=e=>e.__isTeleport,Dr=Symbol(),ge=Symbol(void 0),ln=Symbol(void 0),be=Symbol(void 0),Mr=Symbol(void 0),_t=[];let yt=null;function Ur(e=!1){_t.push(yt=e?null:[])}function Fr(){_t.pop(),yt=_t[_t.length-1]||null}function po(e){return e?e.__v_isVNode===!0:!1}function Qe(e,t){return e.type===t.type&&e.key===t.key}const Et=\\"__vInternal\\",mo=({key:e})=>e??null,go=({ref:e})=>e!=null?k(e)?e:[G,e]:null,xe=Hr;function Hr(e,t=null,n=null,o=0,s=null,r=!1){if((!e||e===Dr)&&(e=be),po(e)){const u=wt(e,t);return n&&an(u,n),u}if(I(e)&&\\"__vccOpts\\"in e&&(e=e.__vccOpts),t){(Gn(t)||Et in t)&&(t=V({},t));let{class:u,style:g}=t;u&&!z(u)&&(t.class=Pt(u)),K(g)&&(Gn(g)&&!k(g)&&(g=V({},g)),t.style=Nt(g))}const l=z(e)?1:Ar(e)?128:kr(e)?64:K(e)?4:I(e)?2:0,c={__v_isVNode:!0,[\\"__v_skip\\"]:!0,type:e,props:t,key:t&&mo(t),ref:t&&go(t),scopeId:Lr,children:null,component:null,suspense:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:o,dynamicProps:s,dynamicChildren:null,appContext:null};return an(c,n),!r&&yt&&(o>0||l&6)&&o!==32&&yt.push(c),c}function wt(e,t){const{props:n,patchFlag:o}=e,s=t?Vr(n||{},t):n;return{__v_isVNode:!0,[\\"__v_skip\\"]:!0,type:e.type,props:s,key:s&&mo(s),ref:t&&t.ref?go(t):e.ref,scopeId:e.scopeId,children:e.children,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ge?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,el:e.el,anchor:e.anchor}}function jr(e=\\" \\",t=0){return xe(ln,null,e,t)}function ee(e){return e==null||typeof e==\\"boolean\\"?xe(be):k(e)?xe(ge,null,e):typeof e==\\"object\\"?e.el===null?e:wt(e):xe(ln,null,String(e))}function He(e){return e.el===null?e:wt(e)}function an(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(k(t))n=16;else if(typeof t==\\"object\\")if(o&1||o&64){const s=t.default;s&&(s._c&&ho(1),an(e,s()),s._c&&ho(-1));return}else{n=32;const s=t._;!s&&!(Et in t)?t._ctx=G:s===3&&G&&(G.vnode.patchFlag&1024?(t._=2,e.patchFlag|=1024):t._=1)}else I(t)?(t={default:t,_ctx:G},n=32):(t=String(t),o&64?(n=16,t=[jr(t)]):n=8);e.children=t,e.shapeFlag|=n}function Vr(...e){const t=V({},e[0]);for(let n=1;n{u=!0,V(c,bo(b,t,!0))};!n&&t.mixins.length&&t.mixins.forEach(g),e.extends&&g(e.extends),e.mixins&&e.mixins.forEach(g)}return!l&&!u?s[o]=null:(k(l)?l.forEach(g=>c[g]=null):V(c,l),s[o]=c)}function Br(e,t){return!e||!at(t)?!1:(t=t.replace(/Once$/,\\"\\"),P(e,t[2].toLowerCase()+t.slice(3))||P(e,t.slice(2)))}function Kr(e,t,n,o=!1){const s={},r={};Ut(r,Et,1),_o(e,t,s,r),n?e.props=o?s:cr(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function Wr(e,t,n,o){const{props:s,attrs:r,vnode:{patchFlag:l}}=e,c=D(s),[u]=e.propsOptions;if((o||l>0)&&!(l&16)){if(l&8){const g=e.vnode.dynamicProps;for(let b=0;b{g=!0;const[x,A]=yo(E,t,!0);V(c,x),A&&u.push(...A)};!n&&t.mixins.length&&t.mixins.forEach(b),e.extends&&b(e.extends),e.mixins&&e.mixins.forEach(b)}if(!l&&!g)return s[o]=lt;if(k(l))for(let b=0;b-1,A[1]=U<0||$-1||P(A,\\"default\\"))&&u.push(E)}}}return s[o]=[c,u]}function Eo(e){const t=e&&e.toString().match(/^\\\\s*function (\\\\w+)/);return t?t[1]:\\"\\"}function wo(e,t){return Eo(e)===Eo(t)}function vo(e,t){if(k(t)){for(let n=0,o=t.length;n{if(n.isUnmounted)return;$t(),jo(n);const c=Oe(t,n,e,l);return jo(null),ut(),c});return o?s.unshift(r):s.push(r),r}}const _e=e=>(t,n=j)=>!bn&&vt(e,t,n),qr=_e(\\"bm\\"),zr=_e(\\"m\\"),Yr=_e(\\"bu\\"),Xr=_e(\\"u\\"),Jr=_e(\\"bum\\"),Oo=_e(\\"um\\"),Zr=_e(\\"rtg\\"),Qr=_e(\\"rtc\\"),Gr=(e,t=j)=>{vt(\\"ec\\",e,t)},Ro=e=>e.type.__isKeepAlive;function ei(e,t){xo(e,\\"a\\",t)}function ti(e,t){xo(e,\\"da\\",t)}function xo(e,t,n=j){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}e()});if(vt(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Ro(s.parent.vnode)&&ni(o,t,n,s),s=s.parent}}function ni(e,t,n,o){const s=vt(t,e,o,!0);Oo(()=>{Sn(o[t],s)},n)}const Io=e=>e[0]===\\"_\\"||e===\\"$stable\\",fn=e=>k(e)?e.map(ee):[ee(e)],oi=(e,t,n)=>Sr(o=>fn(t(o)),n),No=(e,t)=>{const n=e._ctx;for(const o in e){if(Io(o))continue;const s=e[o];if(I(s))t[o]=oi(o,s,n);else if(s!=null){const r=fn(s);t[o]=()=>r}}},Po=(e,t)=>{const n=fn(t);e.slots.default=()=>n},si=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=t,Ut(t,\\"_\\",n)):No(t,e.slots={})}else e.slots={},t&&Po(e,t);Ut(e.slots,Et,1)},ri=(e,t)=>{const{vnode:n,slots:o}=e;let s=!0,r=L;if(n.shapeFlag&32){const l=t._;l?l===1?s=!1:V(o,t):(s=!t.$stable,No(t,o)),r=t}else t&&(Po(e,t),r={default:1});if(s)for(const l in o)!Io(l)&&!(l in r)&&delete o[l]};function Ie(e,t,n,o){const s=e.dirs,r=t&&t.dirs;for(let l=0;l{let r;s?s.shapeFlag&4?r=s.component.proxy:r=s.el:r=null;const[l,c]=e,u=t&&t[1],g=l.refs===L?l.refs={}:l.refs,b=l.setupState;if(u!=null&&u!==c&&(z(u)?(g[u]=null,P(b,u)&&(b[u]=null)):Z(u)&&(u.value=null)),z(c)){const E=()=>{g[c]=r,P(b,c)&&(b[c]=r)};r?(E.id=-1,Y(E,o)):E()}else if(Z(c)){const E=()=>{c.value=r};r?(E.id=-1,Y(E,o)):E()}else I(c)&&oe(c,n,12,[r,g])};function fi(e){return ui(e)}function ui(e,t){ai();const{insert:n,remove:o,patchProp:s,forcePatchProp:r,createElement:l,createText:c,createComment:u,setText:g,setElementText:b,parentNode:E,nextSibling:x,setScopeId:A=pe,cloneNode:$,insertStaticContent:U}=e,R=(i,a,d,h=null,p=null,_=null,y=!1,m=!1)=>{i&&!Qe(i,a)&&(h=rt(i),fe(i,p,_,!0),i=null),a.patchFlag===-2&&(m=!1,a.dynamicChildren=null);const{type:f,ref:T,shapeFlag:w}=a;switch(f){case ln:W(i,a,d,h);break;case be:ye(i,a,d,h);break;case Mr:i==null&&q(a,d,h,y);break;case ge:M(i,a,d,h,p,_,y,m);break;default:w&1?Ee(i,a,d,h,p,_,y,m):w&6?ce(i,a,d,h,p,_,y,m):(w&64||w&128)&&f.process(i,a,d,h,p,_,y,m,Se)}T!=null&&p&&Co(T,i&&i.ref,p,_,a)},W=(i,a,d,h)=>{if(i==null)n(a.el=c(a.children),d,h);else{const p=a.el=i.el;a.children!==i.children&&g(p,a.children)}},ye=(i,a,d,h)=>{i==null?n(a.el=u(a.children||\\"\\"),d,h):a.el=i.el},q=(i,a,d,h)=>{[i.el,i.anchor]=U(i.children,a,d,h)},Ee=(i,a,d,h,p,_,y,m)=>{y=y||a.type===\\"svg\\",i==null?Ge(a,d,h,p,_,y,m):et(i,a,p,_,y,m)},Ge=(i,a,d,h,p,_,y)=>{let m,f;const{type:T,props:w,shapeFlag:v,transition:O,scopeId:N,patchFlag:H,dirs:C}=i;if(i.el&&$!==void 0&&H===-1)m=i.el=$(i.el);else{if(m=i.el=l(i.type,_,w&&w.is),v&8?b(m,i.children):v&16&&ae(i.children,m,null,h,p,_&&T!==\\"foreignObject\\",y||!!i.dynamicChildren),C&&Ie(i,null,h,\\"created\\"),w){for(const Q in w)ct(Q)||s(m,Q,null,w[Q],_,i.children,h,p,ie);(f=w.onVnodeBeforeMount)&&re(f,h,i)}je(m,N,i,h)}__VUE_PROD_DEVTOOLS__&&(Object.defineProperty(m,\\"__vnode\\",{value:i,enumerable:!1}),Object.defineProperty(m,\\"__vueParentComponent\\",{value:h,enumerable:!1})),C&&Ie(i,null,h,\\"beforeMount\\");const B=(!p||p&&p.isResolved)&&O&&!O.persisted;B&&O.beforeEnter(m),n(m,a,d),((f=w&&w.onVnodeMounted)||B||C)&&Y(()=>{f&&re(f,h,i),B&&O.enter(m),C&&Ie(i,null,h,\\"mounted\\")},p)},je=(i,a,d,h)=>{if(a&&A(i,a),h){const p=h.type.__scopeId;p&&p!==a&&A(i,p+\\"-s\\"),d===h.subTree&&je(i,h.vnode.scopeId,h.vnode,h.parent)}},ae=(i,a,d,h,p,_,y,m=0)=>{for(let f=m;f{const y=a.el=i.el;let{patchFlag:m,dynamicChildren:f,dirs:T}=a;m|=i.patchFlag&16;const w=i.props||L,v=a.props||L;let O;if((O=v.onVnodeBeforeUpdate)&&re(O,d,a,i),T&&Ie(a,i,d,\\"beforeUpdate\\"),m>0){if(m&16)Ve(y,a,w,v,d,h,p);else if(m&2&&(w.class!==v.class&&s(y,\\"class\\",null,v.class,p)),m&4&&s(y,\\"style\\",w.style,v.style,p),m&8){const H=a.dynamicProps;for(let C=0;C{O&&re(O,d,a,i),T&&Ie(a,i,d,\\"updated\\")},h)},Ae=(i,a,d,h,p,_)=>{for(let y=0;y{if(d!==h){for(const m in h){if(ct(m))continue;const f=h[m],T=d[m];(f!==T||r&&r(i,m))&&s(i,m,T,f,y,a.children,p,_,ie)}if(d!==L)for(const m in d)!ct(m)&&!(m in h)&&s(i,m,d[m],null,y,a.children,p,_,ie)}},M=(i,a,d,h,p,_,y,m)=>{const f=a.el=i?i.el:c(\\"\\"),T=a.anchor=i?i.anchor:c(\\"\\");let{patchFlag:w,dynamicChildren:v}=a;w>0&&(m=!0),i==null?(n(f,d,h),n(T,d,h),ae(a.children,d,T,p,_,y,m)):w>0&&w&64&&v?Ae(i.dynamicChildren,v,d,p,_,y):$e(i,a,d,T,p,_,y,m)},ce=(i,a,d,h,p,_,y,m)=>{i==null?a.shapeFlag&512?p.ctx.activate(a,d,h,y,m):Ce(a,d,h,p,_,y,m):F(i,a,m)},Ce=(i,a,d,h,p,_,y)=>{const m=i.component=yi(i,h,p);if(Ro(i)&&(m.ctx.renderer=Se),Ei(m),m.asyncDep){if(!p)return;if(p.registerDep(m,S),!i.el){const f=m.subTree=xe(be);ye(null,f,a,d)}return}S(m,i,a,d,p,_,y)},F=(i,a,d)=>{const h=a.component=i.component;if(Nr(i,a,d))if(h.asyncDep&&!h.asyncResolved){tt(h,a,d);return}else h.next=a,vr(h.update),h.update();else a.component=i.component,a.el=i.el,h.vnode=a},S=(i,a,d,h,p,_,y)=>{i.update=Ht(function(){if(i.isMounted){let{next:f,bu:T,u:w,parent:v,vnode:O}=i,N=f,H;f?tt(i,f,y):f=O,f.el=O.el,T&&Mt(T),(H=f.props&&f.props.onVnodeBeforeUpdate)&&re(H,v,f,O);const C=co(i),B=i.subTree;i.subTree=C,i.refs!==L&&(i.refs={}),R(B,C,E(B.el),rt(B),i,p,_),f.el=C.el,N===null&&Pr(i,C.el),w&&Y(w,p),(H=f.props&&f.props.onVnodeUpdated)&&Y(()=>{re(H,v,f,O)},p),__VUE_PROD_DEVTOOLS__}else{let f;const{el:T,props:w}=a,{bm:v,m:O,parent:N}=i;v&&Mt(v),(f=w&&w.onVnodeBeforeMount)&&re(f,N,a);const H=i.subTree=co(i);T&&xt?xt(a.el,H,i,p):(R(null,H,d,h,i,p,_),a.el=H.el),O&&Y(O,p),(f=w&&w.onVnodeMounted)&&Y(()=>{re(f,N,a)},p);const{a:C}=i;C&&a.shapeFlag&256&&Y(C,p),i.isMounted=!0}},ci),i.update.allowRecurse=!0},tt=(i,a,d)=>{a.component=i;const h=i.vnode.props;i.vnode=a,i.next=null,Wr(i,a.props,h,d),ri(i,a.children),sn(void 0,i.update)},$e=(i,a,d,h,p,_,y,m=!1)=>{const f=i&&i.children,T=i?i.shapeFlag:0,w=a.children,{patchFlag:v,shapeFlag:O}=a;if(v>0){if(v&128){ot(f,w,d,h,p,_,y,m);return}else if(v&256){nt(f,w,d,h,p,_,y,m);return}}O&8?(T&16&&ie(f,p,_),w!==f&&b(d,w)):T&16?O&16?ot(f,w,d,h,p,_,y,m):ie(f,p,_,!0):(T&8&&b(d,\\"\\"),O&16&&ae(w,d,h,p,_,y,m))},nt=(i,a,d,h,p,_,y,m)=>{i=i||lt,a=a||lt;const f=i.length,T=a.length,w=Math.min(f,T);let v;for(v=0;vT?ie(i,p,_,!0,w):ae(a,d,h,p,_,y,m,w)},ot=(i,a,d,h,p,_,y,m)=>{let f=0;const T=a.length;let w=i.length-1,v=T-1;for(;f<=w&&f<=v;){const O=i[f],N=a[f]=m?He(a[f]):ee(a[f]);if(Qe(O,N))R(O,N,d,null,p,_,y,m);else break;f++}for(;f<=w&&f<=v;){const O=i[w],N=a[v]=m?He(a[v]):ee(a[v]);if(Qe(O,N))R(O,N,d,null,p,_,y,m);else break;w--,v--}if(f>w){if(f<=v){const O=v+1,N=Ov)for(;f<=w;)fe(i[f],p,_,!0),f++;else{const O=f,N=f,H=new Map();for(f=N;f<=v;f++){const X=a[f]=m?He(a[f]):ee(a[f]);X.key!=null&&H.set(X.key,f)}let C,B=0;const Q=v-N+1;let Le=!1,Tn=0;const Be=new Array(Q);for(f=0;f=Q){fe(X,p,_,!0);continue}let te;if(X.key!=null)te=H.get(X.key);else for(C=N;C<=v;C++)if(Be[C-N]===0&&Qe(X,a[C])){te=C;break}te===void 0?fe(X,p,_,!0):(Be[te-N]=f+1,te>=Tn?Tn=te:Le=!0,R(X,a[te],d,null,p,_,y,m),B++)}const On=Le?di(Be):lt;for(C=On.length-1,f=Q-1;f>=0;f--){const X=N+f,te=a[X],Rn=X+1{const{el:_,type:y,transition:m,children:f,shapeFlag:T}=i;if(T&6){st(i.component.subTree,a,d,h);return}if(T&128){i.suspense.move(a,d,h);return}if(T&64){y.move(i,a,d,Se);return}if(y===ge){n(_,a,d);for(let v=0;vm.enter(_),p);else{const{leave:v,delayLeave:O,afterLeave:N}=m,H=()=>n(_,a,d),C=()=>{v(_,()=>{H(),N&&N()})};O?O(_,H,C):C()}else n(_,a,d)},fe=(i,a,d,h=!1)=>{const{type:p,props:_,ref:y,children:m,dynamicChildren:f,shapeFlag:T,patchFlag:w,dirs:v}=i;if(y!=null&&a&&Co(y,null,a,d,null),T&256){a.ctx.deactivate(i);return}const O=T&1&&v;let N;if((N=_&&_.onVnodeBeforeUnmount)&&re(N,a,i),T&6)ns(i.component,d,h);else{if(T&128){i.suspense.unmount(d,h);return}O&&Ie(i,null,a,\\"beforeUnmount\\"),f&&(p!==ge||w>0&&w&64)?ie(f,a,d):T&16&&ie(m,a,d),T&64&&i.type.remove(i,Se),h&&wn(i)}((N=_&&_.onVnodeUnmounted)||O)&&Y(()=>{N&&re(N,a,i),O&&Ie(i,null,a,\\"unmounted\\")},d)},wn=i=>{const{type:a,el:d,anchor:h,transition:p}=i;if(a===ge){ts(d,h);return}const _=()=>{o(d),p&&!p.persisted&&p.afterLeave&&p.afterLeave()};if(i.shapeFlag&1&&p&&!p.persisted){const{leave:y,delayLeave:m}=p,f=()=>y(d,_);m?m(i.el,_,f):f()}else _()},ts=(i,a)=>{let d;for(;i!==a;)d=x(i),o(i),i=d;o(a)},ns=(i,a,d)=>{const{bum:h,effects:p,update:_,subTree:y,um:m}=i;if(h&&Mt(h),p)for(let f=0;f{i.isUnmounted=!0},a),a&&!a.isResolved&&!a.isUnmounted&&i.asyncDep&&!i.asyncResolved&&(a.deps--,a.deps===0&&a.resolve()),__VUE_PROD_DEVTOOLS__},ie=(i,a,d,h=!1,p=0)=>{for(let _=p;_i.shapeFlag&6?rt(i.component.subTree):i.shapeFlag&128?i.suspense.next():x(i.anchor||i.el),vn=(i,a)=>{i==null?a._vnode&&fe(a._vnode,null,null,!0):R(a._vnode||null,i,a),ro(),a._vnode=i},Se={p:R,um:fe,m:st,r:wn,mt:Ce,mc:ae,pc:$e,pbc:Ae,n:rt,o:e};let Rt,xt;return t&&([Rt,xt]=t(Se)),{render:vn,hydrate:Rt,createApp:li(vn,Rt)}}function re(e,t,n,o=null){Oe(e,t,7,[n,o])}function di(e){const t=e.slice(),n=[0];let o,s,r,l,c;const u=e.length;for(o=0;o0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,l=n[r-1];r-- >0;)n[r]=l,l=t[l];return n}const So={};function un(e,t,n){return Lo(e,t,n)}function Lo(e,t,{immediate:n,deep:o,flush:s,onTrack:r,onTrigger:l}=L,c=j){let u;const g=Z(e);if(g?u=()=>e.value:Ye(e)?(u=()=>e,o=!0):k(e)?u=()=>e.map(R=>{if(Z(R))return R.value;if(Ye(R))return Ne(R);if(I(R))return oe(R,c,2)}):I(e)?t?u=()=>oe(e,c,2):u=()=>c&&c.isUnmounted?void 0:(b&&b(),oe(e,c,3,[E])):u=pe,t&&o){const R=u;u=()=>Ne(R())}let b;const E=R=>{b=U.options.onStop=()=>{oe(R,c,4)}};let x=k(e)?[]:So;const A=()=>{if(!U.active)return;if(t){const R=U();(o||g||Dt(R,x))&&(b&&b(),Oe(t,c,3,[R,x===So?void 0:x,E]),x=R)}else U()};A.allowRecurse=!!t;let $;s===\\"sync\\"?$=A:s===\\"pre\\"?(A.id=-1,$=()=>{!c||c.isMounted?Tr(A):A()}):$=()=>Y(A,c&&c.suspense);const U=Ht(u,{lazy:!0,onTrack:r,onTrigger:l,scheduler:$});return Bo(U),t?n?A():x=U():U(),()=>{jt(U),c&&Sn(c.effects,U)}}function hi(e,t,n){const o=this.proxy,s=z(e)?()=>o[e]:e.bind(o);return Lo(s,t.bind(o),n,this)}function Ne(e,t=new Set()){if(!K(e)||t.has(e))return e;if(t.add(e),Z(e))Ne(e.value,t);else if(k(e))for(let n=0;n{Ne(e.get(o),t)});else if(e instanceof Set)e.forEach(n=>{Ne(n,t)});else for(const n in e)Ne(e[n],t);return e}function pi(e,t){if(j){let n=j.provides;const o=j.parent&&j.parent.provides;o===n&&(n=j.provides=Object.create(o)),n[e]=t}}function dn(e,t){const n=j||G;if(n){const o=n.provides;if(e in o)return o[e];if(arguments.length>1)return t}}let hn=!1;function pn(e,t,n=[],o=[],s=!1){const{mixins:r,extends:l,data:c,computed:u,methods:g,watch:b,provide:E,inject:x,components:A,directives:$,beforeMount:U,mounted:R,beforeUpdate:W,updated:ye,activated:q,deactivated:Ee,beforeUnmount:Ge,unmounted:je,render:ae,renderTracked:et,renderTriggered:Ae,errorCaptured:Ve}=t,M=e.proxy,ce=e.ctx,Ce=e.appContext.mixins;if(s&&ae&&e.render===pe&&(e.render=ae),s||(hn=!0,ko(\\"beforeCreate\\",t,M,Ce),hn=!1,Mo(e,Ce,n,o)),l&&pn(e,l,n,o,!0),r&&Mo(e,r,n,o),x)if(k(x))for(let F=0;FUo(e,F,M)),c&&Uo(e,c,M)),u)for(const F in u){const S=u[F],tt=I(S)?S.bind(M,M):I(S.get)?S.get.bind(M,M):pe,$e=!I(S)&&I(S.set)?S.set.bind(M):pe,nt=Ri({get:tt,set:$e});Object.defineProperty(ce,F,{enumerable:!0,configurable:!0,get:()=>nt.value,set:ot=>nt.value=ot})}if(b&&o.push(b),!s&&o.length&&o.forEach(F=>{for(const S in F)Fo(F[S],ce,M,S)}),E){const F=I(E)?E.call(M):E;for(const S in F)pi(S,F[S])}s&&(A&&V(e.components||(e.components=V({},e.type.components)),A),$&&V(e.directives||(e.directives=V({},e.type.directives)),$)),s||ko(\\"created\\",t,M,Ce),U&&qr(U.bind(M)),R&&zr(R.bind(M)),W&&Yr(W.bind(M)),ye&&Xr(ye.bind(M)),q&&ei(q.bind(M)),Ee&&ti(Ee.bind(M)),Ve&&Gr(Ve.bind(M)),et&&Qr(et.bind(M)),Ae&&Zr(Ae.bind(M)),Ge&&Jr(Ge.bind(M)),je&&Oo(je.bind(M))}function ko(e,t,n,o){mn(e,o,n);const{extends:s,mixins:r}=t;s&&Do(e,s,n),r&&mn(e,r,n);const l=t[e];l&&l.call(n)}function Do(e,t,n){t.extends&&Do(e,t.extends,n);const o=t[e];o&&o.call(n)}function mn(e,t,n){for(let o=0;on[o];if(z(e)){const r=t[e];I(r)&&un(s,r)}else if(I(e))un(s,e.bind(n));else if(K(e))if(k(e))e.forEach(r=>Fo(r,t,n,o));else{const r=I(e.handler)?e.handler.bind(n):t[e.handler];I(r)&&un(s,r,e)}}function mi(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 Tt(l,t,e),r.forEach(c=>Tt(l,c,e)),t.__merged=l}function Tt(e,t,n){const o=n.appContext.config.optionMergeStrategies;for(const l in t)o&&P(o,l)?e[l]=o[l](e[l],t[l],n.proxy,l):P(e,l)||(e[l]=t[l]);const{mixins:s,extends:r}=t;r&&Tt(e,r,n),s&&s.forEach(l=>Tt(e,l,n))}const Ho=V(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=>e.parent&&e.parent.proxy,$root:e=>e.root&&e.root.proxy,$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?mi(e):e.type,$forceUpdate:e=>()=>no(e.update),$nextTick:()=>wr,$watch:e=>__VUE_OPTIONS_API__?hi.bind(e):pe}),gn={get({_:e},t){const{ctx:n,setupState:o,data:s,props:r,accessCache:l,type:c,appContext:u}=e;if(t===\\"__v_skip\\")return!0;let g;if(t[0]!==\\"$\\"){const A=l[t];if(A!==void 0)switch(A){case 0:return o[t];case 1:return s[t];case 3:return n[t];case 2:return r[t]}else{if(o!==L&&P(o,t))return l[t]=0,o[t];if(s!==L&&P(s,t))return l[t]=1,s[t];if((g=e.propsOptions[0])&&P(g,t))return l[t]=2,r[t];if(n!==L&&P(n,t))return l[t]=3,n[t];(!__VUE_OPTIONS_API__||!hn)&&(l[t]=4)}}const b=Ho[t];let E,x;if(b)return t===\\"$attrs\\"&&J(e,\\"get\\",t),b(e);if((E=c.__cssModules)&&(E=E[t]))return E;if(n!==L&&P(n,t))return l[t]=3,n[t];if(x=u.config.globalProperties,P(x,t))return x[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:r}=e;if(s!==L&&P(s,t))s[t]=n;else if(o!==L&&P(o,t))o[t]=n;else if(t in e.props)return!1;return t[0]===\\"$\\"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:s,propsOptions:r}},l){let c;return n[l]!==void 0||e!==L&&P(e,l)||t!==L&&P(t,l)||(c=r[0])&&P(c,l)||P(o,l)||P(Ho,l)||P(s.config.globalProperties,l)}},gi=V({},gn,{get(e,t){return t===Symbol.unscopables?void 0:gn.get(e,t,e)},has(e,t){const n=t[0]!==\\"_\\"&&!As(t);return n}}),bi=Ao();let _i=0;function yi(e,t,n){const o=e.type,s=(t?t.appContext:e.appContext)||bi,r={uid:_i++,vnode:e,type:o,parent:t,appContext:s,root:null,next:null,subTree:null,update:null,render:null,proxy:null,withProxy:null,effects:null,provides:t?t.provides:Object.create(s.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:yo(o,s),emitsOptions:bo(o,s),emit:null,emitted:null,ctx:L,data:L,props:L,attrs:L,slots:L,refs:L,setupState:L,setupContext:null,suspense:n,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=$r.bind(null,r),__VUE_PROD_DEVTOOLS__,r}let j=null;const jo=e=>{j=e};let bn=!1;function Ei(e,t=!1){bn=t;const{props:n,children:o,shapeFlag:s}=e.vnode,r=s&4;Kr(e,n,r,t),si(e,o);const l=r?wi(e,t):void 0;return bn=!1,l}function wi(e,t){const n=e.type;e.accessCache={},e.proxy=new Proxy(e.ctx,gn);const{setup:o}=n;if(o){const s=e.setupContext=o.length>1?vi(e):null;j=e,$t();const r=oe(o,e,0,[e.props,s]);if(ut(),j=null,Ln(r)){if(t)return r.then(l=>{Vo(e,l)});e.asyncDep=r}else Vo(e,r)}else $o(e)}function Vo(e,t,n){I(t)?e.render=t:K(t)&&(__VUE_PROD_DEVTOOLS__&&(e.devtoolsRawSetupState=t),e.setupState=dr(t)),$o(e)}function $o(e,t){const n=e.type;e.render||(e.render=n.render||pe,e.render._rc&&(e.withProxy=new Proxy(e.ctx,gi))),__VUE_OPTIONS_API__&&(j=e,pn(e,n),j=null)}function vi(e){return{attrs:e.attrs,slots:e.slots,emit:e.emit}}function Bo(e){j&&(j.effects||(j.effects=[])).push(e)}const Ti=/(?:^|[-_])(\\\\w)/g,Oi=e=>e.replace(Ti,t=>t.toUpperCase()).replace(/[-_]/g,\\"\\");function Ko(e,t,n=!1){let o=I(t)&&t.displayName||t.name;if(!o&&t.__file){const s=t.__file.match(/([^/\\\\\\\\]+)\\\\.vue$/);s&&(o=s[1])}if(!o&&e&&e.parent){const s=r=>{for(const l in r)if(r[l]===t)return l};o=s(e.components||e.parent.type.components)||s(e.appContext.components)}return o?Oi(o):n?\\"App\\":\\"Anonymous\\"}function Ri(e){const t=pr(e);return Bo(t.effect),t}function xi(e){return I(e)?{setup:e,name:e.name}:e}const Ii=\\"3.0.0-rc.10\\",Wo=\\"http://www.w3.org/2000/svg\\",Pe=typeof document!=\\"undefined\\"?document:null;let qo,zo;const Yo={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n)=>t?Pe.createElementNS(Wo,e):Pe.createElement(e,n?{is:n}:void 0),createText:e=>Pe.createTextNode(e),createComment:e=>Pe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Pe.querySelector(e),setScopeId(e,t){e.setAttribute(t,\\"\\")},cloneNode(e){return e.cloneNode(!0)},insertStaticContent(e,t,n,o){const s=o?zo||(zo=Pe.createElementNS(Wo,\\"svg\\")):qo||(qo=Pe.createElement(\\"div\\"));s.innerHTML=e;const r=s.firstChild;let l=r,c=l;for(;l;)c=l,Yo.insert(l,t,n),l=s.firstChild;return[r,c]}};function Ni(e,t,n){if(t==null&&(t=\\"\\"),n)e.setAttribute(\\"class\\",t);else{const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(\\" \\")),e.className=t}}function Pi(e,t,n){const o=e.style;if(!n)e.removeAttribute(\\"style\\");else if(z(n))t!==n&&(o.cssText=n);else{for(const s in n)_n(o,s,n[s]);if(t&&!z(t))for(const s in t)n[s]==null&&_n(o,s,\\"\\")}}const Xo=/\\\\s*!important$/;function _n(e,t,n){if(k(n))n.forEach(o=>_n(e,t,o));else if(t.startsWith(\\"--\\"))e.setProperty(t,n);else{const o=Ai(e,t);Xo.test(n)?e.setProperty(ft(o),n.replace(Xo,\\"\\"),\\"important\\"):e[o]=n}}const Jo=[\\"Webkit\\",\\"Moz\\",\\"ms\\"],yn={};function Ai(e,t){const n=yn[t];if(n)return n;let o=Ke(t);if(o!==\\"filter\\"&&o in e)return yn[t]=o;o=kt(o);for(let s=0;sdocument.createEvent(\\"Event\\").timeStamp&&(Ot=()=>performance.now());let En=0;const Li=Promise.resolve(),ki=()=>{En=0},Di=()=>En||(Li.then(ki),En=Ot());function Mi(e,t,n,o){e.addEventListener(t,n,o)}function Ui(e,t,n,o){e.removeEventListener(t,n,o)}function Fi(e,t,n,o,s=null){const r=e._vei||(e._vei={}),l=r[t];if(o&&l)l.value=o;else{const[c,u]=Hi(t);if(o){const g=r[t]=ji(o,s);Mi(e,c,g,u)}else l&&(Ui(e,c,l,u),r[t]=void 0)}}const Qo=/(?:Once|Passive|Capture)$/;function Hi(e){let t;if(Qo.test(e)){t={};let n;for(;n=e.match(Qo);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e.slice(2).toLowerCase(),t]}function ji(e,t){const n=o=>{const s=o.timeStamp||Ot();s>=n.attached-1&&Oe(Vi(o,n.value),t,5,[o])};return n.value=e,n.attached=Di(),n}function Vi(e,t){if(k(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>s=>!s._stopped&&o(s))}else return t}const Go=/^on[a-z]/,$i=(e,t)=>t===\\"value\\",Bi=(e,t,n,o,s=!1,r,l,c,u)=>{switch(t){case\\"class\\":Ni(e,o,s);break;case\\"style\\":Pi(e,n,o);break;default:at(t)?At(t)||Fi(e,t,n,o,l):Ki(e,t,o,s)?Si(e,t,o,r,l,c,u):(t===\\"true-value\\"?e._trueValue=o:t===\\"false-value\\"&&(e._falseValue=o),Ci(e,t,o,s));break}};function Ki(e,t,n,o){return o?t===\\"innerHTML\\"?!0:!!(t in e&&Go.test(t)&&I(n)):t===\\"spellcheck\\"||t===\\"draggable\\"||(t===\\"form\\"&&typeof n==\\"string\\"||(t===\\"list\\"&&e.tagName===\\"INPUT\\"||Go.test(t)&&z(n)))?!1:t in e}const Wi=V({patchProp:Bi,forcePatchProp:$i},Yo);let es;function qi(){return es||(es=fi(Wi))}const zi=(...e)=>{const t=qi().createApp(...e),{mount:n}=t;return t.mount=o=>{const s=Yi(o);if(!s)return;const r=t._component;!I(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.innerHTML=\\"\\";const l=n(s);return s.removeAttribute(\\"v-cloak\\"),s.setAttribute(\\"data-v-app\\",\\"\\"),l},t};function Yi(e){if(z(e)){const t=document.querySelector(e);return t}return e}export{zi as createApp,xi as defineComponent,pt as reactive};" +`; From 24fb2ecd9081e3572f5a2ee2b19e7f78d0c072f7 Mon Sep 17 00:00:00 2001 From: akimyou Date: Mon, 21 Sep 2020 09:45:36 +0800 Subject: [PATCH 4/6] update vue to 3.0 --- create-snowpack-app/app-template-vue-typescript/package.json | 2 +- plugins/plugin-vue/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/create-snowpack-app/app-template-vue-typescript/package.json b/create-snowpack-app/app-template-vue-typescript/package.json index 7c18a84e71..7fdef68b70 100644 --- a/create-snowpack-app/app-template-vue-typescript/package.json +++ b/create-snowpack-app/app-template-vue-typescript/package.json @@ -15,7 +15,7 @@ "test": "echo \"Vue 3.0 test support is still in progress.\" && exit 1" }, "dependencies": { - "vue": "^3.0.0-rc.4" + "vue": "^3.0.0" }, "devDependencies": { "@snowpack/app-scripts-vue": "^1.8.4", diff --git a/plugins/plugin-vue/package.json b/plugins/plugin-vue/package.json index 62ce71fe5e..c6eaafb86b 100644 --- a/plugins/plugin-vue/package.json +++ b/plugins/plugin-vue/package.json @@ -7,7 +7,7 @@ "access": "public" }, "dependencies": { - "@vue/compiler-sfc": "^3.0.0-0", + "@vue/compiler-sfc": "^3.0.0", "hash-sum": "^2.0.0" }, "devDependencies": { From b26c988ac4d8577ecb21e146950a6970b60710d6 Mon Sep 17 00:00:00 2001 From: akimyou Date: Mon, 21 Sep 2020 09:52:54 +0800 Subject: [PATCH 5/6] reset create-snowpack-app.test.js.snap --- .../create-snowpack-app.test.js.snap | 336 +----------------- 1 file changed, 8 insertions(+), 328 deletions(-) diff --git a/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap b/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap index 558de015d6..d52ca07a00 100644 --- a/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap +++ b/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap @@ -9512,36 +9512,6 @@ function normalizeClass(value) { } return res.trim(); } -/** - * For converting {{ interpolation }} values to displayed strings. - * @private - */ -const toDisplayString = (val) => { - return val == null - ? '' - : isObject(val) - ? JSON.stringify(val, replacer, 2) - : String(val); -}; -const replacer = (_key, val) => { - if (val instanceof Map) { - return { - [\`Map(\${val.size})\`]: [...val.entries()].reduce((entries, [key, val]) => { - entries[\`\${key} =>\`] = val; - return entries; - }, {}) - }; - } - else if (val instanceof Set) { - return { - [\`Set(\${val.size})\`]: [...val.values()] - }; - } - else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { - return String(val); - } - return val; -}; const EMPTY_OBJ = {}; const EMPTY_ARR = []; const NOOP = () => { }; @@ -9574,7 +9544,6 @@ const toTypeString = (value) => objectToString.call(value); const toRawType = (value) => { return toTypeString(value).slice(8, -1); }; -const isPlainObject = (val) => toTypeString(val) === '[object Object]'; const isIntegerKey = (key) => isString(key) && key[0] !== '-' && '' + parseInt(key, 10) === key; const isReservedProp = /*#__PURE__*/ makeMap('key,ref,' + 'onVnodeBeforeMount,onVnodeMounted,' + @@ -10577,9 +10546,7 @@ function flushJobs(seen) { for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { const job = queue[flushIndex]; if (job) { - if ((\\"production\\" !== 'production')) { - checkRecursiveUpdates(seen, job); - } + if ((\\"production\\" !== 'production')) ; callWithErrorHandling(job, null, 14 /* SCHEDULER */); } } @@ -10645,9 +10612,7 @@ function renderComponentRoot(instance) { // functional const render = Component; // in dev, mark attrs accessed if optional props (attrs === props) - if ((\\"production\\" !== 'production') && attrs === props) { - markAttrsAccessed(); - } + if ((\\"production\\" !== 'production') && attrs === props) ; result = normalizeVNode(render.length > 1 ? render(props, (\\"production\\" !== 'production') ? { @@ -10669,10 +10634,7 @@ function renderComponentRoot(instance) { // to have comments along side the root element which makes it a fragment let root = result; let setRoot = undefined; - if ((\\"production\\" !== 'production')) { - ; - [root, setRoot] = getChildRoot(result); - } + if ((\\"production\\" !== 'production')) ; if (Component.inheritAttrs !== false && fallthroughAttrs) { const keys = Object.keys(fallthroughAttrs); const { shapeFlag } = root; @@ -10688,60 +10650,20 @@ function renderComponentRoot(instance) { } root = cloneVNode(root, fallthroughAttrs); } - else if ((\\"production\\" !== 'production') && !accessedAttrs && root.type !== Comment) { - const allAttrs = Object.keys(attrs); - const eventAttrs = []; - const extraAttrs = []; - for (let i = 0, l = allAttrs.length; i < l; i++) { - const key = allAttrs[i]; - if (isOn(key)) { - // ignore v-model handlers when they fail to fallthrough - if (!isModelListener(key)) { - // remove \`on\`, lowercase first letter to reflect event casing - // accurately - eventAttrs.push(key[2].toLowerCase() + key.slice(3)); - } - } - else { - extraAttrs.push(key); - } - } - if (extraAttrs.length) { - warn(\`Extraneous non-props attributes (\` + - \`\${extraAttrs.join(', ')}) \` + - \`were passed to component but could not be automatically inherited \` + - \`because component renders fragment or text root nodes.\`); - } - if (eventAttrs.length) { - warn(\`Extraneous non-emits event listeners (\` + - \`\${eventAttrs.join(', ')}) \` + - \`were passed to component but could not be automatically inherited \` + - \`because component renders fragment or text root nodes. \` + - \`If the listener is intended to be a component custom event listener only, \` + - \`declare it using the \\"emits\\" option.\`); - } - } + else if ((\\"production\\" !== 'production') && !accessedAttrs && root.type !== Comment) ; } } // inherit directives if (vnode.dirs) { - if ((\\"production\\" !== 'production') && !isElementRoot(root)) { - warn(\`Runtime directive used on component with non-element root node. \` + - \`The directives will not function as intended.\`); - } + if ((\\"production\\" !== 'production') && !isElementRoot(root)) ; root.dirs = vnode.dirs; } // inherit transition data if (vnode.transition) { - if ((\\"production\\" !== 'production') && !isElementRoot(root)) { - warn(\`Component inside renders non-element root node \` + - \`that cannot be animated.\`); - } + if ((\\"production\\" !== 'production') && !isElementRoot(root)) ; root.transition = vnode.transition; } - if ((\\"production\\" !== 'production') && setRoot) { - setRoot(root); - } + if ((\\"production\\" !== 'production') && setRoot) ; else { result = root; } @@ -10959,26 +10881,6 @@ function closeBlock() { blockStack.pop(); currentBlock = blockStack[blockStack.length - 1] || null; } -/** - * Create a block root vnode. Takes the same exact arguments as \`createVNode\`. - * A block root keeps track of dynamic nodes within the block in the - * \`dynamicChildren\` array. - * - * @private - */ -function createBlock(type, props, children, patchFlag, dynamicProps) { - const vnode = createVNode(type, props, children, patchFlag, dynamicProps, true /* isBlock: prevent a block from tracking itself */); - // save current block children on the block vnode - vnode.dynamicChildren = currentBlock || EMPTY_ARR; - // close block - closeBlock(); - // a block is always going to be patched, so track it as a child of its - // parent block - if ( currentBlock) { - currentBlock.push(vnode); - } - return vnode; -} function isVNode(value) { return value ? value.__v_isVNode === true : false; } @@ -14284,227 +14186,5 @@ function normalizeContainer(container) { } return container; } -export { createApp, createBlock, createTextVNode, createVNode, openBlock, toDisplayString };" -`; - -exports[`create-snowpack-app app-template-vue-typescript: __snowpack__/env.js 1`] = `"export default {\\"MODE\\":\\"production\\",\\"NODE_ENV\\":\\"production\\"};"`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/App.css 1`] = ` -" -.App { - text-align: center; -} -.App-header { - background-color: #f9f6f6; - color: #32485f; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); -} -.App-link { - color: #00c185; -} -.App-logo { - height: 40vmin; - pointer-events: none; - margin-bottom: 1rem; - animation: App-logo-spin infinite 1.6s ease-in-out alternate; -} -.App-tsx { - display: flex; -} -.App-tsx > div { - margin-left: 30px; - font-size: 16px; -} -@keyframes App-logo-spin { -from { - transform: scale(1); -} -to { - transform: scale(1.06); -} -}" -`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/App.css.proxy.js 1`] = ` -"const code=\` -.App { - text-align: center; -} -.App-header { - background-color: #f9f6f6; - color: #32485f; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); -} -.App-link { - color: #00c185; -} -.App-logo { - height: 40vmin; - pointer-events: none; - margin-bottom: 1rem; - animation: App-logo-spin infinite 1.6s ease-in-out alternate; -} -.App-tsx { - display: flex; -} -.App-tsx > div { - margin-left: 30px; - font-size: 16px; -} -@keyframes App-logo-spin { -from { - transform: scale(1); -} -to { - transform: scale(1.06); -} -} -\`,styleEl=document.createElement(\\"style\\"),codeEl=document.createTextNode(code);styleEl.type=\\"text/css\\",styleEl.appendChild(codeEl),document.head.appendChild(styleEl);" -`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/App.js 1`] = `"import\\"./App.css.proxy.js\\";import{defineComponent as c,reactive as l}from\\"../web_modules/vue.js\\";import m from\\"./components/FooTsx.js\\";import d from\\"./components/Foo.js\\";import i from\\"./components/BarJsx.js\\";import x from\\"./components/Bar.js\\";const t=c({components:{FooTsxVue:m,FooTsx:d,BarJsxVue:i,BarJsx:x},setup(){const s=l({message:\\"Learn Vue\\"});return{state:s}}});import{createVNode as o,createTextVNode as r,resolveComponent as e,toDisplayString as u,openBlock as B,createBlock as f}from\\"../web_modules/vue.js\\";const g={class:\\"App\\"},h={class:\\"App-header\\"},V=o(\\"img\\",{src:\\"/logo.svg\\",class:\\"App-logo\\",alt:\\"logo\\"},null,-1),v=o(\\"p\\",null,[r(\\" Edit \\"),o(\\"code\\",null,\\"src/App.vue\\"),r(\\" and save to reload. \\")],-1),T={class:\\"App-tsx\\"},F={class:\\"App-link\\",href:\\"https://vuejs.org\\",target:\\"_blank\\",rel:\\"noopener noreferrer\\"};export function render(s,j){const n=e(\\"FooTsxVue\\"),_=e(\\"FooTsx\\"),a=e(\\"BarJsxVue\\"),p=e(\\"BarJsx\\");return B(),f(\\"div\\",g,[o(\\"header\\",h,[V,v,o(\\"p\\",T,[o(n),o(_),o(a),o(p)]),o(\\"a\\",F,u(s.state.message),1)])])}t.render=render;export default t;"`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Bar.js 1`] = `"import{Fragment as t}from\\"../../web_modules/vue.js\\";import{createVNode as o,isVNode as m}from\\"../../web_modules/vue.js\\";const a=Array.prototype.slice;export function jsx(e,r=null,s=null){return(arguments.length>3||m(s))&&(s=a.call(arguments,2)),o(e,r,s)}import{defineComponent as n,reactive as u}from\\"../../web_modules/vue.js\\";import l from\\"./Bar.module.css.proxy.js\\";export default n({name:\\"BarJsx\\",setup(){const e=u({name:\\"BarJsx\\"});return()=>jsx(t,null,jsx(\\"div\\",{className:l[\\"bar-jsx\\"]},e.name))}});"`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Bar.module.css 1`] = ` -".bar-jsx { - color: red; -}" -`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Bar.module.css.proxy.js 1`] = ` -"export let code=\`._dist_components_Bar_module__bar-jsx { - color: red; -} -\`;let t={\\"bar-jsx\\":\\"_dist_components_Bar_module__bar-jsx\\"};export default t;const e=document.createElement(\\"style\\"),o=document.createTextNode(code);e.type=\\"text/css\\",e.appendChild(o),document.head.appendChild(e);" -`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/BarJsx.css 1`] = ` -" -.bar-jsx-vue { - color: red; -}" -`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/BarJsx.css.proxy.js 1`] = ` -"const code=\` -.bar-jsx-vue { - color: red; -} -\`,styleEl=document.createElement(\\"style\\"),codeEl=document.createTextNode(code);styleEl.type=\\"text/css\\",styleEl.appendChild(codeEl),document.head.appendChild(styleEl);" -`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/BarJsx.js 1`] = `"import\\"./BarJsx.css.proxy.js\\";import{Fragment as t}from\\"../../web_modules/vue.js\\";import{createVNode as o,isVNode as u}from\\"../../web_modules/vue.js\\";const a=Array.prototype.slice;export function jsx(e,r=null,s=null){return(arguments.length>3||u(s))&&(s=a.call(arguments,2)),o(e,r,s)}import{defineComponent as m,reactive as n}from\\"../../web_modules/vue.js\\";export default m({name:\\"BarJsxVue\\",setup(){const e=n({name:\\"BarJsxVue\\"});return()=>jsx(t,null,jsx(\\"div\\",{className:\\"bar-jsx-vue\\"},e.name))}});"`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Foo.js 1`] = `"import{Fragment as t}from\\"../../web_modules/vue.js\\";import{createVNode as r,isVNode as m}from\\"../../web_modules/vue.js\\";const n=Array.prototype.slice;export function jsx(e,s=null,o=null){return(arguments.length>3||m(o))&&(o=n.call(arguments,2)),r(e,s,o)}import{defineComponent as u,reactive as l}from\\"../../web_modules/vue.js\\";import a from\\"./Foo.module.css.proxy.js\\";export default u({name:\\"FooTsx\\",setup(){const e=l({name:\\"FooTsx\\"});return()=>jsx(t,null,jsx(\\"div\\",{className:a[\\"foo-tsx\\"]},e.name))}});"`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Foo.module.css 1`] = ` -".foo-tsx { - color: green; -}" -`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Foo.module.css.proxy.js 1`] = ` -"export let code=\`._dist_components_Foo_module__foo-tsx { - color: green; -}\`;let o={\\"foo-tsx\\":\\"_dist_components_Foo_module__foo-tsx\\"};export default o;const e=document.createElement(\\"style\\"),t=document.createTextNode(code);e.type=\\"text/css\\",e.appendChild(t),document.head.appendChild(e);" -`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/FooTsx.css 1`] = ` -" -.foo-tsx-vue { - color: green; -}" -`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/FooTsx.css.proxy.js 1`] = ` -"const code=\` -.foo-tsx-vue { - color: green; -} -\`,styleEl=document.createElement(\\"style\\"),codeEl=document.createTextNode(code);styleEl.type=\\"text/css\\",styleEl.appendChild(codeEl),document.head.appendChild(styleEl);" -`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/FooTsx.js 1`] = `"import\\"./FooTsx.css.proxy.js\\";import{Fragment as t}from\\"../../web_modules/vue.js\\";import{createVNode as r,isVNode as u}from\\"../../web_modules/vue.js\\";const m=Array.prototype.slice;export function jsx(e,s=null,o=null){return(arguments.length>3||u(o))&&(o=m.call(arguments,2)),r(e,s,o)}import{defineComponent as n,reactive as a}from\\"../../web_modules/vue.js\\";export default n({name:\\"FooTsxVue\\",setup(){const e=a({name:\\"FooTsxVue\\"});return()=>jsx(t,null,jsx(\\"div\\",{className:\\"foo-tsx-vue\\"},e.name))}});"`; - -exports[`create-snowpack-app app-template-vue-typescript: _dist_/index.js 1`] = `"import o from\\"../__snowpack__/env.js\\";import.meta.env=o;import{createApp as t}from\\"../web_modules/vue.js\\";import p from\\"./App.js\\";const e=t(p);e.mount(\\"#app\\"),import.meta.hot&&(import.meta.hot.accept(),import.meta.hot.dispose(()=>{e.unmount()}));"`; - -exports[`create-snowpack-app app-template-vue-typescript: allFiles 1`] = ` -Array [ - "__snowpack__/env.js", - "_dist_/App.css", - "_dist_/App.css.proxy.js", - "_dist_/App.js", - "_dist_/components/Bar.js", - "_dist_/components/Bar.module.css", - "_dist_/components/Bar.module.css.proxy.js", - "_dist_/components/BarJsx.css", - "_dist_/components/BarJsx.css.proxy.js", - "_dist_/components/BarJsx.js", - "_dist_/components/Foo.js", - "_dist_/components/Foo.module.css", - "_dist_/components/Foo.module.css.proxy.js", - "_dist_/components/FooTsx.css", - "_dist_/components/FooTsx.css.proxy.js", - "_dist_/components/FooTsx.js", - "_dist_/index.js", - "favicon-32x32.png", - "favicon.ico", - "index.html", - "logo.svg", - "robots.txt", - "web_modules/import-map.json", - "web_modules/vue.js", -] -`; - -exports[`create-snowpack-app app-template-vue-typescript: index.html 1`] = ` -" - - - - - - - Snowpack App - - -
- - - - -" -`; - -exports[`create-snowpack-app app-template-vue-typescript: web_modules/import-map.json 1`] = ` -"{ - \\"imports\\": { - \\"vue\\": \\"./vue.js\\" - } -}" -`; - -exports[`create-snowpack-app app-template-vue-typescript: web_modules/vue.js 1`] = ` -"function xn(){throw new Error(\\"setTimeout has not been defined\\")}function In(){throw new Error(\\"clearTimeout has not been defined\\")}var ue=xn,de=In;typeof window.setTimeout==\\"function\\"&&(ue=setTimeout),typeof window.clearTimeout==\\"function\\"&&(de=clearTimeout);function Nn(e){if(ue===setTimeout)return setTimeout(e,0);if((ue===xn||!ue)&&setTimeout)return ue=setTimeout,setTimeout(e,0);try{return ue(e,0)}catch(t){try{return ue.call(null,e,0)}catch(n){return ue.call(this,e,0)}}}function os(e){if(de===clearTimeout)return clearTimeout(e);if((de===In||!de)&&clearTimeout)return de=clearTimeout,clearTimeout(e);try{return de(e)}catch(t){try{return de.call(null,e)}catch(n){return de.call(this,e)}}}var le=[],ke=!1,we,it=-1;function ss(){if(!ke||!we)return;ke=!1,we.length?le=we.concat(le):it=-1,le.length&&Pn()}function Pn(){if(ke)return;var e=Nn(ss);ke=!0;for(var t=le.length;t;){for(we=le,le=[];++it1)for(var n=1;n!!n[s.toLowerCase()]:s=>!!n[s]}const Ps=\\"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl\\",As=It(Ps),Cs=\\"itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly\\",Ss=It(Cs);function Nt(e){if(k(e)){const t={};for(let n=0;n{if(n){const o=n.split(ks);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Pt(e){let t=\\"\\";if(z(e))t=e;else if(k(e))for(let n=0;n{},Cn=()=>!1,Ms=/^on[^a-z]/,at=e=>Ms.test(e),At=e=>e.startsWith(\\"onUpdate:\\"),V=Object.assign,Sn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Us=Object.prototype.hasOwnProperty,P=(e,t)=>Us.call(e,t),k=Array.isArray,I=e=>typeof e==\\"function\\",z=e=>typeof e==\\"string\\",Ct=e=>typeof e==\\"symbol\\",K=e=>e!==null&&typeof e==\\"object\\",Ln=e=>K(e)&&I(e.then)&&I(e.catch),Fs=Object.prototype.toString,Hs=e=>Fs.call(e),js=e=>Hs(e).slice(8,-1),St=e=>z(e)&&e[0]!==\\"-\\"&&\\"\\"+parseInt(e,10)===e,ct=It(\\"key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\\"),Lt=e=>{const t=Object.create(null);return n=>{const o=t[n];return o||(t[n]=e(n))}},Vs=/-(\\\\w)/g,Ke=Lt(e=>e.replace(Vs,(t,n)=>n?n.toUpperCase():\\"\\")),$s=/\\\\B([A-Z])/g,ft=Lt(e=>e.replace($s,\\"-$1\\").toLowerCase()),kt=Lt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Dt=(e,t)=>e!==t&&(e===e||t===t),Mt=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})};let kn;const Dn=()=>kn||(kn=typeof globalThis!=\\"undefined\\"?globalThis:typeof self!=\\"undefined\\"?self:typeof window!=\\"undefined\\"?window:typeof global!=\\"undefined\\"?global:{}),Ft=new WeakMap(),We=[];let Te;const qe=Symbol(\\"\\"),Mn=Symbol(\\"\\");function Bs(e){return e&&e._isEffect===!0}function Ht(e,t=L){Bs(e)&&(e=e.raw);const n=Ws(e,t);return t.lazy||n(),n}function jt(e){e.active&&(Un(e),e.options.onStop&&e.options.onStop(),e.active=!1)}let Ks=0;function Ws(e,t){const n=function(){if(!n.active)return t.scheduler?void 0:e();if(!We.includes(n)){Un(n);try{return qs(),We.push(n),Te=n,e()}finally{We.pop(),ut(),Te=We[We.length-1]}}};return n.id=Ks++,n._isEffect=!0,n.active=!0,n.raw=e,n.deps=[],n.options=t,n}function Un(e){const{deps:t}=e;if(t.length){for(let n=0;n{b&&b.forEach(E=>{E!==Te&&c.add(E)})};if(t===\\"clear\\")l.forEach(u);else if(n===\\"length\\"&&k(e))l.forEach((b,E)=>{(E===\\"length\\"||E>=o)&&u(b)});else{n!==void 0&&u(l.get(n));const b=t===\\"add\\"&&(!k(e)||St(n))||t===\\"delete\\"&&!k(e);(b||t===\\"set\\"&&e instanceof Map)&&u(l.get(k(e)?\\"length\\":qe)),b&&e instanceof Map&&u(l.get(Mn))}const g=b=>{b.options.scheduler?b.options.scheduler(b):b()};c.forEach(g)}const Fn=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(Ct)),zs=dt(),Ys=dt(!1,!0),Xs=dt(!0),Js=dt(!0,!0),Bt={};[\\"includes\\",\\"indexOf\\",\\"lastIndexOf\\"].forEach(e=>{Bt[e]=function(...t){const n=D(this);for(let s=0,r=this.length;sK(e)?pt(e):e,Wt=e=>K(e)?Zn(e):e,qt=e=>e,ze=e=>Reflect.getPrototypeOf(e);function zt(e,t,n=!1,o=!1){e=e.__v_raw;const s=D(e),r=D(t);t!==r&&(!n&&J(s,\\"get\\",t)),!n&&J(s,\\"get\\",r);const{has:l}=ze(s),c=n?Wt:o?qt:Kt;if(l.call(s,t))return c(e.get(t));if(l.call(s,r))return c(e.get(r))}function Yt(e,t=!1){const n=this.__v_raw,o=D(n),s=D(e);return e!==s&&(!t&&J(o,\\"has\\",e)),!t&&J(o,\\"has\\",s),e===s?n.has(e):n.has(e)||n.has(s)}function Xt(e,t=!1){return e=e.__v_raw,!t&&J(D(e),\\"iterate\\",qe),Reflect.get(e,\\"size\\",e)}function $n(e){e=D(e);const t=D(this),n=ze(t),o=n.has.call(t,e),s=n.add.call(t,e);return o||ne(t,\\"add\\",e,e),s}function Bn(e,t){t=D(t);const n=D(this),{has:o,get:s,set:r}=ze(n);let l=o.call(n,e);l||(e=D(e),l=o.call(n,e));const c=s.call(n,e),u=r.call(n,e,t);return l?Dt(t,c)&&ne(n,\\"set\\",e,t):ne(n,\\"add\\",e,t),u}function Kn(e){const t=D(this),{has:n,get:o,delete:s}=ze(t);let r=n.call(t,e);r||(e=D(e),r=n.call(t,e));const l=o?o.call(t,e):void 0,c=s.call(t,e);return r&&ne(t,\\"delete\\",e,void 0),c}function Wn(){const e=D(this),t=e.size!==0,n=ze(e).clear.call(e);return t&&ne(e,\\"clear\\",void 0,void 0),n}function Jt(e,t){return function(o,s){const r=this,l=r.__v_raw,c=D(l),u=e?Wt:t?qt:Kt;return!e&&J(c,\\"iterate\\",qe),l.forEach((g,b)=>o.call(s,u(g),u(b),r))}}function Zt(e,t,n){return function(...o){const s=this.__v_raw,r=D(s),l=r instanceof Map,c=e===\\"entries\\"||e===Symbol.iterator&&l,u=e===\\"keys\\"&&l,g=s[e](...o),b=t?Wt:n?qt:Kt;return!t&&J(r,\\"iterate\\",u?Mn:qe),{next(){const{value:E,done:x}=g.next();return x?{value:E,done:x}:{value:c?[b(E[0]),b(E[1])]:b(E),done:x}},[Symbol.iterator](){return this}}}}function ht(e){return function(...t){return e===\\"delete\\"?!1:this}}const qn={get(e){return zt(this,e)},get size(){return Xt(this)},has:Yt,add:$n,set:Bn,delete:Kn,clear:Wn,forEach:Jt(!1,!1)},zn={get(e){return zt(this,e,!1,!0)},get size(){return Xt(this)},has:Yt,add:$n,set:Bn,delete:Kn,clear:Wn,forEach:Jt(!1,!0)},Yn={get(e){return zt(this,e,!0)},get size(){return Xt(this,!0)},has(e){return Yt.call(this,e,!0)},add:ht(\\"add\\"),set:ht(\\"set\\"),delete:ht(\\"delete\\"),clear:ht(\\"clear\\"),forEach:Jt(!0,!1)},or=[\\"keys\\",\\"values\\",\\"entries\\",Symbol.iterator];or.forEach(e=>{qn[e]=Zt(e,!1,!1),Yn[e]=Zt(e,!0,!1),zn[e]=Zt(e,!1,!0)});function Qt(e,t){const n=t?zn:e?Yn:qn;return(o,s,r)=>s===\\"__v_isReactive\\"?!e:s===\\"__v_isReadonly\\"?e:s===\\"__v_raw\\"?o:Reflect.get(P(n,s)&&s in o?n:o,s,r)}const sr={get:Qt(!1,!1)},rr={get:Qt(!1,!0)},ir={get:Qt(!0,!1)},Xn=new WeakMap(),Jn=new WeakMap();function lr(e){switch(e){case\\"Object\\":case\\"Array\\":return 1;case\\"Map\\":case\\"Set\\":case\\"WeakMap\\":case\\"WeakSet\\":return 2;default:return 0}}function ar(e){return e.__v_skip||!Object.isExtensible(e)?0:lr(js(e))}function pt(e){return e&&e.__v_isReadonly?e:Gt(e,!1,jn,sr)}function cr(e){return Gt(e,!1,nr,rr)}function Zn(e){return Gt(e,!0,Vn,ir)}function Gt(e,t,n,o){if(!K(e))return e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=t?Jn:Xn,r=s.get(e);if(r)return r;const l=ar(e);if(l===0)return e;const c=new Proxy(e,l===2?o:n);return s.set(e,c),c}function Ye(e){return Qn(e)?Ye(e.__v_raw):!!(e&&e.__v_isReactive)}function Qn(e){return!!(e&&e.__v_isReadonly)}function Gn(e){return Ye(e)||Qn(e)}function D(e){return e&&D(e.__v_raw)||e}function Z(e){return Boolean(e&&e.__v_isRef===!0)}function fr(e){return Z(e)?e.value:e}const ur={get:(e,t,n)=>fr(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return Z(s)&&!Z(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function dr(e){return Ye(e)?e:new Proxy(e,ur)}class hr{constructor(e,t,n){this._setter=t,this._dirty=!0,this.__v_isRef=!0,this.effect=Ht(e,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,ne(D(this),\\"set\\",\\"value\\"))}}),this.__v_isReadonly=n}get value(){return this._dirty&&(this._value=this.effect(),this._dirty=!1),J(D(this),\\"get\\",\\"value\\"),this._value}set value(e){this._setter(e)}}function pr(e){let t,n;return I(e)?(t=e,n=pe):(t=e.get,n=e.set),new hr(t,n,I(e)||!e.set)}const Xe=[];function Zi(e,...t){$t();const n=Xe.length?Xe[Xe.length-1].component:null,o=n&&n.appContext.config.warnHandler,s=mr();if(o)oe(o,n,11,[e+t.join(\\"\\"),n&&n.proxy,s.map(({vnode:r})=>\`at <\${Ko(n,r.type)}>\`).join(\` -\`),s]);else{const r=[\`[Vue warn]: \${e}\`,...t];s.length&&!0&&r.push(\` -\`,...gr(s)),console.warn(...r)}ut()}function mr(){let e=Xe[Xe.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function gr(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[\` -\`],...br(n))}),t}function br({vnode:e,recurseCount:t}){const n=t>0?\`... (\${t} recursive calls)\`:\\"\\",o=e.component?e.component.parent==null:!1,s=\` at <\${Ko(e.component,e.type,o)}\`,r=\\">\\"+n;return e.props?[s,..._r(e.props),r]:[s+r]}function _r(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...eo(o,e[o]))}),n.length>3&&t.push(\\" ...\\"),t}function eo(e,t,n){return z(t)?(t=JSON.stringify(t),n?t:[\`\${e}=\${t}\`]):typeof t==\\"number\\"||typeof t==\\"boolean\\"||t==null?n?t:[\`\${e}=\${t}\`]:Z(t)?(t=eo(e,D(t.value),!0),n?t:[\`\${e}=Ref<\`,t,\\">\\"]):I(t)?[\`\${e}=fn\${t.name?\`<\${t.name}>\`:\\"\\"}\`]:(t=D(t),n?t:[\`\${e}=\`,t])}function oe(e,t,n,o){let s;try{s=o?e(...o):e()}catch(r){en(r,t,n)}return s}function Oe(e,t,n,o){if(I(e)){const r=oe(e,t,n,o);return r&&Ln(r)&&r.catch(l=>{en(l,t,n)}),r}const s=[];for(let r=0;r-1&&(se[t]=null)}function so(e,t,n,o){k(e)?n.push(...e):(!t||!t.includes(e,e.allowRecurse?o+1:o))&&n.push(e),oo()}function Tr(e){so(e,Je,gt,Ue)}function Or(e){so(e,me,Ze,Fe)}function sn(e,t=null){if(gt.length){for(on=t,Je=[...new Set(gt)],gt.length=0,Ue=0;Uebt(n)-bt(o)),Fe=0;Fee.id==null?Infinity:e.id;function io(e){tn=!1,mt=!0,sn(e),se.sort((t,n)=>bt(t)-bt(n));try{for(Re=0;ReEr)throw new Error(\\"Maximum recursive updates exceeded. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.\\");e.set(t,n+1)}}let G=null;function lo(e){G=e}let ao=!1;function Rr(){ao=!0}function co(e){const{type:t,vnode:n,proxy:o,withProxy:s,props:r,propsOptions:[l],slots:c,attrs:u,emit:g,render:b,renderCache:E,data:x,setupState:A,ctx:$}=e;let U;G=e;try{let R;if(n.shapeFlag&4){const q=s||o;U=ee(b.call(q,q,E,r,A,x,$)),R=u}else{const q=t;he.env.NODE_ENV!==\\"production\\"&&u===r,U=ee(q.length>1?q(r,he.env.NODE_ENV!==\\"production\\"?{get attrs(){return Rr(),u},slots:c,emit:g}:{attrs:u,slots:c,emit:g}):q(r,null)),R=t.props?u:xr(u)}let W=U,ye;if(he.env.NODE_ENV!==\\"production\\",t.inheritAttrs!==!1&&R){const q=Object.keys(R),{shapeFlag:Ee}=W;q.length&&(Ee&1||Ee&6?(l&&q.some(At)&&(R=Ir(R,l)),W=wt(W,R)):he.env.NODE_ENV!==\\"production\\"&&!ao&&W.type!==be)}n.dirs&&(he.env.NODE_ENV!==\\"production\\"&&!fo(W),W.dirs=n.dirs),n.transition&&(he.env.NODE_ENV!==\\"production\\"&&!fo(W),W.transition=n.transition),he.env.NODE_ENV!==\\"production\\"&&ye||(U=W)}catch(R){en(R,e,1),U=xe(be)}return G=null,U}const Gi=e=>{if(e.type!==ge)return[e,void 0];const t=e.children,n=e.dynamicChildren,o=t.filter(u=>!(po(u)&&u.type===be&&u.children!==\\"v-if\\"));if(o.length!==1)return[e,void 0];const s=o[0],r=t.indexOf(s),l=n?n.indexOf(s):-1,c=u=>{t[r]=u,l>-1?n[l]=u:n&&u.patchFlag>0&&n.push(u)};return[ee(s),c]},xr=e=>{let t;for(const n in e)(n===\\"class\\"||n===\\"style\\"||at(n))&&((t||(t={}))[n]=e[n]);return t},Ir=(e,t)=>{const n={};for(const o in e)(!At(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n},fo=e=>e.shapeFlag&6||e.shapeFlag&1||e.type===be;function Nr(e,t,n){const{props:o,children:s}=e,{props:r,children:l,patchFlag:c}=t;if(t.dirs||t.transition)return!0;if(n&&c>0){if(c&1024)return!0;if(c&16)return o?uo(o,r):!!r;if(c&8){const u=t.dynamicProps;for(let g=0;ge.__isSuspense;function Cr(e,t){t&&!t.isResolved?k(e)?t.effects.push(...e):t.effects.push(e):Or(e)}let rn=0;const ho=e=>rn+=e;function Sr(e,t=G){if(!t)return e;const n=(...o)=>{rn||Ur(!0);const s=G;lo(t);const r=e(...o);return lo(s),rn||Fr(),r};return n._c=!0,n}let Lr=null;const kr=e=>e.__isTeleport,Dr=Symbol(),ge=Symbol(void 0),ln=Symbol(void 0),be=Symbol(void 0),Mr=Symbol(void 0),_t=[];let yt=null;function Ur(e=!1){_t.push(yt=e?null:[])}function Fr(){_t.pop(),yt=_t[_t.length-1]||null}function po(e){return e?e.__v_isVNode===!0:!1}function Qe(e,t){return e.type===t.type&&e.key===t.key}const Et=\\"__vInternal\\",mo=({key:e})=>e??null,go=({ref:e})=>e!=null?k(e)?e:[G,e]:null,xe=Hr;function Hr(e,t=null,n=null,o=0,s=null,r=!1){if((!e||e===Dr)&&(e=be),po(e)){const u=wt(e,t);return n&&an(u,n),u}if(I(e)&&\\"__vccOpts\\"in e&&(e=e.__vccOpts),t){(Gn(t)||Et in t)&&(t=V({},t));let{class:u,style:g}=t;u&&!z(u)&&(t.class=Pt(u)),K(g)&&(Gn(g)&&!k(g)&&(g=V({},g)),t.style=Nt(g))}const l=z(e)?1:Ar(e)?128:kr(e)?64:K(e)?4:I(e)?2:0,c={__v_isVNode:!0,[\\"__v_skip\\"]:!0,type:e,props:t,key:t&&mo(t),ref:t&&go(t),scopeId:Lr,children:null,component:null,suspense:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:o,dynamicProps:s,dynamicChildren:null,appContext:null};return an(c,n),!r&&yt&&(o>0||l&6)&&o!==32&&yt.push(c),c}function wt(e,t){const{props:n,patchFlag:o}=e,s=t?Vr(n||{},t):n;return{__v_isVNode:!0,[\\"__v_skip\\"]:!0,type:e.type,props:s,key:s&&mo(s),ref:t&&t.ref?go(t):e.ref,scopeId:e.scopeId,children:e.children,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ge?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,el:e.el,anchor:e.anchor}}function jr(e=\\" \\",t=0){return xe(ln,null,e,t)}function ee(e){return e==null||typeof e==\\"boolean\\"?xe(be):k(e)?xe(ge,null,e):typeof e==\\"object\\"?e.el===null?e:wt(e):xe(ln,null,String(e))}function He(e){return e.el===null?e:wt(e)}function an(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(k(t))n=16;else if(typeof t==\\"object\\")if(o&1||o&64){const s=t.default;s&&(s._c&&ho(1),an(e,s()),s._c&&ho(-1));return}else{n=32;const s=t._;!s&&!(Et in t)?t._ctx=G:s===3&&G&&(G.vnode.patchFlag&1024?(t._=2,e.patchFlag|=1024):t._=1)}else I(t)?(t={default:t,_ctx:G},n=32):(t=String(t),o&64?(n=16,t=[jr(t)]):n=8);e.children=t,e.shapeFlag|=n}function Vr(...e){const t=V({},e[0]);for(let n=1;n{u=!0,V(c,bo(b,t,!0))};!n&&t.mixins.length&&t.mixins.forEach(g),e.extends&&g(e.extends),e.mixins&&e.mixins.forEach(g)}return!l&&!u?s[o]=null:(k(l)?l.forEach(g=>c[g]=null):V(c,l),s[o]=c)}function Br(e,t){return!e||!at(t)?!1:(t=t.replace(/Once$/,\\"\\"),P(e,t[2].toLowerCase()+t.slice(3))||P(e,t.slice(2)))}function Kr(e,t,n,o=!1){const s={},r={};Ut(r,Et,1),_o(e,t,s,r),n?e.props=o?s:cr(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function Wr(e,t,n,o){const{props:s,attrs:r,vnode:{patchFlag:l}}=e,c=D(s),[u]=e.propsOptions;if((o||l>0)&&!(l&16)){if(l&8){const g=e.vnode.dynamicProps;for(let b=0;b{g=!0;const[x,A]=yo(E,t,!0);V(c,x),A&&u.push(...A)};!n&&t.mixins.length&&t.mixins.forEach(b),e.extends&&b(e.extends),e.mixins&&e.mixins.forEach(b)}if(!l&&!g)return s[o]=lt;if(k(l))for(let b=0;b-1,A[1]=U<0||$-1||P(A,\\"default\\"))&&u.push(E)}}}return s[o]=[c,u]}function Eo(e){const t=e&&e.toString().match(/^\\\\s*function (\\\\w+)/);return t?t[1]:\\"\\"}function wo(e,t){return Eo(e)===Eo(t)}function vo(e,t){if(k(t)){for(let n=0,o=t.length;n{if(n.isUnmounted)return;$t(),jo(n);const c=Oe(t,n,e,l);return jo(null),ut(),c});return o?s.unshift(r):s.push(r),r}}const _e=e=>(t,n=j)=>!bn&&vt(e,t,n),qr=_e(\\"bm\\"),zr=_e(\\"m\\"),Yr=_e(\\"bu\\"),Xr=_e(\\"u\\"),Jr=_e(\\"bum\\"),Oo=_e(\\"um\\"),Zr=_e(\\"rtg\\"),Qr=_e(\\"rtc\\"),Gr=(e,t=j)=>{vt(\\"ec\\",e,t)},Ro=e=>e.type.__isKeepAlive;function ei(e,t){xo(e,\\"a\\",t)}function ti(e,t){xo(e,\\"da\\",t)}function xo(e,t,n=j){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}e()});if(vt(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Ro(s.parent.vnode)&&ni(o,t,n,s),s=s.parent}}function ni(e,t,n,o){const s=vt(t,e,o,!0);Oo(()=>{Sn(o[t],s)},n)}const Io=e=>e[0]===\\"_\\"||e===\\"$stable\\",fn=e=>k(e)?e.map(ee):[ee(e)],oi=(e,t,n)=>Sr(o=>fn(t(o)),n),No=(e,t)=>{const n=e._ctx;for(const o in e){if(Io(o))continue;const s=e[o];if(I(s))t[o]=oi(o,s,n);else if(s!=null){const r=fn(s);t[o]=()=>r}}},Po=(e,t)=>{const n=fn(t);e.slots.default=()=>n},si=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=t,Ut(t,\\"_\\",n)):No(t,e.slots={})}else e.slots={},t&&Po(e,t);Ut(e.slots,Et,1)},ri=(e,t)=>{const{vnode:n,slots:o}=e;let s=!0,r=L;if(n.shapeFlag&32){const l=t._;l?l===1?s=!1:V(o,t):(s=!t.$stable,No(t,o)),r=t}else t&&(Po(e,t),r={default:1});if(s)for(const l in o)!Io(l)&&!(l in r)&&delete o[l]};function Ie(e,t,n,o){const s=e.dirs,r=t&&t.dirs;for(let l=0;l{let r;s?s.shapeFlag&4?r=s.component.proxy:r=s.el:r=null;const[l,c]=e,u=t&&t[1],g=l.refs===L?l.refs={}:l.refs,b=l.setupState;if(u!=null&&u!==c&&(z(u)?(g[u]=null,P(b,u)&&(b[u]=null)):Z(u)&&(u.value=null)),z(c)){const E=()=>{g[c]=r,P(b,c)&&(b[c]=r)};r?(E.id=-1,Y(E,o)):E()}else if(Z(c)){const E=()=>{c.value=r};r?(E.id=-1,Y(E,o)):E()}else I(c)&&oe(c,n,12,[r,g])};function fi(e){return ui(e)}function ui(e,t){ai();const{insert:n,remove:o,patchProp:s,forcePatchProp:r,createElement:l,createText:c,createComment:u,setText:g,setElementText:b,parentNode:E,nextSibling:x,setScopeId:A=pe,cloneNode:$,insertStaticContent:U}=e,R=(i,a,d,h=null,p=null,_=null,y=!1,m=!1)=>{i&&!Qe(i,a)&&(h=rt(i),fe(i,p,_,!0),i=null),a.patchFlag===-2&&(m=!1,a.dynamicChildren=null);const{type:f,ref:T,shapeFlag:w}=a;switch(f){case ln:W(i,a,d,h);break;case be:ye(i,a,d,h);break;case Mr:i==null&&q(a,d,h,y);break;case ge:M(i,a,d,h,p,_,y,m);break;default:w&1?Ee(i,a,d,h,p,_,y,m):w&6?ce(i,a,d,h,p,_,y,m):(w&64||w&128)&&f.process(i,a,d,h,p,_,y,m,Se)}T!=null&&p&&Co(T,i&&i.ref,p,_,a)},W=(i,a,d,h)=>{if(i==null)n(a.el=c(a.children),d,h);else{const p=a.el=i.el;a.children!==i.children&&g(p,a.children)}},ye=(i,a,d,h)=>{i==null?n(a.el=u(a.children||\\"\\"),d,h):a.el=i.el},q=(i,a,d,h)=>{[i.el,i.anchor]=U(i.children,a,d,h)},Ee=(i,a,d,h,p,_,y,m)=>{y=y||a.type===\\"svg\\",i==null?Ge(a,d,h,p,_,y,m):et(i,a,p,_,y,m)},Ge=(i,a,d,h,p,_,y)=>{let m,f;const{type:T,props:w,shapeFlag:v,transition:O,scopeId:N,patchFlag:H,dirs:C}=i;if(i.el&&$!==void 0&&H===-1)m=i.el=$(i.el);else{if(m=i.el=l(i.type,_,w&&w.is),v&8?b(m,i.children):v&16&&ae(i.children,m,null,h,p,_&&T!==\\"foreignObject\\",y||!!i.dynamicChildren),C&&Ie(i,null,h,\\"created\\"),w){for(const Q in w)ct(Q)||s(m,Q,null,w[Q],_,i.children,h,p,ie);(f=w.onVnodeBeforeMount)&&re(f,h,i)}je(m,N,i,h)}__VUE_PROD_DEVTOOLS__&&(Object.defineProperty(m,\\"__vnode\\",{value:i,enumerable:!1}),Object.defineProperty(m,\\"__vueParentComponent\\",{value:h,enumerable:!1})),C&&Ie(i,null,h,\\"beforeMount\\");const B=(!p||p&&p.isResolved)&&O&&!O.persisted;B&&O.beforeEnter(m),n(m,a,d),((f=w&&w.onVnodeMounted)||B||C)&&Y(()=>{f&&re(f,h,i),B&&O.enter(m),C&&Ie(i,null,h,\\"mounted\\")},p)},je=(i,a,d,h)=>{if(a&&A(i,a),h){const p=h.type.__scopeId;p&&p!==a&&A(i,p+\\"-s\\"),d===h.subTree&&je(i,h.vnode.scopeId,h.vnode,h.parent)}},ae=(i,a,d,h,p,_,y,m=0)=>{for(let f=m;f{const y=a.el=i.el;let{patchFlag:m,dynamicChildren:f,dirs:T}=a;m|=i.patchFlag&16;const w=i.props||L,v=a.props||L;let O;if((O=v.onVnodeBeforeUpdate)&&re(O,d,a,i),T&&Ie(a,i,d,\\"beforeUpdate\\"),m>0){if(m&16)Ve(y,a,w,v,d,h,p);else if(m&2&&(w.class!==v.class&&s(y,\\"class\\",null,v.class,p)),m&4&&s(y,\\"style\\",w.style,v.style,p),m&8){const H=a.dynamicProps;for(let C=0;C{O&&re(O,d,a,i),T&&Ie(a,i,d,\\"updated\\")},h)},Ae=(i,a,d,h,p,_)=>{for(let y=0;y{if(d!==h){for(const m in h){if(ct(m))continue;const f=h[m],T=d[m];(f!==T||r&&r(i,m))&&s(i,m,T,f,y,a.children,p,_,ie)}if(d!==L)for(const m in d)!ct(m)&&!(m in h)&&s(i,m,d[m],null,y,a.children,p,_,ie)}},M=(i,a,d,h,p,_,y,m)=>{const f=a.el=i?i.el:c(\\"\\"),T=a.anchor=i?i.anchor:c(\\"\\");let{patchFlag:w,dynamicChildren:v}=a;w>0&&(m=!0),i==null?(n(f,d,h),n(T,d,h),ae(a.children,d,T,p,_,y,m)):w>0&&w&64&&v?Ae(i.dynamicChildren,v,d,p,_,y):$e(i,a,d,T,p,_,y,m)},ce=(i,a,d,h,p,_,y,m)=>{i==null?a.shapeFlag&512?p.ctx.activate(a,d,h,y,m):Ce(a,d,h,p,_,y,m):F(i,a,m)},Ce=(i,a,d,h,p,_,y)=>{const m=i.component=yi(i,h,p);if(Ro(i)&&(m.ctx.renderer=Se),Ei(m),m.asyncDep){if(!p)return;if(p.registerDep(m,S),!i.el){const f=m.subTree=xe(be);ye(null,f,a,d)}return}S(m,i,a,d,p,_,y)},F=(i,a,d)=>{const h=a.component=i.component;if(Nr(i,a,d))if(h.asyncDep&&!h.asyncResolved){tt(h,a,d);return}else h.next=a,vr(h.update),h.update();else a.component=i.component,a.el=i.el,h.vnode=a},S=(i,a,d,h,p,_,y)=>{i.update=Ht(function(){if(i.isMounted){let{next:f,bu:T,u:w,parent:v,vnode:O}=i,N=f,H;f?tt(i,f,y):f=O,f.el=O.el,T&&Mt(T),(H=f.props&&f.props.onVnodeBeforeUpdate)&&re(H,v,f,O);const C=co(i),B=i.subTree;i.subTree=C,i.refs!==L&&(i.refs={}),R(B,C,E(B.el),rt(B),i,p,_),f.el=C.el,N===null&&Pr(i,C.el),w&&Y(w,p),(H=f.props&&f.props.onVnodeUpdated)&&Y(()=>{re(H,v,f,O)},p),__VUE_PROD_DEVTOOLS__}else{let f;const{el:T,props:w}=a,{bm:v,m:O,parent:N}=i;v&&Mt(v),(f=w&&w.onVnodeBeforeMount)&&re(f,N,a);const H=i.subTree=co(i);T&&xt?xt(a.el,H,i,p):(R(null,H,d,h,i,p,_),a.el=H.el),O&&Y(O,p),(f=w&&w.onVnodeMounted)&&Y(()=>{re(f,N,a)},p);const{a:C}=i;C&&a.shapeFlag&256&&Y(C,p),i.isMounted=!0}},ci),i.update.allowRecurse=!0},tt=(i,a,d)=>{a.component=i;const h=i.vnode.props;i.vnode=a,i.next=null,Wr(i,a.props,h,d),ri(i,a.children),sn(void 0,i.update)},$e=(i,a,d,h,p,_,y,m=!1)=>{const f=i&&i.children,T=i?i.shapeFlag:0,w=a.children,{patchFlag:v,shapeFlag:O}=a;if(v>0){if(v&128){ot(f,w,d,h,p,_,y,m);return}else if(v&256){nt(f,w,d,h,p,_,y,m);return}}O&8?(T&16&&ie(f,p,_),w!==f&&b(d,w)):T&16?O&16?ot(f,w,d,h,p,_,y,m):ie(f,p,_,!0):(T&8&&b(d,\\"\\"),O&16&&ae(w,d,h,p,_,y,m))},nt=(i,a,d,h,p,_,y,m)=>{i=i||lt,a=a||lt;const f=i.length,T=a.length,w=Math.min(f,T);let v;for(v=0;vT?ie(i,p,_,!0,w):ae(a,d,h,p,_,y,m,w)},ot=(i,a,d,h,p,_,y,m)=>{let f=0;const T=a.length;let w=i.length-1,v=T-1;for(;f<=w&&f<=v;){const O=i[f],N=a[f]=m?He(a[f]):ee(a[f]);if(Qe(O,N))R(O,N,d,null,p,_,y,m);else break;f++}for(;f<=w&&f<=v;){const O=i[w],N=a[v]=m?He(a[v]):ee(a[v]);if(Qe(O,N))R(O,N,d,null,p,_,y,m);else break;w--,v--}if(f>w){if(f<=v){const O=v+1,N=Ov)for(;f<=w;)fe(i[f],p,_,!0),f++;else{const O=f,N=f,H=new Map();for(f=N;f<=v;f++){const X=a[f]=m?He(a[f]):ee(a[f]);X.key!=null&&H.set(X.key,f)}let C,B=0;const Q=v-N+1;let Le=!1,Tn=0;const Be=new Array(Q);for(f=0;f=Q){fe(X,p,_,!0);continue}let te;if(X.key!=null)te=H.get(X.key);else for(C=N;C<=v;C++)if(Be[C-N]===0&&Qe(X,a[C])){te=C;break}te===void 0?fe(X,p,_,!0):(Be[te-N]=f+1,te>=Tn?Tn=te:Le=!0,R(X,a[te],d,null,p,_,y,m),B++)}const On=Le?di(Be):lt;for(C=On.length-1,f=Q-1;f>=0;f--){const X=N+f,te=a[X],Rn=X+1{const{el:_,type:y,transition:m,children:f,shapeFlag:T}=i;if(T&6){st(i.component.subTree,a,d,h);return}if(T&128){i.suspense.move(a,d,h);return}if(T&64){y.move(i,a,d,Se);return}if(y===ge){n(_,a,d);for(let v=0;vm.enter(_),p);else{const{leave:v,delayLeave:O,afterLeave:N}=m,H=()=>n(_,a,d),C=()=>{v(_,()=>{H(),N&&N()})};O?O(_,H,C):C()}else n(_,a,d)},fe=(i,a,d,h=!1)=>{const{type:p,props:_,ref:y,children:m,dynamicChildren:f,shapeFlag:T,patchFlag:w,dirs:v}=i;if(y!=null&&a&&Co(y,null,a,d,null),T&256){a.ctx.deactivate(i);return}const O=T&1&&v;let N;if((N=_&&_.onVnodeBeforeUnmount)&&re(N,a,i),T&6)ns(i.component,d,h);else{if(T&128){i.suspense.unmount(d,h);return}O&&Ie(i,null,a,\\"beforeUnmount\\"),f&&(p!==ge||w>0&&w&64)?ie(f,a,d):T&16&&ie(m,a,d),T&64&&i.type.remove(i,Se),h&&wn(i)}((N=_&&_.onVnodeUnmounted)||O)&&Y(()=>{N&&re(N,a,i),O&&Ie(i,null,a,\\"unmounted\\")},d)},wn=i=>{const{type:a,el:d,anchor:h,transition:p}=i;if(a===ge){ts(d,h);return}const _=()=>{o(d),p&&!p.persisted&&p.afterLeave&&p.afterLeave()};if(i.shapeFlag&1&&p&&!p.persisted){const{leave:y,delayLeave:m}=p,f=()=>y(d,_);m?m(i.el,_,f):f()}else _()},ts=(i,a)=>{let d;for(;i!==a;)d=x(i),o(i),i=d;o(a)},ns=(i,a,d)=>{const{bum:h,effects:p,update:_,subTree:y,um:m}=i;if(h&&Mt(h),p)for(let f=0;f{i.isUnmounted=!0},a),a&&!a.isResolved&&!a.isUnmounted&&i.asyncDep&&!i.asyncResolved&&(a.deps--,a.deps===0&&a.resolve()),__VUE_PROD_DEVTOOLS__},ie=(i,a,d,h=!1,p=0)=>{for(let _=p;_i.shapeFlag&6?rt(i.component.subTree):i.shapeFlag&128?i.suspense.next():x(i.anchor||i.el),vn=(i,a)=>{i==null?a._vnode&&fe(a._vnode,null,null,!0):R(a._vnode||null,i,a),ro(),a._vnode=i},Se={p:R,um:fe,m:st,r:wn,mt:Ce,mc:ae,pc:$e,pbc:Ae,n:rt,o:e};let Rt,xt;return t&&([Rt,xt]=t(Se)),{render:vn,hydrate:Rt,createApp:li(vn,Rt)}}function re(e,t,n,o=null){Oe(e,t,7,[n,o])}function di(e){const t=e.slice(),n=[0];let o,s,r,l,c;const u=e.length;for(o=0;o0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,l=n[r-1];r-- >0;)n[r]=l,l=t[l];return n}const So={};function un(e,t,n){return Lo(e,t,n)}function Lo(e,t,{immediate:n,deep:o,flush:s,onTrack:r,onTrigger:l}=L,c=j){let u;const g=Z(e);if(g?u=()=>e.value:Ye(e)?(u=()=>e,o=!0):k(e)?u=()=>e.map(R=>{if(Z(R))return R.value;if(Ye(R))return Ne(R);if(I(R))return oe(R,c,2)}):I(e)?t?u=()=>oe(e,c,2):u=()=>c&&c.isUnmounted?void 0:(b&&b(),oe(e,c,3,[E])):u=pe,t&&o){const R=u;u=()=>Ne(R())}let b;const E=R=>{b=U.options.onStop=()=>{oe(R,c,4)}};let x=k(e)?[]:So;const A=()=>{if(!U.active)return;if(t){const R=U();(o||g||Dt(R,x))&&(b&&b(),Oe(t,c,3,[R,x===So?void 0:x,E]),x=R)}else U()};A.allowRecurse=!!t;let $;s===\\"sync\\"?$=A:s===\\"pre\\"?(A.id=-1,$=()=>{!c||c.isMounted?Tr(A):A()}):$=()=>Y(A,c&&c.suspense);const U=Ht(u,{lazy:!0,onTrack:r,onTrigger:l,scheduler:$});return Bo(U),t?n?A():x=U():U(),()=>{jt(U),c&&Sn(c.effects,U)}}function hi(e,t,n){const o=this.proxy,s=z(e)?()=>o[e]:e.bind(o);return Lo(s,t.bind(o),n,this)}function Ne(e,t=new Set()){if(!K(e)||t.has(e))return e;if(t.add(e),Z(e))Ne(e.value,t);else if(k(e))for(let n=0;n{Ne(e.get(o),t)});else if(e instanceof Set)e.forEach(n=>{Ne(n,t)});else for(const n in e)Ne(e[n],t);return e}function pi(e,t){if(j){let n=j.provides;const o=j.parent&&j.parent.provides;o===n&&(n=j.provides=Object.create(o)),n[e]=t}}function dn(e,t){const n=j||G;if(n){const o=n.provides;if(e in o)return o[e];if(arguments.length>1)return t}}let hn=!1;function pn(e,t,n=[],o=[],s=!1){const{mixins:r,extends:l,data:c,computed:u,methods:g,watch:b,provide:E,inject:x,components:A,directives:$,beforeMount:U,mounted:R,beforeUpdate:W,updated:ye,activated:q,deactivated:Ee,beforeUnmount:Ge,unmounted:je,render:ae,renderTracked:et,renderTriggered:Ae,errorCaptured:Ve}=t,M=e.proxy,ce=e.ctx,Ce=e.appContext.mixins;if(s&&ae&&e.render===pe&&(e.render=ae),s||(hn=!0,ko(\\"beforeCreate\\",t,M,Ce),hn=!1,Mo(e,Ce,n,o)),l&&pn(e,l,n,o,!0),r&&Mo(e,r,n,o),x)if(k(x))for(let F=0;FUo(e,F,M)),c&&Uo(e,c,M)),u)for(const F in u){const S=u[F],tt=I(S)?S.bind(M,M):I(S.get)?S.get.bind(M,M):pe,$e=!I(S)&&I(S.set)?S.set.bind(M):pe,nt=Ri({get:tt,set:$e});Object.defineProperty(ce,F,{enumerable:!0,configurable:!0,get:()=>nt.value,set:ot=>nt.value=ot})}if(b&&o.push(b),!s&&o.length&&o.forEach(F=>{for(const S in F)Fo(F[S],ce,M,S)}),E){const F=I(E)?E.call(M):E;for(const S in F)pi(S,F[S])}s&&(A&&V(e.components||(e.components=V({},e.type.components)),A),$&&V(e.directives||(e.directives=V({},e.type.directives)),$)),s||ko(\\"created\\",t,M,Ce),U&&qr(U.bind(M)),R&&zr(R.bind(M)),W&&Yr(W.bind(M)),ye&&Xr(ye.bind(M)),q&&ei(q.bind(M)),Ee&&ti(Ee.bind(M)),Ve&&Gr(Ve.bind(M)),et&&Qr(et.bind(M)),Ae&&Zr(Ae.bind(M)),Ge&&Jr(Ge.bind(M)),je&&Oo(je.bind(M))}function ko(e,t,n,o){mn(e,o,n);const{extends:s,mixins:r}=t;s&&Do(e,s,n),r&&mn(e,r,n);const l=t[e];l&&l.call(n)}function Do(e,t,n){t.extends&&Do(e,t.extends,n);const o=t[e];o&&o.call(n)}function mn(e,t,n){for(let o=0;on[o];if(z(e)){const r=t[e];I(r)&&un(s,r)}else if(I(e))un(s,e.bind(n));else if(K(e))if(k(e))e.forEach(r=>Fo(r,t,n,o));else{const r=I(e.handler)?e.handler.bind(n):t[e.handler];I(r)&&un(s,r,e)}}function mi(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 Tt(l,t,e),r.forEach(c=>Tt(l,c,e)),t.__merged=l}function Tt(e,t,n){const o=n.appContext.config.optionMergeStrategies;for(const l in t)o&&P(o,l)?e[l]=o[l](e[l],t[l],n.proxy,l):P(e,l)||(e[l]=t[l]);const{mixins:s,extends:r}=t;r&&Tt(e,r,n),s&&s.forEach(l=>Tt(e,l,n))}const Ho=V(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=>e.parent&&e.parent.proxy,$root:e=>e.root&&e.root.proxy,$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?mi(e):e.type,$forceUpdate:e=>()=>no(e.update),$nextTick:()=>wr,$watch:e=>__VUE_OPTIONS_API__?hi.bind(e):pe}),gn={get({_:e},t){const{ctx:n,setupState:o,data:s,props:r,accessCache:l,type:c,appContext:u}=e;if(t===\\"__v_skip\\")return!0;let g;if(t[0]!==\\"$\\"){const A=l[t];if(A!==void 0)switch(A){case 0:return o[t];case 1:return s[t];case 3:return n[t];case 2:return r[t]}else{if(o!==L&&P(o,t))return l[t]=0,o[t];if(s!==L&&P(s,t))return l[t]=1,s[t];if((g=e.propsOptions[0])&&P(g,t))return l[t]=2,r[t];if(n!==L&&P(n,t))return l[t]=3,n[t];(!__VUE_OPTIONS_API__||!hn)&&(l[t]=4)}}const b=Ho[t];let E,x;if(b)return t===\\"$attrs\\"&&J(e,\\"get\\",t),b(e);if((E=c.__cssModules)&&(E=E[t]))return E;if(n!==L&&P(n,t))return l[t]=3,n[t];if(x=u.config.globalProperties,P(x,t))return x[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:r}=e;if(s!==L&&P(s,t))s[t]=n;else if(o!==L&&P(o,t))o[t]=n;else if(t in e.props)return!1;return t[0]===\\"$\\"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:s,propsOptions:r}},l){let c;return n[l]!==void 0||e!==L&&P(e,l)||t!==L&&P(t,l)||(c=r[0])&&P(c,l)||P(o,l)||P(Ho,l)||P(s.config.globalProperties,l)}},gi=V({},gn,{get(e,t){return t===Symbol.unscopables?void 0:gn.get(e,t,e)},has(e,t){const n=t[0]!==\\"_\\"&&!As(t);return n}}),bi=Ao();let _i=0;function yi(e,t,n){const o=e.type,s=(t?t.appContext:e.appContext)||bi,r={uid:_i++,vnode:e,type:o,parent:t,appContext:s,root:null,next:null,subTree:null,update:null,render:null,proxy:null,withProxy:null,effects:null,provides:t?t.provides:Object.create(s.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:yo(o,s),emitsOptions:bo(o,s),emit:null,emitted:null,ctx:L,data:L,props:L,attrs:L,slots:L,refs:L,setupState:L,setupContext:null,suspense:n,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=$r.bind(null,r),__VUE_PROD_DEVTOOLS__,r}let j=null;const jo=e=>{j=e};let bn=!1;function Ei(e,t=!1){bn=t;const{props:n,children:o,shapeFlag:s}=e.vnode,r=s&4;Kr(e,n,r,t),si(e,o);const l=r?wi(e,t):void 0;return bn=!1,l}function wi(e,t){const n=e.type;e.accessCache={},e.proxy=new Proxy(e.ctx,gn);const{setup:o}=n;if(o){const s=e.setupContext=o.length>1?vi(e):null;j=e,$t();const r=oe(o,e,0,[e.props,s]);if(ut(),j=null,Ln(r)){if(t)return r.then(l=>{Vo(e,l)});e.asyncDep=r}else Vo(e,r)}else $o(e)}function Vo(e,t,n){I(t)?e.render=t:K(t)&&(__VUE_PROD_DEVTOOLS__&&(e.devtoolsRawSetupState=t),e.setupState=dr(t)),$o(e)}function $o(e,t){const n=e.type;e.render||(e.render=n.render||pe,e.render._rc&&(e.withProxy=new Proxy(e.ctx,gi))),__VUE_OPTIONS_API__&&(j=e,pn(e,n),j=null)}function vi(e){return{attrs:e.attrs,slots:e.slots,emit:e.emit}}function Bo(e){j&&(j.effects||(j.effects=[])).push(e)}const Ti=/(?:^|[-_])(\\\\w)/g,Oi=e=>e.replace(Ti,t=>t.toUpperCase()).replace(/[-_]/g,\\"\\");function Ko(e,t,n=!1){let o=I(t)&&t.displayName||t.name;if(!o&&t.__file){const s=t.__file.match(/([^/\\\\\\\\]+)\\\\.vue$/);s&&(o=s[1])}if(!o&&e&&e.parent){const s=r=>{for(const l in r)if(r[l]===t)return l};o=s(e.components||e.parent.type.components)||s(e.appContext.components)}return o?Oi(o):n?\\"App\\":\\"Anonymous\\"}function Ri(e){const t=pr(e);return Bo(t.effect),t}function xi(e){return I(e)?{setup:e,name:e.name}:e}const Ii=\\"3.0.0-rc.10\\",Wo=\\"http://www.w3.org/2000/svg\\",Pe=typeof document!=\\"undefined\\"?document:null;let qo,zo;const Yo={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n)=>t?Pe.createElementNS(Wo,e):Pe.createElement(e,n?{is:n}:void 0),createText:e=>Pe.createTextNode(e),createComment:e=>Pe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Pe.querySelector(e),setScopeId(e,t){e.setAttribute(t,\\"\\")},cloneNode(e){return e.cloneNode(!0)},insertStaticContent(e,t,n,o){const s=o?zo||(zo=Pe.createElementNS(Wo,\\"svg\\")):qo||(qo=Pe.createElement(\\"div\\"));s.innerHTML=e;const r=s.firstChild;let l=r,c=l;for(;l;)c=l,Yo.insert(l,t,n),l=s.firstChild;return[r,c]}};function Ni(e,t,n){if(t==null&&(t=\\"\\"),n)e.setAttribute(\\"class\\",t);else{const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(\\" \\")),e.className=t}}function Pi(e,t,n){const o=e.style;if(!n)e.removeAttribute(\\"style\\");else if(z(n))t!==n&&(o.cssText=n);else{for(const s in n)_n(o,s,n[s]);if(t&&!z(t))for(const s in t)n[s]==null&&_n(o,s,\\"\\")}}const Xo=/\\\\s*!important$/;function _n(e,t,n){if(k(n))n.forEach(o=>_n(e,t,o));else if(t.startsWith(\\"--\\"))e.setProperty(t,n);else{const o=Ai(e,t);Xo.test(n)?e.setProperty(ft(o),n.replace(Xo,\\"\\"),\\"important\\"):e[o]=n}}const Jo=[\\"Webkit\\",\\"Moz\\",\\"ms\\"],yn={};function Ai(e,t){const n=yn[t];if(n)return n;let o=Ke(t);if(o!==\\"filter\\"&&o in e)return yn[t]=o;o=kt(o);for(let s=0;sdocument.createEvent(\\"Event\\").timeStamp&&(Ot=()=>performance.now());let En=0;const Li=Promise.resolve(),ki=()=>{En=0},Di=()=>En||(Li.then(ki),En=Ot());function Mi(e,t,n,o){e.addEventListener(t,n,o)}function Ui(e,t,n,o){e.removeEventListener(t,n,o)}function Fi(e,t,n,o,s=null){const r=e._vei||(e._vei={}),l=r[t];if(o&&l)l.value=o;else{const[c,u]=Hi(t);if(o){const g=r[t]=ji(o,s);Mi(e,c,g,u)}else l&&(Ui(e,c,l,u),r[t]=void 0)}}const Qo=/(?:Once|Passive|Capture)$/;function Hi(e){let t;if(Qo.test(e)){t={};let n;for(;n=e.match(Qo);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e.slice(2).toLowerCase(),t]}function ji(e,t){const n=o=>{const s=o.timeStamp||Ot();s>=n.attached-1&&Oe(Vi(o,n.value),t,5,[o])};return n.value=e,n.attached=Di(),n}function Vi(e,t){if(k(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>s=>!s._stopped&&o(s))}else return t}const Go=/^on[a-z]/,$i=(e,t)=>t===\\"value\\",Bi=(e,t,n,o,s=!1,r,l,c,u)=>{switch(t){case\\"class\\":Ni(e,o,s);break;case\\"style\\":Pi(e,n,o);break;default:at(t)?At(t)||Fi(e,t,n,o,l):Ki(e,t,o,s)?Si(e,t,o,r,l,c,u):(t===\\"true-value\\"?e._trueValue=o:t===\\"false-value\\"&&(e._falseValue=o),Ci(e,t,o,s));break}};function Ki(e,t,n,o){return o?t===\\"innerHTML\\"?!0:!!(t in e&&Go.test(t)&&I(n)):t===\\"spellcheck\\"||t===\\"draggable\\"||(t===\\"form\\"&&typeof n==\\"string\\"||(t===\\"list\\"&&e.tagName===\\"INPUT\\"||Go.test(t)&&z(n)))?!1:t in e}const Wi=V({patchProp:Bi,forcePatchProp:$i},Yo);let es;function qi(){return es||(es=fi(Wi))}const zi=(...e)=>{const t=qi().createApp(...e),{mount:n}=t;return t.mount=o=>{const s=Yi(o);if(!s)return;const r=t._component;!I(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.innerHTML=\\"\\";const l=n(s);return s.removeAttribute(\\"v-cloak\\"),s.setAttribute(\\"data-v-app\\",\\"\\"),l},t};function Yi(e){if(z(e)){const t=document.querySelector(e);return t}return e}export{zi as createApp,xi as defineComponent,pt as reactive};" +export { createApp };" `; From 82583dc1f07d2c0b4faf4d8dab3ae437c27b4204 Mon Sep 17 00:00:00 2001 From: akimyou Date: Mon, 21 Sep 2020 10:14:20 +0800 Subject: [PATCH 6/6] update create-snowpack-app snap --- plugins/plugin-vue/src/script-compilers.js | 4 +- .../create-snowpack-app.test.js.snap | 5410 ++++++++++++++++- yarn.lock | 111 +- 3 files changed, 5495 insertions(+), 30 deletions(-) diff --git a/plugins/plugin-vue/src/script-compilers.js b/plugins/plugin-vue/src/script-compilers.js index f2d8eb75d7..33d01b6e07 100644 --- a/plugins/plugin-vue/src/script-compilers.js +++ b/plugins/plugin-vue/src/script-compilers.js @@ -28,10 +28,10 @@ SOFTWARE. const esbuild = require('esbuild'); -const codeSnippetH = `import { Fragment } from '/web_modules/vue.js';`; +const codeSnippetH = `import { Fragment } from 'vue';`; // https://github.com/vitejs/vite/blob/master/src/client/vueJsxCompat.ts -const codeSnippetVueJsxCompat = `import {createVNode, isVNode} from '/web_modules/vue.js'; +const codeSnippetVueJsxCompat = `import {createVNode, isVNode} from 'vue'; const slice = Array.prototype.slice; export function jsx(tag, props = null, children = null) { if (arguments.length > 3 || isVNode(children)) { diff --git a/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap b/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap index d52ca07a00..3b8cf5deab 100644 --- a/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap +++ b/test/create-snowpack-app/__snapshots__/create-snowpack-app.test.js.snap @@ -9512,6 +9512,36 @@ function normalizeClass(value) { } return res.trim(); } +/** + * For converting {{ interpolation }} values to displayed strings. + * @private + */ +const toDisplayString = (val) => { + return val == null + ? '' + : isObject(val) + ? JSON.stringify(val, replacer, 2) + : String(val); +}; +const replacer = (_key, val) => { + if (val instanceof Map) { + return { + [\`Map(\${val.size})\`]: [...val.entries()].reduce((entries, [key, val]) => { + entries[\`\${key} =>\`] = val; + return entries; + }, {}) + }; + } + else if (val instanceof Set) { + return { + [\`Set(\${val.size})\`]: [...val.values()] + }; + } + else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; const EMPTY_OBJ = {}; const EMPTY_ARR = []; const NOOP = () => { }; @@ -9544,6 +9574,7 @@ const toTypeString = (value) => objectToString.call(value); const toRawType = (value) => { return toTypeString(value).slice(8, -1); }; +const isPlainObject = (val) => toTypeString(val) === '[object Object]'; const isIntegerKey = (key) => isString(key) && key[0] !== '-' && '' + parseInt(key, 10) === key; const isReservedProp = /*#__PURE__*/ makeMap('key,ref,' + 'onVnodeBeforeMount,onVnodeMounted,' + @@ -10881,6 +10912,26 @@ function closeBlock() { blockStack.pop(); currentBlock = blockStack[blockStack.length - 1] || null; } +/** + * Create a block root vnode. Takes the same exact arguments as \`createVNode\`. + * A block root keeps track of dynamic nodes within the block in the + * \`dynamicChildren\` array. + * + * @private + */ +function createBlock(type, props, children, patchFlag, dynamicProps) { + const vnode = createVNode(type, props, children, patchFlag, dynamicProps, true /* isBlock: prevent a block from tracking itself */); + // save current block children on the block vnode + vnode.dynamicChildren = currentBlock || EMPTY_ARR; + // close block + closeBlock(); + // a block is always going to be patched, so track it as a child of its + // parent block + if ( currentBlock) { + currentBlock.push(vnode); + } + return vnode; +} function isVNode(value) { return value ? value.__v_isVNode === true : false; } @@ -14186,5 +14237,5362 @@ function normalizeContainer(container) { } return container; } -export { createApp };" +export { createApp, createBlock, createTextVNode, createVNode, openBlock, toDisplayString };" +`; + +exports[`create-snowpack-app app-template-vue-typescript: __snowpack__/env.js 1`] = `"export default {\\"MODE\\":\\"production\\",\\"NODE_ENV\\":\\"production\\"};"`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/App.css 1`] = ` +" +.App { + text-align: center; +} +.App-header { + background-color: #f9f6f6; + color: #32485f; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); +} +.App-link { + color: #00c185; +} +.App-logo { + height: 40vmin; + pointer-events: none; + margin-bottom: 1rem; + animation: App-logo-spin infinite 1.6s ease-in-out alternate; +} +.App-tsx { + display: flex; +} +.App-tsx > div { + margin-left: 30px; + font-size: 16px; +} +@keyframes App-logo-spin { +from { + transform: scale(1); +} +to { + transform: scale(1.06); +} +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/App.css.proxy.js 1`] = ` +" +const code = \\".App { text-align: center;}.App-header { background-color: #f9f6f6; color: #32485f; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: calc(10px + 2vmin);}.App-link { color: #00c185;}.App-logo { height: 40vmin; pointer-events: none; margin-bottom: 1rem; animation: App-logo-spin infinite 1.6s ease-in-out alternate;}.App-tsx { display: flex;}.App-tsx > div { margin-left: 30px; font-size: 16px;}@keyframes App-logo-spin {from { transform: scale(1);}to { transform: scale(1.06);}}\\"; +const styleEl = document.createElement(\\"style\\"); +const codeEl = document.createTextNode(code); +styleEl.type = 'text/css'; +styleEl.appendChild(codeEl); +document.head.appendChild(styleEl);" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/App.js 1`] = ` +"import './App.css.proxy.js'; +import {defineComponent, reactive} from \\"../web_modules/vue.js\\"; +import FooTsxVue from \\"./components/FooTsx.js\\"; +import FooTsx2 from \\"./components/Foo.js\\"; +import BarJsxVue from \\"./components/BarJsx.js\\"; +import BarJsx2 from \\"./components/Bar.js\\"; +const defaultExport = defineComponent({ + components: { + FooTsxVue, + FooTsx: FooTsx2, + BarJsxVue, + BarJsx: BarJsx2 + }, + setup() { + const state = reactive({ + message: \\"Learn Vue\\" + }); + return { + state + }; + } +}); +import { createVNode as _createVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, toDisplayString as _toDisplayString, openBlock as _openBlock, createBlock as _createBlock } from \\"../web_modules/vue.js\\" +const _hoisted_1 = { class: \\"App\\" } +const _hoisted_2 = { class: \\"App-header\\" } +const _hoisted_3 = /*#__PURE__*/_createVNode(\\"img\\", { + src: \\"/logo.svg\\", + class: \\"App-logo\\", + alt: \\"logo\\" +}, null, -1) +const _hoisted_4 = /*#__PURE__*/_createVNode(\\"p\\", null, [ + /*#__PURE__*/_createTextVNode(\\" Edit \\"), + /*#__PURE__*/_createVNode(\\"code\\", null, \\"src/App.vue\\"), + /*#__PURE__*/_createTextVNode(\\" and save to reload. \\") +], -1) +const _hoisted_5 = { class: \\"App-tsx\\" } +const _hoisted_6 = { + class: \\"App-link\\", + href: \\"https://vuejs.org\\", + target: \\"_blank\\", + rel: \\"noopener noreferrer\\" +} +export function render(_ctx, _cache) { + const _component_FooTsxVue = _resolveComponent(\\"FooTsxVue\\") + const _component_FooTsx = _resolveComponent(\\"FooTsx\\") + const _component_BarJsxVue = _resolveComponent(\\"BarJsxVue\\") + const _component_BarJsx = _resolveComponent(\\"BarJsx\\") + return (_openBlock(), _createBlock(\\"div\\", _hoisted_1, [ + _createVNode(\\"header\\", _hoisted_2, [ + _hoisted_3, + _hoisted_4, + _createVNode(\\"p\\", _hoisted_5, [ + _createVNode(_component_FooTsxVue), + _createVNode(_component_FooTsx), + _createVNode(_component_BarJsxVue), + _createVNode(_component_BarJsx) + ]), + _createVNode(\\"a\\", _hoisted_6, _toDisplayString(_ctx.state.message), 1) + ]) + ])) +} +defaultExport.render = render +export default defaultExport" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Bar.js 1`] = ` +"import { Fragment } from '../../web_modules/vue.js'; +import {createVNode, isVNode} from '../../web_modules/vue.js'; +const slice = Array.prototype.slice; +export function jsx(tag, props = null, children = null) { + if (arguments.length > 3 || isVNode(children)) { + children = slice.call(arguments, 2); + } + return createVNode(tag, props, children); +} +import {defineComponent, reactive} from \\"../../web_modules/vue.js\\"; +import styles from \\"./Bar.module.css.proxy.js\\"; +export default defineComponent({ + name: \\"BarJsx\\", + setup() { + const state = reactive({ + name: \\"BarJsx\\" + }); + return () => /* @__PURE__ */ jsx(Fragment, null, /* @__PURE__ */ jsx(\\"div\\", { + className: styles[\\"bar-jsx\\"] + }, state.name)); + } +});" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Bar.module.css 1`] = ` +".bar-jsx { + color: red; +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Bar.module.css.proxy.js 1`] = ` +" +export let code = \\"._dist_components_Bar_module__bar-jsx { color: red;}\\"; +let json = {\\"bar-jsx\\":\\"_dist_components_Bar_module__bar-jsx\\"}; +export default json; +const styleEl = document.createElement(\\"style\\"); +const codeEl = document.createTextNode(code); +styleEl.type = 'text/css'; +styleEl.appendChild(codeEl); +document.head.appendChild(styleEl);" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/BarJsx.css 1`] = ` +" +.bar-jsx-vue { + color: red; +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/BarJsx.css.proxy.js 1`] = ` +" +const code = \\"/* unsupport scoped css in vue with tsx, jsx*/.bar-jsx-vue { color: red;}\\"; +const styleEl = document.createElement(\\"style\\"); +const codeEl = document.createTextNode(code); +styleEl.type = 'text/css'; +styleEl.appendChild(codeEl); +document.head.appendChild(styleEl);" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/BarJsx.js 1`] = ` +"import './BarJsx.css.proxy.js'; +import { Fragment } from '../../web_modules/vue.js'; +import {createVNode, isVNode} from '../../web_modules/vue.js'; +const slice = Array.prototype.slice; +export function jsx(tag, props = null, children = null) { + if (arguments.length > 3 || isVNode(children)) { + children = slice.call(arguments, 2); + } + return createVNode(tag, props, children); +} +import {defineComponent, reactive} from \\"../../web_modules/vue.js\\"; +export default defineComponent({ + name: \\"BarJsxVue\\", + setup() { + const state = reactive({ + name: \\"BarJsxVue\\" + }); + return () => /* @__PURE__ */ jsx(Fragment, null, /* @__PURE__ */ jsx(\\"div\\", { + className: \\"bar-jsx-vue\\" + }, state.name)); + } +});" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Foo.js 1`] = ` +"import { Fragment } from '../../web_modules/vue.js'; +import {createVNode, isVNode} from '../../web_modules/vue.js'; +const slice = Array.prototype.slice; +export function jsx(tag, props = null, children = null) { + if (arguments.length > 3 || isVNode(children)) { + children = slice.call(arguments, 2); + } + return createVNode(tag, props, children); +} +import {defineComponent, reactive} from \\"../../web_modules/vue.js\\"; +import styles from \\"./Foo.module.css.proxy.js\\"; +export default defineComponent({ + name: \\"FooTsx\\", + setup() { + const state = reactive({ + name: \\"FooTsx\\" + }); + return () => /* @__PURE__ */ jsx(Fragment, null, /* @__PURE__ */ jsx(\\"div\\", { + className: styles[\\"foo-tsx\\"] + }, state.name)); + } +});" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Foo.module.css 1`] = ` +".foo-tsx { + color: green; +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/Foo.module.css.proxy.js 1`] = ` +" +export let code = \\"._dist_components_Foo_module__foo-tsx { color: green;}\\"; +let json = {\\"foo-tsx\\":\\"_dist_components_Foo_module__foo-tsx\\"}; +export default json; +const styleEl = document.createElement(\\"style\\"); +const codeEl = document.createTextNode(code); +styleEl.type = 'text/css'; +styleEl.appendChild(codeEl); +document.head.appendChild(styleEl);" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/FooTsx.css 1`] = ` +" +.foo-tsx-vue { + color: green; +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/FooTsx.css.proxy.js 1`] = ` +" +const code = \\"/* unsupport scoped css in vue with tsx, jsx*/.foo-tsx-vue { color: green;}\\"; +const styleEl = document.createElement(\\"style\\"); +const codeEl = document.createTextNode(code); +styleEl.type = 'text/css'; +styleEl.appendChild(codeEl); +document.head.appendChild(styleEl);" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/components/FooTsx.js 1`] = ` +"import './FooTsx.css.proxy.js'; +import { Fragment } from '../../web_modules/vue.js'; +import {createVNode, isVNode} from '../../web_modules/vue.js'; +const slice = Array.prototype.slice; +export function jsx(tag, props = null, children = null) { + if (arguments.length > 3 || isVNode(children)) { + children = slice.call(arguments, 2); + } + return createVNode(tag, props, children); +} +import {defineComponent, reactive} from \\"../../web_modules/vue.js\\"; +export default defineComponent({ + name: \\"FooTsxVue\\", + setup() { + const state = reactive({ + name: \\"FooTsxVue\\" + }); + return () => /* @__PURE__ */ jsx(Fragment, null, /* @__PURE__ */ jsx(\\"div\\", { + className: \\"foo-tsx-vue\\" + }, state.name)); + } +});" +`; + +exports[`create-snowpack-app app-template-vue-typescript: _dist_/index.js 1`] = ` +"import __SNOWPACK_ENV__ from '../__snowpack__/env.js'; +import.meta.env = __SNOWPACK_ENV__; +import { createApp } from \\"../web_modules/vue.js\\"; +import App from \\"./App.js\\"; +const app = createApp(App); +app.mount(\\"#app\\"); +// Hot Module Replacement (HMR) - Remove this snippet to remove HMR. +// Learn more: https://www.snowpack.dev/#hot-module-replacement +if (import.meta.hot) { + import.meta.hot.accept(); + import.meta.hot.dispose(() => { + app.unmount(); + }); +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: allFiles 1`] = ` +Array [ + "__snowpack__/env.js", + "_dist_/App.css", + "_dist_/App.css.proxy.js", + "_dist_/App.js", + "_dist_/components/Bar.js", + "_dist_/components/Bar.module.css", + "_dist_/components/Bar.module.css.proxy.js", + "_dist_/components/BarJsx.css", + "_dist_/components/BarJsx.css.proxy.js", + "_dist_/components/BarJsx.js", + "_dist_/components/Foo.js", + "_dist_/components/Foo.module.css", + "_dist_/components/Foo.module.css.proxy.js", + "_dist_/components/FooTsx.css", + "_dist_/components/FooTsx.css.proxy.js", + "_dist_/components/FooTsx.js", + "_dist_/index.js", + "favicon-32x32.png", + "favicon.ico", + "index.html", + "logo.svg", + "robots.txt", + "web_modules/import-map.json", + "web_modules/vue.js", +] +`; + +exports[`create-snowpack-app app-template-vue-typescript: index.html 1`] = ` +" + + + + + + + Snowpack App + + +
+ + + + +" +`; + +exports[`create-snowpack-app app-template-vue-typescript: web_modules/import-map.json 1`] = ` +"{ + \\"imports\\": { + \\"vue\\": \\"./vue.js\\" + } +}" +`; + +exports[`create-snowpack-app app-template-vue-typescript: web_modules/vue.js 1`] = ` +"/** + * Make a map and return a function for checking if a key + * is in that map. + * IMPORTANT: all calls of this function must be prefixed with + * \\\\/\\\\*#\\\\_\\\\_PURE\\\\_\\\\_\\\\*\\\\/ + * So that rollup can tree-shake them if necessary. + */ +function makeMap(str, expectsLowerCase) { + const map = Object.create(null); + const list = str.split(','); + for (let i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val]; +} +const GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' + + 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' + + 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl'; +const isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED); +/** + * On the client we only need to offer special cases for boolean attributes that + * have different names from their corresponding dom properties: + * - itemscope -> N/A + * - allowfullscreen -> allowFullscreen + * - formnovalidate -> formNoValidate + * - ismap -> isMap + * - nomodule -> noModule + * - novalidate -> noValidate + * - readonly -> readOnly + */ +const specialBooleanAttrs = \`itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly\`; +const isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs); +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = normalizeStyle(isString(item) ? parseStringStyle(item) : item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } + else if (isObject(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\\\\))/g; +const propertyDelimiterRE = /:(.+)/; +function parseStringStyle(cssText) { + const ret = {}; + cssText.split(listDelimiterRE).forEach(item => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function normalizeClass(value) { + let res = ''; + if (isString(value)) { + res = value; + } + else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + res += normalizeClass(value[i]) + ' '; + } + } + else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + ' '; + } + } + } + return res.trim(); +} +/** + * For converting {{ interpolation }} values to displayed strings. + * @private + */ +const toDisplayString = (val) => { + return val == null + ? '' + : isObject(val) + ? JSON.stringify(val, replacer, 2) + : String(val); +}; +const replacer = (_key, val) => { + if (isMap(val)) { + return { + [\`Map(\${val.size})\`]: [...val.entries()].reduce((entries, [key, val]) => { + entries[\`\${key} =>\`] = val; + return entries; + }, {}) + }; + } + else if (isSet(val)) { + return { + [\`Set(\${val.size})\`]: [...val.values()] + }; + } + else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const EMPTY_OBJ = {}; +const EMPTY_ARR = []; +const NOOP = () => { }; +/** + * Always return false. + */ +const NO = () => false; +const onRE = /^on[^a-z]/; +const isOn = (key) => onRE.test(key); +const isModelListener = (key) => key.startsWith('onUpdate:'); +const extend = Object.assign; +const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty.call(val, key); +const isArray = Array.isArray; +const isMap = (val) => toTypeString(val) === '[object Map]'; +const isSet = (val) => toTypeString(val) === '[object Set]'; +const isFunction = (val) => typeof val === 'function'; +const isString = (val) => typeof val === 'string'; +const isSymbol = (val) => typeof val === 'symbol'; +const isObject = (val) => val !== null && typeof val === 'object'; +const isPromise = (val) => { + return isObject(val) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject = (val) => toTypeString(val) === '[object Object]'; +const isIntegerKey = (key) => isString(key) && + key !== 'NaN' && + key[0] !== '-' && + '' + parseInt(key, 10) === key; +const isReservedProp = /*#__PURE__*/ makeMap('key,ref,' + + 'onVnodeBeforeMount,onVnodeMounted,' + + 'onVnodeBeforeUpdate,onVnodeUpdated,' + + 'onVnodeBeforeUnmount,onVnodeUnmounted'); +const cacheStringFunction = (fn) => { + const cache = Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); +}; +const camelizeRE = /-(\\\\w)/g; +/** + * @private + */ +const camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : '')); +}); +const hyphenateRE = /\\\\B([A-Z])/g; +/** + * @private + */ +const hyphenate = cacheStringFunction((str) => { + return str.replace(hyphenateRE, '-$1').toLowerCase(); +}); +/** + * @private + */ +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +// compare whether a value has changed, accounting for NaN. +const hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue); +const invokeArrayFns = (fns, arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg); + } +}; +const def = (obj, key, value) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }); +}; +let _globalThis; +const getGlobalThis = () => { + return (_globalThis || + (_globalThis = + typeof globalThis !== 'undefined' + ? globalThis + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' + ? global + : {})); +}; +const targetMap = new WeakMap(); +const effectStack = []; +let activeEffect; +const ITERATE_KEY = Symbol( ''); +const MAP_KEY_ITERATE_KEY = Symbol( ''); +function isEffect(fn) { + return fn && fn._isEffect === true; +} +function effect(fn, options = EMPTY_OBJ) { + if (isEffect(fn)) { + fn = fn.raw; + } + const effect = createReactiveEffect(fn, options); + if (!options.lazy) { + effect(); + } + return effect; +} +function stop(effect) { + if (effect.active) { + cleanup(effect); + if (effect.options.onStop) { + effect.options.onStop(); + } + effect.active = false; + } +} +let uid = 0; +function createReactiveEffect(fn, options) { + const effect = function reactiveEffect() { + if (!effect.active) { + return options.scheduler ? undefined : fn(); + } + if (!effectStack.includes(effect)) { + cleanup(effect); + try { + enableTracking(); + effectStack.push(effect); + activeEffect = effect; + return fn(); + } + finally { + effectStack.pop(); + resetTracking(); + activeEffect = effectStack[effectStack.length - 1]; + } + } + }; + effect.id = uid++; + effect._isEffect = true; + effect.active = true; + effect.raw = fn; + effect.deps = []; + effect.options = options; + return effect; +} +function cleanup(effect) { + const { deps } = effect; + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].delete(effect); + } + deps.length = 0; + } +} +let shouldTrack = true; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function enableTracking() { + trackStack.push(shouldTrack); + shouldTrack = true; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === undefined ? true : last; +} +function track(target, type, key) { + if (!shouldTrack || activeEffect === undefined) { + return; + } + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, (depsMap = new Map())); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, (dep = new Set())); + } + if (!dep.has(activeEffect)) { + dep.add(activeEffect); + activeEffect.deps.push(dep); + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + // never been tracked + return; + } + const effects = new Set(); + const add = (effectsToAdd) => { + if (effectsToAdd) { + effectsToAdd.forEach(effect => { + if (effect !== activeEffect || effect.options.allowRecurse) { + effects.add(effect); + } + }); + } + }; + if (type === \\"clear\\" /* CLEAR */) { + // collection being cleared + // trigger all effects for target + depsMap.forEach(add); + } + else if (key === 'length' && isArray(target)) { + depsMap.forEach((dep, key) => { + if (key === 'length' || key >= newValue) { + add(dep); + } + }); + } + else { + // schedule runs for SET | ADD | DELETE + if (key !== void 0) { + add(depsMap.get(key)); + } + // also run for iteration key on ADD | DELETE | Map.SET + switch (type) { + case \\"add\\" /* ADD */: + if (!isArray(target)) { + add(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + add(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + else if (isIntegerKey(key)) { + // new index added to array -> length changes + add(depsMap.get('length')); + } + break; + case \\"delete\\" /* DELETE */: + if (!isArray(target)) { + add(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + add(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case \\"set\\" /* SET */: + if (isMap(target)) { + add(depsMap.get(ITERATE_KEY)); + } + break; + } + } + const run = (effect) => { + if (effect.options.scheduler) { + effect.options.scheduler(effect); + } + else { + effect(); + } + }; + effects.forEach(run); +} +const builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol) + .map(key => Symbol[key]) + .filter(isSymbol)); +const get = /*#__PURE__*/ createGetter(); +const shallowGet = /*#__PURE__*/ createGetter(false, true); +const readonlyGet = /*#__PURE__*/ createGetter(true); +const shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true); +const arrayInstrumentations = {}; +['includes', 'indexOf', 'lastIndexOf'].forEach(key => { + const method = Array.prototype[key]; + arrayInstrumentations[key] = function (...args) { + const arr = toRaw(this); + for (let i = 0, l = this.length; i < l; i++) { + track(arr, \\"get\\" /* GET */, i + ''); + } + // we run the method using the original args first (which may be reactive) + const res = method.apply(arr, args); + if (res === -1 || res === false) { + // if that didn't work, run it again using raw values. + return method.apply(arr, args.map(toRaw)); + } + else { + return res; + } + }; +}); +['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => { + const method = Array.prototype[key]; + arrayInstrumentations[key] = function (...args) { + pauseTracking(); + const res = method.apply(this, args); + enableTracking(); + return res; + }; +}); +function createGetter(isReadonly = false, shallow = false) { + return function get(target, key, receiver) { + if (key === \\"__v_isReactive\\" /* IS_REACTIVE */) { + return !isReadonly; + } + else if (key === \\"__v_isReadonly\\" /* IS_READONLY */) { + return isReadonly; + } + else if (key === \\"__v_raw\\" /* RAW */ && + receiver === (isReadonly ? readonlyMap : reactiveMap).get(target)) { + return target; + } + const targetIsArray = isArray(target); + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + const res = Reflect.get(target, key, receiver); + const keyIsSymbol = isSymbol(key); + if (keyIsSymbol + ? builtInSymbols.has(key) + : key === \`__proto__\` || key === \`__v_isRef\`) { + return res; + } + if (!isReadonly) { + track(target, \\"get\\" /* GET */, key); + } + if (shallow) { + return res; + } + if (isRef(res)) { + // ref unwrapping - does not apply for Array + integer key. + const shouldUnwrap = !targetIsArray || !isIntegerKey(key); + return shouldUnwrap ? res.value : res; + } + if (isObject(res)) { + // Convert returned value into a proxy as well. we do the isObject check + // here to avoid invalid value warning. Also need to lazy access readonly + // and reactive here to avoid circular dependency. + return isReadonly ? readonly(res) : reactive(res); + } + return res; + }; +} +const set = /*#__PURE__*/ createSetter(); +const shallowSet = /*#__PURE__*/ createSetter(true); +function createSetter(shallow = false) { + return function set(target, key, value, receiver) { + const oldValue = target[key]; + if (!shallow) { + value = toRaw(value); + if (!isArray(target) && isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } + } + const hadKey = isArray(target) && isIntegerKey(key) + ? Number(key) < target.length + : hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + // don't trigger if target is something up in the prototype chain of original + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, \\"add\\" /* ADD */, key, value); + } + else if (hasChanged(value, oldValue)) { + trigger(target, \\"set\\" /* SET */, key, value); + } + } + return result; + }; +} +function deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, \\"delete\\" /* DELETE */, key, undefined); + } + return result; +} +function has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, \\"has\\" /* HAS */, key); + } + return result; +} +function ownKeys(target) { + track(target, \\"iterate\\" /* ITERATE */, ITERATE_KEY); + return Reflect.ownKeys(target); +} +const mutableHandlers = { + get, + set, + deleteProperty, + has, + ownKeys +}; +const readonlyHandlers = { + get: readonlyGet, + set(target, key) { + return true; + }, + deleteProperty(target, key) { + return true; + } +}; +const shallowReactiveHandlers = extend({}, mutableHandlers, { + get: shallowGet, + set: shallowSet +}); +// Props handlers are special in the sense that it should not unwrap top-level +// refs (in order to allow refs to be explicitly passed down), but should +// retain the reactivity of the normal readonly object. +const shallowReadonlyHandlers = extend({}, readonlyHandlers, { + get: shallowReadonlyGet +}); +const toReactive = (value) => isObject(value) ? reactive(value) : value; +const toReadonly = (value) => isObject(value) ? readonly(value) : value; +const toShallow = (value) => value; +const getProto = (v) => Reflect.getPrototypeOf(v); +function get$1(target, key, isReadonly = false, isShallow = false) { + // #1772: readonly(reactive(Map)) should return readonly + reactive version + // of the value + target = target[\\"__v_raw\\" /* RAW */]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (key !== rawKey) { + !isReadonly && track(rawTarget, \\"get\\" /* GET */, key); + } + !isReadonly && track(rawTarget, \\"get\\" /* GET */, rawKey); + const { has } = getProto(rawTarget); + const wrap = isReadonly ? toReadonly : isShallow ? toShallow : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } + else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } +} +function has$1(key, isReadonly = false) { + const target = this[\\"__v_raw\\" /* RAW */]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (key !== rawKey) { + !isReadonly && track(rawTarget, \\"has\\" /* HAS */, key); + } + !isReadonly && track(rawTarget, \\"has\\" /* HAS */, rawKey); + return key === rawKey + ? target.has(key) + : target.has(key) || target.has(rawKey); +} +function size(target, isReadonly = false) { + target = target[\\"__v_raw\\" /* RAW */]; + !isReadonly && track(toRaw(target), \\"iterate\\" /* ITERATE */, ITERATE_KEY); + return Reflect.get(target, 'size', target); +} +function add(value) { + value = toRaw(value); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + const result = target.add(value); + if (!hadKey) { + trigger(target, \\"add\\" /* ADD */, value, value); + } + return result; +} +function set$1(key, value) { + value = toRaw(value); + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } + const oldValue = get.call(target, key); + const result = target.set(key, value); + if (!hadKey) { + trigger(target, \\"add\\" /* ADD */, key, value); + } + else if (hasChanged(value, oldValue)) { + trigger(target, \\"set\\" /* SET */, key, value); + } + return result; +} +function deleteEntry(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } + const oldValue = get ? get.call(target, key) : undefined; + // forward the operation before queueing reactions + const result = target.delete(key); + if (hadKey) { + trigger(target, \\"delete\\" /* DELETE */, key, undefined); + } + return result; +} +function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + // forward the operation before queueing reactions + const result = target.clear(); + if (hadItems) { + trigger(target, \\"clear\\" /* CLEAR */, undefined, undefined); + } + return result; +} +function createForEach(isReadonly, isShallow) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed[\\"__v_raw\\" /* RAW */]; + const rawTarget = toRaw(target); + const wrap = isReadonly ? toReadonly : isShallow ? toShallow : toReactive; + !isReadonly && track(rawTarget, \\"iterate\\" /* ITERATE */, ITERATE_KEY); + return target.forEach((value, key) => { + // important: make sure the callback is + // 1. invoked with the reactive map as \`this\` and 3rd arg + // 2. the value received should be a corresponding reactive/readonly. + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; +} +function createIterableMethod(method, isReadonly, isShallow) { + return function (...args) { + const target = this[\\"__v_raw\\" /* RAW */]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap); + const isKeyOnly = method === 'keys' && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isReadonly ? toReadonly : isShallow ? toShallow : toReactive; + !isReadonly && + track(rawTarget, \\"iterate\\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY); + // return a wrapped iterator which returns observed versions of the + // values emitted from the real iterator + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done + ? { value, done } + : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; +} +function createReadonlyMethod(type) { + return function (...args) { + return type === \\"delete\\" /* DELETE */ ? false : this; + }; +} +const mutableInstrumentations = { + get(key) { + return get$1(this, key); + }, + get size() { + return size(this); + }, + has: has$1, + add, + set: set$1, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) +}; +const shallowInstrumentations = { + get(key) { + return get$1(this, key, false, true); + }, + get size() { + return size(this); + }, + has: has$1, + add, + set: set$1, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) +}; +const readonlyInstrumentations = { + get(key) { + return get$1(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has$1.call(this, key, true); + }, + add: createReadonlyMethod(\\"add\\" /* ADD */), + set: createReadonlyMethod(\\"set\\" /* SET */), + delete: createReadonlyMethod(\\"delete\\" /* DELETE */), + clear: createReadonlyMethod(\\"clear\\" /* CLEAR */), + forEach: createForEach(true, false) +}; +const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator]; +iteratorMethods.forEach(method => { + mutableInstrumentations[method] = createIterableMethod(method, false, false); + readonlyInstrumentations[method] = createIterableMethod(method, true, false); + shallowInstrumentations[method] = createIterableMethod(method, false, true); +}); +function createInstrumentationGetter(isReadonly, shallow) { + const instrumentations = shallow + ? shallowInstrumentations + : isReadonly + ? readonlyInstrumentations + : mutableInstrumentations; + return (target, key, receiver) => { + if (key === \\"__v_isReactive\\" /* IS_REACTIVE */) { + return !isReadonly; + } + else if (key === \\"__v_isReadonly\\" /* IS_READONLY */) { + return isReadonly; + } + else if (key === \\"__v_raw\\" /* RAW */) { + return target; + } + return Reflect.get(hasOwn(instrumentations, key) && key in target + ? instrumentations + : target, key, receiver); + }; +} +const mutableCollectionHandlers = { + get: createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: createInstrumentationGetter(true, false) +}; +const reactiveMap = new WeakMap(); +const readonlyMap = new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case 'Object': + case 'Array': + return 1 /* COMMON */; + case 'Map': + case 'Set': + case 'WeakMap': + case 'WeakSet': + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } +} +function getTargetType(value) { + return value[\\"__v_skip\\" /* SKIP */] || !Object.isExtensible(value) + ? 0 /* INVALID */ + : targetTypeMap(toRawType(value)); +} +function reactive(target) { + // if trying to observe a readonly proxy, return the readonly version. + if (target && target[\\"__v_isReadonly\\" /* IS_READONLY */]) { + return target; + } + return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers); +} +// Return a reactive-copy of the original object, where only the root level +// properties are reactive, and does NOT unwrap refs nor recursively convert +// returned properties. +function shallowReactive(target) { + return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers); +} +function readonly(target) { + return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers); +} +function createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers) { + if (!isObject(target)) { + return target; + } + // target is already a Proxy, return it. + // exception: calling readonly() on a reactive object + if (target[\\"__v_raw\\" /* RAW */] && + !(isReadonly && target[\\"__v_isReactive\\" /* IS_REACTIVE */])) { + return target; + } + // target already has corresponding Proxy + const proxyMap = isReadonly ? readonlyMap : reactiveMap; + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + // only a whitelist of value types can be observed. + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers); + proxyMap.set(target, proxy); + return proxy; +} +function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value[\\"__v_raw\\" /* RAW */]); + } + return !!(value && value[\\"__v_isReactive\\" /* IS_REACTIVE */]); +} +function isReadonly(value) { + return !!(value && value[\\"__v_isReadonly\\" /* IS_READONLY */]); +} +function isProxy(value) { + return isReactive(value) || isReadonly(value); +} +function toRaw(observed) { + return ((observed && toRaw(observed[\\"__v_raw\\" /* RAW */])) || observed); +} +function isRef(r) { + return Boolean(r && r.__v_isRef === true); +} +function unref(ref) { + return isRef(ref) ? ref.value : ref; +} +const shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } + else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) + ? objectWithRefs + : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +class ComputedRefImpl { + constructor(getter, _setter, isReadonly) { + this._setter = _setter; + this._dirty = true; + this.__v_isRef = true; + this.effect = effect(getter, { + lazy: true, + scheduler: () => { + if (!this._dirty) { + this._dirty = true; + trigger(toRaw(this), \\"set\\" /* SET */, 'value'); + } + } + }); + this[\\"__v_isReadonly\\" /* IS_READONLY */] = isReadonly; + } + get value() { + if (this._dirty) { + this._value = this.effect(); + this._dirty = false; + } + track(toRaw(this), \\"get\\" /* GET */, 'value'); + return this._value; + } + set value(newValue) { + this._setter(newValue); + } +} +function computed(getterOrOptions) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + setter = NOOP; + } + else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + return new ComputedRefImpl(getter, setter, isFunction(getterOrOptions) || !getterOrOptions.set); +} +const stack = []; +function warn(msg, ...args) { + // avoid props formatting or warn handler tracking deps that might be mutated + // during patch, leading to infinite recursion. + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [ + msg + args.join(''), + instance && instance.proxy, + trace + .map(({ vnode }) => \`at <\${formatComponentName(instance, vnode.type)}>\`) + .join(''), + trace + ]); + } + else { + const warnArgs = [\`[Vue warn]: \${msg}\`, ...args]; + if (trace.length && + // avoid spamming console during tests + !false) { + warnArgs.push(\`\`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + // we can't just use the stack because it will be incomplete during updates + // that did not start from the root. Re-construct the parent chain using + // instance parent pointers. + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } + else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...(i === 0 ? [] : [\`\`]), ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? \`... (\${recurseCount} recursive calls)\` : \`\`; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = \` at <\${formatComponentName(vnode.component, vnode.type, isRoot)}\`; + const close = \`>\` + postfix; + return vnode.props + ? [open, ...formatProps(vnode.props), close] + : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach(key => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(\` ...\`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [\`\${key}=\${value}\`]; + } + else if (typeof value === 'number' || + typeof value === 'boolean' || + value == null) { + return raw ? value : [\`\${key}=\${value}\`]; + } + else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [\`\${key}=Ref<\`, value, \`>\`]; + } + else if (isFunction(value)) { + return [\`\${key}=fn\${value.name ? \`<\${value.name}>\` : \`\`}\`]; + } + else { + value = toRaw(value); + return raw ? value : [\`\${key}=\`, value]; + } +} +function callWithErrorHandling(fn, instance, type, args) { + let res; + try { + res = args ? fn(...args) : fn(); + } + catch (err) { + handleError(err, instance, type); + } + return res; +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch(err => { + handleError(err, instance, type); + }); + } + return res; + } + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + // the exposed instance is the render proxy to keep it consistent with 2.x + const exposedInstance = instance.proxy; + // in production the hook receives only the error code + const errorInfo = type; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo)) { + return; + } + } + } + cur = cur.parent; + } + // app-level handling + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]); + return; + } + } + logError(err, type, contextVNode, throwInDev); +} +function logError(err, type, contextVNode, throwInDev = true) { + { + // recover in prod to reduce the impact on end-user + console.error(err); + } +} +let isFlushing = false; +let isFlushPending = false; +const queue = []; +let flushIndex = 0; +const pendingPreFlushCbs = []; +let activePreFlushCbs = null; +let preFlushIndex = 0; +const pendingPostFlushCbs = []; +let activePostFlushCbs = null; +let postFlushIndex = 0; +const resolvedPromise = Promise.resolve(); +let currentFlushPromise = null; +let currentPreFlushParentJob = null; +const RECURSION_LIMIT = 100; +function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(fn) : p; +} +function queueJob(job) { + // the dedupe search uses the startIndex argument of Array.includes() + // by default the search index includes the current job that is being run + // so it cannot recursively trigger itself again. + // if the job is a watch() callback, the search will start with a +1 index to + // allow it recursively trigger itself - it is the user's responsibility to + // ensure it doesn't end up in an infinite loop. + if ((!queue.length || + !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) && + job !== currentPreFlushParentJob) { + queue.push(job); + queueFlush(); + } +} +function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function invalidateJob(job) { + const i = queue.indexOf(job); + if (i > -1) { + queue[i] = null; + } +} +function queueCb(cb, activeQueue, pendingQueue, index) { + if (!isArray(cb)) { + if (!activeQueue || + !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) { + pendingQueue.push(cb); + } + } + else { + // if cb is an array, it is a component lifecycle hook which can only be + // triggered by a job, which is already deduped in the main queue, so + // we can skip duplicate check here to improve perf + pendingQueue.push(...cb); + } + queueFlush(); +} +function queuePreFlushCb(cb) { + queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex); +} +function queuePostFlushCb(cb) { + queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex); +} +function flushPreFlushCbs(seen, parentJob = null) { + if (pendingPreFlushCbs.length) { + currentPreFlushParentJob = parentJob; + activePreFlushCbs = [...new Set(pendingPreFlushCbs)]; + pendingPreFlushCbs.length = 0; + for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) { + activePreFlushCbs[preFlushIndex](); + } + activePreFlushCbs = null; + preFlushIndex = 0; + currentPreFlushParentJob = null; + // recursively flush until it drains + flushPreFlushCbs(seen, parentJob); + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)]; + pendingPostFlushCbs.length = 0; + // #1947 already has active queue, nested flushPostFlushCbs call + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + activePostFlushCbs.sort((a, b) => getId(a) - getId(b)); + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + activePostFlushCbs[postFlushIndex](); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +const getId = (job) => job.id == null ? Infinity : job.id; +function flushJobs(seen) { + isFlushPending = false; + isFlushing = true; + flushPreFlushCbs(seen); + // Sort queue before flush. + // This ensures that: + // 1. Components are updated from parent to child. (because parent is always + // created before the child so its render effect will have smaller + // priority number) + // 2. If a component is unmounted during a parent component's update, + // its update can be skipped. + // Jobs can never be null before flush starts, since they are only invalidated + // during execution of another flushed job. + queue.sort((a, b) => getId(a) - getId(b)); + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + if ((\\"production\\" !== 'production')) ; + callWithErrorHandling(job, null, 14 /* SCHEDULER */); + } + } + } + finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(); + isFlushing = false; + currentFlushPromise = null; + // some postFlushCb queued jobs! + // keep flushing until it drains. + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + if (!seen.has(fn)) { + seen.set(fn, 1); + } + else { + const count = seen.get(fn); + if (count > RECURSION_LIMIT) { + throw new Error(\`Maximum recursive updates exceeded. \` + + \`This means you have a reactive effect that is mutating its own \` + + \`dependencies and thus recursively triggering itself. Possible sources \` + + \`include component template, render function, updated hook or \` + + \`watcher source function.\`); + } + else { + seen.set(fn, count + 1); + } + } +} +function emit(instance, event, ...args) { + const props = instance.vnode.props || EMPTY_OBJ; + if ( __VUE_PROD_DEVTOOLS__) ; + let handlerName = \`on\${capitalize(event)}\`; + let handler = props[handlerName]; + // for v-model update:xxx events, also trigger kebab-case equivalent + // for props passed via kebab-case + if (!handler && event.startsWith('update:')) { + handlerName = \`on\${capitalize(hyphenate(event))}\`; + handler = props[handlerName]; + } + if (!handler) { + handler = props[handlerName + \`Once\`]; + if (!instance.emitted) { + (instance.emitted = {})[handlerName] = true; + } + else if (instance.emitted[handlerName]) { + return; + } + } + if (handler) { + callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args); + } +} +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const appId = appContext.app ? appContext.app._uid : -1; + const cache = comp.__emits || (comp.__emits = {}); + const cached = cache[appId]; + if (cached !== undefined) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + // apply mixin/extends props + let hasExtends = false; + if (__VUE_OPTIONS_API__ && !isFunction(comp)) { + const extendEmits = (raw) => { + hasExtends = true; + extend(normalized, normalizeEmitsOptions(raw, appContext, true)); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + return (cache[appId] = null); + } + if (isArray(raw)) { + raw.forEach(key => (normalized[key] = null)); + } + else { + extend(normalized, raw); + } + return (cache[appId] = normalized); +} +// Check if an incoming prop key is a declared emit event listener. +// e.g. With \`emits: { click: null }\`, props named \`onClick\` and \`onclick\` are +// both considered matched listeners. +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.replace(/Once$/, ''); + return (hasOwn(options, key[2].toLowerCase() + key.slice(3)) || + hasOwn(options, key.slice(2))); +} +// mark the current rendering instance for asset resolution (e.g. +// resolveComponent, resolveDirective) during render +let currentRenderingInstance = null; +function setCurrentRenderingInstance(instance) { + currentRenderingInstance = instance; +} +// dev only flag to track whether $attrs was used during render. +// If $attrs was used during render then the warning for failed attrs +// fallthrough can be suppressed. +let accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx } = instance; + let result; + currentRenderingInstance = instance; + try { + let fallthroughAttrs; + if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) { + // withProxy is a proxy with a different \`has\` trap only for + // runtime-compiled render functions using \`with\` block. + const proxyToUse = withProxy || proxy; + result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx)); + fallthroughAttrs = attrs; + } + else { + // functional + const render = Component; + // in dev, mark attrs accessed if optional props (attrs === props) + if ((\\"production\\" !== 'production') && attrs === props) ; + result = normalizeVNode(render.length > 1 + ? render(props, (\\"production\\" !== 'production') + ? { + get attrs() { + markAttrsAccessed(); + return attrs; + }, + slots, + emit + } + : { attrs, slots, emit }) + : render(props, null /* we know it doesn't need it */)); + fallthroughAttrs = Component.props + ? attrs + : getFunctionalFallthrough(attrs); + } + // attr merging + // in dev mode, comments are preserved, and it's possible for a template + // to have comments along side the root element which makes it a fragment + let root = result; + let setRoot = undefined; + if ((\\"production\\" !== 'production')) ; + if (Component.inheritAttrs !== false && fallthroughAttrs) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & 1 /* ELEMENT */ || + shapeFlag & 6 /* COMPONENT */) { + if (propsOptions && keys.some(isModelListener)) { + // If a v-model listener (onUpdate:xxx) has a corresponding declared + // prop, it indicates this component expects to handle v-model and + // it should not fallthrough. + // related: #1543, #1643, #1989 + fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions); + } + root = cloneVNode(root, fallthroughAttrs); + } + else if ((\\"production\\" !== 'production') && !accessedAttrs && root.type !== Comment) ; + } + } + // inherit directives + if (vnode.dirs) { + if ((\\"production\\" !== 'production') && !isElementRoot(root)) ; + root.dirs = vnode.dirs; + } + // inherit transition data + if (vnode.transition) { + if ((\\"production\\" !== 'production') && !isElementRoot(root)) ; + root.transition = vnode.transition; + } + if ((\\"production\\" !== 'production') && setRoot) ; + else { + result = root; + } + } + catch (err) { + handleError(err, instance, 1 /* RENDER_FUNCTION */); + result = createVNode(Comment); + } + currentRenderingInstance = null; + return result; +} +/** + * dev only + * In dev mode, template root level comments are rendered, which turns the + * template into a fragment root, but we need to locate the single element + * root for attrs and scope id processing. + */ +const getChildRoot = (vnode) => { + if (vnode.type !== Fragment) { + return [vnode, undefined]; + } + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren); + if (!childRoot) { + return [vnode, undefined]; + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } + else if (dynamicChildren && updatedRoot.patchFlag > 0) { + dynamicChildren.push(updatedRoot); + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +/** + * dev only + */ +function filterSingleRoot(children) { + const filtered = children.filter(child => { + return !(isVNode(child) && + child.type === Comment && + child.children !== 'v-if'); + }); + return filtered.length === 1 && isVNode(filtered[0]) ? filtered[0] : null; +} +const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === 'class' || key === 'style' || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +const isElementRoot = (vnode) => { + return (vnode.shapeFlag & 6 /* COMPONENT */ || + vnode.shapeFlag & 1 /* ELEMENT */ || + vnode.type === Comment // potential v-if branch switch + ); +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + // force child update for runtime directive or transition on component vnode. + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag > 0) { + if (patchFlag & 1024 /* DYNAMIC_SLOTS */) { + // slot content that references values that might have changed, + // e.g. in a v-for + return true; + } + if (patchFlag & 16 /* FULL_PROPS */) { + if (!prevProps) { + return !!nextProps; + } + // presence of this flag indicates props are always non-null + return hasPropsChanged(prevProps, nextProps, emits); + } + else if (patchFlag & 8 /* PROPS */) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (nextProps[key] !== prevProps[key] && + !isEmitListener(emits, key)) { + return true; + } + } + } + } + else { + // this path is only taken by manually written render functions + // so presence of any children leads to a forced update + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (nextProps[key] !== prevProps[key] && + !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function updateHOCHostEl({ vnode, parent }, el // HostNode +) { + while (parent && parent.subTree === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } +} +const isSuspense = (type) => type.__isSuspense; +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + let content; + let fallback; + if (shapeFlag & 32 /* SLOTS_CHILDREN */) { + content = normalizeSuspenseSlot(children.default); + fallback = normalizeSuspenseSlot(children.fallback); + } + else { + content = normalizeSuspenseSlot(children); + fallback = normalizeVNode(null); + } + return { + content, + fallback + }; +} +function normalizeSuspenseSlot(s) { + if (isFunction(s)) { + s = s(); + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + s = singleChild; + } + return normalizeVNode(s); +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } + else { + suspense.effects.push(fn); + } + } + else { + queuePostFlushCb(fn); + } +} +let isRenderingCompiledSlot = 0; +const setCompiledSlotRendering = (n) => (isRenderingCompiledSlot += n); +/** + * Wrap a slot function to memoize current rendering instance + * @private + */ +function withCtx(fn, ctx = currentRenderingInstance) { + if (!ctx) + return fn; + const renderFnWithContext = (...args) => { + // If a user calls a compiled slot inside a template expression (#1745), it + // can mess up block tracking, so by default we need to push a null block to + // avoid that. This isn't necessary if rendering a compiled \`\`. + if (!isRenderingCompiledSlot) { + openBlock(true /* null block that disables tracking */); + } + const owner = currentRenderingInstance; + setCurrentRenderingInstance(ctx); + const res = fn(...args); + setCurrentRenderingInstance(owner); + if (!isRenderingCompiledSlot) { + closeBlock(); + } + return res; + }; + renderFnWithContext._c = true; + return renderFnWithContext; +} +// SFC scoped style ID management. +let currentScopeId = null; +const isTeleport = (type) => type.__isTeleport; +const COMPONENTS = 'components'; +/** + * @private + */ +function resolveComponent(name) { + return resolveAsset(COMPONENTS, name) || name; +} +const NULL_DYNAMIC_COMPONENT = Symbol(); +// implementation +function resolveAsset(type, name, warnMissing = true) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + // self name has highest priority + if (type === COMPONENTS) { + const selfName = Component.displayName || Component.name; + if (selfName && + (selfName === name || + selfName === camelize(name) || + selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = + // local registration + // check instance[type] first for components with mixin or extends. + resolve(instance[type] || Component[type], name) || + // global registration + resolve(instance.appContext[type], name); + return res; + } +} +function resolve(registry, name) { + return (registry && + (registry[name] || + registry[camelize(name)] || + registry[capitalize(camelize(name))])); +} +const Fragment = Symbol( undefined); +const Text = Symbol( undefined); +const Comment = Symbol( undefined); +const Static = Symbol( undefined); +// Since v-if and v-for are the two possible ways node structure can dynamically +// change, once we consider v-if branches and each v-for fragment a block, we +// can divide a template into nested blocks, and within each block the node +// structure would be stable. This allows us to skip most children diffing +// and only worry about the dynamic nodes (indicated by patch flags). +const blockStack = []; +let currentBlock = null; +/** + * Open a block. + * This must be called before \`createBlock\`. It cannot be part of \`createBlock\` + * because the children of the block are evaluated before \`createBlock\` itself + * is called. The generated code typically looks like this: + * + * \`\`\`js + * function render() { + * return (openBlock(),createBlock('div', null, [...])) + * } + * \`\`\` + * disableTracking is true when creating a v-for fragment block, since a v-for + * fragment always diffs its children. + * + * @private + */ +function openBlock(disableTracking = false) { + blockStack.push((currentBlock = disableTracking ? null : [])); +} +function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; +} +/** + * Create a block root vnode. Takes the same exact arguments as \`createVNode\`. + * A block root keeps track of dynamic nodes within the block in the + * \`dynamicChildren\` array. + * + * @private + */ +function createBlock(type, props, children, patchFlag, dynamicProps) { + const vnode = createVNode(type, props, children, patchFlag, dynamicProps, true /* isBlock: prevent a block from tracking itself */); + // save current block children on the block vnode + vnode.dynamicChildren = currentBlock || EMPTY_ARR; + // close block + closeBlock(); + // a block is always going to be patched, so track it as a child of its + // parent block + if ( currentBlock) { + currentBlock.push(vnode); + } + return vnode; +} +function isVNode(value) { + return value ? value.__v_isVNode === true : false; +} +function isSameVNodeType(n1, n2) { + return n1.type === n2.type && n1.key === n2.key; +} +const InternalObjectKey = \`__vInternal\`; +const normalizeKey = ({ key }) => key != null ? key : null; +const normalizeRef = ({ ref }) => { + return (ref != null + ? isArray(ref) + ? ref + : { i: currentRenderingInstance, r: ref } + : null); +}; +const createVNode = ( _createVNode); +function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + type = Comment; + } + if (isVNode(type)) { + // createVNode receiving an existing vnode. This happens in cases like + // + // #2078 make sure to merge refs during the clone instead of overwriting it + const cloned = cloneVNode(type, props, true /* mergeRef: true */); + if (children) { + normalizeChildren(cloned, children); + } + return cloned; + } + // class component normalization. + if (isClassComponent(type)) { + type = type.__vccOpts; + } + // class & style normalization. + if (props) { + // for reactive or proxy objects, we need to clone it to enable mutation. + if (isProxy(props) || InternalObjectKey in props) { + props = extend({}, props); + } + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (isObject(style)) { + // reactive state objects need to be cloned since they are likely to be + // mutated + if (isProxy(style) && !isArray(style)) { + style = extend({}, style); + } + props.style = normalizeStyle(style); + } + } + // encode the vnode type information into a bitmap + const shapeFlag = isString(type) + ? 1 /* ELEMENT */ + : isSuspense(type) + ? 128 /* SUSPENSE */ + : isTeleport(type) + ? 64 /* TELEPORT */ + : isObject(type) + ? 4 /* STATEFUL_COMPONENT */ + : isFunction(type) + ? 2 /* FUNCTIONAL_COMPONENT */ + : 0; + const vnode = { + __v_isVNode: true, + [\\"__v_skip\\" /* SKIP */]: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + 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, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null + }; + normalizeChildren(vnode, children); + // normalize suspense children + if ( shapeFlag & 128 /* SUSPENSE */) { + const { content, fallback } = normalizeSuspenseChildren(vnode); + vnode.ssContent = content; + vnode.ssFallback = fallback; + } + if ( + // avoid a block node from tracking itself + !isBlockNode && + // has current parent block + currentBlock && + // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (patchFlag > 0 || shapeFlag & 6 /* COMPONENT */) && + // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + patchFlag !== 32 /* HYDRATE_EVENTS */) { + currentBlock.push(vnode); + } + return vnode; +} +function cloneVNode(vnode, extraProps, mergeRef = false) { + // This is intentionally NOT using spread or extend to avoid the runtime + // key enumeration cost. + const { props, ref, patchFlag } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + return { + __v_isVNode: true, + [\\"__v_skip\\" /* SKIP */]: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref + ? // #2078 in the case of + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref + ? isArray(ref) + ? ref.concat(normalizeRef(extraProps)) + : [ref, normalizeRef(extraProps)] + : normalizeRef(extraProps) + : ref, + scopeId: vnode.scopeId, + children: vnode.children, + target: vnode.target, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: perserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment + ? patchFlag === -1 // hoisted node + ? 16 /* FULL_PROPS */ + : patchFlag | 16 /* FULL_PROPS */ + : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition: vnode.transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + el: vnode.el, + anchor: vnode.anchor + }; +} +/** + * @private + */ +function createTextVNode(text = ' ', flag = 0) { + return createVNode(Text, null, text, flag); +} +function normalizeVNode(child) { + if (child == null || typeof child === 'boolean') { + // empty placeholder + return createVNode(Comment); + } + else if (isArray(child)) { + // fragment + return createVNode(Fragment, null, child); + } + else if (typeof child === 'object') { + // already vnode, this should be the most common since compiled templates + // always produce all-vnode children arrays + return child.el === null ? child : cloneVNode(child); + } + else { + // strings and numbers + return createVNode(Text, null, String(child)); + } +} +// optimized normalization for template-compiled render fns +function cloneIfMounted(child) { + return child.el === null ? child : cloneVNode(child); +} +function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } + else if (isArray(children)) { + type = 16 /* ARRAY_CHILDREN */; + } + else if (typeof children === 'object') { + if (shapeFlag & 1 /* ELEMENT */ || shapeFlag & 64 /* TELEPORT */) { + // Normalize slot to plain children for plain element and Teleport + const slot = children.default; + if (slot) { + // _c marker is added by withCtx() indicating this is a compiled slot + slot._c && setCompiledSlotRendering(1); + normalizeChildren(vnode, slot()); + slot._c && setCompiledSlotRendering(-1); + } + return; + } + else { + type = 32 /* SLOTS_CHILDREN */; + const slotFlag = children._; + if (!slotFlag && !(InternalObjectKey in children)) { + children._ctx = currentRenderingInstance; + } + else if (slotFlag === 3 /* FORWARDED */ && currentRenderingInstance) { + // a child component receives forwarded slots from the parent. + // its slot type is determined by its parent's slot type. + if (currentRenderingInstance.vnode.patchFlag & 1024 /* DYNAMIC_SLOTS */) { + children._ = 2 /* DYNAMIC */; + vnode.patchFlag |= 1024 /* DYNAMIC_SLOTS */; + } + else { + children._ = 1 /* STABLE */; + } + } + } + } + else if (isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32 /* SLOTS_CHILDREN */; + } + else { + children = String(children); + // force teleport children to array so it can be moved around + if (shapeFlag & 64 /* TELEPORT */) { + type = 16 /* ARRAY_CHILDREN */; + children = [createTextVNode(children)]; + } + else { + type = 8 /* TEXT_CHILDREN */; + } + } + vnode.children = children; + vnode.shapeFlag |= type; +} +function mergeProps(...args) { + const ret = extend({}, args[0]); + for (let i = 1; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === 'class') { + if (ret.class !== toMerge.class) { + ret.class = normalizeClass([ret.class, toMerge.class]); + } + } + else if (key === 'style') { + ret.style = normalizeStyle([ret.style, toMerge.style]); + } + else if (isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (existing !== incoming) { + ret[key] = existing + ? [].concat(existing, toMerge[key]) + : incoming; + } + } + else { + ret[key] = toMerge[key]; + } + } + } + return ret; +} +function initProps(instance, rawProps, isStateful, // result of bitwise flag comparison +isSSR = false) { + const props = {}; + const attrs = {}; + def(attrs, InternalObjectKey, 1); + setFullProps(instance, rawProps, props, attrs); + if (isStateful) { + // stateful + instance.props = isSSR ? props : shallowReactive(props); + } + else { + if (!instance.type.props) { + // functional w/ optional props, props === attrs + instance.props = attrs; + } + else { + // functional w/ declared props + instance.props = props; + } + } + instance.attrs = attrs; +} +function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { props, attrs, vnode: { patchFlag } } = instance; + const rawCurrentProps = toRaw(props); + const [options] = instance.propsOptions; + if ( + // always force full diff if hmr is enabled + (optimized || patchFlag > 0) && + !(patchFlag & 16 /* FULL_PROPS */)) { + if (patchFlag & 8 /* PROPS */) { + // Compiler-generated props & no keys change, just set the updated + // the props. + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + // PROPS flag guarantees rawProps to be non-null + const value = rawProps[key]; + if (options) { + // attr / props separation was done on init and will be consistent + // in this code path, so just check if attrs have it. + if (hasOwn(attrs, key)) { + attrs[key] = value; + } + else { + const camelizedKey = camelize(key); + props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance); + } + } + else { + attrs[key] = value; + } + } + } + } + else { + // full props update. + setFullProps(instance, rawProps, props, attrs); + // in case of dynamic props, check if we need to delete keys from + // the props object + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || + // for camelCase + (!hasOwn(rawProps, key) && + // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) { + if (options) { + if (rawPrevProps && + // for camelCase + (rawPrevProps[key] !== undefined || + // for kebab-case + rawPrevProps[kebabKey] !== undefined)) { + props[key] = resolvePropValue(options, rawProps || EMPTY_OBJ, key, undefined, instance); + } + } + else { + delete props[key]; + } + } + } + // in the case of functional component w/o props declaration, props and + // attrs point to the same object so it should already have been updated. + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !hasOwn(rawProps, key)) { + delete attrs[key]; + } + } + } + } + // trigger updates for $attrs in case it's used in component slots + trigger(instance, \\"set\\" /* SET */, '$attrs'); +} +function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + if (rawProps) { + for (const key in rawProps) { + const value = rawProps[key]; + // key, ref are reserved and never passed down + if (isReservedProp(key)) { + continue; + } + // prop option names are camelized during normalization, so to support + // kebab -> camel conversion here we need to camelize the key. + let camelKey; + if (options && hasOwn(options, (camelKey = camelize(key)))) { + props[camelKey] = value; + } + else if (!isEmitListener(instance.emitsOptions, key)) { + // Any non-declared (either as a prop or an emitted event) props are put + // into a separate \`attrs\` object for spreading. Make sure to preserve + // original key casing + attrs[key] = value; + } + } + } + if (needCastKeys) { + const rawCurrentProps = toRaw(props); + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue(options, rawCurrentProps, key, rawCurrentProps[key], instance); + } + } +} +function resolvePropValue(options, props, key, value, instance) { + const opt = options[key]; + if (opt != null) { + const hasDefault = hasOwn(opt, 'default'); + // default values + if (hasDefault && value === undefined) { + const defaultValue = opt.default; + if (opt.type !== Function && isFunction(defaultValue)) { + setCurrentInstance(instance); + value = defaultValue(props); + setCurrentInstance(null); + } + else { + value = defaultValue; + } + } + // boolean casting + if (opt[0 /* shouldCast */]) { + if (!hasOwn(props, key) && !hasDefault) { + value = false; + } + else if (opt[1 /* shouldCastTrue */] && + (value === '' || value === hyphenate(key))) { + value = true; + } + } + } + return value; +} +function normalizePropsOptions(comp, appContext, asMixin = false) { + const appId = appContext.app ? appContext.app._uid : -1; + const cache = comp.__props || (comp.__props = {}); + const cached = cache[appId]; + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + // apply mixin/extends props + let hasExtends = false; + if (__VUE_OPTIONS_API__ && !isFunction(comp)) { + const extendProps = (raw) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw, appContext, true); + extend(normalized, props); + if (keys) + needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + return (cache[appId] = EMPTY_ARR); + } + if (isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + const normalizedKey = camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = EMPTY_OBJ; + } + } + } + else if (raw) { + for (const key in raw) { + const normalizedKey = camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = (normalized[normalizedKey] = + isArray(opt) || isFunction(opt) ? { type: opt } : opt); + if (prop) { + const booleanIndex = getTypeIndex(Boolean, prop.type); + const stringIndex = getTypeIndex(String, prop.type); + prop[0 /* shouldCast */] = booleanIndex > -1; + prop[1 /* shouldCastTrue */] = + stringIndex < 0 || booleanIndex < stringIndex; + // if the prop needs boolean casting or default value + if (booleanIndex > -1 || hasOwn(prop, 'default')) { + needCastKeys.push(normalizedKey); + } + } + } + } + } + return (cache[appId] = [normalized, needCastKeys]); +} +// use function string name to check type constructors +// so that it works across vms / iframes. +function getType(ctor) { + const match = ctor && ctor.toString().match(/^\\\\s*function (\\\\w+)/); + return match ? match[1] : ''; +} +function isSameType(a, b) { + return getType(a) === getType(b); +} +function getTypeIndex(type, expectedTypes) { + if (isArray(expectedTypes)) { + for (let i = 0, len = expectedTypes.length; i < len; i++) { + if (isSameType(expectedTypes[i], type)) { + return i; + } + } + } + else if (isFunction(expectedTypes)) { + return isSameType(expectedTypes, type) ? 0 : -1; + } + return -1; +} +/** + * dev only + */ +function validatePropName(key) { + if (key[0] !== '$') { + return true; + } + return false; +} +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + // cache the error handling wrapper for injected hooks so the same hook + // can be properly deduped by the scheduler. \\"__weh\\" stands for \\"with error + // handling\\". + const wrappedHook = hook.__weh || + (hook.__weh = (...args) => { + if (target.isUnmounted) { + return; + } + // disable tracking inside all lifecycle hooks + // since they can potentially be called inside effects. + pauseTracking(); + // Set currentInstance during hook invocation. + // This assumes the hook does not synchronously trigger other hooks, which + // can only be false when the user does something really funky. + setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + setCurrentInstance(null); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } + else { + hooks.push(wrappedHook); + } + return wrappedHook; + } +} +const createHook = (lifecycle) => (hook, target = currentInstance) => +// post-create lifecycle registrations are noops during SSR +!isInSSRComponentSetup && injectHook(lifecycle, hook, target); +const onBeforeMount = createHook(\\"bm\\" /* BEFORE_MOUNT */); +const onMounted = createHook(\\"m\\" /* MOUNTED */); +const onBeforeUpdate = createHook(\\"bu\\" /* BEFORE_UPDATE */); +const onUpdated = createHook(\\"u\\" /* UPDATED */); +const onBeforeUnmount = createHook(\\"bum\\" /* BEFORE_UNMOUNT */); +const onUnmounted = createHook(\\"um\\" /* UNMOUNTED */); +const onRenderTriggered = createHook(\\"rtg\\" /* RENDER_TRIGGERED */); +const onRenderTracked = createHook(\\"rtc\\" /* RENDER_TRACKED */); +const onErrorCaptured = (hook, target = currentInstance) => { + injectHook(\\"ec\\" /* ERROR_CAPTURED */, hook, target); +}; +const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +function onActivated(hook, target) { + registerKeepAliveHook(hook, \\"a\\" /* ACTIVATED */, target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, \\"da\\" /* DEACTIVATED */, target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + // cache the deactivate branch check wrapper for injected hooks so the same + // hook can be properly deduped by the scheduler. \\"__wdc\\" stands for \\"with + // deactivation check\\". + const wrappedHook = hook.__wdc || + (hook.__wdc = () => { + // only fire the hook if the target instance is NOT in a deactivated branch. + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + hook(); + }); + injectHook(type, wrappedHook, target); + // In addition to registering it on the target instance, we walk up the parent + // chain and register it on all ancestor instances that are keep-alive roots. + // This avoids the need to walk the entire component tree when invoking these + // hooks, and more importantly, avoids the need to track child components in + // arrays. + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + // injectHook wraps the original for error handling, so make sure to remove + // the wrapped version. + const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); +} +const isInternalKey = (key) => key[0] === '_' || key === '$stable'; +const normalizeSlotValue = (value) => isArray(value) + ? value.map(normalizeVNode) + : [normalizeVNode(value)]; +const normalizeSlot = (key, rawSlot, ctx) => withCtx((props) => { + return normalizeSlotValue(rawSlot(props)); +}, ctx); +const normalizeObjectSlots = (rawSlots, slots) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) + continue; + const value = rawSlots[key]; + if (isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } + else if (value != null) { + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } +}; +const normalizeVNodeSlots = (instance, children) => { + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; +}; +const initSlots = (instance, children) => { + if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) { + const type = children._; + if (type) { + instance.slots = children; + // make compiler marker non-enumerable + def(children, '_', type); + } + else { + normalizeObjectSlots(children, (instance.slots = {})); + } + } + else { + instance.slots = {}; + if (children) { + normalizeVNodeSlots(instance, children); + } + } + def(instance.slots, InternalObjectKey, 1); +}; +const updateSlots = (instance, children) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = EMPTY_OBJ; + if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) { + const type = children._; + if (type) { + // compiled slots. + if (type === 1 /* STABLE */) { + // compiled AND stable. + // no need to update, and skip stale slots removal. + needDeletionCheck = false; + } + else { + // compiled but dynamic (v-if/v-for on slots) - update slots, but skip + // normalization. + extend(slots, children); + } + } + else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } + else if (children) { + // non slot object children (direct value) passed to a component + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + // delete stale slots + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && !(key in deletionComparisonTarget)) { + delete slots[key]; + } + } + } +}; +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + const hook = binding.dir[name]; + if (hook) { + callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + } + } +} +function createAppContext() { + return { + app: null, + config: { + isNativeTag: NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + isCustomElement: NO, + errorHandler: undefined, + warnHandler: undefined + }, + mixins: [], + components: {}, + directives: {}, + provides: Object.create(null) + }; +} +let uid$1 = 0; +function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (rootProps != null && !isObject(rootProps)) { + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = new Set(); + let isMounted = false; + const app = (context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + version, + get config() { + return context.config; + }, + set config(v) { + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) ; + else if (plugin && isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } + else if (isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } + else ; + return app; + }, + mixin(mixin) { + if (__VUE_OPTIONS_API__) { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } + } + return app; + }, + component(name, component) { + if (!component) { + return context.components[name]; + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + if (!directive) { + return context.directives[name]; + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate) { + if (!isMounted) { + const vnode = createVNode(rootComponent, rootProps); + // store app context on the root VNode. + // this will be set on the root instance on initial mount. + vnode.appContext = context; + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } + else { + render(vnode, rootContainer); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + if ( __VUE_PROD_DEVTOOLS__) ; + return vnode.component.proxy; + } + }, + unmount() { + if (isMounted) { + render(null, app._container); + if ( __VUE_PROD_DEVTOOLS__) ; + } + }, + provide(key, value) { + // TypeScript doesn't allow symbols as index type + // https://github.com/Microsoft/TypeScript/issues/24587 + context.provides[key] = value; + return app; + } + }); + return app; + }; +} +/** + * This is only called in esm-bundler builds. + * It is called when a renderer is created, in \`baseCreateRenderer\` so that + * importing runtime-core is side-effects free. + * + * istanbul-ignore-next + */ +function initFeatureFlags() { + if (typeof __VUE_OPTIONS_API__ !== 'boolean') { + getGlobalThis().__VUE_OPTIONS_API__ = true; + } + if (typeof __VUE_PROD_DEVTOOLS__ !== 'boolean') { + getGlobalThis().__VUE_PROD_DEVTOOLS__ = false; + } +} +const prodEffectOptions = { + scheduler: queueJob, + // #1801, #2043 component render effects should allow recursive updates + allowRecurse: true +}; +const queuePostRenderEffect = queueEffectWithSuspense + ; +const setRef = (rawRef, oldRawRef, parentComponent, parentSuspense, vnode) => { + if (isArray(rawRef)) { + rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentComponent, parentSuspense, vnode)); + return; + } + let value; + if (!vnode) { + value = null; + } + else { + if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) { + value = vnode.component.proxy; + } + else { + value = vnode.el; + } + } + const { i: owner, r: ref } = rawRef; + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs; + const setupState = owner.setupState; + // unset old ref + if (oldRef != null && oldRef !== ref) { + if (isString(oldRef)) { + refs[oldRef] = null; + if (hasOwn(setupState, oldRef)) { + setupState[oldRef] = null; + } + } + else if (isRef(oldRef)) { + oldRef.value = null; + } + } + if (isString(ref)) { + const doSet = () => { + refs[ref] = value; + if (hasOwn(setupState, ref)) { + setupState[ref] = value; + } + }; + // #1789: for non-null values, set them after render + // null values means this is unmount and it should not overwrite another + // ref with the same key + if (value) { + doSet.id = -1; + queuePostRenderEffect(doSet, parentSuspense); + } + else { + doSet(); + } + } + else if (isRef(ref)) { + const doSet = () => { + ref.value = value; + }; + if (value) { + doSet.id = -1; + queuePostRenderEffect(doSet, parentSuspense); + } + else { + doSet(); + } + } + else if (isFunction(ref)) { + callWithErrorHandling(ref, parentComponent, 12 /* FUNCTION_REF */, [ + value, + refs + ]); + } + else ; +}; +/** + * The createRenderer function accepts two generic arguments: + * HostNode and HostElement, corresponding to Node and Element types in the + * host environment. For example, for runtime-dom, HostNode would be the DOM + * \`Node\` interface and HostElement would be the DOM \`Element\` interface. + * + * Custom renderers can pass in the platform specific types like this: + * + * \`\`\` js + * const { render, createApp } = createRenderer({ + * patchProp, + * ...nodeOps + * }) + * \`\`\` + */ +function createRenderer(options) { + return baseCreateRenderer(options); +} +// implementation +function baseCreateRenderer(options, createHydrationFns) { + // compile-time feature flags check + { + initFeatureFlags(); + } + const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, forcePatchProp: hostForcePatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options; + // Note: functions inside this closure should use \`const xxx = () => {}\` + // style in order to prevent being inlined by minifiers. + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, optimized = false) => { + // patching & not same type, unmount old tree + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2 /* BAIL */) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, isSVG); + } + break; + case Fragment: + processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized); + break; + default: + if (shapeFlag & 1 /* ELEMENT */) { + processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized); + } + else if (shapeFlag & 6 /* COMPONENT */) { + processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized); + } + else if (shapeFlag & 64 /* TELEPORT */) { + type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals); + } + else if ( shapeFlag & 128 /* SUSPENSE */) { + type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals); + } + else ; + } + // set ref + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentComponent, parentSuspense, n2); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert((n2.el = hostCreateText(n2.children)), container, anchor); + } + else { + const el = (n2.el = n1.el); + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor); + } + else { + // there's no support for dynamic comments + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, isSVG) => { + [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => { + isSVG = isSVG || n2.type === 'svg'; + if (n1 == null) { + mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized); + } + else { + patchElement(n1, n2, parentComponent, parentSuspense, isSVG, optimized); + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => { + let el; + let vnodeHook; + const { type, props, shapeFlag, transition, scopeId, patchFlag, dirs } = vnode; + if ( + vnode.el && + hostCloneNode !== undefined && + patchFlag === -1 /* HOISTED */) { + // If a vnode has non-null el, it means it's being reused. + // Only static vnodes can be reused, so its mounted DOM nodes should be + // exactly the same, and we can simply do a clone here. + // only do this in production since cloned trees cannot be HMR updated. + el = vnode.el = hostCloneNode(vnode.el); + } + else { + el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is); + // mount children first, since some props may rely on child content + // being already rendered, e.g. \`