From a65f393ff11bcf7fc297011ef45055f859dedf40 Mon Sep 17 00:00:00 2001 From: sunmeng Date: Mon, 14 Jul 2025 10:54:06 +0800 Subject: [PATCH] - --- node_modules/.package-lock.json | 132 ++ node_modules/@any-touch/compute/LICENSE | 21 + node_modules/@any-touch/compute/README.md | 2 + .../@any-touch/compute/dist/ComputeAngle.d.ts | 9 + .../compute/dist/ComputeDeltaXY.d.ts | 6 + .../compute/dist/ComputeDistance.d.ts | 9 + .../compute/dist/ComputeMaxLength.d.ts | 5 + .../@any-touch/compute/dist/ComputeScale.d.ts | 5 + .../compute/dist/ComputeVAndDir.d.ts | 8 + .../compute/dist/ComputeVectorForMutli.d.ts | 11 + .../@any-touch/compute/dist/index.d.ts | 7 + .../@any-touch/compute/dist/index.es.js | 2 + .../@any-touch/compute/dist/index.es.js.map | 1 + node_modules/@any-touch/compute/dist/index.js | 2 + .../@any-touch/compute/dist/index.js.map | 1 + node_modules/@any-touch/compute/package.json | 22 + node_modules/@any-touch/core/LICENSE | 21 + node_modules/@any-touch/core/README.md | 16 + .../@any-touch/core/dist/bindElement.d.ts | 3 + .../core/dist/canPreventDefault.d.ts | 9 + node_modules/@any-touch/core/dist/const.d.ts | 17 + .../core/dist/createInput/index.d.ts | 2 + .../core/dist/createInput/inputCreator.d.ts | 6 + .../core/dist/createInput/mouse.d.ts | 1 + .../core/dist/createInput/touch.d.ts | 4 + .../core/dist/dispatchDomEvent.d.ts | 5 + node_modules/@any-touch/core/dist/index.d.ts | 119 ++ node_modules/@any-touch/core/dist/index.es.js | 2 + .../@any-touch/core/dist/index.es.js.map | 1 + node_modules/@any-touch/core/dist/index.js | 2 + .../@any-touch/core/dist/index.js.map | 1 + node_modules/@any-touch/core/package.json | 37 + node_modules/@any-touch/doubletap/LICENSE | 21 + node_modules/@any-touch/doubletap/README.md | 84 ++ .../@any-touch/doubletap/dist/index.d.ts | 21 + .../@any-touch/doubletap/dist/index.es.js | 2 + .../@any-touch/doubletap/dist/index.es.js.map | 1 + .../@any-touch/doubletap/dist/index.js | 2 + .../@any-touch/doubletap/dist/index.js.map | 1 + .../@any-touch/doubletap/package.json | 23 + node_modules/@any-touch/pan/LICENSE | 21 + node_modules/@any-touch/pan/README.md | 28 + node_modules/@any-touch/pan/dist/index.d.ts | 38 + node_modules/@any-touch/pan/dist/index.es.js | 2 + .../@any-touch/pan/dist/index.es.js.map | 1 + node_modules/@any-touch/pan/dist/index.js | 2 + node_modules/@any-touch/pan/dist/index.js.map | 1 + node_modules/@any-touch/pan/package.json | 22 + node_modules/@any-touch/pinch/LICENSE | 21 + node_modules/@any-touch/pinch/README.md | 28 + node_modules/@any-touch/pinch/dist/index.d.ts | 39 + .../@any-touch/pinch/dist/index.es.js | 2 + .../@any-touch/pinch/dist/index.es.js.map | 1 + node_modules/@any-touch/pinch/dist/index.js | 2 + .../@any-touch/pinch/dist/index.js.map | 1 + node_modules/@any-touch/pinch/package.json | 21 + node_modules/@any-touch/press/LICENSE | 21 + node_modules/@any-touch/press/README.md | 29 + node_modules/@any-touch/press/dist/index.d.ts | 37 + .../@any-touch/press/dist/index.es.js | 2 + .../@any-touch/press/dist/index.es.js.map | 1 + node_modules/@any-touch/press/dist/index.js | 2 + .../@any-touch/press/dist/index.js.map | 1 + node_modules/@any-touch/press/package.json | 22 + node_modules/@any-touch/rotate/LICENSE | 21 + node_modules/@any-touch/rotate/README.md | 29 + .../@any-touch/rotate/dist/index.d.ts | 34 + .../@any-touch/rotate/dist/index.es.js | 2 + .../@any-touch/rotate/dist/index.es.js.map | 1 + node_modules/@any-touch/rotate/dist/index.js | 2 + .../@any-touch/rotate/dist/index.js.map | 1 + node_modules/@any-touch/rotate/package.json | 21 + node_modules/@any-touch/shared/LICENSE | 21 + node_modules/@any-touch/shared/README.md | 13 + .../@any-touch/shared/dist/const.d.ts | 34 + .../shared/dist/createPluginContext.d.ts | 2 + .../@any-touch/shared/dist/index.d.ts | 5 + .../@any-touch/shared/dist/index.es.js | 2 + .../@any-touch/shared/dist/index.es.js.map | 1 + node_modules/@any-touch/shared/dist/index.js | 2 + .../@any-touch/shared/dist/index.js.map | 1 + .../@any-touch/shared/dist/pressMoveFlow.d.ts | 35 + .../@any-touch/shared/dist/types.d.ts | 169 +++ node_modules/@any-touch/shared/package.json | 17 + node_modules/@any-touch/swipe/LICENSE | 21 + node_modules/@any-touch/swipe/README.md | 29 + node_modules/@any-touch/swipe/dist/index.d.ts | 35 + .../@any-touch/swipe/dist/index.es.js | 2 + .../@any-touch/swipe/dist/index.es.js.map | 1 + node_modules/@any-touch/swipe/dist/index.js | 2 + .../@any-touch/swipe/dist/index.js.map | 1 + node_modules/@any-touch/swipe/package.json | 22 + node_modules/@any-touch/tap/LICENSE | 21 + node_modules/@any-touch/tap/README.md | 32 + node_modules/@any-touch/tap/dist/index.d.ts | 75 ++ node_modules/@any-touch/tap/dist/index.es.js | 2 + .../@any-touch/tap/dist/index.es.js.map | 1 + node_modules/@any-touch/tap/dist/index.js | 2 + node_modules/@any-touch/tap/dist/index.js.map | 1 + node_modules/@any-touch/tap/package.json | 23 + node_modules/@any-touch/vector/LICENSE | 21 + node_modules/@any-touch/vector/README.md | 2 + .../@any-touch/vector/dist/getAngle.d.ts | 8 + .../@any-touch/vector/dist/getCross.d.ts | 7 + .../@any-touch/vector/dist/getDirection.d.ts | 8 + .../@any-touch/vector/dist/getDotProduct.d.ts | 8 + .../@any-touch/vector/dist/getRadian.d.ts | 8 + .../@any-touch/vector/dist/getVLength.d.ts | 7 + .../@any-touch/vector/dist/index.d.ts | 7 + .../@any-touch/vector/dist/index.es.js | 2 + .../@any-touch/vector/dist/index.es.js.map | 1 + node_modules/@any-touch/vector/dist/index.js | 2 + .../@any-touch/vector/dist/index.js.map | 1 + .../@any-touch/vector/dist/radianToAngle.d.ts | 6 + node_modules/@any-touch/vector/package.json | 20 + node_modules/any-event/LICENSE | 21 + node_modules/any-event/README.md | 96 ++ node_modules/any-event/dist/index.d.ts | 48 + node_modules/any-event/dist/index.es.js | 2 + node_modules/any-event/dist/index.es.js.map | 1 + node_modules/any-event/dist/index.js | 2 + node_modules/any-event/dist/index.js.map | 1 + node_modules/any-event/package.json | 23 + node_modules/any-touch/LICENSE | 21 + node_modules/any-touch/README.md | 54 + node_modules/any-touch/dist/any-touch.umd.js | 1071 +++++++++++++++++ .../any-touch/dist/any-touch.umd.js.map | 1 + .../any-touch/dist/any-touch.umd.min.js | 2 + .../any-touch/dist/any-touch.umd.min.js.map | 1 + node_modules/any-touch/dist/index.d.ts | 29 + node_modules/any-touch/dist/index.es.js | 2 + node_modules/any-touch/dist/index.es.js.map | 1 + node_modules/any-touch/dist/index.js | 2 + node_modules/any-touch/dist/index.js.map | 1 + node_modules/any-touch/package.json | 43 + node_modules/tslib/CopyrightNotice.txt | 15 + node_modules/tslib/LICENSE.txt | 12 + node_modules/tslib/README.md | 164 +++ node_modules/tslib/SECURITY.md | 41 + node_modules/tslib/modules/index.d.ts | 38 + node_modules/tslib/modules/index.js | 70 ++ node_modules/tslib/modules/package.json | 3 + node_modules/tslib/package.json | 47 + node_modules/tslib/tslib.d.ts | 460 +++++++ node_modules/tslib/tslib.es6.html | 1 + node_modules/tslib/tslib.es6.js | 402 +++++++ node_modules/tslib/tslib.es6.mjs | 401 ++++++ node_modules/tslib/tslib.html | 1 + node_modules/tslib/tslib.js | 484 ++++++++ pages/index/step2.vue | 573 +++------ seat.jpg | Bin 0 -> 6076 bytes .../dist/dev/.sourcemap/mp-weixin/app.js.map | 2 +- .../.sourcemap/mp-weixin/common/vendor.js.map | 2 +- .../mp-weixin/pages/index/index.js.map | 2 +- .../mp-weixin/pages/index/step2.js.map | 2 +- unpackage/dist/dev/mp-weixin/common/assets.js | 4 - unpackage/dist/dev/mp-weixin/common/vendor.js | 293 ++--- unpackage/dist/dev/mp-weixin/index.js | 40 - .../dist/dev/mp-weixin/pages/index/index.js | 174 ++- .../dist/dev/mp-weixin/pages/index/index.wxml | 2 +- .../dist/dev/mp-weixin/pages/index/index.wxss | 61 +- .../dist/dev/mp-weixin/pages/index/index2.js | 4 - .../dist/dev/mp-weixin/pages/index/indexFu.js | 16 - .../dev/mp-weixin/pages/index/indexFu.json | 6 - .../dev/mp-weixin/pages/index/indexFu.wxml | 1 - .../dev/mp-weixin/pages/index/indexFu.wxss | 0 .../dist/dev/mp-weixin/pages/index/step2.js | 154 ++- .../dist/dev/mp-weixin/pages/index/step2.json | 4 +- .../dist/dev/mp-weixin/pages/index/step2.wxml | 2 +- .../dist/dev/mp-weixin/pages/index/step2.wxss | 28 + .../dist/dev/mp-weixin/project.config.json | 55 +- 171 files changed, 6098 insertions(+), 668 deletions(-) create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@any-touch/compute/LICENSE create mode 100644 node_modules/@any-touch/compute/README.md create mode 100644 node_modules/@any-touch/compute/dist/ComputeAngle.d.ts create mode 100644 node_modules/@any-touch/compute/dist/ComputeDeltaXY.d.ts create mode 100644 node_modules/@any-touch/compute/dist/ComputeDistance.d.ts create mode 100644 node_modules/@any-touch/compute/dist/ComputeMaxLength.d.ts create mode 100644 node_modules/@any-touch/compute/dist/ComputeScale.d.ts create mode 100644 node_modules/@any-touch/compute/dist/ComputeVAndDir.d.ts create mode 100644 node_modules/@any-touch/compute/dist/ComputeVectorForMutli.d.ts create mode 100644 node_modules/@any-touch/compute/dist/index.d.ts create mode 100644 node_modules/@any-touch/compute/dist/index.es.js create mode 100644 node_modules/@any-touch/compute/dist/index.es.js.map create mode 100644 node_modules/@any-touch/compute/dist/index.js create mode 100644 node_modules/@any-touch/compute/dist/index.js.map create mode 100644 node_modules/@any-touch/compute/package.json create mode 100644 node_modules/@any-touch/core/LICENSE create mode 100644 node_modules/@any-touch/core/README.md create mode 100644 node_modules/@any-touch/core/dist/bindElement.d.ts create mode 100644 node_modules/@any-touch/core/dist/canPreventDefault.d.ts create mode 100644 node_modules/@any-touch/core/dist/const.d.ts create mode 100644 node_modules/@any-touch/core/dist/createInput/index.d.ts create mode 100644 node_modules/@any-touch/core/dist/createInput/inputCreator.d.ts create mode 100644 node_modules/@any-touch/core/dist/createInput/mouse.d.ts create mode 100644 node_modules/@any-touch/core/dist/createInput/touch.d.ts create mode 100644 node_modules/@any-touch/core/dist/dispatchDomEvent.d.ts create mode 100644 node_modules/@any-touch/core/dist/index.d.ts create mode 100644 node_modules/@any-touch/core/dist/index.es.js create mode 100644 node_modules/@any-touch/core/dist/index.es.js.map create mode 100644 node_modules/@any-touch/core/dist/index.js create mode 100644 node_modules/@any-touch/core/dist/index.js.map create mode 100644 node_modules/@any-touch/core/package.json create mode 100644 node_modules/@any-touch/doubletap/LICENSE create mode 100644 node_modules/@any-touch/doubletap/README.md create mode 100644 node_modules/@any-touch/doubletap/dist/index.d.ts create mode 100644 node_modules/@any-touch/doubletap/dist/index.es.js create mode 100644 node_modules/@any-touch/doubletap/dist/index.es.js.map create mode 100644 node_modules/@any-touch/doubletap/dist/index.js create mode 100644 node_modules/@any-touch/doubletap/dist/index.js.map create mode 100644 node_modules/@any-touch/doubletap/package.json create mode 100644 node_modules/@any-touch/pan/LICENSE create mode 100644 node_modules/@any-touch/pan/README.md create mode 100644 node_modules/@any-touch/pan/dist/index.d.ts create mode 100644 node_modules/@any-touch/pan/dist/index.es.js create mode 100644 node_modules/@any-touch/pan/dist/index.es.js.map create mode 100644 node_modules/@any-touch/pan/dist/index.js create mode 100644 node_modules/@any-touch/pan/dist/index.js.map create mode 100644 node_modules/@any-touch/pan/package.json create mode 100644 node_modules/@any-touch/pinch/LICENSE create mode 100644 node_modules/@any-touch/pinch/README.md create mode 100644 node_modules/@any-touch/pinch/dist/index.d.ts create mode 100644 node_modules/@any-touch/pinch/dist/index.es.js create mode 100644 node_modules/@any-touch/pinch/dist/index.es.js.map create mode 100644 node_modules/@any-touch/pinch/dist/index.js create mode 100644 node_modules/@any-touch/pinch/dist/index.js.map create mode 100644 node_modules/@any-touch/pinch/package.json create mode 100644 node_modules/@any-touch/press/LICENSE create mode 100644 node_modules/@any-touch/press/README.md create mode 100644 node_modules/@any-touch/press/dist/index.d.ts create mode 100644 node_modules/@any-touch/press/dist/index.es.js create mode 100644 node_modules/@any-touch/press/dist/index.es.js.map create mode 100644 node_modules/@any-touch/press/dist/index.js create mode 100644 node_modules/@any-touch/press/dist/index.js.map create mode 100644 node_modules/@any-touch/press/package.json create mode 100644 node_modules/@any-touch/rotate/LICENSE create mode 100644 node_modules/@any-touch/rotate/README.md create mode 100644 node_modules/@any-touch/rotate/dist/index.d.ts create mode 100644 node_modules/@any-touch/rotate/dist/index.es.js create mode 100644 node_modules/@any-touch/rotate/dist/index.es.js.map create mode 100644 node_modules/@any-touch/rotate/dist/index.js create mode 100644 node_modules/@any-touch/rotate/dist/index.js.map create mode 100644 node_modules/@any-touch/rotate/package.json create mode 100644 node_modules/@any-touch/shared/LICENSE create mode 100644 node_modules/@any-touch/shared/README.md create mode 100644 node_modules/@any-touch/shared/dist/const.d.ts create mode 100644 node_modules/@any-touch/shared/dist/createPluginContext.d.ts create mode 100644 node_modules/@any-touch/shared/dist/index.d.ts create mode 100644 node_modules/@any-touch/shared/dist/index.es.js create mode 100644 node_modules/@any-touch/shared/dist/index.es.js.map create mode 100644 node_modules/@any-touch/shared/dist/index.js create mode 100644 node_modules/@any-touch/shared/dist/index.js.map create mode 100644 node_modules/@any-touch/shared/dist/pressMoveFlow.d.ts create mode 100644 node_modules/@any-touch/shared/dist/types.d.ts create mode 100644 node_modules/@any-touch/shared/package.json create mode 100644 node_modules/@any-touch/swipe/LICENSE create mode 100644 node_modules/@any-touch/swipe/README.md create mode 100644 node_modules/@any-touch/swipe/dist/index.d.ts create mode 100644 node_modules/@any-touch/swipe/dist/index.es.js create mode 100644 node_modules/@any-touch/swipe/dist/index.es.js.map create mode 100644 node_modules/@any-touch/swipe/dist/index.js create mode 100644 node_modules/@any-touch/swipe/dist/index.js.map create mode 100644 node_modules/@any-touch/swipe/package.json create mode 100644 node_modules/@any-touch/tap/LICENSE create mode 100644 node_modules/@any-touch/tap/README.md create mode 100644 node_modules/@any-touch/tap/dist/index.d.ts create mode 100644 node_modules/@any-touch/tap/dist/index.es.js create mode 100644 node_modules/@any-touch/tap/dist/index.es.js.map create mode 100644 node_modules/@any-touch/tap/dist/index.js create mode 100644 node_modules/@any-touch/tap/dist/index.js.map create mode 100644 node_modules/@any-touch/tap/package.json create mode 100644 node_modules/@any-touch/vector/LICENSE create mode 100644 node_modules/@any-touch/vector/README.md create mode 100644 node_modules/@any-touch/vector/dist/getAngle.d.ts create mode 100644 node_modules/@any-touch/vector/dist/getCross.d.ts create mode 100644 node_modules/@any-touch/vector/dist/getDirection.d.ts create mode 100644 node_modules/@any-touch/vector/dist/getDotProduct.d.ts create mode 100644 node_modules/@any-touch/vector/dist/getRadian.d.ts create mode 100644 node_modules/@any-touch/vector/dist/getVLength.d.ts create mode 100644 node_modules/@any-touch/vector/dist/index.d.ts create mode 100644 node_modules/@any-touch/vector/dist/index.es.js create mode 100644 node_modules/@any-touch/vector/dist/index.es.js.map create mode 100644 node_modules/@any-touch/vector/dist/index.js create mode 100644 node_modules/@any-touch/vector/dist/index.js.map create mode 100644 node_modules/@any-touch/vector/dist/radianToAngle.d.ts create mode 100644 node_modules/@any-touch/vector/package.json create mode 100644 node_modules/any-event/LICENSE create mode 100644 node_modules/any-event/README.md create mode 100644 node_modules/any-event/dist/index.d.ts create mode 100644 node_modules/any-event/dist/index.es.js create mode 100644 node_modules/any-event/dist/index.es.js.map create mode 100644 node_modules/any-event/dist/index.js create mode 100644 node_modules/any-event/dist/index.js.map create mode 100644 node_modules/any-event/package.json create mode 100644 node_modules/any-touch/LICENSE create mode 100644 node_modules/any-touch/README.md create mode 100644 node_modules/any-touch/dist/any-touch.umd.js create mode 100644 node_modules/any-touch/dist/any-touch.umd.js.map create mode 100644 node_modules/any-touch/dist/any-touch.umd.min.js create mode 100644 node_modules/any-touch/dist/any-touch.umd.min.js.map create mode 100644 node_modules/any-touch/dist/index.d.ts create mode 100644 node_modules/any-touch/dist/index.es.js create mode 100644 node_modules/any-touch/dist/index.es.js.map create mode 100644 node_modules/any-touch/dist/index.js create mode 100644 node_modules/any-touch/dist/index.js.map create mode 100644 node_modules/any-touch/package.json create mode 100644 node_modules/tslib/CopyrightNotice.txt create mode 100644 node_modules/tslib/LICENSE.txt create mode 100644 node_modules/tslib/README.md create mode 100644 node_modules/tslib/SECURITY.md create mode 100644 node_modules/tslib/modules/index.d.ts create mode 100644 node_modules/tslib/modules/index.js create mode 100644 node_modules/tslib/modules/package.json create mode 100644 node_modules/tslib/package.json create mode 100644 node_modules/tslib/tslib.d.ts create mode 100644 node_modules/tslib/tslib.es6.html create mode 100644 node_modules/tslib/tslib.es6.js create mode 100644 node_modules/tslib/tslib.es6.mjs create mode 100644 node_modules/tslib/tslib.html create mode 100644 node_modules/tslib/tslib.js create mode 100644 seat.jpg delete mode 100644 unpackage/dist/dev/mp-weixin/common/assets.js delete mode 100644 unpackage/dist/dev/mp-weixin/index.js delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index2.js delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/indexFu.js delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/indexFu.json delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/indexFu.wxml delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/indexFu.wxss diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..0bcfaf7 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,132 @@ +{ + "name": "canvas", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@any-touch/compute": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@any-touch/compute/-/compute-2.2.0.tgz", + "integrity": "sha512-hrw74b/cVT8SmiKFLValmllajw+bBvTa5iUwIXFVVIJM9T3tO15zZC2QbjVz8Uwi6XjH932RDUILGMs2TNvyQg==", + "dependencies": { + "@any-touch/shared": "^2.2.0", + "@any-touch/vector": "^2.2.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@any-touch/core": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@any-touch/core/-/core-2.2.0.tgz", + "integrity": "sha512-xMHAA5aLCatFto+4fQWyE4YAsyN/LsXS4mnYuVpqFYoNz8dl5FsB/TIyb9JrqMKLYMxxcZ9joqR8gDprH1lwBw==", + "dependencies": { + "@any-touch/shared": "^2.2.0", + "any-event": "^2.2.0" + } + }, + "node_modules/@any-touch/doubletap": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@any-touch/doubletap/-/doubletap-2.2.0.tgz", + "integrity": "sha512-g/Aj/4K2EocalpyKWoUL2HyxI+oJyO+6UwJvEvSpOTdjQXLnK155C0JhxC4pBAJS3yIwFXwU+/2ecagUABWTug==", + "dependencies": { + "@any-touch/compute": "^2.2.0", + "@any-touch/shared": "^2.2.0", + "@any-touch/vector": "^2.2.0" + } + }, + "node_modules/@any-touch/pan": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@any-touch/pan/-/pan-2.2.0.tgz", + "integrity": "sha512-uMkCHbTm5qWji/FvhumP9n1ZCkPU7hy864g+ZhoWZ0OWAmn7s/TKRo4UqPBfqEPUMV6obGZvatrrgBLWT6J57w==", + "dependencies": { + "@any-touch/compute": "^2.2.0", + "@any-touch/shared": "^2.2.0" + } + }, + "node_modules/@any-touch/pinch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@any-touch/pinch/-/pinch-2.2.0.tgz", + "integrity": "sha512-TVLbjvdH2/lKUDSEOqPUi7VoXqAKn1MtsVNHNedpY//vv39Y9+OTfG/6qQoaH8ZS3g/C8cLyoGDu8W9P95b9zQ==", + "dependencies": { + "@any-touch/compute": "^2.2.0" + } + }, + "node_modules/@any-touch/press": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@any-touch/press/-/press-2.2.0.tgz", + "integrity": "sha512-+iIxniO6wrCh621fScGXARgjCxjn/XpqfwxHd7Pq7MVJl51sFrQu1pxWOk6j/I+FA3YfPU9kInO2H45BADWBXw==", + "dependencies": { + "@any-touch/compute": "^2.2.0", + "@any-touch/shared": "^2.2.0" + } + }, + "node_modules/@any-touch/rotate": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@any-touch/rotate/-/rotate-2.2.0.tgz", + "integrity": "sha512-tRph/mSYWXFtrwwtpNzuIcjlyXh1sQvJf/XGJCBVEmi+ePWZRTIc7OV9fLOVZSfXui/9Z+9UYSTSZHJw31skyg==", + "dependencies": { + "@any-touch/compute": "^2.2.0" + } + }, + "node_modules/@any-touch/shared": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@any-touch/shared/-/shared-2.2.0.tgz", + "integrity": "sha512-2n1zWaATi/3osr/dkIUq5O7aSffKUsTM4DsIbPMW1VEO77v/rX2HkLoxt2Djzj5eCGh7An55Vw8NeA33kTTSRA==" + }, + "node_modules/@any-touch/swipe": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@any-touch/swipe/-/swipe-2.2.0.tgz", + "integrity": "sha512-AzHKVuUpZzIaFUq4D4jXSaqfSyKEM/ipqnwKv4439z7R7OKWD5n8sI3T5jDDGKaUe+IIoOYVOgmwPDVCflfw4Q==", + "dependencies": { + "@any-touch/compute": "^2.2.0", + "@any-touch/shared": "^2.2.0" + } + }, + "node_modules/@any-touch/tap": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@any-touch/tap/-/tap-2.2.0.tgz", + "integrity": "sha512-x+FIa/0iaKdXI6aKosThWmuGgPYX9U+QFO3Xp1xBjIMmKevDBOqVzFFFDMj8BU0fuY0aU8a+UfVKpMnar6Y87Q==", + "dependencies": { + "@any-touch/compute": "^2.2.0", + "@any-touch/shared": "^2.2.0", + "@any-touch/vector": "^2.2.0" + } + }, + "node_modules/@any-touch/vector": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@any-touch/vector/-/vector-2.2.0.tgz", + "integrity": "sha512-t7pGYegIDCJl+swwsohZHZKmF71ZMt+hjwVEyhaEP6nQhcx6S7zulxnRxNp1t8s+c/JdK02Q89HnzQ4Ukg4+IA==", + "dependencies": { + "@any-touch/shared": "^2.2.0" + } + }, + "node_modules/any-event": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/any-event/-/any-event-2.2.0.tgz", + "integrity": "sha512-PB4sEiVUjL+5mLmwlAGYdI5/1ouckapxS6+RPIvrGXv9XTMav7M3k3rR/f9fwAR+e2608CTR3FOR5HrOEYTtKA==", + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/any-touch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/any-touch/-/any-touch-2.2.0.tgz", + "integrity": "sha512-UnqDiRHefksz5K/Vnv8NAJX1xrQvA8Cpe4auwMs/EyI3rJlW3uo8eGYcLcU2AOBmwxBQh/aTtFondkkPmi1vcg==", + "dependencies": { + "@any-touch/core": "^2.2.0", + "@any-touch/doubletap": "^2.2.0", + "@any-touch/pan": "^2.2.0", + "@any-touch/pinch": "^2.2.0", + "@any-touch/press": "^2.2.0", + "@any-touch/rotate": "^2.2.0", + "@any-touch/swipe": "^2.2.0", + "@any-touch/tap": "^2.2.0", + "any-event": "^2.2.0", + "tslib": "^2.3.1" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + } + } +} diff --git a/node_modules/@any-touch/compute/LICENSE b/node_modules/@any-touch/compute/LICENSE new file mode 100644 index 0000000..88f4b98 --- /dev/null +++ b/node_modules/@any-touch/compute/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Russell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@any-touch/compute/README.md b/node_modules/@any-touch/compute/README.md new file mode 100644 index 0000000..314acc2 --- /dev/null +++ b/node_modules/@any-touch/compute/README.md @@ -0,0 +1,2 @@ +# @any-touch/compute +计算相关的函数, 比如计算距离和旋转角度. \ No newline at end of file diff --git a/node_modules/@any-touch/compute/dist/ComputeAngle.d.ts b/node_modules/@any-touch/compute/dist/ComputeAngle.d.ts new file mode 100644 index 0000000..e00ac2c --- /dev/null +++ b/node_modules/@any-touch/compute/dist/ComputeAngle.d.ts @@ -0,0 +1,9 @@ +import type { Input, Computed } from '@any-touch/shared'; +/** + * 计算角度 + * @param input 输入 + */ +export default function ComputeAngle(): (input: Input, computed: Computed) => { + angle: number; + deltaAngle: number; +}; diff --git a/node_modules/@any-touch/compute/dist/ComputeDeltaXY.d.ts b/node_modules/@any-touch/compute/dist/ComputeDeltaXY.d.ts new file mode 100644 index 0000000..1597700 --- /dev/null +++ b/node_modules/@any-touch/compute/dist/ComputeDeltaXY.d.ts @@ -0,0 +1,6 @@ +import type { Input } from '@any-touch/shared'; +export default function (): (input: Input) => { + deltaX: number; + deltaY: number; + deltaXYAngle: number; +}; diff --git a/node_modules/@any-touch/compute/dist/ComputeDistance.d.ts b/node_modules/@any-touch/compute/dist/ComputeDistance.d.ts new file mode 100644 index 0000000..1975453 --- /dev/null +++ b/node_modules/@any-touch/compute/dist/ComputeDistance.d.ts @@ -0,0 +1,9 @@ +import type { Input, directionString } from '@any-touch/shared'; +export default function (): (input: Input) => { + displacementX: number; + displacementY: number; + distanceX: number; + distanceY: number; + distance: number; + overallDirection?: directionString; +}; diff --git a/node_modules/@any-touch/compute/dist/ComputeMaxLength.d.ts b/node_modules/@any-touch/compute/dist/ComputeMaxLength.d.ts new file mode 100644 index 0000000..2e7612f --- /dev/null +++ b/node_modules/@any-touch/compute/dist/ComputeMaxLength.d.ts @@ -0,0 +1,5 @@ +import { Input } from '@any-touch/shared'; +declare function ComputeMaxLength(): (input: Input) => { + maxPointLength: number; +}; +export default ComputeMaxLength; diff --git a/node_modules/@any-touch/compute/dist/ComputeScale.d.ts b/node_modules/@any-touch/compute/dist/ComputeScale.d.ts new file mode 100644 index 0000000..0315ab9 --- /dev/null +++ b/node_modules/@any-touch/compute/dist/ComputeScale.d.ts @@ -0,0 +1,5 @@ +import type { Input, Computed } from '@any-touch/shared'; +export default function (): (input: Input, computed: Computed) => { + scale: number; + deltaScale: number; +}; diff --git a/node_modules/@any-touch/compute/dist/ComputeVAndDir.d.ts b/node_modules/@any-touch/compute/dist/ComputeVAndDir.d.ts new file mode 100644 index 0000000..c3deb18 --- /dev/null +++ b/node_modules/@any-touch/compute/dist/ComputeVAndDir.d.ts @@ -0,0 +1,8 @@ +import type { Input, directionString } from '@any-touch/shared'; +export default function (): (input: Input) => { + velocityX: number; + velocityY: number; + speedX: number; + speedY: number; + direction: directionString; +}; diff --git a/node_modules/@any-touch/compute/dist/ComputeVectorForMutli.d.ts b/node_modules/@any-touch/compute/dist/ComputeVectorForMutli.d.ts new file mode 100644 index 0000000..d54f940 --- /dev/null +++ b/node_modules/@any-touch/compute/dist/ComputeVectorForMutli.d.ts @@ -0,0 +1,11 @@ +import type { Input } from '@any-touch/shared'; +/** + * + * @param input 输入 + * @returns 记录多点输入时的"起/上一个/终"向量 + */ +export default function (): (input: Input) => { + startVecotr: import("@any-touch/shared").Point; + prevVecotr: import("@any-touch/shared").Point; + activeVecotr: import("@any-touch/shared").Point; +}; diff --git a/node_modules/@any-touch/compute/dist/index.d.ts b/node_modules/@any-touch/compute/dist/index.d.ts new file mode 100644 index 0000000..5566645 --- /dev/null +++ b/node_modules/@any-touch/compute/dist/index.d.ts @@ -0,0 +1,7 @@ +export { default as ComputeAngle } from './ComputeAngle'; +export { default as ComputeDeltaXY } from './ComputeDeltaXY'; +export { default as ComputeDistance } from './ComputeDistance'; +export { default as ComputeScale } from './ComputeScale'; +export { default as ComputeVAndDir } from './ComputeVAndDir'; +export { default as ComputeMaxLength } from './ComputeMaxLength'; +export { default as ComputeVectorForMutli } from './ComputeVectorForMutli'; diff --git a/node_modules/@any-touch/compute/dist/index.es.js b/node_modules/@any-touch/compute/dist/index.es.js new file mode 100644 index 0000000..eb7361b --- /dev/null +++ b/node_modules/@any-touch/compute/dist/index.es.js @@ -0,0 +1,2 @@ +import{getAngle as t,radianToAngle as n,getVLength as e,getDirection as o}from"@any-touch/vector";import{TYPE_START as r,TYPE_MOVE as i,CLIENT_X as a,CLIENT_Y as c,round2 as u,COMPUTE_INTERVAL as s}from"@any-touch/shared";function p(){let n=0,e=0;return function(o,r){const{prevVecotr:i,startVecotr:a,activeVecotr:c}=r;return c&&(e=Math.round(t(c,i)),n=Math.round(t(c,a))),{angle:n,deltaAngle:e}}}function d(){return function(t){const{prevInput:e}=t;let o=0,r=0,i=0;if(void 0!==e&&(o=t.x-e.x,r=t.y-e.y,0!==o||0!==r)){const t=Math.sqrt(Math.pow(o,2)+Math.pow(r,2));i=Math.round(n(Math.acos(Math.abs(o)/t)))}return{deltaX:o,deltaY:r,deltaXYAngle:i}}}function h(){let t,n=0,u=0,s=0,p=0,d=0;return function(h){const{phase:l,startInput:f}=h;return r===l?(n=0,u=0,s=0,p=0,d=0):i===l&&(n=Math.round(h.points[0][a]-f.points[0][a]),u=Math.round(h.points[0][c]-f.points[0][c]),s=Math.abs(n),p=Math.abs(u),d=Math.round(e({x:s,y:p})),t=o(n,u)),{displacementX:n,displacementY:u,distanceX:s,distanceY:p,distance:d,overallDirection:t}}}function l(){let t=1;return function(n,o){let r=1;const{prevVecotr:i,startVecotr:a,activeVecotr:c}=o;return c&&(r=u(e(c)/e(i)),t=u(e(c)/e(a))),{scale:t,deltaScale:r}}}function f(){let t,n,e=0,r=0,i=0,a=0;return function(c){if(void 0!==c){n=n||c.startInput;const u=c.timestamp-n.timestamp;if(s { + // ev包含位置/时间/事件对象等属性. +}); +// start / move / end / cancel +at.on('at:start', onStart); +at.on('at:move', onMove); +at.on('at:end', onEnd); +at.on('at:cancel', onCancel); +``` \ No newline at end of file diff --git a/node_modules/@any-touch/core/dist/bindElement.d.ts b/node_modules/@any-touch/core/dist/bindElement.d.ts new file mode 100644 index 0000000..c96adfa --- /dev/null +++ b/node_modules/@any-touch/core/dist/bindElement.d.ts @@ -0,0 +1,3 @@ +import type { SupportElement } from 'any-touch'; +import type { NativeEvent } from '@any-touch/shared'; +export default function (el: SupportElement, catchEvent: (e: NativeEvent) => void, options?: boolean | AddEventListenerOptions): () => void; diff --git a/node_modules/@any-touch/core/dist/canPreventDefault.d.ts b/node_modules/@any-touch/core/dist/canPreventDefault.d.ts new file mode 100644 index 0000000..c4af60f --- /dev/null +++ b/node_modules/@any-touch/core/dist/canPreventDefault.d.ts @@ -0,0 +1,9 @@ +import type { NativeEvent } from '@any-touch/shared'; +import { Options } from './index'; +/** + * 计算是否需要阻止默认事件 + * @param event touch/mouse事件对象 + * @param options anytouch的选项 + * @returns 是否阻止默认事件 + */ +export default function (event: NativeEvent, options: Options): boolean; diff --git a/node_modules/@any-touch/core/dist/const.d.ts b/node_modules/@any-touch/core/dist/const.d.ts new file mode 100644 index 0000000..96d7bad --- /dev/null +++ b/node_modules/@any-touch/core/dist/const.d.ts @@ -0,0 +1,17 @@ +export declare const TOUCH_START = "touchstart"; +export declare const TOUCH_MOVE = "touchmove"; +export declare const TOUCH_END = "touchend"; +export declare const TOUCH_CANCEL = "touchcancel"; +export declare const MOUSE_UP = "mouseup"; +export declare const MOUSE_MOVE = "mousemove"; +export declare const MOUSE_DOWN = "mousedown"; +export declare const CLIENT_X = "clientX"; +export declare const CLIENT_Y = "clientY"; +/** + * 输入阶段 + */ +export declare const TYPE_START = "start"; +export declare const TYPE_MOVE = "move"; +export declare const TYPE_CANCEL = "cancel"; +export declare const TYPE_END = "end"; +export declare function isFunction(input: any): input is Function; diff --git a/node_modules/@any-touch/core/dist/createInput/index.d.ts b/node_modules/@any-touch/core/dist/createInput/index.d.ts new file mode 100644 index 0000000..cc66713 --- /dev/null +++ b/node_modules/@any-touch/core/dist/createInput/index.d.ts @@ -0,0 +1,2 @@ +export { default as mouse } from './mouse'; +export { default as touch } from './touch'; diff --git a/node_modules/@any-touch/core/dist/createInput/inputCreator.d.ts b/node_modules/@any-touch/core/dist/createInput/inputCreator.d.ts new file mode 100644 index 0000000..910d17e --- /dev/null +++ b/node_modules/@any-touch/core/dist/createInput/inputCreator.d.ts @@ -0,0 +1,6 @@ +/** + * event(Mouse|Touch) => BasicsInput => Input => Computed => AnyTouchEvent + * 构造统一的Input格式 + */ +import type { PubicEvent, Input } from '@any-touch/shared'; +export default function (): (basicsInput: PubicEvent) => Input | void; diff --git a/node_modules/@any-touch/core/dist/createInput/mouse.d.ts b/node_modules/@any-touch/core/dist/createInput/mouse.d.ts new file mode 100644 index 0000000..41f99c0 --- /dev/null +++ b/node_modules/@any-touch/core/dist/createInput/mouse.d.ts @@ -0,0 +1 @@ +export default function (): (event: MouseEvent) => void | import("@any-touch/shared").Input; diff --git a/node_modules/@any-touch/core/dist/createInput/touch.d.ts b/node_modules/@any-touch/core/dist/createInput/touch.d.ts new file mode 100644 index 0000000..41d38cf --- /dev/null +++ b/node_modules/@any-touch/core/dist/createInput/touch.d.ts @@ -0,0 +1,4 @@ +/** + * 格式化Touch事件对象 + */ +export default function (el?: Element): (event: TouchEvent) => void | import("@any-touch/shared").Input; diff --git a/node_modules/@any-touch/core/dist/dispatchDomEvent.d.ts b/node_modules/@any-touch/core/dist/dispatchDomEvent.d.ts new file mode 100644 index 0000000..7ece330 --- /dev/null +++ b/node_modules/@any-touch/core/dist/dispatchDomEvent.d.ts @@ -0,0 +1,5 @@ +import { AnyTouchEvent } from '@any-touch/shared'; +/** + * 触发dom事件 + */ +export default function (typeName: string, el: EventTarget, payload: Partial, eventInit?: EventInit): boolean | void; diff --git a/node_modules/@any-touch/core/dist/index.d.ts b/node_modules/@any-touch/core/dist/index.d.ts new file mode 100644 index 0000000..71ef932 --- /dev/null +++ b/node_modules/@any-touch/core/dist/index.d.ts @@ -0,0 +1,119 @@ +/** + * 主程序, 不包含手势, + * 主要用来适配Mouse/Touch事件 + * ==================== 参考 ==================== + * https://segmentfault.com/a/1190000010511484#articleHeader0 + * https://segmentfault.com/a/1190000007448808#articleHeader1 + * hammer.js http://hammerjs.github.io/ + * ==================== 流程 ==================== + * Event(Mouse|Touch) => BaseInput => Input => Computed => AnyTouchEvent + */ +import AnyEvent from 'any-event'; +import type { SupportElement } from 'any-touch'; +import type { UnionToIntersection, Computed, NativeEvent, ComputeFunctionCreator, PluginContext, Plugin, Input } from '@any-touch/shared'; +export { AnyTouchEvent } from '@any-touch/shared'; +export interface Options { + domEvents?: false | EventInit; + preventDefault?: boolean | ((e: NativeEvent) => boolean); +} +declare type GetPluginContext = N extends keyof PluginContextMap ? PluginContextMap[N] : (PluginContext | undefined); +/** + * 默认的事件名和事件对象映射 + */ +export interface EventMap { + input: Input; + computed: Record; + u: undefined; + 'at:after': Computed; + 'at:start': Input; + 'at:move': Input; + 'at:cancel': Input; + 'at:end': Input; +} +/** + * 插件映射 + * {名称: 插件实例} + * @example + * {tap:TapContext} + */ +export interface PluginContextMap { +} +/** + * 手势库的核心, + * 本身不具备手势识别, + * 需要加载识别器插件. + * @example + * import Core from '@any-touch/core'; + * import pan from '@any-touch/pan'; + * const at = new Core(); + * at.use(pan); + */ +export default class extends AnyEvent { + /** + * 版本 + */ + v: string; + /** + * 当前绑定元素 + */ + el?: SupportElement; + /** + * 当前插件(仅供插件开发者使用) + */ + c?: PluginContext; + private __options; + private __inputCreatorMap; + private __computeFunctionList; + private __computeFunctionCreatorList; + private __pluginContexts; + private __isIgnoreMouse; + /** + * @param el 目标元素, 微信下没有el + * @param options 选项 + */ + constructor(el?: SupportElement, options?: Options); + /** + * 加载并初始化插件 + * @param plugin 插件 + * @param pluginOptions 插件选项 + */ + use

(plugin: P, pluginOptions?: Parameters

[1]): void; + /** + * 监听input变化 + * @param event Touch / Mouse事件对象 + */ + catchEvent(event: NativeEvent): void; + /** + * 缓存计算函数生成器到队列 + * @param computeFunctionCreatorList 一组计算函数生成器 + */ + compute(computeFunctionCreatorList: CList, callback: (computed: UnionToIntersection>> & Input) => void): void; + /** + * 拦截器 + * 可以控制事件的触发 + * @param interceptor 拦截函数 + */ + beforeEach(interceptor: (type: string, next: () => void) => void): void; + /** + * 获取识别器通过名字 + * @param name 识别器的名字 + * @return 返回识别器 + */ + get(name: N): GetPluginContext; + /** + * 设置选项 + * @param newOptions 选项 + */ + set(newOptions: Partial): void; + /** + * 带DOM事件的emit(仅供插件开发者使用) + * @param type 事件类型 + * @param payload 数据 + * @param pluginContext 插件实例 + */ + emit2(type: string, payload: Computed, pluginContext: PluginContext): void; + /** + * 销毁 + */ + destroy(): void; +} diff --git a/node_modules/@any-touch/core/dist/index.es.js b/node_modules/@any-touch/core/dist/index.es.js new file mode 100644 index 0000000..29d59c2 --- /dev/null +++ b/node_modules/@any-touch/core/dist/index.es.js @@ -0,0 +1,2 @@ +import t from"any-event";import{TYPE_START as e,TYPE_END as n,TYPE_CANCEL as s,CLIENT_X as o,CLIENT_Y as i}from"@any-touch/shared";function r(){let t,o,i,r,a=0;return function(u){if(t=o,void 0!==u){a=Number.MAX_SAFE_INTEGER>a?++a:1;const h=function(t,o){const{phase:i,points:r,changedPoints:a,nativeEvent:u}=t,h=r.length,p=e===i,g=n===i&&0===h||s===i,l=Date.now(),{x:d,y:m}=c(r)||c(a),{currentTarget:v}=u;return Object.assign(t,{id:o,x:d,y:m,timestamp:l,isStart:p,isEnd:g,pointLength:h,currentTarget:v,getOffset(t=v){const e=t.getBoundingClientRect();return{x:d-Math.round(e.left),y:m-Math.round(e.top)}}})}(u,a);o=h;const{isStart:p,pointLength:g}=h;return p&&(i=h,t=void 0,r=1(t.x+=e[o],t.y+=e[i],t)),{x:0,y:0});return{x:Math.round(n.x/e),y:Math.round(n.y/e)}}}function a(t,e,n,s){const o={};for(const t in n)["target","currentTarget","type"].includes(t)||(o[t]=n[t]);let i;return document.createEvent?(i=document.createEvent("HTMLEvents"),i.initEvent(t,null==s?void 0:s.bubbles,null==s?void 0:s.cancelable)):i=new Event(t,s),Object.assign(i,o,{match:()=>n.targets&&0i.currentTarget.contains(t)))}),e.dispatchEvent(i)}function u(t,e){const{preventDefault:n}=e;return s=n,"[object Function]"===Object.prototype.toString.call(s)?n(t):!!n;var s}const h=["touchstart","touchmove","touchend","touchcancel","mousedown"],p=["mousemove","mouseup"];const g={domEvents:{bubbles:!0,cancelable:!0},preventDefault:t=>{if(t.target&&"tagName"in t.target){const{tagName:e}=t.target;return!/^(?:INPUT|TEXTAREA|BUTTON|SELECT)$/.test(e)}return!1}};class l extends t{constructor(t,e){super(),this.v="2.1.3",this.__computeFunctionList=[],this.__computeFunctionCreatorList=[],this.__pluginContexts=[],this.__isIgnoreMouse=!1,this.el=t,this.c={},this.__options=Object.assign(Object.assign({},g),e);const n=function(t){const e=r();return function(n){const s=[],o=[];Array.from(n.touches).forEach((({clientX:e,clientY:n,target:i})=>{(null==t?void 0:t.contains(i))&&(s.push(i),o.push({clientX:e,clientY:n,target:i}))}));const i=Array.from(n.changedTouches).map((({clientX:t,clientY:e,target:n})=>({clientX:t,clientY:e,target:n})));return e({phase:n.type.replace("touch",""),changedPoints:i,points:o,nativeEvent:n,target:n.target,targets:s})}}(this.el),s=function(){let t,e=!1,n=null;const s=r();return function(o){const{clientX:i,clientY:r,type:c,button:a,target:u}=o;let h,p=[{clientX:i,clientY:r,target:u}];if("mousedown"===c&&0===a)n=u,e=!0,h="start";else{if(!e)return;"mousemove"===c?h="move":"mouseup"===c&&(p=[],h="end",e=!1)}const g=t||[{clientX:i,clientY:r,target:u}];if(t=[{clientX:i,clientY:r,target:u}],void 0!==h)return s({phase:h,changedPoints:g,points:p,target:n,targets:[n],nativeEvent:o})}}();if(this.__inputCreatorMap={touchstart:n,touchmove:n,touchend:n,touchcancel:n,mousedown:s,mousemove:s,mouseup:s},this.on("at:after",(t=>{const{target:e,__type:n}=t,{domEvents:s}=this.__options;s&&void 0!==this.el&&e&&(a(n,e,t,s),a("at:after",e,t,s))})),void 0!==t){t.style.webkitTapHighlightColor="rgba(0,0,0,0)";let e=!1;try{const t={};Object.defineProperty(t,"passive",{get(){e=!0}}),window.addEventListener("_",(()=>{}),t)}catch(t){}this.on("u",function(t,e,n){return h.forEach((s=>{t.addEventListener(s,e,n)})),p.forEach((t=>{window.addEventListener(t,e,n)})),()=>{h.forEach((n=>{t.removeEventListener(n,e)})),p.forEach((t=>{window.removeEventListener(t,e)}))}}(t,this.catchEvent.bind(this),!1===this.__options.preventDefault&&e?{passive:!0}:{passive:!1}))}}use(t,e){this.__pluginContexts.push(t(this,e))}catchEvent(t){const e=this.__inputCreatorMap[t.type](t);if(void 0!==e){const n=()=>t.stopPropagation(),s=()=>t.stopImmediatePropagation(),o=()=>t.preventDefault();if(u(t,this.__options))o();else if("touchstart"===t.type?this.__isIgnoreMouse=!0:"touchmove"===t.type&&(this.__isIgnoreMouse=!1),this.__isIgnoreMouse&&t.type.startsWith("mouse"))return void("mouseup"===t.type&&(this.__isIgnoreMouse=!1));this.emit("input",e),this.emit2(`at:${e.phase}`,e,{});const i={};this.__computeFunctionList.forEach((t=>{const n=t(e,i);if(void 0!==n)for(const t in n)i[t]=n[t]})),this.emit("computed",Object.assign(Object.assign(Object.assign({},e),i),{stopPropagation:n,stopImmediatePropagation:s,preventDefault:o}))}}compute(t,e){for(const e of t)this.__computeFunctionCreatorList.includes(e)||(this.__computeFunctionCreatorList.push(e),this.__computeFunctionList.push(e()));this.on("computed",e)}beforeEach(t){super.beforeEach(((e,n)=>{var s;(null===(s=this.c)||void 0===s?void 0:s.name)?t(e,n):n()}))}get(t){return this.__pluginContexts.find((e=>t===e.name))}set(t){this.__options=Object.assign(Object.assign({},this.__options),t)}emit2(t,e,n){this.c=n,this.emit(t,Object.assign(Object.assign({},e),{type:t}),(()=>{this.emit("at:after",Object.assign(Object.assign({},e),{name:t,__type:t}))}))}destroy(){this.emit("u"),super.destroy()}}export{l as default}; +//# sourceMappingURL=index.es.js.map diff --git a/node_modules/@any-touch/core/dist/index.es.js.map b/node_modules/@any-touch/core/dist/index.es.js.map new file mode 100644 index 0000000..fe274bf --- /dev/null +++ b/node_modules/@any-touch/core/dist/index.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.es.js","sources":["../../../../packages/core/src/createInput/inputCreator.ts","../../../../packages/core/src/dispatchDomEvent.ts","../../../../packages/core/src/canPreventDefault.ts","../../../../packages/core/src/const.ts","../../../../packages/core/src/bindElement.ts","../../../../packages/core/src/index.ts","../../../../packages/core/src/createInput/touch.ts","../../../../packages/core/src/createInput/mouse.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["prevInput","activeInput","startInput","startMultiInput","id","basicsInput","Number","MAX_SAFE_INTEGER","pureInput","phase","points","changedPoints","nativeEvent","pointLength","length","isStart","TYPE_START","isEnd","TYPE_END","TYPE_CANCEL","timestamp","Date","now","x","y","getCenter","currentTarget","Object","assign","getOffset","el","rect","getBoundingClientRect","Math","round","left","top","extendInput","clientX","clientY","countPoint","reduce","point","CLIENT_X","CLIENT_Y","typeName","payload","eventInit","data","key","includes","event","document","createEvent","initEvent","bubbles","cancelable","Event","match","targets","every","target","contains","dispatchEvent","options","preventDefault","input","prototype","toString","call","ELEMENT_TYPES","WINDOW_TYPES","DEFAULT_OPTIONS","domEvents","tagName","test","AnyEvent","constructor","super","this","c","__options","createInputFromTouch","createInput","inputCreator","Array","from","touches","forEach","push","changedTouches","map","type","replace","touch","createInputFromMouse","prevPoints","isPressed","_target","button","mouse","__inputCreatorMap","touchstart","touchmove","touchend","touchcancel","mousedown","mousemove","mouseup","on","__type","dispatchDomEvent","style","webkitTapHighlightColor","supportsPassive","opts","defineProperty","get","window","addEventListener","catchEvent","types","removeEventListener","bindElement","bind","passive","use","plugin","pluginOptions","__pluginContexts","stopPropagation","stopImmediatePropagation","canPreventDefault","__isIgnoreMouse","startsWith","emit","emit2","computed","__computeFunctionList","compute","result","computeFunctionCreatorList","callback","computeFunctionCreator","__computeFunctionCreatorList","beforeEach","interceptor","next","name","find","pluginContext","set","newOptions","destroy"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@any-touch/core/dist/index.js b/node_modules/@any-touch/core/dist/index.js new file mode 100644 index 0000000..551700a --- /dev/null +++ b/node_modules/@any-touch/core/dist/index.js @@ -0,0 +1,2 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),e=require("any-event"),n=require("@any-touch/shared");function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}function o(){var e,r,o,a,u=0;return function(s){if(e=r,void 0!==s){var c=function(t,e){var r=t.phase,o=t.points,a=t.changedPoints,u=t.nativeEvent,s=o.length,c=n.TYPE_START===r,p=n.TYPE_END===r&&0===s||n.TYPE_CANCEL===r,v=Date.now(),f=i(o)||i(a),_=f.x,h=f.y,l=u.currentTarget;return Object.assign(t,{id:e,x:_,y:h,timestamp:v,isStart:c,isEnd:p,pointLength:s,currentTarget:l,getOffset:function(t){void 0===t&&(t=l);var e=t.getBoundingClientRect();return{x:_-Math.round(e.left),y:h-Math.round(e.top)}}})}(s,u=Number.MAX_SAFE_INTEGER>u?++u:1);r=c;var p=c.isStart,v=c.pointLength;return p&&(o=c,e=void 0,a=1 { + console.log(event) // 包含点击位置信息 +}); +``` + +## 源码解析 +因为是基于[@any-touch/tap](https://github.com/any86/any-touch/tree/master/packages/tap)实现的, 所以代码不多, 只是使用[beforeEach拦截器](https://github.com/any86/any-touch/blob/master/docs/API.md#beforeeachhook). +```typescript +export default function (at: Core) { + at.use(tap, { name: 'doubletap', tapTimes: 2 }); + const doubleTapContext = at.get('doubletap') + let timeID: number; + at.beforeEach((type, next) => { + if ('tap' === type) { + clearTimeout(timeID); + timeID = setTimeout(() => { + if ([STATE.POSSIBLE, STATE.FAILED].includes(doubleTapContext.state)) { + next(); + } + }, 300); + } else { + next(); + } + }); + return doubleTapContext; +} +``` + +这里只需要多理解一个概念就是STATE(识别器的状态). +|名称|解释| +|---|---| +|POSSIBLE|待识别| +|RECOGNIZED|已识别| +|FAILED|识别失败| + + +识别流程如下, 每次点击屏幕, STATE是"**POSSIBLE**状态, 识别成功后状态变成"**RECOGNIZED**", 识别失败变成"**FAILED**". + +特别解释下"**FAILED**"的发生情况,用doubletap识别器举例, 当2次点击间隔时间过长, doubletap的状态就会变成"**FAILED**", 当第三次点击的时候状态又变回"**POSSIBLE**". + +[完整源码](https://github.com/any86/any-touch/blob/master/packages/doubletap/src/index.ts) + +## N击 +如果看懂了双击的逻辑, 那么稍作修改就可以实现"3击". +```typescript +export default function (at: Core) { + // ⭐只有这一行的tapTimes改成了3 + at.use(tap, { name: 'doubletap', tapTimes: 3 }); + + // 未改动 + const doubleTapContext = at.get('doubletap') + let timeID: number; + at.beforeEach((type, next) => { + if ('tap' === type) { + clearTimeout(timeID); + timeID = setTimeout(() => { + if ([STATE.POSSIBLE, STATE.FAILED].includes(doubleTapContext.state)) { + next(); + } + }, 300); + } else { + next(); + } + }); + return doubleTapContext; +} +``` \ No newline at end of file diff --git a/node_modules/@any-touch/doubletap/dist/index.d.ts b/node_modules/@any-touch/doubletap/dist/index.d.ts new file mode 100644 index 0000000..34d87d6 --- /dev/null +++ b/node_modules/@any-touch/doubletap/dist/index.d.ts @@ -0,0 +1,21 @@ +import Core from '@any-touch/core'; +import { TapContext } from '@any-touch/tap'; +import type { AnyTouchEvent } from '@any-touch/shared'; +/** + * 扩展插件映射 + */ +declare module '@any-touch/core' { + interface PluginContextMap { + doubletap: TapContext; + } + interface EventMap { + doubletap: AnyTouchEvent; + } +} +/** + * "拖拽"识别器 + * @param at AnyTouch实例 + * @param options 识别器选项 + * @returns 识别器实例 + */ +export default function (at: Core): any; diff --git a/node_modules/@any-touch/doubletap/dist/index.es.js b/node_modules/@any-touch/doubletap/dist/index.es.js new file mode 100644 index 0000000..daa1ad2 --- /dev/null +++ b/node_modules/@any-touch/doubletap/dist/index.es.js @@ -0,0 +1,2 @@ +import t from"@any-touch/tap";function e(e){e.use(t,{name:"doubletap",tapTimes:2});const a=e.get("doubletap");let o;return e.beforeEach(((t,e)=>{"tap"===t?(clearTimeout(o),o=setTimeout((()=>{[0,2].includes(a.state)&&e()}),300)):e()})),a}export{e as default}; +//# sourceMappingURL=index.es.js.map diff --git a/node_modules/@any-touch/doubletap/dist/index.es.js.map b/node_modules/@any-touch/doubletap/dist/index.es.js.map new file mode 100644 index 0000000..3deb0bd --- /dev/null +++ b/node_modules/@any-touch/doubletap/dist/index.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.es.js","sources":["../../../../packages/doubletap/src/index.ts"],"sourcesContent":[null],"names":["at","use","tap","name","tapTimes","doubleTapContext","get","timeID","beforeEach","type","next","clearTimeout","setTimeout","includes","state"],"mappings":"yCA0ByBA,GACrBA,EAAGC,IAAIC,EAAK,CAAEC,KAAM,YAAaC,SAAU,IAC3C,MAAMC,EAAmBL,EAAGM,IAAI,aAChC,IAAIC,EAaJ,OAZAP,EAAGQ,YAAW,CAACC,EAAMC,KACb,QAAUD,GACVE,aAAaJ,GACbA,EAAUK,YAAoC,KACtC,MAA+BC,SAASR,EAAiBS,QACzDJ,MAEL,MAEHA,OAGDL"} \ No newline at end of file diff --git a/node_modules/@any-touch/doubletap/dist/index.js b/node_modules/@any-touch/doubletap/dist/index.js new file mode 100644 index 0000000..651b2b3 --- /dev/null +++ b/node_modules/@any-touch/doubletap/dist/index.js @@ -0,0 +1,2 @@ +"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@any-touch/tap"));exports.default=function(e){e.use(t.default,{name:"doubletap",tapTimes:2});var u,a=e.get("doubletap");return e.beforeEach((function(e,t){"tap"===e?(clearTimeout(u),u=setTimeout((function(){[0,2].includes(a.state)&&t()}),300)):t()})),a}; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@any-touch/doubletap/dist/index.js.map b/node_modules/@any-touch/doubletap/dist/index.js.map new file mode 100644 index 0000000..4eeb536 --- /dev/null +++ b/node_modules/@any-touch/doubletap/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../../packages/doubletap/src/index.ts"],"sourcesContent":[null],"names":["at","use","tap","name","tapTimes","timeID","doubleTapContext","get","beforeEach","type","next","clearTimeout","setTimeout","includes","state"],"mappings":"wMA0ByBA,GACrBA,EAAGC,IAAIC,UAAK,CAAEC,KAAM,YAAaC,SAAU,IAC3C,IACIC,EADEC,EAAmBN,EAAGO,IAAI,aAchC,OAZAP,EAAGQ,YAAW,SAACC,EAAMC,GACb,QAAUD,GACVE,aAAaN,GACbA,EAAUO,YAAoC,WACtC,MAA+BC,SAASP,EAAiBQ,QACzDJ,MAEL,MAEHA,OAGDJ"} \ No newline at end of file diff --git a/node_modules/@any-touch/doubletap/package.json b/node_modules/@any-touch/doubletap/package.json new file mode 100644 index 0000000..a4822b5 --- /dev/null +++ b/node_modules/@any-touch/doubletap/package.json @@ -0,0 +1,23 @@ +{ + "name": "@any-touch/doubletap", + "version": "2.2.0", + "description": "any-touch的识别器, 用来识别双击手势, 是Tap识别器的一个特例", + "main": "./dist/index", + "module": "./dist/index.es.js", + "types": "dist/index.d.ts", + "author": "any86", + "license": "MIT", + "dependencies": { + "@any-touch/compute": "^2.2.0", + "@any-touch/shared": "^2.2.0", + "@any-touch/vector": "^2.2.0" + }, + "files": [ + "dist/*" + ], + "publishConfig": { + "access": "public" + }, + "sideEffects": false, + "gitHead": "c3df8dd84bd61d91f766f6d7f31dbefe6e463ce6" +} diff --git a/node_modules/@any-touch/pan/LICENSE b/node_modules/@any-touch/pan/LICENSE new file mode 100644 index 0000000..88f4b98 --- /dev/null +++ b/node_modules/@any-touch/pan/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Russell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@any-touch/pan/README.md b/node_modules/@any-touch/pan/README.md new file mode 100644 index 0000000..3738f40 --- /dev/null +++ b/node_modules/@any-touch/pan/README.md @@ -0,0 +1,28 @@ +# @any-touch/pan +**拖拽**识别器. + +## 安装 +```shell +npm i -S @any-touch/pan +``` + +## 快速开始 +```javascript +// 只加载pan识别器(拖拽) +import Core from '@any-touch/core'; +import pan from '@any-touch/pan'; +const at = new Core(el); +at.use(pan, 参数) + +// 拖拽 +at.on('pan', (event) => { + // event包含位置/速度/方向等信息 +}); +``` + +## 参数 +|名称|数据类型|默认值|说明| +|---|---|---|---| +|name|`String`|'pan'|自定义事件名称| +|pointLength|`Number`|1|支持的触点数, 可支持多指拖拽| +|threshold| `Number`|10|拖拽超过10px后触发pan事件| \ No newline at end of file diff --git a/node_modules/@any-touch/pan/dist/index.d.ts b/node_modules/@any-touch/pan/dist/index.d.ts new file mode 100644 index 0000000..84016d5 --- /dev/null +++ b/node_modules/@any-touch/pan/dist/index.d.ts @@ -0,0 +1,38 @@ +import type { PluginContext, AnyTouchEvent } from '@any-touch/shared'; +import Core from '@any-touch/core'; +declare const DEFAULT_OPTIONS: { + name: string; + threshold: number; + pointLength: number; +}; +/** + * 实例 + */ +export declare type PanContext = PluginContext & typeof DEFAULT_OPTIONS; +/** + * 扩展插件映射 + */ +declare module '@any-touch/core' { + interface PluginContextMap { + pan: PanContext; + } + interface EventMap { + pan: AnyTouchEvent; + panstart: AnyTouchEvent; + panmove: AnyTouchEvent; + panend: AnyTouchEvent; + pancancel: AnyTouchEvent; + panup: AnyTouchEvent; + pandown: AnyTouchEvent; + panright: AnyTouchEvent; + panleft: AnyTouchEvent; + } +} +/** + * "拖拽"识别器 + * @param at AnyTouch实例 + * @param options 识别器选项 + * @returns 识别器实例 + */ +export default function (at: Core, options?: Partial): PanContext; +export {}; diff --git a/node_modules/@any-touch/pan/dist/index.es.js b/node_modules/@any-touch/pan/dist/index.es.js new file mode 100644 index 0000000..fc45f73 --- /dev/null +++ b/node_modules/@any-touch/pan/dist/index.es.js @@ -0,0 +1,2 @@ +import{createPluginContext as t,resetState as e,isDisabled as n,flow as o,isMoveOrEndOrCancel as i,getStatusName as s,TYPE_END as r,TYPE_CANCEL as a}from"@any-touch/shared";import{ComputeVAndDir as c,ComputeDistance as h,ComputeDeltaXY as m}from"@any-touch/compute";const p={name:"pan",threshold:10,pointLength:1};function u(u,d){const f=t(p,d);return u.compute([c,h,m],(t=>{if(e(f),n(f))return;const c=function(){const{pointLength:e,distance:n}=t;return f.pointLength===e&&f.threshold<=n}();if(f.state=o(c,f.state,t.phase),c||i(f.state)){const{name:e}=f;u.emit2(e,t,f),u.emit2(e+s(f.state),t,f),![r,a].includes(t.phase)&&t.direction&&u.emit2(e+t.direction,t,f)}})),f}export{u as default}; +//# sourceMappingURL=index.es.js.map diff --git a/node_modules/@any-touch/pan/dist/index.es.js.map b/node_modules/@any-touch/pan/dist/index.es.js.map new file mode 100644 index 0000000..fcbc691 --- /dev/null +++ b/node_modules/@any-touch/pan/dist/index.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.es.js","sources":["../../../../packages/pan/src/index.ts"],"sourcesContent":[null],"names":["DEFAULT_OPTIONS","name","threshold","pointLength","at","options","context","createPluginContext","compute","ComputeVAndDir","ComputeDistance","ComputeDeltaXY","computed","resetState","isDisabled","isValid","distance","test","state","flow","phase","isMoveOrEndOrCancel","emit2","getStatusName","TYPE_END","TYPE_CANCEL","includes","direction"],"mappings":"0QASA,MAAMA,EAAkB,CAAEC,KAAM,MAAOC,UAAW,GAAIC,YAAa,cAkC1CC,EAAUC,GAC/B,MAAMC,EAAUC,EAAoBP,EAAiBK,GAyBrD,OAtBAD,EAAGI,QAAQ,CAACC,EAAgBC,EAAiBC,IAAiBC,IAI1D,GAFAC,EAAWP,GAEPQ,EAAWR,GAAU,OACzB,MAAMS,EAYN,WACI,MAAMZ,YAAEA,EAAWa,SAAEA,GAAaJ,EAClC,OAAON,EAAQH,cAAgBA,GAAeG,EAAQJ,WAAac,EAdvDC,GAEhB,GADAX,EAAQY,MAAQC,EAAKJ,EAAST,EAAQY,MAAON,EAASQ,OAClDL,GAAWM,EAAoBf,EAAQY,OAAQ,CAC/C,MAAMjB,KAAEA,GAASK,EACjBF,EAAGkB,MAAMrB,EAAMW,EAAUN,GACzBF,EAAGkB,MAAMrB,EAAOsB,EAAcjB,EAAQY,OAAQN,EAAUN,IACnD,CAACkB,EAAUC,GAAaC,SAASd,EAASQ,QAAUR,EAASe,WAC9DvB,EAAGkB,MAAMrB,EAAOW,EAASe,UAAWf,EAAUN,OAUnDA"} \ No newline at end of file diff --git a/node_modules/@any-touch/pan/dist/index.js b/node_modules/@any-touch/pan/dist/index.js new file mode 100644 index 0000000..13d6b5e --- /dev/null +++ b/node_modules/@any-touch/pan/dist/index.js @@ -0,0 +1,2 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@any-touch/shared"),t=require("@any-touch/compute"),a={name:"pan",threshold:10,pointLength:1};exports.default=function(n,i){var r=e.createPluginContext(a,i);return n.compute([t.ComputeVAndDir,t.ComputeDistance,t.ComputeDeltaXY],(function(t){if(e.resetState(r),!e.isDisabled(r)){var a,i,o=(a=t.pointLength,i=t.distance,r.pointLength===a&&r.threshold<=i);if(r.state=e.flow(o,r.state,t.phase),o||e.isMoveOrEndOrCancel(r.state)){var s=r.name;n.emit2(s,t,r),n.emit2(s+e.getStatusName(r.state),t,r),![e.TYPE_END,e.TYPE_CANCEL].includes(t.phase)&&t.direction&&n.emit2(s+t.direction,t,r)}}})),r}; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@any-touch/pan/dist/index.js.map b/node_modules/@any-touch/pan/dist/index.js.map new file mode 100644 index 0000000..d17bae4 --- /dev/null +++ b/node_modules/@any-touch/pan/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../../packages/pan/src/index.ts"],"sourcesContent":[null],"names":["DEFAULT_OPTIONS","name","threshold","pointLength","at","options","context","createPluginContext","compute","ComputeVAndDir","ComputeDistance","ComputeDeltaXY","computed","resetState","isDisabled","distance","isValid","state","flow","phase","isMoveOrEndOrCancel","name_1","emit2","getStatusName","TYPE_END","TYPE_CANCEL","includes","direction"],"mappings":"uIASMA,EAAkB,CAAEC,KAAM,MAAOC,UAAW,GAAIC,YAAa,4BAkC1CC,EAAUC,GAC/B,IAAMC,EAAUC,sBAAoBP,EAAiBK,GAyBrD,OAtBAD,EAAGI,QAAQ,CAACC,iBAAgBC,kBAAiBC,mBAAiB,SAAAC,GAI1D,GAFAC,aAAWP,IAEPQ,aAAWR,GAAf,CACA,IAaYH,EAAaY,EAbnBC,GAaMb,EAA0BS,cAAbG,EAAaH,WAC3BN,EAAQH,cAAgBA,GAAeG,EAAQJ,WAAaa,GAZvE,GADAT,EAAQW,MAAQC,OAAKF,EAASV,EAAQW,MAAOL,EAASO,OAClDH,GAAWI,sBAAoBd,EAAQW,OAAQ,CACvC,IAAAI,EAASf,OACjBF,EAAGkB,MAAMD,EAAMT,EAAUN,GACzBF,EAAGkB,MAAMD,EAAOE,gBAAcjB,EAAQW,OAAQL,EAAUN,IACnD,CAACkB,WAAUC,eAAaC,SAASd,EAASO,QAAUP,EAASe,WAC9DvB,EAAGkB,MAAMD,EAAOT,EAASe,UAAWf,EAAUN,QAUnDA"} \ No newline at end of file diff --git a/node_modules/@any-touch/pan/package.json b/node_modules/@any-touch/pan/package.json new file mode 100644 index 0000000..3bf230d --- /dev/null +++ b/node_modules/@any-touch/pan/package.json @@ -0,0 +1,22 @@ +{ + "name": "@any-touch/pan", + "version": "2.2.0", + "description": "any-touch的识别器, 用来识别拖拽手势.", + "main": "./dist/index", + "module": "./dist/index.es.js", + "types": "dist/index.d.ts", + "author": "any86", + "license": "MIT", + "files": [ + "dist/*" + ], + "dependencies": { + "@any-touch/compute": "^2.2.0", + "@any-touch/shared": "^2.2.0" + }, + "publishConfig": { + "access": "public" + }, + "sideEffects": false, + "gitHead": "c3df8dd84bd61d91f766f6d7f31dbefe6e463ce6" +} diff --git a/node_modules/@any-touch/pinch/LICENSE b/node_modules/@any-touch/pinch/LICENSE new file mode 100644 index 0000000..88f4b98 --- /dev/null +++ b/node_modules/@any-touch/pinch/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Russell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@any-touch/pinch/README.md b/node_modules/@any-touch/pinch/README.md new file mode 100644 index 0000000..863eb82 --- /dev/null +++ b/node_modules/@any-touch/pinch/README.md @@ -0,0 +1,28 @@ +# @any-touch/pinch +**缩放**识别器. + +## 安装 +```shell +npm i -S @any-touch/pinch +``` + +## 快速开始 +```javascript +// 只加载pinch识别器(拖拽) +import Core from '@any-touch/core'; +import pinch from '@any-touch/pinch'; +const at = new Core(el); +at.use(pinch, 参数) + +// 缩放 +at.on('pinch', (event) => { + // event包含位置/速度/方向等信息 +}); +``` + +## 参数 +|名称|数据类型|默认值|说明| +|---|---|---|---| +|name|`String`|'pinch'|自定义事件名称| +|pointLength|`Number`|2|支持的触点数, 可支持多指拖拽| +|threshold| `Number`|0|缩放超过0倍才触发pinch事件| \ No newline at end of file diff --git a/node_modules/@any-touch/pinch/dist/index.d.ts b/node_modules/@any-touch/pinch/dist/index.d.ts new file mode 100644 index 0000000..5f591d9 --- /dev/null +++ b/node_modules/@any-touch/pinch/dist/index.d.ts @@ -0,0 +1,39 @@ +import type { PluginContext, AnyTouchEvent } from '@any-touch/shared'; +import Core from '@any-touch/core'; +/** + * 默认选项 + */ +declare const DEFAULT_OPTIONS: { + name: string; + threshold: number; + pointLength: number; +}; +/** + * 实例 + */ +declare type PinchContext = PluginContext & typeof DEFAULT_OPTIONS; +/** + * 扩展插件映射 + */ +declare module '@any-touch/core' { + interface PluginContextMap { + pinch: PinchContext; + } + interface EventMap { + pinch: AnyTouchEvent; + pinchstart: AnyTouchEvent; + pinchmove: AnyTouchEvent; + pinchend: AnyTouchEvent; + pinchcancel: AnyTouchEvent; + pinchin: AnyTouchEvent; + pinchout: AnyTouchEvent; + } +} +/** + * "啮合"识别器 + * @param at AnyTouch实例 + * @param options 识别器选项 + * @returns + */ +export default function (at: Core, options?: Partial): PinchContext; +export {}; diff --git a/node_modules/@any-touch/pinch/dist/index.es.js b/node_modules/@any-touch/pinch/dist/index.es.js new file mode 100644 index 0000000..be565ea --- /dev/null +++ b/node_modules/@any-touch/pinch/dist/index.es.js @@ -0,0 +1,2 @@ +import{createPluginContext as t,resetState as e,isDisabled as n,flow as o,isMoveOrEndOrCancel as a,getStatusName as s}from"@any-touch/shared";import{ComputeVectorForMutli as c,ComputeScale as h}from"@any-touch/compute";const i={name:"pinch",threshold:0,pointLength:2};function r(r,m){const p=t(i,m);return r.compute([c,h],(t=>{if(e(p),n(p))return;const c=function(){const{pointLength:e,scale:n,deltaScale:o,phase:a}=t;return p.pointLength===e&&p.threshold { + // event包含位置/速度/方向等信息 +}); +``` + +## 参数 +|名称|数据类型|默认值|说明| +|---|---|---|---| +|name|`String`|'press'|自定义事件名称| +|pointLength|`Number`|1|支持的触点数, 可支持多指按压| +|maxDistance| `Number`|9|触点允许移动的最大距离| +|minPressTime| `Number`|251|触发事件需要按压的最小时间| diff --git a/node_modules/@any-touch/press/dist/index.d.ts b/node_modules/@any-touch/press/dist/index.d.ts new file mode 100644 index 0000000..3d16f53 --- /dev/null +++ b/node_modules/@any-touch/press/dist/index.d.ts @@ -0,0 +1,37 @@ +import type { PluginContext, AnyTouchEvent } from '@any-touch/shared'; +import Core from '@any-touch/core'; +declare const DEFAULT_OPTIONS: { + name: string; + pointLength: number; + maxDistance: number; + minPressTime: number; +}; +/** + * 实例 + */ +declare type PressContext = PluginContext & typeof DEFAULT_OPTIONS; +/** + * 扩展插件映射 + */ +declare module '@any-touch/core' { + interface PluginContextMap { + press: PressContext; + } + interface EventMap { + press: AnyTouchEvent; + pressup: AnyTouchEvent; + } +} +/** + * "拖拽"识别器 + * @param at AnyTouch实例 + * @param options AnyTouch选项 + * @returns + */ +export default function (at: Core, options?: Partial): PluginContext<{ + name: string; + pointLength: number; + maxDistance: number; + minPressTime: number; +}>; +export {}; diff --git a/node_modules/@any-touch/press/dist/index.es.js b/node_modules/@any-touch/press/dist/index.es.js new file mode 100644 index 0000000..f622ada --- /dev/null +++ b/node_modules/@any-touch/press/dist/index.es.js @@ -0,0 +1,2 @@ +import{createPluginContext as t,isDisabled as e,TYPE_START as n,resetState as s,TYPE_END as i,DIRECTION_UP as m,TYPE_CANCEL as a}from"@any-touch/shared";import{ComputeDistance as o}from"@any-touch/compute";const r={name:"press",pointLength:1,maxDistance:9,minPressTime:251};function c(c,u){const p=t(r,u);let f=0;return c.compute([o],(t=>{if(e(p))return;const{phase:o,startInput:r,pointLength:u}=t;if(n===o&&p.pointLength===u)s(p),clearTimeout(f),f=setTimeout((()=>{p.state=1,c.emit2(p.name,t,p)}),p.minPressTime);else if(i===o&&1===p.state)c.emit2(`${p.name}${m}`,t,p);else if(1!==p.state){const e=t.timestamp-r.timestamp;(!function(){const{distance:e}=t;return e&&p.maxDistance>e}()||p.minPressTime>e&&[i,a].includes(o))&&(clearTimeout(f),p.state=2)}})),p}export{c as default}; +//# sourceMappingURL=index.es.js.map diff --git a/node_modules/@any-touch/press/dist/index.es.js.map b/node_modules/@any-touch/press/dist/index.es.js.map new file mode 100644 index 0000000..2f72a2c --- /dev/null +++ b/node_modules/@any-touch/press/dist/index.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.es.js","sources":["../../../../packages/press/src/index.ts"],"sourcesContent":[null],"names":["DEFAULT_OPTIONS","name","pointLength","maxDistance","minPressTime","at","options","context","createPluginContext","timeoutId","compute","ComputeDistance","computed","isDisabled","phase","startInput","TYPE_START","resetState","clearTimeout","setTimeout","state","emit2","TYPE_END","DIRECTION_UP","deltaTime","timestamp","distance","test","TYPE_CANCEL","includes"],"mappings":"8MAQA,MAAMA,EAAkB,CACpBC,KAAM,QACNC,YAAa,EACbC,YAAa,EACbC,aAAc,gBA6BOC,EAAUC,GAC/B,MAAMC,EAAUC,EAAoBR,EAAiBM,GAErD,IAAIG,EAAY,EAiDhB,OA7CAJ,EAAGK,QAAQ,CAACC,IAAmBC,IAE3B,GAAIC,EAAWN,GAAU,OACzB,MAAMO,MAAEA,EAAKC,WAAEA,EAAUb,YAAEA,GAAgBU,EAI3C,GAAII,IAAeF,GAASP,EAAQL,cAAgBA,EAEhDe,EAAWV,GAGXW,aAAaT,GACbA,EAAaU,YAAoC,KAC7CZ,EAAQa,QACRf,EAAGgB,MAAMd,EAAQN,KAAMW,EAAUL,KAClCA,EAAQH,mBAKV,GAAIkB,IAAaR,GAAS,IAAqBP,EAAQa,MACxDf,EAAGgB,MAAM,GAAGd,EAAQN,OAAOsB,IAAgBX,EAAUL,QAEpD,GAAI,IAAqBA,EAAQa,MAAO,CACzC,MAAMI,EAAYZ,EAASa,UAAYV,EAAWU,YAetD,WACI,MAAMC,SAAEA,GAAad,EACrB,OAAOc,GAAYnB,EAAQJ,YAAcuB,EAdpCC,IAEApB,EAAQH,aAAeoB,GAAa,CAACF,EAAUM,GAAaC,SAASf,MACtEI,aAAaT,GACbF,EAAQa,aAabb"} \ No newline at end of file diff --git a/node_modules/@any-touch/press/dist/index.js b/node_modules/@any-touch/press/dist/index.js new file mode 100644 index 0000000..cbe61aa --- /dev/null +++ b/node_modules/@any-touch/press/dist/index.js @@ -0,0 +1,2 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@any-touch/shared"),t=require("@any-touch/compute"),i={name:"press",pointLength:1,maxDistance:9,minPressTime:251};exports.default=function(a,s){var n=e.createPluginContext(i,s),r=0;return a.compute([t.ComputeDistance],(function(t){if(!e.isDisabled(n)){var i,s=t.phase,m=t.startInput,c=t.pointLength;if(e.TYPE_START===s&&n.pointLength===c)e.resetState(n),clearTimeout(r),r=setTimeout((function(){n.state=1,a.emit2(n.name,t,n)}),n.minPressTime);else if(e.TYPE_END===s&&1===n.state)a.emit2("".concat(n.name).concat(e.DIRECTION_UP),t,n);else if(1!==n.state){var o=t.timestamp-m.timestamp;(!((i=t.distance)&&n.maxDistance>i)||n.minPressTime>o&&[e.TYPE_END,e.TYPE_CANCEL].includes(s))&&(clearTimeout(r),n.state=2)}}})),n}; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@any-touch/press/dist/index.js.map b/node_modules/@any-touch/press/dist/index.js.map new file mode 100644 index 0000000..cf8998e --- /dev/null +++ b/node_modules/@any-touch/press/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../../packages/press/src/index.ts"],"sourcesContent":[null],"names":["DEFAULT_OPTIONS","name","pointLength","maxDistance","minPressTime","at","options","context","createPluginContext","timeoutId","compute","ComputeDistance","computed","isDisabled","distance","phase","startInput","TYPE_START","resetState","clearTimeout","setTimeout","state","emit2","TYPE_END","DIRECTION_UP","deltaTime","timestamp","TYPE_CANCEL","includes"],"mappings":"uIAQMA,EAAkB,CACpBC,KAAM,QACNC,YAAa,EACbC,YAAa,EACbC,aAAc,8BA6BOC,EAAUC,GAC/B,IAAMC,EAAUC,sBAAoBR,EAAiBM,GAEjDG,EAAY,EAiDhB,OA7CAJ,EAAGK,QAAQ,CAACC,oBAAkB,SAACC,GAE3B,IAAIC,aAAWN,GAAf,CACQ,IAsCIO,EAtCJC,EAAmCH,QAA5BI,EAA4BJ,aAAhBV,EAAgBU,cAI3C,GAAIK,eAAeF,GAASR,EAAQL,cAAgBA,EAEhDgB,aAAWX,GAGXY,aAAaV,GACbA,EAAaW,YAAoC,WAC7Cb,EAAQc,QACRhB,EAAGiB,MAAMf,EAAQN,KAAMW,EAAUL,KAClCA,EAAQH,mBAKV,GAAImB,aAAaR,GAAS,IAAqBR,EAAQc,MACxDhB,EAAGiB,MAAM,UAAGf,EAAQN,aAAOuB,gBAAgBZ,EAAUL,QAEpD,GAAI,IAAqBA,EAAQc,MAAO,CACzC,IAAMI,EAAYb,EAASc,UAAYV,EAAWU,cAgB1CZ,EAAaF,aACFL,EAAQJ,YAAcW,IAZpCP,EAAQH,aAAeqB,GAAa,CAACF,WAAUI,eAAaC,SAASb,MACtEI,aAAaV,GACbF,EAAQc,cAabd"} \ No newline at end of file diff --git a/node_modules/@any-touch/press/package.json b/node_modules/@any-touch/press/package.json new file mode 100644 index 0000000..91a452f --- /dev/null +++ b/node_modules/@any-touch/press/package.json @@ -0,0 +1,22 @@ +{ + "name": "@any-touch/press", + "version": "2.2.0", + "description": "any-touch的识别器, 用来识别按压手势.", + "main": "./dist/index", + "module": "./dist/index.es.js", + "types": "dist/index.d.ts", + "author": "any86", + "license": "MIT", + "files": [ + "dist/*" + ], + "dependencies": { + "@any-touch/compute": "^2.2.0", + "@any-touch/shared": "^2.2.0" + }, + "publishConfig": { + "access": "public" + }, + "sideEffects": false, + "gitHead": "c3df8dd84bd61d91f766f6d7f31dbefe6e463ce6" +} diff --git a/node_modules/@any-touch/rotate/LICENSE b/node_modules/@any-touch/rotate/LICENSE new file mode 100644 index 0000000..88f4b98 --- /dev/null +++ b/node_modules/@any-touch/rotate/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Russell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@any-touch/rotate/README.md b/node_modules/@any-touch/rotate/README.md new file mode 100644 index 0000000..9050df7 --- /dev/null +++ b/node_modules/@any-touch/rotate/README.md @@ -0,0 +1,29 @@ +# @any-touch/rotate +**旋转**识别器. + +## 安装 +```shell +npm i -S @any-touch/rotate +``` + + +## 快速开始 +```javascript +// 只加载rotate识别器(拖拽) +import Core from '@any-touch/core'; +import rotate from '@any-touch/rotate'; +const at = new Core(el); +at.use(rotate, 参数); + +// 拖拽 +at.on('rotate', (event) => { + // event包含位置/速度/方向等信息 +}); +``` + +## 参数 +|名称|数据类型|默认值|说明| +|---|---|---|---| +|name|`String`|'rotate'|自定义事件名称| +|pointLength|`Number`|2|支持的触点数, 可支持多指拖拽| +|threshold| `Number`|0|旋转超过0°才触发rotate事件| \ No newline at end of file diff --git a/node_modules/@any-touch/rotate/dist/index.d.ts b/node_modules/@any-touch/rotate/dist/index.d.ts new file mode 100644 index 0000000..ea63ad0 --- /dev/null +++ b/node_modules/@any-touch/rotate/dist/index.d.ts @@ -0,0 +1,34 @@ +import type { PluginContext, AnyTouchEvent } from '@any-touch/shared'; +import Core from '@any-touch/core'; +declare const DEFAULT_OPTIONS: { + name: string; + threshold: number; + pointLength: number; +}; +/** + * 实例 + */ +declare type RotateContext = PluginContext & typeof DEFAULT_OPTIONS; +/** + * 扩展插件映射 + */ +declare module '@any-touch/core' { + interface PluginContextMap { + rotate: RotateContext; + } + interface EventMap { + rotate: AnyTouchEvent; + rotatestart: AnyTouchEvent; + rotatemove: AnyTouchEvent; + rotateend: AnyTouchEvent; + rotatecancel: AnyTouchEvent; + } +} +/** + * "旋转"识别器 + * @param at AnyTouch实例 + * @param options 识别器选项 + * @returns + */ +export default function (at: Core, options?: Partial): any; +export {}; diff --git a/node_modules/@any-touch/rotate/dist/index.es.js b/node_modules/@any-touch/rotate/dist/index.es.js new file mode 100644 index 0000000..b5ad5be --- /dev/null +++ b/node_modules/@any-touch/rotate/dist/index.es.js @@ -0,0 +1,2 @@ +import{createPluginContext as t,isDisabled as e,resetState as n,flow as o,isMoveOrEndOrCancel as a,getStatusName as s}from"@any-touch/shared";import{ComputeVectorForMutli as r,ComputeAngle as c}from"@any-touch/compute";const h={name:"rotate",threshold:0,pointLength:2};function i(i,m){const u=t(h,m);return i.compute([r,c],(t=>{if(e(u))return;n(u);const r=function(){const{pointLength:e,angle:n}=t;return u.pointLength===e&&u.threshold>(defaultOptions: D, options?: PluginOptions): PluginContext; diff --git a/node_modules/@any-touch/shared/dist/index.d.ts b/node_modules/@any-touch/shared/dist/index.d.ts new file mode 100644 index 0000000..1d4c460 --- /dev/null +++ b/node_modules/@any-touch/shared/dist/index.d.ts @@ -0,0 +1,5 @@ +export * from './const'; +export * from './types'; +export * from './pressMoveFlow'; +export * from './createPluginContext'; +export declare function round2(n: number): number; diff --git a/node_modules/@any-touch/shared/dist/index.es.js b/node_modules/@any-touch/shared/dist/index.es.js new file mode 100644 index 0000000..97fe561 --- /dev/null +++ b/node_modules/@any-touch/shared/dist/index.es.js @@ -0,0 +1,2 @@ +const n="clientX",e="clientY",t=16,c="start",o="move",s="cancel",u="end",a="left",i="right",r="up",d="down",l="touch",f="mouse",m={4:"start",5:"move",1:"end",3:"cancel"};function v(n){return m[n]}function b(n,e,t){const c={1:{0:{move:4},4:{move:5,end:1,cancel:3},5:{move:5,end:1,cancel:3}},0:{4:{move:2,end:1,cancel:3},5:{start:2,move:2,end:1,cancel:3}}}[Number(n)][e];return void 0!==c&&c[t]||0}function g(n){[1,3,2].includes(n.state)&&(n.state=0)}function h(n){return[5,1,3].includes(n)}function j(n){if(n.disabled)return n.state=0,!0}function O(n,e){return Object.assign(Object.assign(Object.assign({},n),e),{state:0,disabled:!1})}function p(n){return Math.round(100*n)/100}export{n as CLIENT_X,e as CLIENT_Y,t as COMPUTE_INTERVAL,d as DIRECTION_DOWN,a as DIRECTION_LEFT,i as DIRECTION_RIGHT,r as DIRECTION_UP,f as MOUSE,l as TOUCH,s as TYPE_CANCEL,u as TYPE_END,o as TYPE_MOVE,c as TYPE_START,O as createPluginContext,b as flow,v as getStatusName,j as isDisabled,h as isMoveOrEndOrCancel,g as resetState,p as round2}; +//# sourceMappingURL=index.es.js.map diff --git a/node_modules/@any-touch/shared/dist/index.es.js.map b/node_modules/@any-touch/shared/dist/index.es.js.map new file mode 100644 index 0000000..f60daa9 --- /dev/null +++ b/node_modules/@any-touch/shared/dist/index.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.es.js","sources":["../../../../packages/shared/src/const.ts","../../../../packages/shared/src/pressMoveFlow.ts","../../../../packages/shared/src/createPluginContext.ts","../../../../packages/shared/src/index.ts"],"sourcesContent":[null,null,null,null],"names":["CLIENT_X","CLIENT_Y","COMPUTE_INTERVAL","TYPE_START","TYPE_MOVE","TYPE_CANCEL","TYPE_END","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","TOUCH","MOUSE","STATUS_CODE_AND_NAME_MAP","getStatusName","code","flow","isVaild","lastStatus","phase","map","move","end","cancel","start","Number","resetState","context","includes","state","isMoveOrEndOrCancel","isDisabled","disabled","createPluginContext","defaultOptions","options","round2","n","Math","round"],"mappings":"MAKaA,EAAW,UACXC,EAAW,UAIXC,EAAmB,GAKnBC,EAAa,QACbC,EAAY,OACZC,EAAc,SACdC,EAAW,MAMXC,EAAiB,OACjBC,EAAkB,QAClBC,EAAe,KACfC,EAAiB,OAEjBC,EAAQ,QACRC,EAAQ,QCpBfC,EAA6F,CAC/F,EDIsB,QCHtB,EDIqB,OCHrB,EDKoB,MCJpB,EDGuB,mBCKXC,EAAcC,GAC1B,OAAOF,EAAyBE,YAYpBC,EAAKC,EAAkBC,EAA8BC,GAajE,MA6CMC,EA7CkC,CACpC,EAAG,CACC,EAAkB,CAGdC,QAOJ,EAAe,CACXA,OACAC,MACAC,UAGJ,EAAc,CACVF,OACAC,MACAC,WAKR,EAAG,CAGC,EAAe,CAGXF,OACAC,MACAC,UAGJ,EAAc,CACVC,QACAH,OACAC,MACAC,YAIUE,OAAOR,IAAUC,GAGvC,YAAQ,IAAWE,GAAOA,EAAID,eAOlBO,EAAWC,GACnB,QAAkDC,SAASD,EAAQE,SACnEF,EAAQE,kBASAC,EAAoBD,GAChC,MAAO,QAAwCD,SAASC,YAQ5CE,EAAWJ,GACvB,GAAIA,EAAQK,SAER,OADAL,EAAQE,SACD,WC5HCI,EAAuDC,EAAmBC,GACtF,oDAAYD,GAAmBC,IAASN,QAAuBG,UAAU,aCC7DI,EAAOC,GACnB,OAAOC,KAAKC,MAAU,IAAJF,GAAW"} \ No newline at end of file diff --git a/node_modules/@any-touch/shared/dist/index.js b/node_modules/@any-touch/shared/dist/index.js new file mode 100644 index 0000000..a619896 --- /dev/null +++ b/node_modules/@any-touch/shared/dist/index.js @@ -0,0 +1,2 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("tslib"),r=((e={})[4]="start",e[5]="move",e[1]="end",e[3]="cancel",e);exports.CLIENT_X="clientX",exports.CLIENT_Y="clientY",exports.COMPUTE_INTERVAL=16,exports.DIRECTION_DOWN="down",exports.DIRECTION_LEFT="left",exports.DIRECTION_RIGHT="right",exports.DIRECTION_UP="up",exports.MOUSE="mouse",exports.TOUCH="touch",exports.TYPE_CANCEL="cancel",exports.TYPE_END="end",exports.TYPE_MOVE="move",exports.TYPE_START="start",exports.createPluginContext=function(e,r){return t.__assign(t.__assign(t.__assign({},e),r),{state:0,disabled:!1})},exports.flow=function(e,t,r){var s,n,o,a,c,i,u,p={1:(s={},s[0]=(n={},n.move=4,n),s[4]=(o={},o.move=5,o.end=1,o.cancel=3,o),s[5]=(a={},a.move=5,a.end=1,a.cancel=3,a),s),0:(c={},c[4]=(i={},i.move=2,i.end=1,i.cancel=3,i),c[5]=(u={},u.start=2,u.move=2,u.end=1,u.cancel=3,u),c)}[Number(e)][t];return void 0!==p&&p[r]||0},exports.getStatusName=function(e){return r[e]},exports.isDisabled=function(e){if(e.disabled)return e.state=0,!0},exports.isMoveOrEndOrCancel=function(e){return[5,1,3].includes(e)},exports.resetState=function(e){[1,3,2].includes(e.state)&&(e.state=0)},exports.round2=function(e){return Math.round(100*e)/100}; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@any-touch/shared/dist/index.js.map b/node_modules/@any-touch/shared/dist/index.js.map new file mode 100644 index 0000000..2f3eccf --- /dev/null +++ b/node_modules/@any-touch/shared/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../../packages/shared/src/pressMoveFlow.ts","../../../../packages/shared/src/const.ts","../../../../packages/shared/src/createPluginContext.ts","../../../../packages/shared/src/index.ts"],"sourcesContent":[null,null,null,null],"names":["STATUS_CODE_AND_NAME_MAP","_a","defaultOptions","options","state","disabled","isVaild","lastStatus","phase","map","_b","_c","_d","_e","_f","_g","Number","code","context","includes","n","Math","round"],"mappings":"6FAUMA,aCKoB,QDHtBC,KCIqB,ODHrBA,KCKoB,MDJpBA,KCGuB,6BAZH,2BACA,mCAIQ,0BAiBF,8BAHA,+BACC,6BACH,mBAIP,sBADA,4BAZM,0BACH,wBAFC,0BADC,6CCb6CC,EAAmBC,GACtF,2CAAYD,GAAmBC,IAASC,QAAuBC,UAAU,2BFgCxDC,EAAkBC,EAA8BC,qBA0D3DC,EA7CkC,CACpC,QACIR,WAGIS,EAAU,UAOdT,WACIU,EAAU,OACVA,EAAS,MACTA,EAAY,YAGhBV,WACIW,EAAU,OACVA,EAAS,MACTA,EAAY,eAKpB,QAGIC,WAGIC,EAAU,OACVA,EAAS,MACTA,EAAY,YAGhBD,WACIE,EAAW,QACXA,EAAU,OACVA,EAAS,MACTA,EAAY,gBAIFC,OAAOV,IAAUC,GAGvC,YAAQ,IAAWE,GAAOA,EAAID,sCA1EJS,GAC1B,OAAOjB,EAAyBiB,gCAoGTC,GACvB,GAAIA,EAAQb,SAER,OADAa,EAAQd,SACD,wCAZqBA,GAChC,MAAO,QAAwCe,SAASf,gCAZjCc,GACnB,QAAkDC,SAASD,EAAQd,SACnEc,EAAQd,kCGrGOgB,GACnB,OAAOC,KAAKC,MAAU,IAAJF,GAAW"} \ No newline at end of file diff --git a/node_modules/@any-touch/shared/dist/pressMoveFlow.d.ts b/node_modules/@any-touch/shared/dist/pressMoveFlow.d.ts new file mode 100644 index 0000000..c4b50c2 --- /dev/null +++ b/node_modules/@any-touch/shared/dist/pressMoveFlow.d.ts @@ -0,0 +1,35 @@ +import { RECOGNIZER_STATE } from './index'; +import { PluginContext } from './types'; +/** + * 获取状态字符串 + * @param code 状态代码 + * @returns + */ +export declare function getStatusName(code: RECOGNIZER_STATE): "end" | "start" | "cancel" | "move"; +/** + * 😊如果当前识别成功, + * 那么计算当前识别器状态. + * 逻辑: 是否test通过 + 上一轮识别器状态 + 输入阶段 => 当前识别器状态 + * @param isVaild 是否通过test + * @param lastStatus 上一轮识别器状态 + * @param phase 输入阶段 + * @returns 识别器状态 + */ +export declare function flow(isVaild: boolean, lastStatus: RECOGNIZER_STATE, phase: string): RECOGNIZER_STATE; +/** + * 重置状态到possible + * @param context 识别器实例 + */ +export declare function resetState(context: PluginContext): void; +/** + * 是否事件的结束 + * @param state + * @returns 是否 + */ +export declare function isMoveOrEndOrCancel(state: RECOGNIZER_STATE): boolean; +/** + * 判断是否禁止识别 + * @param context 识别器实例 + * @returns 是否禁止识别 + */ +export declare function isDisabled(context: PluginContext): boolean; diff --git a/node_modules/@any-touch/shared/dist/types.d.ts b/node_modules/@any-touch/shared/dist/types.d.ts new file mode 100644 index 0000000..4e27820 --- /dev/null +++ b/node_modules/@any-touch/shared/dist/types.d.ts @@ -0,0 +1,169 @@ +import Core from '@any-touch/core'; +import { STATE } from './const'; +export declare type KV = Record; +/** + * 适配器支持的事件类型 + */ +export declare type NativeEvent = MouseEvent | TouchEvent; +export interface PointClientXY { + target: EventTarget | null; + clientX: number; + clientY: number; +} +/** + * 输入阶段 + */ +export declare type phase = 'start' | 'move' | 'end' | 'cancel'; +/** + * 原生事件上选取的共有字段 + */ +export interface PubicEvent { + readonly phase: phase; + readonly changedPoints: PointClientXY[]; + readonly points: PointClientXY[]; + readonly target: EventTarget | null; + readonly targets: (EventTarget | null)[]; + readonly nativeEvent: Event; +} +/** + * 不包含prevInput/startInput/startMultiInput的Input + */ +export interface InputOnlyHasCurrent extends PubicEvent { + readonly id: number; + readonly isStart: boolean; + readonly isEnd: boolean; + readonly pointLength: number; + readonly timestamp: number; + readonly target: EventTarget | null; + readonly currentTarget: EventTarget | null; + readonly center?: Point; + readonly x: number; + readonly y: number; + readonly getOffset: (el: HTMLElement) => { + x: number; + y: number; + }; +} +/** + * 提供给插件(compute函数)之前的统一化数据 + */ +export interface Input extends InputOnlyHasCurrent { + readonly startInput: InputOnlyHasCurrent; + readonly startMultiInput?: InputOnlyHasCurrent; + readonly prevInput?: InputOnlyHasCurrent; +} +/** + * 方向 + */ +export declare type directionString = 'up' | 'right' | 'down' | 'left' | 'none'; +/** + * 点 + */ +export interface Point { + x: number; + y: number; +} +export declare type Vector = Point; +/** + * Input执行计算后的数据格式 + */ +export interface Computed extends KV { + readonly maxPointLength?: number; + readonly velocityX?: number; + readonly velocityY?: number; + readonly speedX?: number; + readonly speedY?: number; + readonly scale?: number; + readonly deltaScale?: number; + readonly angle?: number; + readonly deltaAngle?: number; + readonly deltaX?: number; + readonly deltaY?: number; + readonly deltaXYAngle?: number; + readonly displacementX?: number; + readonly displacementY?: number; + readonly distanceX?: number; + readonly distanceY?: number; + readonly distance?: number; + readonly deltaTime?: number; + readonly overallDirection?: directionString; + readonly direction?: directionString; + readonly startVecotr?: Vector; + readonly prevVecotr?: Vector; + readonly activeVecotr?: Vector; +} +export interface AnyTouchEvent extends Input, Required { + readonly type: string; + readonly stopPropagation: () => void; + readonly stopImmediatePropagation: () => void; + readonly preventDefault: () => void; +} +/** + * 识别器状态 + */ +export declare type RECOGNIZER_STATE = STATE; +/** + * Input转换器 + */ +export interface InputCreatorFunction { + (event: T): void | Input; +} +/** + * Input转换器外壳函数映射 + */ +export interface InputCreatorFunctionMap { + [k: string]: InputCreatorFunction; +} +export declare type PluginOptions = { + name?: string; +} & KV; +/** + * 插件上下文内容 + */ +export declare type PluginContext = Required> = { + state: RECOGNIZER_STATE; + disabled: boolean; +} & D; +/** + * 插件 + */ +export declare type Plugin = (context: Core, pluginOptions?: PluginOptions) => PluginContext; +/** + * 计算函数 + */ +export declare type ComputeFunction = (input: Input, computed: Partial) => Computed | void; +/** + * 计算函数生成器 + */ +export declare type ComputeFunctionCreator = () => ComputeFunction; +/** + * 仅用来作为识别器和at通知的载体函数 + */ +export interface EventTrigger { + (type: string): void; +} +import tap from '@any-touch/tap'; +import press from '@any-touch/press'; +import swipe from '@any-touch/swipe'; +import pan from '@any-touch/pan'; +import pinch from '@any-touch/pinch'; +import rotate from '@any-touch/rotate'; +export declare type TapContext = ReturnType; +export declare type PressContext = ReturnType; +export declare type SwipeContext = ReturnType; +export declare type PanContext = ReturnType; +export declare type PinchContext = ReturnType; +export declare type RotateContext = ReturnType; +/** + * 插件实例映射 + * {名称: 插件实例} + */ +export interface PluginContextMap { + tap: TapContext; + press: PressContext; + swipe: SwipeContext; + pan: PanContext; + pinch: PinchContext; + rotate: RotateContext; +} +export declare type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; diff --git a/node_modules/@any-touch/shared/package.json b/node_modules/@any-touch/shared/package.json new file mode 100644 index 0000000..4e7d3d2 --- /dev/null +++ b/node_modules/@any-touch/shared/package.json @@ -0,0 +1,17 @@ +{ + "name": "@any-touch/shared", + "version": "2.2.0", + "description": "any-touch内部的公共函数.", + "main": "dist/index.js", + "module": "dist/index.es.js", + "author": "any86", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "files": [ + "dist/*" + ], + "sideEffects": false, + "gitHead": "c3df8dd84bd61d91f766f6d7f31dbefe6e463ce6" +} diff --git a/node_modules/@any-touch/swipe/LICENSE b/node_modules/@any-touch/swipe/LICENSE new file mode 100644 index 0000000..88f4b98 --- /dev/null +++ b/node_modules/@any-touch/swipe/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Russell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@any-touch/swipe/README.md b/node_modules/@any-touch/swipe/README.md new file mode 100644 index 0000000..c951757 --- /dev/null +++ b/node_modules/@any-touch/swipe/README.md @@ -0,0 +1,29 @@ +# @any-touch/swipe +**快划**识别器. + +## 安装 +```shell +npm i -S @any-touch/swipe +``` + +## 快速开始 +```javascript +// 只加载rotate识别器(旋转) +import Core from '@any-touch/core'; +import swipe from '@any-touch/swipe'; +const at = new Core(el); +at.use(swipe, 参数) + +// 旋转 +at.on('swipe', (event) => { + // event包含位置/速度/方向等信息 +}); +``` + +## 参数 +|名称|数据类型|默认值|说明| +|---|---|---|---| +|name|`String`|'swipe'|自定义事件名称| +|pointLength|`Number`|1|支持的触点数, 可支持多指触发| +|threshold| `Number`|10|触点离开前, 按压移动的距离超过10px才能触发事件| +|velocity| `Number`|0.3|快划超过30px/ms才触发事件| \ No newline at end of file diff --git a/node_modules/@any-touch/swipe/dist/index.d.ts b/node_modules/@any-touch/swipe/dist/index.d.ts new file mode 100644 index 0000000..1a4299f --- /dev/null +++ b/node_modules/@any-touch/swipe/dist/index.d.ts @@ -0,0 +1,35 @@ +import type { PluginContext, AnyTouchEvent } from '@any-touch/shared'; +import Core from '@any-touch/core'; +declare const DEFAULT_OPTIONS: { + name: string; + threshold: number; + velocity: number; + pointLength: number; +}; +/** + * 实例 + */ +declare type SwipeContext = PluginContext & typeof DEFAULT_OPTIONS; +/** + * 扩展插件映射 + */ +declare module '@any-touch/core' { + interface PluginContextMap { + swipe: SwipeContext; + } + interface EventMap { + swipe: AnyTouchEvent; + swipeup: AnyTouchEvent; + swiperight: AnyTouchEvent; + swipedown: AnyTouchEvent; + swipeleft: AnyTouchEvent; + } +} +/** + * "拖拽"识别器 + * @param at AnyTouch实例 + * @param options 识别器选项 + * @returns + */ +export default function (at: Core, options?: Partial): SwipeContext; +export {}; diff --git a/node_modules/@any-touch/swipe/dist/index.es.js b/node_modules/@any-touch/swipe/dist/index.es.js new file mode 100644 index 0000000..d8c4b3a --- /dev/null +++ b/node_modules/@any-touch/swipe/dist/index.es.js @@ -0,0 +1,2 @@ +import{createPluginContext as t,TYPE_END as e}from"@any-touch/shared";import{ComputeDistance as o,ComputeVAndDir as n,ComputeMaxLength as i}from"@any-touch/compute";const c={name:"swipe",threshold:10,velocity:.3,pointLength:1};function a(a,r){const s=t(c,r);return a.compute([o,n,i],(t=>{if(s.state=0,!s.disabled&&function(){if(e!==t.phase)return!1;const{velocityX:o,velocityY:n,distance:i,maxPointLength:c}=t;return c===s.pointLength&&0===t.points.length&&s.threshold { + // event包含位置/速度/方向等信息 +}); +``` + +## 参数 +|名称|数据类型|默认值|说明| +|---|---|---|---| +|name|`String`|'tap'|自定义事件名称| +|pointLength|`Number`|2|支持的触点数, 可支持多指拖拽| +|tapTimes| `Number`|1|连续点击指定次数触发| +|waitNextTapTime| `Number`|300|最多等待下一次点击时间,超时识别器状态变为"失败"| +|maxDistance| `Number`|2|从接触到离开允许产生的最大距离| +|tapTmaxDistanceFromPrevTapimes| `Number`|9|2次点击之间允许的最大位移| +|maxPressTime| `Number`|250|从接触到离开屏幕的最大容忍时间| \ No newline at end of file diff --git a/node_modules/@any-touch/tap/dist/index.d.ts b/node_modules/@any-touch/tap/dist/index.d.ts new file mode 100644 index 0000000..8a46df2 --- /dev/null +++ b/node_modules/@any-touch/tap/dist/index.d.ts @@ -0,0 +1,75 @@ +/** + * 流程如下: + * 开始 + * | + * <是否end阶段> - 否 - 结束 + * | + * 关闭定时器c1和c2 + * | + * 清除等待状态 + * | + * 是 + * | + * 重置状态为"可能是" + * | + * <是否满足单击条件> - 否 - 结束 + * | + * 是 + * | + * <是否正确连击:是否上次点击信息为空 或 与上次点击的位移/时间是否满足约束> - 否 - 点击次数=1 - 继续(<是否到达点击数要求>) + * | + * 是 + * | + * 点击次数+1 + * | + * <是否到达点击数要求> - 否 - 设置定时器c1(t1毫秒后状态设置为"失败") - 结束 + * | + * 是 + * | + * <是否需要其他手势失败> - 否 - 触发事件, 状态设置为"已识别",重置(点击次数,位置) - 结束 + * | + * 是 + * | + * 进入等待状态 + * | + * <设置定时器c2(t1毫秒后检查"需要失败"的手势是否是"失败"状态, 重置(点击次数,位置, 等待状态)> - 否 - 设置状态为"失败" - 结束 + * | + * 是 + * | + * 触发, 状态设置为"已识别", 重置(点击次数,位置) + * | + * 结束 + */ +import AnyTouch from 'any-touch'; +import type { PluginContext, AnyTouchEvent } from '@any-touch/shared'; +declare const DEFAULT_OPTIONS: { + name: string; + pointLength: number; + tapTimes: number; + waitNextTapTime: number; + maxDistance: number; + maxDistanceFromPrevTap: number; + maxPressTime: number; +}; +/** + * 实例 + */ +export declare type TapContext = PluginContext & typeof DEFAULT_OPTIONS; +/** + * 扩展插件映射 + */ +declare module '@any-touch/core' { + interface PluginContextMap { + tap: TapContext; + } + interface EventMap { + tap: AnyTouchEvent; + } +} +/** + * "单击"识别器 + * @param at AnyTouch实例 + * @param options 识别器选项 + */ +export default function (at: AnyTouch, options?: Partial): TapContext; +export {}; diff --git a/node_modules/@any-touch/tap/dist/index.es.js b/node_modules/@any-touch/tap/dist/index.es.js new file mode 100644 index 0000000..2eecc07 --- /dev/null +++ b/node_modules/@any-touch/tap/dist/index.es.js @@ -0,0 +1,2 @@ +import{createPluginContext as t,isDisabled as e,TYPE_END as n}from"@any-touch/shared";import{getVLength as a}from"@any-touch/vector";import{ComputeDistance as i,ComputeMaxLength as o}from"@any-touch/compute";const m={name:"tap",pointLength:1,tapTimes:1,waitNextTapTime:300,maxDistance:2,maxDistanceFromPrevTap:9,maxPressTime:250};function r(r,s){const c=t(m,s);let p,u,x,T=0;function f(){T=0,p=void 0,u=void 0}return r.compute([i,o],(t=>{if(e(c))return;const{phase:i,x:o,y:m}=t;n===i&&(c.state=0,!function(){const{startInput:e,pointLength:n,timestamp:a}=t,i=a-e.timestamp,{distance:o,maxPointLength:m}=t;return m===c.pointLength&&0===n&&c.maxDistance>=o&&c.maxPressTime>i}()?(f(),c.state=2):(clearTimeout(x),function(t,e){if(void 0!==p){const n=a({x:t.x-p.x,y:t.y-p.y});return p=t,e.maxDistanceFromPrevTap>=n}return p=t,!0}({x:o,y:m},c)&&function(t){const e=performance.now();if(void 0===u)return u=e,!0;{const n=e-u;return u=e,n{c.state=2,f()}),c.waitNextTapTime)))})),c}export{r as default}; +//# sourceMappingURL=index.es.js.map diff --git a/node_modules/@any-touch/tap/dist/index.es.js.map b/node_modules/@any-touch/tap/dist/index.es.js.map new file mode 100644 index 0000000..73aaa7c --- /dev/null +++ b/node_modules/@any-touch/tap/dist/index.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.es.js","sources":["../../../../packages/tap/src/index.ts"],"sourcesContent":[null],"names":["DEFAULT_OPTIONS","name","pointLength","tapTimes","waitNextTapTime","maxDistance","maxDistanceFromPrevTap","maxPressTime","at","options","context","createPluginContext","prevTapPoint","prevTapTime","countDownToFailTimer","tapCount","reset","compute","ComputeDistance","ComputeMaxLength","computed","isDisabled","phase","x","y","TYPE_END","state","startInput","timestamp","deltaTime","distance","maxPointLength","test","clearTimeout","center","distanceFromPreviousTap","getVLength","isValidDistanceFromPrevTap","now","performance","interval","isValidInterval","emit2","setTimeout"],"mappings":"gNA+CA,MAAMA,EAAkB,CACpBC,KAAM,MAENC,YAAa,EAEbC,SAAU,EAGVC,gBAAiB,IAGjBC,YAAa,EAEbC,uBAAwB,EAExBC,aAAc,gBA0BOC,EAAcC,GACnC,MAAMC,EAAUC,EAAoBX,EAAiBS,GAErD,IAEIG,EACAC,EACAC,EAJAC,EAAW,EAQf,SAASC,IACLD,EAAW,EACXH,OAAe,EACfC,OAAc,EAsGlB,OApDAL,EAAGS,QAAQ,CAACC,EAAiBC,IAAoBC,IAE7C,GAAIC,EAAWX,GAAU,OACzB,MAAMY,MAAEA,EAAKC,EAAEA,EAACC,EAAEA,GAAMJ,EAGpBK,IAAaH,IACjBZ,EAAQgB,SA4BR,WACI,MAAMC,WAAEA,EAAUzB,YAAEA,EAAW0B,UAAEA,GAAcR,EACzCS,EAAYD,EAAYD,EAAWC,WAKnCE,SAAEA,EAAQC,eAAEA,GAAmBX,EACrC,OACIW,IAAmBrB,EAAQR,aAC3B,IAAMA,GACNQ,EAAQL,aAAeyB,GACvBpB,EAAQH,aAAesB,EArC3BG,IAoBAhB,IACAN,EAAQgB,UApBRO,aAAanB,GAzCrB,SAAoCoB,EAAezB,GAE/C,QAAI,IAAWG,EAAc,CACzB,MAAMuB,EAA0BC,EAAW,CAAEb,EAAGW,EAAOX,EAAIX,EAAaW,EAAGC,EAAGU,EAAOV,EAAIZ,EAAaY,IAGtG,OADAZ,EAAesB,EACRzB,EAAQH,wBAA0B6B,EAGzC,OADAvB,EAAesB,GACR,EAmCHG,CAA2B,CAAEd,EAAAA,EAAGC,EAAAA,GAAKd,IAzBjD,SAAyBN,GACrB,MAAMkC,EAAMC,YAAYD,MACxB,QAAI,IAAWzB,EAEX,OADAA,EAAcyB,GACP,EACJ,CACH,MAAME,EAAWF,EAAMzB,EAEvB,OADAA,EAAcyB,EACPE,EAAWpC,GAiBmCqC,CAAgB/B,EAAQN,iBACzEW,IAEAA,EAAW,EAIX,GAAMA,EAAWL,EAAQP,UACzBO,EAAQgB,QAERlB,EAAGkC,MAAMhC,EAAQT,KAAMmB,EAAUV,GACjCM,KApERF,EAAwB6B,YAAoC,KACxDjC,EAAQgB,QACRV,MACDN,EAAQN,sBA4FRM"} \ No newline at end of file diff --git a/node_modules/@any-touch/tap/dist/index.js b/node_modules/@any-touch/tap/dist/index.js new file mode 100644 index 0000000..d2ed511 --- /dev/null +++ b/node_modules/@any-touch/tap/dist/index.js @@ -0,0 +1,2 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@any-touch/shared"),t=require("@any-touch/vector"),a=require("@any-touch/compute"),i={name:"tap",pointLength:1,tapTimes:1,waitNextTapTime:300,maxDistance:2,maxDistanceFromPrevTap:9,maxPressTime:250};exports.default=function(n,r){var o,m,s,u=e.createPluginContext(i,r),c=0;function p(){c=0,o=void 0,m=void 0}return n.compute([a.ComputeDistance,a.ComputeMaxLength],(function(a){if(!e.isDisabled(u)){var i,r,x,T,v=a.phase,f=a.x,h=a.y;if(e.TYPE_END===v)u.state=0,i=a.startInput,r=a.pointLength,x=a.timestamp-i.timestamp,T=a.distance,a.maxPointLength===u.pointLength&&0===r&&u.maxDistance>=T&&u.maxPressTime>x?(clearTimeout(s),function(e,a){if(void 0!==o){var i=t.getVLength({x:e.x-o.x,y:e.y-o.y});return o=e,a.maxDistanceFromPrevTap>=i}return o=e,!0}({x:f,y:h},u)&&function(e){var t=performance.now();if(void 0===m)return m=t,!0;var a=t-m;return m=t,a number; +/** + * 向量夹角(角度) + * @param {Object} v1 + * @param {Object} v2 + */ +export default _default; diff --git a/node_modules/@any-touch/vector/dist/getCross.d.ts b/node_modules/@any-touch/vector/dist/getCross.d.ts new file mode 100644 index 0000000..a596e67 --- /dev/null +++ b/node_modules/@any-touch/vector/dist/getCross.d.ts @@ -0,0 +1,7 @@ +import { Vector } from '@any-touch/shared'; +declare const _default: (v1: Vector, v2: Vector) => number; +/** + * 求旋转方向 + * 顺时针/逆时针 + */ +export default _default; diff --git a/node_modules/@any-touch/vector/dist/getDirection.d.ts b/node_modules/@any-touch/vector/dist/getDirection.d.ts new file mode 100644 index 0000000..9fe329f --- /dev/null +++ b/node_modules/@any-touch/vector/dist/getDirection.d.ts @@ -0,0 +1,8 @@ +import { directionString } from '@any-touch/shared'; +declare const _default: (x: number, y: number) => directionString | undefined; +/** + * 计算点相对于(0,0)的方向 + * @param x 事件开始到结束的X位移 + * @param y 事件开始到结束的Y位移 + */ +export default _default; diff --git a/node_modules/@any-touch/vector/dist/getDotProduct.d.ts b/node_modules/@any-touch/vector/dist/getDotProduct.d.ts new file mode 100644 index 0000000..5bfacbd --- /dev/null +++ b/node_modules/@any-touch/vector/dist/getDotProduct.d.ts @@ -0,0 +1,8 @@ +import { Vector } from '@any-touch/shared'; +declare const _default: (v1: Vector, v2: Vector) => number; +/** + * 点积 + * @param {Object} v1 + * @param {Object} v2 + */ +export default _default; diff --git a/node_modules/@any-touch/vector/dist/getRadian.d.ts b/node_modules/@any-touch/vector/dist/getRadian.d.ts new file mode 100644 index 0000000..9e9ac9b --- /dev/null +++ b/node_modules/@any-touch/vector/dist/getRadian.d.ts @@ -0,0 +1,8 @@ +import { Vector } from '@any-touch/shared'; +declare const _default: (v1: Vector, v2: Vector) => number; +/** + * 向量夹角(弧度) + * @param {Object} v1 + * @param {Object} v2 + */ +export default _default; diff --git a/node_modules/@any-touch/vector/dist/getVLength.d.ts b/node_modules/@any-touch/vector/dist/getVLength.d.ts new file mode 100644 index 0000000..8aae8ce --- /dev/null +++ b/node_modules/@any-touch/vector/dist/getVLength.d.ts @@ -0,0 +1,7 @@ +import { Vector } from '@any-touch/shared'; +declare const _default: (v: Vector) => number; +/** + * 获取向量长度(向量模) + * @param {Object} 向 量 + */ +export default _default; diff --git a/node_modules/@any-touch/vector/dist/index.d.ts b/node_modules/@any-touch/vector/dist/index.d.ts new file mode 100644 index 0000000..797afa0 --- /dev/null +++ b/node_modules/@any-touch/vector/dist/index.d.ts @@ -0,0 +1,7 @@ +export { default as getAngle } from './getAngle'; +export { default as getCross } from './getCross'; +export { default as getDirection } from './getDirection'; +export { default as getDotProduct } from './getDotProduct'; +export { default as getRadian } from './getRadian'; +export { default as getVLength } from './getVLength'; +export { default as radianToAngle } from './radianToAngle'; diff --git a/node_modules/@any-touch/vector/dist/index.es.js b/node_modules/@any-touch/vector/dist/index.es.js new file mode 100644 index 0000000..7cfb167 --- /dev/null +++ b/node_modules/@any-touch/vector/dist/index.es.js @@ -0,0 +1,2 @@ +import{DIRECTION_RIGHT as r,DIRECTION_LEFT as a,DIRECTION_DOWN as t,DIRECTION_UP as h}from"@any-touch/shared";var x=r=>Math.sqrt(r.x*r.x+r.y*r.y),y=(r,a)=>r.x*a.x+r.y*a.y,e=(r,a)=>{var t=x(r)*x(a);if(0===t)return 0;var h=y(r,a)/t;return h>1&&(h=1),Math.acos(h)},n=(r,a)=>r.x*a.y-a.x*r.y,o=r=>r/Math.PI*180,s=(r,a)=>{var t=e(r,a);return n(r,a)>0&&(t*=-1),o(t)},u=(x,y)=>{if(0!==x||0!==y)return Math.abs(x)>=Math.abs(y)?01&&(u=1),Math.acos(u)},o=function(t,r){return t.x*r.y-r.x*t.y},u=function(t){return t/Math.PI*180};exports.getAngle=function(t,r){var e=n(t,r);return o(t,r)>0&&(e*=-1),u(e)},exports.getCross=o,exports.getDirection=function(r,e){if(0!==r||0!==e)return Math.abs(r)>=Math.abs(e)?0 number; +/** + * 弧度转角度 + * @param {Number} 弧度 + */ +export default _default; diff --git a/node_modules/@any-touch/vector/package.json b/node_modules/@any-touch/vector/package.json new file mode 100644 index 0000000..53ac650 --- /dev/null +++ b/node_modules/@any-touch/vector/package.json @@ -0,0 +1,20 @@ +{ + "name": "@any-touch/vector", + "version": "2.2.0", + "description": "any-touch中向量计算相关的函数.", + "main": "dist/index.js", + "module": "dist/index.es.js", + "author": "any86", + "license": "MIT", + "dependencies": { + "@any-touch/shared": "^2.2.0" + }, + "publishConfig": { + "access": "public" + }, + "files": [ + "dist/*" + ], + "sideEffects": false, + "gitHead": "c3df8dd84bd61d91f766f6d7f31dbefe6e463ce6" +} diff --git a/node_modules/any-event/LICENSE b/node_modules/any-event/LICENSE new file mode 100644 index 0000000..88f4b98 --- /dev/null +++ b/node_modules/any-event/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Russell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/any-event/README.md b/node_modules/any-event/README.md new file mode 100644 index 0000000..6f7884c --- /dev/null +++ b/node_modules/any-event/README.md @@ -0,0 +1,96 @@ +# any-event [![NPM Version][npm-image]][npm-url] [![npm bundle size (minified + gzip)][size-image]][size-url] [![codecov][codecov-image]][codecov-url] [![CircleCI][ci-image]][ci-url] + +[npm-image]: https://img.shields.io/npm/v/any-event.svg +[npm-url]: https://npmjs.org/package/any-event +[downloads-url]: https://npmjs.org/package/any-event +[size-image]: https://img.shields.io/bundlephobia/minzip/any-event.svg +[size-url]: https://bundlephobia.com/result?p=any-event +[codecov-image]: https://codecov.io/gh/any86/any-event/branch/master/graph/badge.svg +[codecov-url]: https://codecov.io/gh/any86/any-event +[ci-image]: https://circleci.com/gh/any86/any-event.svg?style=svg +[ci-url]: https://circleci.com/gh/any86/any-event + +:cake: 不到1k, 一个mini的事件管理器, 希望能在您的代码中做一块砖. + + +## 安装 + +``` shell +npm i -S any-event +``` + +## 使用 + +``` javascript +import EventEmitter from 'any-event'; +const emitter = new EventEmitter(); +emitter.on('add', data=>{ + console.log(data) // 1 +}); +emitter.emit('add', 1); +``` +## 方法 + + +### on(eventName, listener) +绑定事件 + +|名称|类型|数据类型|是否必填|说明| +|---|---|---|---|---| +|eventName| 参数 |`String/Symbol`|是|事件名称| +|listener| 参数 |`Function`|是|对应的回调函数| +|emitter| 返回值 |`EventEmitter`|---|实例| + +### off(eventName, listener) +解除绑定, 如果不填写`listener`, 那么`eventName`对应的`listener`都会被移除. + +|名称|类型|数据类型|是否必填|说明| +|---|---|---|---|---| +|eventName| 参数 |`String/Symbol`|是|事件名称| +|listener| 参数 |`Function`|是|对应的回调函数| +|emitter| 返回值 |`EventEmitter`|---|实例| + +``` javascript +const callback = data=>{ + alert(data) +}; +emitter.on('add', callback); +// 解除绑定 +emitter.off('add', callback); +// add事件不会触发 +emitter.emit('add', 1); +``` + + +### emit(eventName [, ...args]) +触发事件, 支持任意数量参数 + +|名称|类型|数据类型|是否必填|说明| +|---|---|---|---|---| +|eventName| 参数 |`String/Symbol`|是|事件名称| +| args| 参数 |`Any`|是|数据| +|emitter| 返回值 |`Boolean`|---|实例| + +``` javascript +const callback = (a,b,c,d)=>{ + console(a,b,c,d); // 1,2,3,4 +}; +emitter.once('add', callback); +// add事件触发 +emitter.emit('add', 1,2,3,4); +``` + + +### destroy() +销毁实例 + +``` javascript +const callback = (a,b,c,d)=>{ + console(a,b,c,d); // 1,2,3,4 +}; +emitter.once('add', callback); +emitter.destroy(); + +// add事件不会触发 +emitter.emit('add', 1,2,3,4); +``` diff --git a/node_modules/any-event/dist/index.d.ts b/node_modules/any-event/dist/index.d.ts new file mode 100644 index 0000000..96ced52 --- /dev/null +++ b/node_modules/any-event/dist/index.d.ts @@ -0,0 +1,48 @@ +export interface DefaultTypeAndEventMap { + [type: string]: any; +} +export interface AEventListener { + (event: Event, key: Key): void; +} +export interface Interceptor { + (type: string | number | symbol, next: () => void): void; +} +export default class AnyEvent { + private __map; + private __interceptor?; + /** + * 当前事件对象 + */ + event: unknown; + /** + * 注册拦截器 + * @param interceptor 拦截器 + */ + beforeEach(interceptor: Interceptor): void; + /** + * 绑定事件 + * @param typeOrTypes 事件名 + * @param listener 回调函数 + */ + on(typeOrTypes: Key | Key[], listener: AEventListener): this; + /** + * 按照监听器注册的顺序,同步地调用每个注册到名为 eventName 的事件的监听器,并传入提供的参数。 + * @param type 事件名 + * @param payload 数据 + * @param done 运行成功执行 + */ + emit(type: Key, payload?: TypeAndEventMap[Key], callback?: () => void): void; + private __emit; + /** + * 解除绑定, + * 如果不指定listener, + * 那么解除所有eventName对应回调 + * @param type 事件名 + * @param listener 回调函数 + */ + off(type: Key, listener?: AEventListener): void; + /** + * 销毁实例 + */ + destroy(): void; +} diff --git a/node_modules/any-event/dist/index.es.js b/node_modules/any-event/dist/index.es.js new file mode 100644 index 0000000..de7ee9b --- /dev/null +++ b/node_modules/any-event/dist/index.es.js @@ -0,0 +1,2 @@ +class t{constructor(){this.__map={}}beforeEach(t){this.__interceptor=t}on(t,i){const s=Array.isArray(t)?t:[t];for(const t of s){this.__map[t]=this.__map[t]||[];const s=this.__map[t];s&&s.push(i)}return this}emit(t,i,s){void 0!==this.__interceptor?this.__interceptor(t,(()=>{this.__emit(t,i),s&&s()})):(this.__emit(t,i),s&&s())}__emit(t,i){const s=this.__map[t];if(Array.isArray(s)&&(null==s?void 0:s.length))for(const _ of s)_(i,t);this.event=i}off(t,i){const s=this.__map[t];if(void 0!==s)if(void 0===i)delete this.__map[t];else{const t=s.findIndex((t=>t===i));s.splice(t,1)}}destroy(){this.__map={}}}export{t as default}; +//# sourceMappingURL=index.es.js.map diff --git a/node_modules/any-event/dist/index.es.js.map b/node_modules/any-event/dist/index.es.js.map new file mode 100644 index 0000000..4215bcc --- /dev/null +++ b/node_modules/any-event/dist/index.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.es.js","sources":["../../../../packages/any-event/src/index.ts"],"sourcesContent":[null],"names":["AnyEvent","constructor","this","beforeEach","interceptor","__interceptor","on","typeOrTypes","listener","types","Array","isArray","type","__map","listeners","push","emit","payload","callback","__emit","event","length","off","index","findIndex","cb","splice","destroy"],"mappings":"MA2BqBA,EAArBC,cAEYC,WAAkD,GAa1DC,WAAWC,GACPF,KAAKG,cAAgBD,EAQzBE,GAAsCC,EAA0BC,GAC5D,MAAMC,EAAQC,MAAMC,QAAQJ,GAAeA,EAAc,CAACA,GAC1D,IAAK,MAAMK,KAAQH,EAAO,CACtBP,KAAKW,MAAMD,GAAQV,KAAKW,MAAMD,IAAS,GACvC,MAAME,EAAYZ,KAAKW,MAAMD,GACzBE,GACAA,EAAUC,KAAKP,GAGvB,OAAON,KASXc,KAAwCJ,EAAWK,EAAgCC,QAC3E,IAAWhB,KAAKG,cAChBH,KAAKG,cAAcO,GAAM,KACrBV,KAAKiB,OAAkCP,EAAMK,GAC7CC,GAAYA,QAGhBhB,KAAKiB,OAAkCP,EAAMK,GAC7CC,GAAYA,KAIZC,OAAkDP,EAAWQ,GACjE,MAAMN,EAAYZ,KAAKW,MAAMD,GAC7B,GAAIF,MAAMC,QAAQG,KAAcA,MAAAA,SAAAA,EAAWO,QACvC,IAAK,MAAMb,KAAYM,EACnBN,EAASY,EAAMR,GAGvBV,KAAKkB,MAAQA,EAUjBE,IAAuCV,EAAWJ,GAC9C,MAAMM,EAAYZ,KAAKW,MAAMD,GAE7B,QAAI,IAAWE,EAEX,QAAI,IAAWN,SACJN,KAAKW,MAAMD,OAGjB,CACD,MAAMW,EAAQT,EAAUU,WAAUC,GAAMA,IAAOjB,IAC/CM,EAAUY,OAAOH,EAAO,IAQpCI,UACIzB,KAAKW,MAAQ"} \ No newline at end of file diff --git a/node_modules/any-event/dist/index.js b/node_modules/any-event/dist/index.js new file mode 100644 index 0000000..563e96f --- /dev/null +++ b/node_modules/any-event/dist/index.js @@ -0,0 +1,2 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),r=function(){function r(){this.__map={}}return r.prototype.beforeEach=function(t){this.__interceptor=t},r.prototype.on=function(r,e){var i,o,n=Array.isArray(r)?r:[r];try{for(var a=t.__values(n),_=a.next();!_.done;_=a.next()){var s=_.value;this.__map[s]=this.__map[s]||[];var p=this.__map[s];p&&p.push(e)}}catch(t){i={error:t}}finally{try{_&&!_.done&&(o=a.return)&&o.call(a)}finally{if(i)throw i.error}}return this},r.prototype.emit=function(t,r,e){var i=this;void 0!==this.__interceptor?this.__interceptor(t,(function(){i.__emit(t,r),e&&e()})):(this.__emit(t,r),e&&e())},r.prototype.__emit=function(r,e){var i,o,n=this.__map[r];if(Array.isArray(n)&&(null==n?void 0:n.length))try{for(var a=t.__values(n),_=a.next();!_.done;_=a.next()){(0,_.value)(e,r)}}catch(t){i={error:t}}finally{try{_&&!_.done&&(o=a.return)&&o.call(a)}finally{if(i)throw i.error}}this.event=e},r.prototype.off=function(t,r){var e=this.__map[t];if(void 0!==e)if(void 0===r)delete this.__map[t];else{var i=e.findIndex((function(t){return t===r}));e.splice(i,1)}},r.prototype.destroy=function(){this.__map={}},r}();exports.default=r; +//# sourceMappingURL=index.js.map diff --git a/node_modules/any-event/dist/index.js.map b/node_modules/any-event/dist/index.js.map new file mode 100644 index 0000000..1d6191f --- /dev/null +++ b/node_modules/any-event/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../../packages/any-event/src/index.ts"],"sourcesContent":[null],"names":["this","AnyEvent","interceptor","__interceptor","typeOrTypes","listener","types","Array","isArray","types_1","__values","type","__map","listeners","push","payload","callback","_this","__emit","event","length","listeners_1","index","findIndex","cb","splice"],"mappings":"wGA2BA,aAEYA,WAAkD,GA2F9D,OA9EIC,uBAAA,SAAWC,GACPF,KAAKG,cAAgBD,GAQzBD,eAAA,SAAsCG,EAA0BC,WACtDC,EAAQC,MAAMC,QAAQJ,GAAeA,EAAc,CAACA,OAC1D,IAAmB,IAAAK,EAAAC,WAAAJ,iCAAO,CAArB,IAAMK,UACPX,KAAKY,MAAMD,GAAQX,KAAKY,MAAMD,IAAS,GACvC,IAAME,EAAYb,KAAKY,MAAMD,GACzBE,GACAA,EAAUC,KAAKT,qGAGvB,OAAOL,MASXC,iBAAA,SAAwCU,EAAWI,EAAgCC,GAAnF,gBACQ,IAAWhB,KAAKG,cAChBH,KAAKG,cAAcQ,GAAM,WACrBM,EAAKC,OAAkCP,EAAMI,GAC7CC,GAAYA,QAGhBhB,KAAKkB,OAAkCP,EAAMI,GAC7CC,GAAYA,MAIZf,mBAAR,SAA0DU,EAAWQ,WAC3DN,EAAYb,KAAKY,MAAMD,GAC7B,GAAIJ,MAAMC,QAAQK,KAAcA,MAAAA,SAAAA,EAAWO,YACvC,IAAuB,IAAAC,EAAAX,WAAAG,iCAAW,EAC9BR,WAASc,EAAMR,qGAGvBX,KAAKmB,MAAQA,GAUjBlB,gBAAA,SAAuCU,EAAWN,GAC9C,IAAMQ,EAAYb,KAAKY,MAAMD,GAE7B,QAAI,IAAWE,EAEX,QAAI,IAAWR,SACJL,KAAKY,MAAMD,OAGjB,CACD,IAAMW,EAAQT,EAAUU,WAAU,SAAAC,GAAM,OAAAA,IAAOnB,KAC/CQ,EAAUY,OAAOH,EAAO,KAQpCrB,oBAAA,WACID,KAAKY,MAAQ"} \ No newline at end of file diff --git a/node_modules/any-event/package.json b/node_modules/any-event/package.json new file mode 100644 index 0000000..487eca2 --- /dev/null +++ b/node_modules/any-event/package.json @@ -0,0 +1,23 @@ +{ + "name": "any-event", + "version": "2.2.0", + "description": "小巧的事件模型", + "main": "dist/index.js", + "module": "dist/index.es.js", + "types": "dist/index.d.ts", + "homepage": "https://github.com/any86/any-event", + "keywords": [ + "event", + "emit" + ], + "dependencies": { + "tslib": "^2.3.1" + }, + "files": [ + "dist/*" + ], + "author": "any86", + "license": "MIT", + "sideEffects": false, + "gitHead": "c3df8dd84bd61d91f766f6d7f31dbefe6e463ce6" +} diff --git a/node_modules/any-touch/LICENSE b/node_modules/any-touch/LICENSE new file mode 100644 index 0000000..88f4b98 --- /dev/null +++ b/node_modules/any-touch/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Russell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/any-touch/README.md b/node_modules/any-touch/README.md new file mode 100644 index 0000000..66e8a59 --- /dev/null +++ b/node_modules/any-touch/README.md @@ -0,0 +1,54 @@ +# any-touch [![NPM Version][npm-image]][npm-url] [![NPM Downloads][downloads-image]][downloads-url] [![size-image]][size-url] [![codecov](https://codecov.io/gh/any86/any-touch/branch/master/graph/badge.svg)](https://codecov.io/gh/any86/any-touch) [![CircleCI](https://circleci.com/gh/any86/any-touch.svg?style=svg)](https://circleci.com/gh/any86/any-touch) + +[size-image]: https://badgen.net/bundlephobia/minzip/@any-touch/core +[size-url]: https://bundlephobia.com/result?p=@any-touch/core +[npm-image]: https://badgen.net/npm/v/any-touch +[npm-url]: https://npmjs.org/package/any-touch +[downloads-image]: https://badgen.net/npm/dt/any-touch +[downloads-url]: https://npmjs.org/package/any-touch + +![6类手势](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/102a244991064824900ac45efeb9251d~tplv-k3u1fbpfcp-zoom-1.image) + + +- 支持 PC 端 / 移动端 / 微信小程序. +- 默认加载**6 个手势**, 也可按需加载手势, 核心**1kb**, 完整**4kb**. +- **无依赖, 不限于 Vue / React / Angular等...** + +## 演示 + +

+查看二维码 + +
+ +[直接访问](https://any86.github.io/any-touch) + + +## 安装 + +```javascript +npm i -S any-touch +``` + +## CDN + +```html + + +``` + +## 快速开始 + +```javascript +import AnyTouch from 'any-touch'; + +const el = document.getElementById('box'); +const at = new AnyTouch(el); + +// e包含位移/速度/方向等信息 +at.on('pan', (e) => console.log(e)); +``` + +[🚀 更多文档](https://github.com/any86/any-touch#any-touch-----) \ No newline at end of file diff --git a/node_modules/any-touch/dist/any-touch.umd.js b/node_modules/any-touch/dist/any-touch.umd.js new file mode 100644 index 0000000..3c0683e --- /dev/null +++ b/node_modules/any-touch/dist/any-touch.umd.js @@ -0,0 +1,1071 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.AnyTouch = factory()); +})(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + /* global Reflect, Promise */ + + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + + function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + } + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + } + + var AnyEvent = (function () { + function AnyEvent() { + this.__map = {}; + } + AnyEvent.prototype.beforeEach = function (interceptor) { + this.__interceptor = interceptor; + }; + AnyEvent.prototype.on = function (typeOrTypes, listener) { + var e_1, _a; + var types = Array.isArray(typeOrTypes) ? typeOrTypes : [typeOrTypes]; + try { + for (var types_1 = __values(types), types_1_1 = types_1.next(); !types_1_1.done; types_1_1 = types_1.next()) { + var type = types_1_1.value; + this.__map[type] = this.__map[type] || []; + var listeners = this.__map[type]; + if (listeners) { + listeners.push(listener); + } + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (types_1_1 && !types_1_1.done && (_a = types_1.return)) _a.call(types_1); + } + finally { if (e_1) throw e_1.error; } + } + return this; + }; + AnyEvent.prototype.emit = function (type, payload, callback) { + var _this = this; + if (void 0 !== this.__interceptor) { + this.__interceptor(type, function () { + _this.__emit(type, payload); + callback && callback(); + }); + } + else { + this.__emit(type, payload); + callback && callback(); + } + }; + AnyEvent.prototype.__emit = function (type, event) { + var e_2, _a; + var listeners = this.__map[type]; + if (Array.isArray(listeners) && (listeners === null || listeners === void 0 ? void 0 : listeners.length)) { + try { + for (var listeners_1 = __values(listeners), listeners_1_1 = listeners_1.next(); !listeners_1_1.done; listeners_1_1 = listeners_1.next()) { + var listener = listeners_1_1.value; + listener(event, type); + } + } + catch (e_2_1) { e_2 = { error: e_2_1 }; } + finally { + try { + if (listeners_1_1 && !listeners_1_1.done && (_a = listeners_1.return)) _a.call(listeners_1); + } + finally { if (e_2) throw e_2.error; } + } + } + this.event = event; + }; + AnyEvent.prototype.off = function (type, listener) { + var listeners = this.__map[type]; + if (void 0 !== listeners) { + if (void 0 === listener) { + delete this.__map[type]; + } + else { + var index = listeners.findIndex(function (cb) { return cb === listener; }); + listeners.splice(index, 1); + } + } + }; + AnyEvent.prototype.destroy = function () { + this.__map = {}; + }; + return AnyEvent; + }()); + + var TOUCH_START = 'touchstart'; + var TOUCH_MOVE = 'touchmove'; + var TOUCH_END = 'touchend'; + var TOUCH_CANCEL = 'touchcancel'; + var MOUSE_UP = 'mouseup'; + var MOUSE_MOVE = 'mousemove'; + var MOUSE_DOWN = 'mousedown'; + var TYPE_START$1 = 'start'; + var TYPE_MOVE$1 = 'move'; + var TYPE_END$1 = 'end'; + function isFunction(input) { + return '[object Function]' === Object.prototype.toString.call(input); + } + + var CLIENT_X = 'clientX'; + var CLIENT_Y = 'clientY'; + var COMPUTE_INTERVAL = 16; + var TYPE_START = 'start'; + var TYPE_MOVE = 'move'; + var TYPE_CANCEL = 'cancel'; + var TYPE_END = 'end'; + var DIRECTION_LEFT = 'left'; + var DIRECTION_RIGHT = 'right'; + var DIRECTION_UP = 'up'; + var DIRECTION_DOWN = 'down'; + + var _a; + var STATUS_CODE_AND_NAME_MAP = (_a = {}, + _a[4] = TYPE_START, + _a[5] = TYPE_MOVE, + _a[1] = TYPE_END, + _a[3] = TYPE_CANCEL, + _a); + function getStatusName(code) { + return STATUS_CODE_AND_NAME_MAP[code]; + } + function flow(isVaild, lastStatus, phase) { + var _a, _b, _c, _d, _e, _f, _g; + var STATE_MAP = { + 1: (_a = {}, + _a[0] = (_b = {}, + _b[TYPE_MOVE] = 4, + _b), + _a[4] = (_c = {}, + _c[TYPE_MOVE] = 5, + _c[TYPE_END] = 1, + _c[TYPE_CANCEL] = 3, + _c), + _a[5] = (_d = {}, + _d[TYPE_MOVE] = 5, + _d[TYPE_END] = 1, + _d[TYPE_CANCEL] = 3, + _d), + _a), + 0: (_e = {}, + _e[4] = (_f = {}, + _f[TYPE_MOVE] = 2, + _f[TYPE_END] = 1, + _f[TYPE_CANCEL] = 3, + _f), + _e[5] = (_g = {}, + _g[TYPE_START] = 2, + _g[TYPE_MOVE] = 2, + _g[TYPE_END] = 1, + _g[TYPE_CANCEL] = 3, + _g), + _e), + }; + var map = STATE_MAP[Number(isVaild)][lastStatus]; + return (void 0 !== map && map[phase]) || 0; + } + function resetState(context) { + if ([1, 3, 2].includes(context.state)) { + context.state = 0; + } + } + function isMoveOrEndOrCancel(state) { + return [5, 1, 3].includes(state); + } + function isDisabled(context) { + if (context.disabled) { + context.state = 0; + return true; + } + } + + function createPluginContext(defaultOptions, options) { + return __assign(__assign(__assign({}, defaultOptions), options), { state: 0, disabled: false }); + } + + function round2(n) { + return Math.round(n * 100) / 100; + } + + function inputCreator () { + var id = 0; + var prevInput; + var activeInput; + var startInput; + var startMultiInput; + return function (basicsInput) { + prevInput = activeInput; + if (void 0 !== basicsInput) { + id = Number.MAX_SAFE_INTEGER > id ? ++id : 1; + var pureInput = extendInput(basicsInput, id); + activeInput = pureInput; + var isStart = pureInput.isStart, pointLength = pureInput.pointLength; + if (isStart) { + startInput = pureInput; + prevInput = void 0; + if (1 < pointLength) { + startMultiInput = pureInput; + } + else { + startMultiInput = void 0; + } + } + return __assign(__assign({}, pureInput), { prevInput: prevInput, startMultiInput: startMultiInput, startInput: startInput }); + } + }; + } + function getCenter(points) { + var length = points.length; + if (0 < length) { + if (1 === length) { + var _a = points[0], clientX = _a.clientX, clientY = _a.clientY; + return { x: Math.round(clientX), y: Math.round(clientY) }; + } + var countPoint = points.reduce(function (countPoint, point) { + countPoint.x += point[CLIENT_X]; + countPoint.y += point[CLIENT_Y]; + return countPoint; + }, { x: 0, y: 0 }); + return { x: Math.round(countPoint.x / length), y: Math.round(countPoint.y / length) }; + } + } + function extendInput(basicsInput, id) { + var phase = basicsInput.phase, points = basicsInput.points, changedPoints = basicsInput.changedPoints, nativeEvent = basicsInput.nativeEvent; + var pointLength = points.length; + var isStart = TYPE_START === phase; + var isEnd = (TYPE_END === phase && 0 === pointLength) || TYPE_CANCEL === phase; + var timestamp = Date.now(); + var _a = getCenter(points) || getCenter(changedPoints), x = _a.x, y = _a.y; + var currentTarget = nativeEvent.currentTarget; + return Object.assign(basicsInput, { + id: id, + x: x, + y: y, + timestamp: timestamp, + isStart: isStart, + isEnd: isEnd, + pointLength: pointLength, + currentTarget: currentTarget, + getOffset: function (el) { + if (el === void 0) { el = currentTarget; } + var rect = el.getBoundingClientRect(); + return { x: x - Math.round(rect.left), y: y - Math.round(rect.top) }; + } + }); + } + + function mouse () { + var prevPoints; + var isPressed = false; + var _target = null; + var createInput = inputCreator(); + return function (event) { + var clientX = event.clientX, clientY = event.clientY, type = event.type, button = event.button, target = event.target; + var points = [{ clientX: clientX, clientY: clientY, target: target }]; + var phase; + if (MOUSE_DOWN === type && 0 === button) { + _target = target; + isPressed = true; + phase = TYPE_START$1; + } + else if (isPressed) { + if (MOUSE_MOVE === type) { + phase = TYPE_MOVE$1; + } + else if (MOUSE_UP === type) { + points = []; + phase = TYPE_END$1; + isPressed = false; + } + } + else { + return; + } + var changedPoints = prevPoints || [{ clientX: clientX, clientY: clientY, target: target }]; + prevPoints = [{ clientX: clientX, clientY: clientY, target: target }]; + if (void 0 !== phase) { + return createInput({ + phase: phase, + changedPoints: changedPoints, + points: points, + target: _target, + targets: [_target], + nativeEvent: event + }); + } + }; + } + + function touch (el) { + var createInput = inputCreator(); + return function (event) { + var targets = []; + var points = []; + Array.from(event.touches).forEach(function (_a) { + var clientX = _a.clientX, clientY = _a.clientY, target = _a.target; + if (el === null || el === void 0 ? void 0 : el.contains(target)) { + targets.push(target); + points.push({ clientX: clientX, clientY: clientY, target: target }); + } + }); + var changedPoints = Array.from(event.changedTouches).map(function (_a) { + var clientX = _a.clientX, clientY = _a.clientY, target = _a.target; + return ({ clientX: clientX, clientY: clientY, target: target }); + }); + return createInput({ + phase: event.type.replace('touch', ''), + changedPoints: changedPoints, + points: points, + nativeEvent: event, + target: event.target, + targets: targets + }); + }; + } + + function dispatchDomEvent (typeName, el, payload, eventInit) { + var data = {}; + for (var key in payload) { + if (!['target', 'currentTarget', 'type'].includes(key)) { + data[key] = payload[key]; + } + } + var event; + if (document.createEvent) { + event = document.createEvent('HTMLEvents'); + event.initEvent(typeName, eventInit === null || eventInit === void 0 ? void 0 : eventInit.bubbles, eventInit === null || eventInit === void 0 ? void 0 : eventInit.cancelable); + } + else { + event = new Event(typeName, eventInit); + } + Object.assign(event, data, { + match: function () { + return payload.targets && 0 < payload.targets.length && payload.targets.every(function (target) { return event.currentTarget.contains(target); }); + }, + }); + return el.dispatchEvent(event); + } + + function canPreventDefault (event, options) { + var preventDefault = options.preventDefault; + if (isFunction(preventDefault)) { + return preventDefault(event); + } + else { + return !!preventDefault; + } + } + + var ELEMENT_TYPES = [TOUCH_START, TOUCH_MOVE, TOUCH_END, TOUCH_CANCEL, MOUSE_DOWN]; + var WINDOW_TYPES = [MOUSE_MOVE, MOUSE_UP]; + function bindElement (el, catchEvent, options) { + ELEMENT_TYPES.forEach(function (type) { + el.addEventListener(type, catchEvent, options); + }); + WINDOW_TYPES.forEach(function (type) { + window.addEventListener(type, catchEvent, options); + }); + return function () { + ELEMENT_TYPES.forEach(function (types) { + el.removeEventListener(types, catchEvent); + }); + WINDOW_TYPES.forEach(function (type) { + window.removeEventListener(type, catchEvent); + }); + }; + } + + var TYPE_COMPUTED = 'computed'; + var DEFAULT_OPTIONS$6 = { + domEvents: { bubbles: true, cancelable: true }, + preventDefault: function (event) { + if (event.target && 'tagName' in event.target) { + var tagName = event.target.tagName; + return !/^(?:INPUT|TEXTAREA|BUTTON|SELECT)$/.test(tagName); + } + return false; + }, + }; + var TYPE_UNBIND = 'u'; + var TYPE_INPUT = 'input'; + var TYPE_AT_AFTER = 'at:after'; + var default_1$1 = (function (_super) { + __extends(default_1, _super); + function default_1(el, options) { + var _a; + var _this = _super.call(this) || this; + _this.v = '2.1.3'; + _this.__computeFunctionList = []; + _this.__computeFunctionCreatorList = []; + _this.__pluginContexts = []; + _this.__isIgnoreMouse = false; + _this.el = el; + _this.c = {}; + _this.__options = __assign(__assign({}, DEFAULT_OPTIONS$6), options); + var createInputFromTouch = touch(_this.el); + var createInputFromMouse = mouse(); + _this.__inputCreatorMap = (_a = {}, + _a[TOUCH_START] = createInputFromTouch, + _a[TOUCH_MOVE] = createInputFromTouch, + _a[TOUCH_END] = createInputFromTouch, + _a[TOUCH_CANCEL] = createInputFromTouch, + _a[MOUSE_DOWN] = createInputFromMouse, + _a[MOUSE_MOVE] = createInputFromMouse, + _a[MOUSE_UP] = createInputFromMouse, + _a); + _this.on(TYPE_AT_AFTER, function (payload) { + var target = payload.target, __type = payload.__type; + var domEvents = _this.__options.domEvents; + if (!!domEvents && void 0 !== _this.el && !!target) { + dispatchDomEvent(__type, target, payload, domEvents); + dispatchDomEvent(TYPE_AT_AFTER, target, payload, domEvents); + } + }); + if (void 0 !== el) { + el.style.webkitTapHighlightColor = 'rgba(0,0,0,0)'; + var supportsPassive_1 = false; + try { + var opts = {}; + Object.defineProperty(opts, 'passive', { + get: function () { + supportsPassive_1 = true; + }, + }); + window.addEventListener('_', function () { return void 0; }, opts); + } + catch (_b) { } + _this.on(TYPE_UNBIND, bindElement(el, _this.catchEvent.bind(_this), false === _this.__options.preventDefault && supportsPassive_1 ? { passive: true } : { passive: false })); + } + return _this; + } + default_1.prototype.use = function (plugin, pluginOptions) { + this.__pluginContexts.push(plugin(this, pluginOptions)); + }; + default_1.prototype.catchEvent = function (event) { + var input = this.__inputCreatorMap[event.type](event); + if (void 0 !== input) { + var stopPropagation = function () { return event.stopPropagation(); }; + var stopImmediatePropagation = function () { return event.stopImmediatePropagation(); }; + var preventDefault = function () { return event.preventDefault(); }; + if (canPreventDefault(event, this.__options)) { + preventDefault(); + } + else { + if ('touchstart' === event.type) { + this.__isIgnoreMouse = true; + } + else if ('touchmove' === event.type) { + this.__isIgnoreMouse = false; + } + if (this.__isIgnoreMouse && event.type.startsWith('mouse')) { + if ('mouseup' === event.type) { + this.__isIgnoreMouse = false; + } + return; + } + } + this.emit(TYPE_INPUT, input); + this.emit2("at:".concat(input.phase), input, {}); + var computed_1 = {}; + this.__computeFunctionList.forEach(function (compute) { + var result = compute(input, computed_1); + if (void 0 !== result) { + for (var key in result) { + computed_1[key] = result[key]; + } + } + }); + this.emit(TYPE_COMPUTED, __assign(__assign(__assign({}, input), computed_1), { stopPropagation: stopPropagation, stopImmediatePropagation: stopImmediatePropagation, preventDefault: preventDefault })); + } + }; + default_1.prototype.compute = function (computeFunctionCreatorList, callback) { + var e_1, _a; + try { + for (var computeFunctionCreatorList_1 = __values(computeFunctionCreatorList), computeFunctionCreatorList_1_1 = computeFunctionCreatorList_1.next(); !computeFunctionCreatorList_1_1.done; computeFunctionCreatorList_1_1 = computeFunctionCreatorList_1.next()) { + var computeFunctionCreator = computeFunctionCreatorList_1_1.value; + if (!this.__computeFunctionCreatorList.includes(computeFunctionCreator)) { + this.__computeFunctionCreatorList.push(computeFunctionCreator); + this.__computeFunctionList.push(computeFunctionCreator()); + } + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (computeFunctionCreatorList_1_1 && !computeFunctionCreatorList_1_1.done && (_a = computeFunctionCreatorList_1.return)) _a.call(computeFunctionCreatorList_1); + } + finally { if (e_1) throw e_1.error; } + } + this.on(TYPE_COMPUTED, callback); + }; + default_1.prototype.beforeEach = function (interceptor) { + var _this = this; + _super.prototype.beforeEach.call(this, function (type, next) { + var _a; + if ((_a = _this.c) === null || _a === void 0 ? void 0 : _a.name) { + interceptor(type, next); + } + else { + next(); + } + }); + }; + default_1.prototype.get = function (name) { + return this.__pluginContexts.find(function (pluginContext) { return name === pluginContext.name; }); + }; + default_1.prototype.set = function (newOptions) { + this.__options = __assign(__assign({}, this.__options), newOptions); + }; + default_1.prototype.emit2 = function (type, payload, pluginContext) { + var _this = this; + this.c = pluginContext; + this.emit(type, __assign(__assign({}, payload), { type: type }), function () { + _this.emit(TYPE_AT_AFTER, __assign(__assign({}, payload), { name: type, __type: type })); + }); + }; + default_1.prototype.destroy = function () { + this.emit(TYPE_UNBIND); + _super.prototype.destroy.call(this); + }; + return default_1; + }(AnyEvent)); + + var getVLength = (function (v) { + return Math.sqrt(v.x * v.x + v.y * v.y); + }); + + var getDotProduct = (function (v1, v2) { + return v1.x * v2.x + v1.y * v2.y; + }); + + var getRadian = (function (v1, v2) { + var mr = getVLength(v1) * getVLength(v2); + if (mr === 0) + return 0; + var r = getDotProduct(v1, v2) / mr; + if (r > 1) + r = 1; + return Math.acos(r); + }); + + var getCross = (function (v1, v2) { + return v1.x * v2.y - v2.x * v1.y; + }); + + var radianToAngle = (function (radian) { return radian / Math.PI * 180; }); + + var getAngle = (function (v1, v2) { + var angle = getRadian(v1, v2); + if (getCross(v1, v2) > 0) { + angle *= -1; + } + return radianToAngle(angle); + }); + + var getDirection = (function (x, y) { + if (0 === x && 0 === y) { + return; + } + if (Math.abs(x) >= Math.abs(y)) { + return 0 < x ? DIRECTION_RIGHT : DIRECTION_LEFT; + } + else { + return 0 < y ? DIRECTION_DOWN : DIRECTION_UP; + } + }); + + function ComputeAngle() { + var angle = 0; + var deltaAngle = 0; + return function (input, computed) { + var prevVecotr = computed.prevVecotr, startVecotr = computed.startVecotr, activeVecotr = computed.activeVecotr; + if (activeVecotr) { + deltaAngle = Math.round(getAngle(activeVecotr, prevVecotr)); + angle = Math.round(getAngle(activeVecotr, startVecotr)); + } + return { angle: angle, deltaAngle: deltaAngle }; + }; + } + + function ComputeDeltaXY () { + return function (input) { + var prevInput = input.prevInput; + var deltaX = 0; + var deltaY = 0; + var deltaXYAngle = 0; + if (void 0 !== prevInput) { + deltaX = input.x - prevInput.x; + deltaY = input.y - prevInput.y; + if (0 !== deltaX || 0 !== deltaY) { + var deltaXY = Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2)); + deltaXYAngle = Math.round(radianToAngle(Math.acos(Math.abs(deltaX) / deltaXY))); + } + } + return { deltaX: deltaX, deltaY: deltaY, deltaXYAngle: deltaXYAngle }; + }; + } + + function ComputeDistance () { + var displacementX = 0; + var displacementY = 0; + var distanceX = 0; + var distanceY = 0; + var distance = 0; + var overallDirection; + return function (input) { + var phase = input.phase, startInput = input.startInput; + if (TYPE_START === phase) { + displacementX = 0; + displacementY = 0; + distanceX = 0; + distanceY = 0; + distance = 0; + } + else if (TYPE_MOVE === phase) { + displacementX = Math.round(input.points[0][CLIENT_X] - startInput.points[0][CLIENT_X]); + displacementY = Math.round(input.points[0][CLIENT_Y] - startInput.points[0][CLIENT_Y]); + distanceX = Math.abs(displacementX); + distanceY = Math.abs(displacementY); + distance = Math.round(getVLength({ x: distanceX, y: distanceY })); + overallDirection = getDirection(displacementX, displacementY); + } + return { + displacementX: displacementX, + displacementY: displacementY, + distanceX: distanceX, + distanceY: distanceY, + distance: distance, + overallDirection: overallDirection + }; + }; + } + + function ComputeScale () { + var scale = 1; + return function (input, computed) { + var deltaScale = 1; + var prevVecotr = computed.prevVecotr, startVecotr = computed.startVecotr, activeVecotr = computed.activeVecotr; + if (activeVecotr) { + deltaScale = round2(getVLength(activeVecotr) / getVLength(prevVecotr)); + scale = round2(getVLength(activeVecotr) / getVLength(startVecotr)); + } + return { scale: scale, deltaScale: deltaScale }; + }; + } + + function ComputeVAndDir () { + var velocityX = 0; + var velocityY = 0; + var speedX = 0; + var speedY = 0; + var direction; + var lastValidInput; + return function (input) { + if (void 0 !== input) { + lastValidInput = lastValidInput || input.startInput; + var deltaTime = input.timestamp - lastValidInput.timestamp; + if (COMPUTE_INTERVAL < deltaTime) { + var deltaX = input.x - lastValidInput.x; + var deltaY = input.y - lastValidInput.y; + speedX = Math.round(deltaX / deltaTime * 100) / 100; + speedY = Math.round(deltaY / deltaTime * 100) / 100; + velocityX = Math.abs(speedX); + velocityY = Math.abs(speedY); + direction = getDirection(deltaX, deltaY); + lastValidInput = input; + } + } + return { velocityX: velocityX, velocityY: velocityY, speedX: speedX, speedY: speedY, direction: direction }; + }; + } + + function ComputeMaxLength() { + var maxPointLength = 0; + return function (input) { + var phase = input.phase; + if (TYPE_START === phase) { + maxPointLength = input.pointLength; + } + return { maxPointLength: maxPointLength }; + }; + } + + function computeVector(input) { + return { + x: input.points[1][CLIENT_X] - input.points[0][CLIENT_X], + y: input.points[1][CLIENT_Y] - input.points[0][CLIENT_Y] + }; + } + function ComputeVectorForMutli () { + var startVecotr; + var prevVecotr; + var activeVecotr; + return function (input) { + var prevInput = input.prevInput, startMultiInput = input.startMultiInput; + if (void 0 !== startMultiInput && + void 0 !== prevInput && + input.id !== startMultiInput.id && + 1 < prevInput.pointLength && + 1 < input.pointLength) { + startVecotr = computeVector(startMultiInput); + prevVecotr = computeVector(prevInput); + activeVecotr = computeVector(input); + } + else { + activeVecotr = void 0; + } + return { + startVecotr: startVecotr, + prevVecotr: prevVecotr, + activeVecotr: activeVecotr + }; + }; + } + + var DEFAULT_OPTIONS$5 = { + name: 'tap', + pointLength: 1, + tapTimes: 1, + waitNextTapTime: 300, + maxDistance: 2, + maxDistanceFromPrevTap: 9, + maxPressTime: 250, + }; + function tap (at, options) { + var context = createPluginContext(DEFAULT_OPTIONS$5, options); + var tapCount = 0; + var prevTapPoint; + var prevTapTime; + var countDownToFailTimer; + function reset() { + tapCount = 0; + prevTapPoint = void 0; + prevTapTime = void 0; + } + function countDownToFail() { + countDownToFailTimer = setTimeout(function () { + context.state = 2; + reset(); + }, context.waitNextTapTime); + } + function isValidDistanceFromPrevTap(center, options) { + if (void 0 !== prevTapPoint) { + var distanceFromPreviousTap = getVLength({ x: center.x - prevTapPoint.x, y: center.y - prevTapPoint.y }); + prevTapPoint = center; + return options.maxDistanceFromPrevTap >= distanceFromPreviousTap; + } + else { + prevTapPoint = center; + return true; + } + } + function isValidInterval(waitNextTapTime) { + var now = performance.now(); + if (void 0 === prevTapTime) { + prevTapTime = now; + return true; + } + else { + var interval = now - prevTapTime; + prevTapTime = now; + return interval < waitNextTapTime; + } + } + at.compute([ComputeDistance, ComputeMaxLength], function (computed) { + if (isDisabled(context)) + return; + var phase = computed.phase, x = computed.x, y = computed.y; + if (TYPE_END !== phase) + return; + context.state = 0; + if (test()) { + clearTimeout(countDownToFailTimer); + if (isValidDistanceFromPrevTap({ x: x, y: y }, context) && isValidInterval(context.waitNextTapTime)) { + tapCount++; + } + else { + tapCount = 1; + } + if (0 === tapCount % context.tapTimes) { + context.state = 1; + at.emit2(context.name, computed, context); + reset(); + } + else { + countDownToFail(); + } + } + else { + reset(); + context.state = 2; + } + function test() { + var startInput = computed.startInput, pointLength = computed.pointLength, timestamp = computed.timestamp; + var deltaTime = timestamp - startInput.timestamp; + var distance = computed.distance, maxPointLength = computed.maxPointLength; + return (maxPointLength === context.pointLength && + 0 === pointLength && + context.maxDistance >= distance && + context.maxPressTime > deltaTime); + } + }); + return context; + } + + var DEFAULT_OPTIONS$4 = { name: 'pan', threshold: 10, pointLength: 1 }; + function pan (at, options) { + var context = createPluginContext(DEFAULT_OPTIONS$4, options); + at.compute([ComputeVAndDir, ComputeDistance, ComputeDeltaXY], function (computed) { + resetState(context); + if (isDisabled(context)) + return; + var isValid = test(); + context.state = flow(isValid, context.state, computed.phase); + if (isValid || isMoveOrEndOrCancel(context.state)) { + var name_1 = context.name; + at.emit2(name_1, computed, context); + at.emit2(name_1 + getStatusName(context.state), computed, context); + if (![TYPE_END, TYPE_CANCEL].includes(computed.phase) && computed.direction) { + at.emit2(name_1 + computed.direction, computed, context); + } + } + function test() { + var pointLength = computed.pointLength, distance = computed.distance; + return context.pointLength === pointLength && context.threshold <= distance; + } + }); + return context; + } + + var DEFAULT_OPTIONS$3 = { + name: 'swipe', + threshold: 10, + velocity: 0.3, + pointLength: 1, + }; + function swipe (at, options) { + var context = createPluginContext(DEFAULT_OPTIONS$3, options); + at.compute([ComputeDistance, ComputeVAndDir, ComputeMaxLength], function (computed) { + context.state = 0; + if (context.disabled) + return; + if (test()) { + var name_1 = context.name; + context.state = 1; + at.emit2(name_1, computed, context); + at.emit2(name_1 + computed.direction, computed, context); + } + function test() { + if (TYPE_END !== computed.phase) + return false; + var velocityX = computed.velocityX, velocityY = computed.velocityY, distance = computed.distance, maxPointLength = computed.maxPointLength; + return (maxPointLength === context.pointLength && + 0 === computed.points.length && + context.threshold < distance && + context.velocity < Math.max(velocityX, velocityY)); + } + }); + return context; + } + + var DEFAULT_OPTIONS$2 = { + name: 'press', + pointLength: 1, + maxDistance: 9, + minPressTime: 251, + }; + function press (at, options) { + var context = createPluginContext(DEFAULT_OPTIONS$2, options); + var timeoutId = 0; + at.compute([ComputeDistance], function (computed) { + if (isDisabled(context)) + return; + var phase = computed.phase, startInput = computed.startInput, pointLength = computed.pointLength; + if (TYPE_START === phase && context.pointLength === pointLength) { + resetState(context); + clearTimeout(timeoutId); + timeoutId = setTimeout(function () { + context.state = 1; + at.emit2(context.name, computed, context); + }, context.minPressTime); + } + else if (TYPE_END === phase && 1 === context.state) { + at.emit2("".concat(context.name).concat(DIRECTION_UP), computed, context); + } + else if (1 !== context.state) { + var deltaTime = computed.timestamp - startInput.timestamp; + if (!test() || + (context.minPressTime > deltaTime && [TYPE_END, TYPE_CANCEL].includes(phase))) { + clearTimeout(timeoutId); + context.state = 2; + } + } + function test() { + var distance = computed.distance; + return distance && context.maxDistance > distance; + } + }); + return context; + } + + var DEFAULT_OPTIONS$1 = { + name: 'pinch', + threshold: 0, + pointLength: 2, + }; + function pinch (at, options) { + var context = createPluginContext(DEFAULT_OPTIONS$1, options); + at.compute([ComputeVectorForMutli, ComputeScale], function (computed) { + resetState(context); + if (isDisabled(context)) + return; + var isValid = test(); + context.state = flow(isValid, context.state, computed.phase); + var name = context.name; + if (isValid || isMoveOrEndOrCancel(context.state)) { + at.emit2(name, computed, context); + var deltaScale = computed.deltaScale; + if (1 !== deltaScale) { + at.emit2(name + (1 < deltaScale ? 'in' : 'out'), computed, context); + } + } + var stateName = getStatusName(context.state); + if (stateName) { + at.emit2(name + stateName, computed, context); + } + function test() { + var pointLength = computed.pointLength, scale = computed.scale; computed.deltaScale; computed.phase; + return (context.pointLength === pointLength && + context.threshold < Math.abs(scale - 1)); + } + }); + return context; + } + + var DEFAULT_OPTIONS = { + name: 'rotate', + threshold: 0, + pointLength: 2, + }; + function rotate (at, options) { + var context = createPluginContext(DEFAULT_OPTIONS, options); + at.compute([ComputeVectorForMutli, ComputeAngle], function (computed) { + if (isDisabled(context)) + return; + resetState(context); + var isValid = test(); + context.state = flow(isValid, context.state, computed.phase); + var name = context.name; + if (isValid || isMoveOrEndOrCancel(context.state)) { + at.emit2(name, computed, context); + } + var stateName = getStatusName(context.state); + if (stateName) { + at.emit2(name + stateName, computed, context); + } + function test() { + var pointLength = computed.pointLength, angle = computed.angle; + return context.pointLength === pointLength && context.threshold < Math.abs(angle); + } + }); + return context; + } + + function doubletap (at) { + at.use(tap, { name: 'doubletap', tapTimes: 2 }); + var doubleTapContext = at.get('doubletap'); + var timeID; + at.beforeEach(function (type, next) { + if ('tap' === type) { + clearTimeout(timeID); + timeID = setTimeout(function () { + if ([0, 2].includes(doubleTapContext.state)) { + next(); + } + }, 300); + } + else { + next(); + } + }); + return doubleTapContext; + } + + var default_1 = (function (_super) { + __extends(default_1, _super); + function default_1(el, options) { + var _this = _super.call(this, el, options) || this; + _this.use(tap); + _this.use(pan); + _this.use(swipe); + _this.use(press); + _this.use(pinch); + _this.use(rotate); + return _this; + } + default_1.STATE_POSSIBLE = 0; + default_1.STATE_START = 4; + default_1.STATE_MOVE = 5; + default_1.STATE_END = 1; + default_1.STATE_CANCELLED = 3; + default_1.STATE_FAILED = 2; + default_1.STATE_RECOGNIZED = 1; + default_1.tap = tap; + default_1.pan = pan; + default_1.swipe = swipe; + default_1.press = press; + default_1.rotate = rotate; + default_1.pinch = pinch; + default_1.doubletap = doubletap; + return default_1; + }(default_1$1)); + + return default_1; + +})); +//# sourceMappingURL=any-touch.umd.js.map diff --git a/node_modules/any-touch/dist/any-touch.umd.js.map b/node_modules/any-touch/dist/any-touch.umd.js.map new file mode 100644 index 0000000..54df6fc --- /dev/null +++ b/node_modules/any-touch/dist/any-touch.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"any-touch.umd.js","sources":["../../../node_modules/.pnpm/@rollup+plugin-typescript@8.3.1_d7b4467172c319d6620c719344e1beb5/node_modules/tslib/tslib.es6.js","../../../../packages/any-event/src/index.ts","../../../../packages/core/src/const.ts","../../../../packages/shared/src/const.ts","../../../../packages/shared/src/pressMoveFlow.ts","../../../../packages/shared/src/createPluginContext.ts","../../../../packages/shared/src/index.ts","../../../../packages/core/src/createInput/inputCreator.ts","../../../../packages/core/src/createInput/mouse.ts","../../../../packages/core/src/createInput/touch.ts","../../../../packages/core/src/dispatchDomEvent.ts","../../../../packages/core/src/canPreventDefault.ts","../../../../packages/core/src/bindElement.ts","../../../../packages/core/src/index.ts","../../../../packages/vector/src/getVLength.ts","../../../../packages/vector/src/getDotProduct.ts","../../../../packages/vector/src/getRadian.ts","../../../../packages/vector/src/getCross.ts","../../../../packages/vector/src/radianToAngle.ts","../../../../packages/vector/src/getAngle.ts","../../../../packages/vector/src/getDirection.ts","../../../../packages/compute/src/ComputeAngle.ts","../../../../packages/compute/src/ComputeDeltaXY.ts","../../../../packages/compute/src/ComputeDistance.ts","../../../../packages/compute/src/ComputeScale.ts","../../../../packages/compute/src/ComputeVAndDir.ts","../../../../packages/compute/src/ComputeMaxLength.ts","../../../../packages/compute/src/ComputeVectorForMutli.ts","../../../../packages/tap/src/index.ts","../../../../packages/pan/src/index.ts","../../../../packages/swipe/src/index.ts","../../../../packages/press/src/index.ts","../../../../packages/pinch/src/index.ts","../../../../packages/rotate/src/index.ts","../../../../packages/doubletap/src/index.ts","../../../../packages/any-touch/src/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["TYPE_START","TYPE_MOVE","TYPE_END","DEFAULT_OPTIONS","Core"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/any-touch/dist/any-touch.umd.min.js b/node_modules/any-touch/dist/any-touch.umd.min.js new file mode 100644 index 0000000..90a48c1 --- /dev/null +++ b/node_modules/any-touch/dist/any-touch.umd.min.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).AnyTouch=e()}(this,(function(){"use strict";var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};function e(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}var n=function(){return n=Object.assign||function(t){for(var e,n=1,r=arguments.length;n=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}var i=function(){function t(){this.__map={}}return t.prototype.beforeEach=function(t){this.__interceptor=t},t.prototype.on=function(t,e){var n,i,o=Array.isArray(t)?t:[t];try{for(var a=r(o),u=a.next();!u.done;u=a.next()){var c=u.value;this.__map[c]=this.__map[c]||[];var s=this.__map[c];s&&s.push(e)}}catch(t){n={error:t}}finally{try{u&&!u.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}return this},t.prototype.emit=function(t,e,n){var r=this;void 0!==this.__interceptor?this.__interceptor(t,(function(){r.__emit(t,e),n&&n()})):(this.__emit(t,e),n&&n())},t.prototype.__emit=function(t,e){var n,i,o=this.__map[t];if(Array.isArray(o)&&(null==o?void 0:o.length))try{for(var a=r(o),u=a.next();!u.done;u=a.next()){(0,u.value)(e,t)}}catch(t){n={error:t}}finally{try{u&&!u.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}this.event=e},t.prototype.off=function(t,e){var n=this.__map[t];if(void 0!==n)if(void 0===e)delete this.__map[t];else{var r=n.findIndex((function(t){return t===e}));n.splice(r,1)}},t.prototype.destroy=function(){this.__map={}},t}(),o="touchstart",a="touchmove",u="touchend",c="touchcancel",s="mouseup",p="mousemove",f="mousedown";var v,h="start",l="move",m="cancel",d="end",y=((v={})[4]=h,v[5]=l,v[1]=d,v[3]=m,v);function g(t){return y[t]}function _(t,e,n){var r,i,o,a,u,c,s,p={1:(r={},r[0]=(i={},i.move=4,i),r[4]=(o={},o.move=5,o[d]=1,o[m]=3,o),r[5]=(a={},a.move=5,a[d]=1,a[m]=3,a),r),0:(u={},u[4]=(c={},c.move=2,c[d]=1,c[m]=3,c),u[5]=(s={},s.start=2,s.move=2,s[d]=1,s[m]=3,s),u)}[Number(t)][e];return void 0!==p&&p[n]||0}function T(t){[1,3,2].includes(t.state)&&(t.state=0)}function x(t){return[5,1,3].includes(t)}function E(t){if(t.disabled)return t.state=0,!0}function b(t,e){return n(n(n({},t),e),{state:0,disabled:!1})}function M(t){return Math.round(100*t)/100}function L(){var t,e,r,i,o=0;return function(a){if(t=e,void 0!==a){var u=function(t,e){var n=t.phase,r=t.points,i=t.changedPoints,o=t.nativeEvent,a=r.length,u=h===n,c=d===n&&0===a||m===n,s=Date.now(),p=w(r)||w(i),f=p.x,v=p.y,l=o.currentTarget;return Object.assign(t,{id:e,x:f,y:v,timestamp:s,isStart:u,isEnd:c,pointLength:a,currentTarget:l,getOffset:function(t){void 0===t&&(t=l);var e=t.getBoundingClientRect();return{x:f-Math.round(e.left),y:v-Math.round(e.top)}}})}(a,o=Number.MAX_SAFE_INTEGER>o?++o:1);e=u;var c=u.isStart,s=u.pointLength;return c&&(r=u,t=void 0,i=11&&(r=1),Math.acos(r)}(t,e);return function(t,e){return t.x*e.y-e.x*t.y}(t,e)>0&&(n*=-1),N(n)},F=function(t,e){if(0!==t||0!==e)return Math.abs(t)>=Math.abs(e)?0=f&&o.maxPressTime>p?(clearTimeout(i),function(t,e){if(void 0!==n){var r=C({x:t.x-n.x,y:t.y-n.y});return n=t,e.maxDistanceFromPrevTap>=r}return n=t,!0}({x:h,y:l},o)&&function(t){var e=performance.now();if(void 0===r)return r=e,!0;var n=e-r;return r=e,ni)||n.minPressTime>c&&[d,m].includes(o))&&(clearTimeout(r),n.state=2)}}})),n}var et={name:"pinch",threshold:0,pointLength:2};function nt(t,e){var n=b(et,e);return t.compute([k,q],(function(e){if(T(n),!E(n)){var r,i,o=(r=e.pointLength,i=e.scale,e.deltaScale,e.phase,n.pointLength===r&&n.threshold= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__values","o","Symbol","iterator","m","next","value","done","AnyEvent","interceptor","__interceptor","typeOrTypes","listener","types","isArray","types_1","type","__map","listeners","push","payload","callback","_this","__emit","event","listeners_1","index","findIndex","cb","splice","TOUCH_START","TOUCH_MOVE","TOUCH_END","TOUCH_CANCEL","MOUSE_UP","MOUSE_MOVE","MOUSE_DOWN","TYPE_START","TYPE_MOVE","TYPE_CANCEL","TYPE_END","STATUS_CODE_AND_NAME_MAP","_a","getStatusName","code","flow","isVaild","lastStatus","phase","map","_b","_c","_d","_e","_f","_g","Number","resetState","context","includes","state","isMoveOrEndOrCancel","isDisabled","disabled","createPluginContext","defaultOptions","options","round2","Math","round","prevInput","activeInput","startInput","startMultiInput","id","basicsInput","pureInput","points","changedPoints","nativeEvent","pointLength","isStart","isEnd","timestamp","Date","now","getCenter","x","y","currentTarget","getOffset","el","rect","getBoundingClientRect","left","top","extendInput","MAX_SAFE_INTEGER","clientX","clientY","countPoint","reduce","point","typeName","eventInit","data","key","document","createEvent","initEvent","bubbles","cancelable","Event","match","targets","every","target","contains","dispatchEvent","input","preventDefault","toString","ELEMENT_TYPES","WINDOW_TYPES","TYPE_COMPUTED","DEFAULT_OPTIONS","domEvents","tagName","test","TYPE_AT_AFTER","_super","c","__options","prevPoints","isPressed","_target","createInput","createInputFromTouch","inputCreator","from","touches","forEach","changedTouches","replace","touch","createInputFromMouse","button","__inputCreatorMap","on","__type","dispatchDomEvent","style","webkitTapHighlightColor","supportsPassive_1","opts","defineProperty","get","window","addEventListener","catchEvent","removeEventListener","bindElement","bind","passive","default_1","plugin","pluginOptions","__pluginContexts","canPreventDefault","__isIgnoreMouse","startsWith","emit","emit2","computed_1","__computeFunctionList","compute","result","stopPropagation","stopImmediatePropagation","computeFunctionCreatorList","computeFunctionCreatorList_1","computeFunctionCreator","__computeFunctionCreatorList","beforeEach","name","find","pluginContext","newOptions","destroy","v","sqrt","radian","PI","v1","v2","angle","mr","getVLength","r","getDotProduct","acos","getRadian","getCross","radianToAngle","abs","ComputeAngle","deltaAngle","computed","prevVecotr","startVecotr","activeVecotr","getAngle","deltaX","deltaY","deltaXYAngle","deltaXY","pow","overallDirection","displacementX","displacementY","distanceX","distanceY","distance","getDirection","scale","deltaScale","direction","lastValidInput","velocityX","velocityY","speedX","speedY","deltaTime","ComputeMaxLength","maxPointLength","computeVector","tapTimes","waitNextTapTime","maxDistance","maxDistanceFromPrevTap","maxPressTime","at","prevTapPoint","prevTapTime","countDownToFailTimer","tapCount","reset","ComputeDistance","clearTimeout","center","distanceFromPreviousTap","isValidDistanceFromPrevTap","performance","interval","isValidInterval","setTimeout","threshold","ComputeVAndDir","ComputeDeltaXY","isValid","name_1","velocity","max","minPressTime","timeoutId","ComputeVectorForMutli","ComputeScale","stateName","use","tap","timeID","doubleTapContext","pan","swipe","press","pinch","rotate","doubletap","Core"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/any-touch/dist/index.d.ts b/node_modules/any-touch/dist/index.d.ts new file mode 100644 index 0000000..211f1ef --- /dev/null +++ b/node_modules/any-touch/dist/index.d.ts @@ -0,0 +1,29 @@ +import Core from '@any-touch/core'; +import tap from '@any-touch/tap'; +import pan from '@any-touch/pan'; +import swipe from '@any-touch/swipe'; +import press from '@any-touch/press'; +import pinch from '@any-touch/pinch'; +import rotate from '@any-touch/rotate'; +import doubletap from '@any-touch/doubletap'; +import { Options as O } from '@any-touch/core'; +export declare type Options = O; +export { AnyTouchEvent } from '@any-touch/shared'; +export declare type SupportElement = HTMLElement | SVGElement; +export default class extends Core { + static STATE_POSSIBLE: any; + static STATE_START: any; + static STATE_MOVE: any; + static STATE_END: any; + static STATE_CANCELLED: any; + static STATE_FAILED: any; + static STATE_RECOGNIZED: any; + static tap: typeof tap; + static pan: typeof pan; + static swipe: typeof swipe; + static press: typeof press; + static rotate: typeof rotate; + static pinch: typeof pinch; + static doubletap: typeof doubletap; + constructor(el?: SupportElement, options?: O); +} diff --git a/node_modules/any-touch/dist/index.es.js b/node_modules/any-touch/dist/index.es.js new file mode 100644 index 0000000..e8030a2 --- /dev/null +++ b/node_modules/any-touch/dist/index.es.js @@ -0,0 +1,2 @@ +import t from"@any-touch/core";import o from"@any-touch/tap";import r from"@any-touch/pan";import s from"@any-touch/swipe";import p from"@any-touch/press";import e from"@any-touch/pinch";import a from"@any-touch/rotate";import u from"@any-touch/doubletap";class i extends t{constructor(t,u){super(t,u),this.use(o),this.use(r),this.use(s),this.use(p),this.use(e),this.use(a)}}i.STATE_POSSIBLE=0,i.STATE_START=4,i.STATE_MOVE=5,i.STATE_END=1,i.STATE_CANCELLED=3,i.STATE_FAILED=2,i.STATE_RECOGNIZED=1,i.tap=o,i.pan=r,i.swipe=s,i.press=p,i.rotate=a,i.pinch=e,i.doubletap=u;export{i as default}; +//# sourceMappingURL=index.es.js.map diff --git a/node_modules/any-touch/dist/index.es.js.map b/node_modules/any-touch/dist/index.es.js.map new file mode 100644 index 0000000..6e2b57c --- /dev/null +++ b/node_modules/any-touch/dist/index.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.es.js","sources":["../../../../packages/any-touch/src/index.ts"],"sourcesContent":[null],"names":["Core","constructor","el","options","super","this","use","tap","pan","swipe","press","pinch","rotate","default_1","doubletap"],"mappings":"gRA4B8BA,EAiB1BC,YAAYC,EAAqBC,GAC7BC,MAAMF,EAAIC,GACVE,KAAKC,IAAIC,GACTF,KAAKC,IAAIE,GACTH,KAAKC,IAAIG,GACTJ,KAAKC,IAAII,GACTL,KAAKC,IAAIK,GACTN,KAAKC,IAAIM,IAtBNC,mBACAA,gBACAA,eACAA,cACAA,oBACAA,iBACAA,qBACAA,MAAMN,EACNM,MAAML,EACNK,QAAQJ,EACRI,QAAQH,EACRG,SAASD,EACTC,QAAQF,EACRE,YAAYC"} \ No newline at end of file diff --git a/node_modules/any-touch/dist/index.js b/node_modules/any-touch/dist/index.js new file mode 100644 index 0000000..82e9763 --- /dev/null +++ b/node_modules/any-touch/dist/index.js @@ -0,0 +1,2 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),t=require("@any-touch/core"),u=require("@any-touch/tap"),a=require("@any-touch/pan"),r=require("@any-touch/swipe"),l=require("@any-touch/press"),n=require("@any-touch/pinch"),d=require("@any-touch/rotate"),f=require("@any-touch/doubletap");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=i(t),s=i(u),c=i(a),p=i(r),T=i(l),E=i(n),h=i(d),_=i(f),y=function(t){function u(e,u){var a=t.call(this,e,u)||this;return a.use(s.default),a.use(c.default),a.use(p.default),a.use(T.default),a.use(E.default),a.use(h.default),a}return e.__extends(u,t),u.STATE_POSSIBLE=0,u.STATE_START=4,u.STATE_MOVE=5,u.STATE_END=1,u.STATE_CANCELLED=3,u.STATE_FAILED=2,u.STATE_RECOGNIZED=1,u.tap=s.default,u.pan=c.default,u.swipe=p.default,u.press=T.default,u.rotate=h.default,u.pinch=E.default,u.doubletap=_.default,u}(o.default);exports.default=y; +//# sourceMappingURL=index.js.map diff --git a/node_modules/any-touch/dist/index.js.map b/node_modules/any-touch/dist/index.js.map new file mode 100644 index 0000000..aa374e2 --- /dev/null +++ b/node_modules/any-touch/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../../packages/any-touch/src/index.ts"],"sourcesContent":[null],"names":["el","options","_super","_this","use","tap","pan","swipe","press","pinch","rotate","__extends","default_1","doubletap","Core"],"mappings":"6dA6CI,WAAYA,EAAqBC,GAAjC,MACIC,YAAMF,EAAIC,gBACVE,EAAKC,IAAIC,WACTF,EAAKC,IAAIE,WACTH,EAAKC,IAAIG,WACTJ,EAAKC,IAAII,WACTL,EAAKC,IAAIK,WACTN,EAAKC,IAAIM,aAEjB,OA1B8BC,iBAEnBC,mBACAA,gBACAA,eACAA,cACAA,oBACAA,iBACAA,qBACAA,MAAMP,UACNO,MAAMN,UACNM,QAAQL,UACRK,QAAQJ,UACRI,SAASF,UACTE,QAAQH,UACRG,YAAYC,aAfOC"} \ No newline at end of file diff --git a/node_modules/any-touch/package.json b/node_modules/any-touch/package.json new file mode 100644 index 0000000..cecaef6 --- /dev/null +++ b/node_modules/any-touch/package.json @@ -0,0 +1,43 @@ +{ + "name": "any-touch", + "version": "2.2.0", + "description": "一个小巧的手势库", + "unpkg": "dist/any-touch.umd.min.js", + "jsdelivr": "dist/any-touch.umd.min.js", + "main": "dist/index.js", + "module": "dist/index.es.js", + "types": "dist/index.d.ts", + "files": [ + "dist/*", + "../../README.md" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/any86/any-touch.git" + }, + "author": "any86", + "license": "MIT", + "bugs": { + "url": "https://github.com/any86/any-touch/issues" + }, + "homepage": "https://github.com/any86/any-touch#readme", + "dependencies": { + "@any-touch/core": "^2.2.0", + "@any-touch/doubletap": "^2.2.0", + "@any-touch/pan": "^2.2.0", + "@any-touch/pinch": "^2.2.0", + "@any-touch/press": "^2.2.0", + "@any-touch/rotate": "^2.2.0", + "@any-touch/swipe": "^2.2.0", + "@any-touch/tap": "^2.2.0", + "any-event": "^2.2.0", + "tslib": "^2.3.1" + }, + "keywords": [ + "touch", + "mouse", + "gesture" + ], + "sideEffects": false, + "gitHead": "c3df8dd84bd61d91f766f6d7f31dbefe6e463ce6" +} diff --git a/node_modules/tslib/CopyrightNotice.txt b/node_modules/tslib/CopyrightNotice.txt new file mode 100644 index 0000000..0e42542 --- /dev/null +++ b/node_modules/tslib/CopyrightNotice.txt @@ -0,0 +1,15 @@ +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + diff --git a/node_modules/tslib/LICENSE.txt b/node_modules/tslib/LICENSE.txt new file mode 100644 index 0000000..bfe6430 --- /dev/null +++ b/node_modules/tslib/LICENSE.txt @@ -0,0 +1,12 @@ +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/node_modules/tslib/README.md b/node_modules/tslib/README.md new file mode 100644 index 0000000..290cc61 --- /dev/null +++ b/node_modules/tslib/README.md @@ -0,0 +1,164 @@ +# tslib + +This is a runtime library for [TypeScript](https://www.typescriptlang.org/) that contains all of the TypeScript helper functions. + +This library is primarily used by the `--importHelpers` flag in TypeScript. +When using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file: + +```ts +var __assign = (this && this.__assign) || Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; +}; +exports.x = {}; +exports.y = __assign({}, exports.x); + +``` + +will instead be emitted as something like the following: + +```ts +var tslib_1 = require("tslib"); +exports.x = {}; +exports.y = tslib_1.__assign({}, exports.x); +``` + +Because this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead. +For optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`. + +# Installing + +For the latest stable version, run: + +## npm + +```sh +# TypeScript 3.9.2 or later +npm install tslib + +# TypeScript 3.8.4 or earlier +npm install tslib@^1 + +# TypeScript 2.3.2 or earlier +npm install tslib@1.6.1 +``` + +## yarn + +```sh +# TypeScript 3.9.2 or later +yarn add tslib + +# TypeScript 3.8.4 or earlier +yarn add tslib@^1 + +# TypeScript 2.3.2 or earlier +yarn add tslib@1.6.1 +``` + +## bower + +```sh +# TypeScript 3.9.2 or later +bower install tslib + +# TypeScript 3.8.4 or earlier +bower install tslib@^1 + +# TypeScript 2.3.2 or earlier +bower install tslib@1.6.1 +``` + +## JSPM + +```sh +# TypeScript 3.9.2 or later +jspm install tslib + +# TypeScript 3.8.4 or earlier +jspm install tslib@^1 + +# TypeScript 2.3.2 or earlier +jspm install tslib@1.6.1 +``` + +# Usage + +Set the `importHelpers` compiler option on the command line: + +``` +tsc --importHelpers file.ts +``` + +or in your tsconfig.json: + +```json +{ + "compilerOptions": { + "importHelpers": true + } +} +``` + +#### For bower and JSPM users + +You will need to add a `paths` mapping for `tslib`, e.g. For Bower users: + +```json +{ + "compilerOptions": { + "module": "amd", + "importHelpers": true, + "baseUrl": "./", + "paths": { + "tslib" : ["bower_components/tslib/tslib.d.ts"] + } + } +} +``` + +For JSPM users: + +```json +{ + "compilerOptions": { + "module": "system", + "importHelpers": true, + "baseUrl": "./", + "paths": { + "tslib" : ["jspm_packages/npm/tslib@2.x.y/tslib.d.ts"] + } + } +} +``` + +## Deployment + +- Choose your new version number +- Set it in `package.json` and `bower.json` +- Create a tag: `git tag [version]` +- Push the tag: `git push --tags` +- Create a [release in GitHub](https://github.com/microsoft/tslib/releases) +- Run the [publish to npm](https://github.com/microsoft/tslib/actions?query=workflow%3A%22Publish+to+NPM%22) workflow + +Done. + +# Contribute + +There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript. + +* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in. +* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls). +* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript). +* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter. +* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md). + +# Documentation + +* [Quick tutorial](http://www.typescriptlang.org/Tutorial) +* [Programming handbook](http://www.typescriptlang.org/Handbook) +* [Homepage](http://www.typescriptlang.org/) diff --git a/node_modules/tslib/SECURITY.md b/node_modules/tslib/SECURITY.md new file mode 100644 index 0000000..869fdfe --- /dev/null +++ b/node_modules/tslib/SECURITY.md @@ -0,0 +1,41 @@ + + +## Security + +Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). + +If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below. + +## Reporting Security Issues + +**Please do not report security vulnerabilities through public GitHub issues.** + +Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report). + +If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey). + +You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: + + * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) + * Full paths of source file(s) related to the manifestation of the issue + * The location of the affected source code (tag/branch/commit or direct URL) + * Any special configuration required to reproduce the issue + * Step-by-step instructions to reproduce the issue + * Proof-of-concept or exploit code (if possible) + * Impact of the issue, including how an attacker might exploit the issue + +This information will help us triage your report more quickly. + +If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs. + +## Preferred Languages + +We prefer all communications to be in English. + +## Policy + +Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd). + + diff --git a/node_modules/tslib/modules/index.d.ts b/node_modules/tslib/modules/index.d.ts new file mode 100644 index 0000000..3244fab --- /dev/null +++ b/node_modules/tslib/modules/index.d.ts @@ -0,0 +1,38 @@ +// Note: named reexports are used instead of `export *` because +// TypeScript itself doesn't resolve the `export *` when checking +// if a particular helper exists. +export { + __extends, + __assign, + __rest, + __decorate, + __param, + __esDecorate, + __runInitializers, + __propKey, + __setFunctionName, + __metadata, + __awaiter, + __generator, + __exportStar, + __values, + __read, + __spread, + __spreadArrays, + __spreadArray, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, + __classPrivateFieldIn, + __createBinding, + __addDisposableResource, + __disposeResources, + __rewriteRelativeImportExtension, +} from '../tslib.js'; +export * as default from '../tslib.js'; diff --git a/node_modules/tslib/modules/index.js b/node_modules/tslib/modules/index.js new file mode 100644 index 0000000..c91f618 --- /dev/null +++ b/node_modules/tslib/modules/index.js @@ -0,0 +1,70 @@ +import tslib from '../tslib.js'; +const { + __extends, + __assign, + __rest, + __decorate, + __param, + __esDecorate, + __runInitializers, + __propKey, + __setFunctionName, + __metadata, + __awaiter, + __generator, + __exportStar, + __createBinding, + __values, + __read, + __spread, + __spreadArrays, + __spreadArray, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, + __classPrivateFieldIn, + __addDisposableResource, + __disposeResources, + __rewriteRelativeImportExtension, +} = tslib; +export { + __extends, + __assign, + __rest, + __decorate, + __param, + __esDecorate, + __runInitializers, + __propKey, + __setFunctionName, + __metadata, + __awaiter, + __generator, + __exportStar, + __createBinding, + __values, + __read, + __spread, + __spreadArrays, + __spreadArray, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, + __classPrivateFieldIn, + __addDisposableResource, + __disposeResources, + __rewriteRelativeImportExtension, +}; +export default tslib; diff --git a/node_modules/tslib/modules/package.json b/node_modules/tslib/modules/package.json new file mode 100644 index 0000000..aafa0e4 --- /dev/null +++ b/node_modules/tslib/modules/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} \ No newline at end of file diff --git a/node_modules/tslib/package.json b/node_modules/tslib/package.json new file mode 100644 index 0000000..57d0578 --- /dev/null +++ b/node_modules/tslib/package.json @@ -0,0 +1,47 @@ +{ + "name": "tslib", + "author": "Microsoft Corp.", + "homepage": "https://www.typescriptlang.org/", + "version": "2.8.1", + "license": "0BSD", + "description": "Runtime library for TypeScript helper functions", + "keywords": [ + "TypeScript", + "Microsoft", + "compiler", + "language", + "javascript", + "tslib", + "runtime" + ], + "bugs": { + "url": "https://github.com/Microsoft/TypeScript/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/Microsoft/tslib.git" + }, + "main": "tslib.js", + "module": "tslib.es6.js", + "jsnext:main": "tslib.es6.js", + "typings": "tslib.d.ts", + "sideEffects": false, + "exports": { + ".": { + "module": { + "types": "./modules/index.d.ts", + "default": "./tslib.es6.mjs" + }, + "import": { + "node": "./modules/index.js", + "default": { + "types": "./modules/index.d.ts", + "default": "./tslib.es6.mjs" + } + }, + "default": "./tslib.js" + }, + "./*": "./*", + "./": "./" + } +} diff --git a/node_modules/tslib/tslib.d.ts b/node_modules/tslib/tslib.d.ts new file mode 100644 index 0000000..f23df55 --- /dev/null +++ b/node_modules/tslib/tslib.d.ts @@ -0,0 +1,460 @@ +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +/** + * Used to shim class extends. + * + * @param d The derived class. + * @param b The base class. + */ +export declare function __extends(d: Function, b: Function): void; + +/** + * Copy the values of all of the enumerable own properties from one or more source objects to a + * target object. Returns the target object. + * + * @param t The target object to copy to. + * @param sources One or more source objects from which to copy properties + */ +export declare function __assign(t: any, ...sources: any[]): any; + +/** + * Performs a rest spread on an object. + * + * @param t The source value. + * @param propertyNames The property names excluded from the rest spread. + */ +export declare function __rest(t: any, propertyNames: (string | symbol)[]): any; + +/** + * Applies decorators to a target object + * + * @param decorators The set of decorators to apply. + * @param target The target object. + * @param key If specified, the own property to apply the decorators to. + * @param desc The property descriptor, defaults to fetching the descriptor from the target object. + * @experimental + */ +export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any; + +/** + * Creates an observing function decorator from a parameter decorator. + * + * @param paramIndex The parameter index to apply the decorator to. + * @param decorator The parameter decorator to apply. Note that the return value is ignored. + * @experimental + */ +export declare function __param(paramIndex: number, decorator: Function): Function; + +/** + * Applies decorators to a class or class member, following the native ECMAScript decorator specification. + * @param ctor For non-field class members, the class constructor. Otherwise, `null`. + * @param descriptorIn The `PropertyDescriptor` to use when unable to look up the property from `ctor`. + * @param decorators The decorators to apply + * @param contextIn The `DecoratorContext` to clone for each decorator application. + * @param initializers An array of field initializer mutation functions into which new initializers are written. + * @param extraInitializers An array of extra initializer functions into which new initializers are written. + */ +export declare function __esDecorate(ctor: Function | null, descriptorIn: object | null, decorators: Function[], contextIn: object, initializers: Function[] | null, extraInitializers: Function[]): void; + +/** + * Runs field initializers or extra initializers generated by `__esDecorate`. + * @param thisArg The `this` argument to use. + * @param initializers The array of initializers to evaluate. + * @param value The initial value to pass to the initializers. + */ +export declare function __runInitializers(thisArg: unknown, initializers: Function[], value?: any): any; + +/** + * Converts a computed property name into a `string` or `symbol` value. + */ +export declare function __propKey(x: any): string | symbol; + +/** + * Assigns the name of a function derived from the left-hand side of an assignment. + * @param f The function to rename. + * @param name The new name for the function. + * @param prefix A prefix (such as `"get"` or `"set"`) to insert before the name. + */ +export declare function __setFunctionName(f: Function, name: string | symbol, prefix?: string): Function; + +/** + * Creates a decorator that sets metadata. + * + * @param metadataKey The metadata key + * @param metadataValue The metadata value + * @experimental + */ +export declare function __metadata(metadataKey: any, metadataValue: any): Function; + +/** + * Converts a generator function into a pseudo-async function, by treating each `yield` as an `await`. + * + * @param thisArg The reference to use as the `this` value in the generator function + * @param _arguments The optional arguments array + * @param P The optional promise constructor argument, defaults to the `Promise` property of the global object. + * @param generator The generator function + */ +export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any; + +/** + * Creates an Iterator object using the body as the implementation. + * + * @param thisArg The reference to use as the `this` value in the function + * @param body The generator state-machine based implementation. + * + * @see [./docs/generator.md] + */ +export declare function __generator(thisArg: any, body: Function): any; + +/** + * Creates bindings for all enumerable properties of `m` on `exports` + * + * @param m The source object + * @param o The `exports` object. + */ +export declare function __exportStar(m: any, o: any): void; + +/** + * Creates a value iterator from an `Iterable` or `ArrayLike` object. + * + * @param o The object. + * @throws {TypeError} If `o` is neither `Iterable`, nor an `ArrayLike`. + */ +export declare function __values(o: any): any; + +/** + * Reads values from an `Iterable` or `ArrayLike` object and returns the resulting array. + * + * @param o The object to read from. + * @param n The maximum number of arguments to read, defaults to `Infinity`. + */ +export declare function __read(o: any, n?: number): any[]; + +/** + * Creates an array from iterable spread. + * + * @param args The Iterable objects to spread. + * @deprecated since TypeScript 4.2 - Use `__spreadArray` + */ +export declare function __spread(...args: any[][]): any[]; + +/** + * Creates an array from array spread. + * + * @param args The ArrayLikes to spread into the resulting array. + * @deprecated since TypeScript 4.2 - Use `__spreadArray` + */ +export declare function __spreadArrays(...args: any[][]): any[]; + +/** + * Spreads the `from` array into the `to` array. + * + * @param pack Replace empty elements with `undefined`. + */ +export declare function __spreadArray(to: any[], from: any[], pack?: boolean): any[]; + +/** + * Creates an object that signals to `__asyncGenerator` that it shouldn't be yielded, + * and instead should be awaited and the resulting value passed back to the generator. + * + * @param v The value to await. + */ +export declare function __await(v: any): any; + +/** + * Converts a generator function into an async generator function, by using `yield __await` + * in place of normal `await`. + * + * @param thisArg The reference to use as the `this` value in the generator function + * @param _arguments The optional arguments array + * @param generator The generator function + */ +export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any; + +/** + * Used to wrap a potentially async iterator in such a way so that it wraps the result + * of calling iterator methods of `o` in `__await` instances, and then yields the awaited values. + * + * @param o The potentially async iterator. + * @returns A synchronous iterator yielding `__await` instances on every odd invocation + * and returning the awaited `IteratorResult` passed to `next` every even invocation. + */ +export declare function __asyncDelegator(o: any): any; + +/** + * Creates a value async iterator from an `AsyncIterable`, `Iterable` or `ArrayLike` object. + * + * @param o The object. + * @throws {TypeError} If `o` is neither `AsyncIterable`, `Iterable`, nor an `ArrayLike`. + */ +export declare function __asyncValues(o: any): any; + +/** + * Creates a `TemplateStringsArray` frozen object from the `cooked` and `raw` arrays. + * + * @param cooked The cooked possibly-sparse array. + * @param raw The raw string content. + */ +export declare function __makeTemplateObject(cooked: string[], raw: string[]): TemplateStringsArray; + +/** + * Used to shim default and named imports in ECMAScript Modules transpiled to CommonJS. + * + * ```js + * import Default, { Named, Other } from "mod"; + * // or + * import { default as Default, Named, Other } from "mod"; + * ``` + * + * @param mod The CommonJS module exports object. + */ +export declare function __importStar(mod: T): T; + +/** + * Used to shim default imports in ECMAScript Modules transpiled to CommonJS. + * + * ```js + * import Default from "mod"; + * ``` + * + * @param mod The CommonJS module exports object. + */ +export declare function __importDefault(mod: T): T | { default: T }; + +/** + * Emulates reading a private instance field. + * + * @param receiver The instance from which to read the private field. + * @param state A WeakMap containing the private field value for an instance. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * + * @throws {TypeError} If `state` doesn't have an entry for `receiver`. + */ +export declare function __classPrivateFieldGet( + receiver: T, + state: { has(o: T): boolean, get(o: T): V | undefined }, + kind?: "f" +): V; + +/** + * Emulates reading a private static field. + * + * @param receiver The object from which to read the private static field. + * @param state The class constructor containing the definition of the static field. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The descriptor that holds the static field value. + * + * @throws {TypeError} If `receiver` is not `state`. + */ +export declare function __classPrivateFieldGet unknown, V>( + receiver: T, + state: T, + kind: "f", + f: { value: V } +): V; + +/** + * Emulates evaluating a private instance "get" accessor. + * + * @param receiver The instance on which to evaluate the private "get" accessor. + * @param state A WeakSet used to verify an instance supports the private "get" accessor. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The "get" accessor function to evaluate. + * + * @throws {TypeError} If `state` doesn't have an entry for `receiver`. + */ +export declare function __classPrivateFieldGet( + receiver: T, + state: { has(o: T): boolean }, + kind: "a", + f: () => V +): V; + +/** + * Emulates evaluating a private static "get" accessor. + * + * @param receiver The object on which to evaluate the private static "get" accessor. + * @param state The class constructor containing the definition of the static "get" accessor. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The "get" accessor function to evaluate. + * + * @throws {TypeError} If `receiver` is not `state`. + */ +export declare function __classPrivateFieldGet unknown, V>( + receiver: T, + state: T, + kind: "a", + f: () => V +): V; + +/** + * Emulates reading a private instance method. + * + * @param receiver The instance from which to read a private method. + * @param state A WeakSet used to verify an instance supports the private method. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The function to return as the private instance method. + * + * @throws {TypeError} If `state` doesn't have an entry for `receiver`. + */ +export declare function __classPrivateFieldGet unknown>( + receiver: T, + state: { has(o: T): boolean }, + kind: "m", + f: V +): V; + +/** + * Emulates reading a private static method. + * + * @param receiver The object from which to read the private static method. + * @param state The class constructor containing the definition of the static method. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The function to return as the private static method. + * + * @throws {TypeError} If `receiver` is not `state`. + */ +export declare function __classPrivateFieldGet unknown, V extends (...args: any[]) => unknown>( + receiver: T, + state: T, + kind: "m", + f: V +): V; + +/** + * Emulates writing to a private instance field. + * + * @param receiver The instance on which to set a private field value. + * @param state A WeakMap used to store the private field value for an instance. + * @param value The value to store in the private field. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * + * @throws {TypeError} If `state` doesn't have an entry for `receiver`. + */ +export declare function __classPrivateFieldSet( + receiver: T, + state: { has(o: T): boolean, set(o: T, value: V): unknown }, + value: V, + kind?: "f" +): V; + +/** + * Emulates writing to a private static field. + * + * @param receiver The object on which to set the private static field. + * @param state The class constructor containing the definition of the private static field. + * @param value The value to store in the private field. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The descriptor that holds the static field value. + * + * @throws {TypeError} If `receiver` is not `state`. + */ +export declare function __classPrivateFieldSet unknown, V>( + receiver: T, + state: T, + value: V, + kind: "f", + f: { value: V } +): V; + +/** + * Emulates writing to a private instance "set" accessor. + * + * @param receiver The instance on which to evaluate the private instance "set" accessor. + * @param state A WeakSet used to verify an instance supports the private "set" accessor. + * @param value The value to store in the private accessor. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The "set" accessor function to evaluate. + * + * @throws {TypeError} If `state` doesn't have an entry for `receiver`. + */ +export declare function __classPrivateFieldSet( + receiver: T, + state: { has(o: T): boolean }, + value: V, + kind: "a", + f: (v: V) => void +): V; + +/** + * Emulates writing to a private static "set" accessor. + * + * @param receiver The object on which to evaluate the private static "set" accessor. + * @param state The class constructor containing the definition of the static "set" accessor. + * @param value The value to store in the private field. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The "set" accessor function to evaluate. + * + * @throws {TypeError} If `receiver` is not `state`. + */ +export declare function __classPrivateFieldSet unknown, V>( + receiver: T, + state: T, + value: V, + kind: "a", + f: (v: V) => void +): V; + +/** + * Checks for the existence of a private field/method/accessor. + * + * @param state The class constructor containing the static member, or the WeakMap or WeakSet associated with a private instance member. + * @param receiver The object for which to test the presence of the private member. + */ +export declare function __classPrivateFieldIn( + state: (new (...args: any[]) => unknown) | { has(o: any): boolean }, + receiver: unknown, +): boolean; + +/** + * Creates a re-export binding on `object` with key `objectKey` that references `target[key]`. + * + * @param object The local `exports` object. + * @param target The object to re-export from. + * @param key The property key of `target` to re-export. + * @param objectKey The property key to re-export as. Defaults to `key`. + */ +export declare function __createBinding(object: object, target: object, key: PropertyKey, objectKey?: PropertyKey): void; + +/** + * Adds a disposable resource to a resource-tracking environment object. + * @param env A resource-tracking environment object. + * @param value Either a Disposable or AsyncDisposable object, `null`, or `undefined`. + * @param async When `true`, `AsyncDisposable` resources can be added. When `false`, `AsyncDisposable` resources cannot be added. + * @returns The {@link value} argument. + * + * @throws {TypeError} If {@link value} is not an object, or if either `Symbol.dispose` or `Symbol.asyncDispose` are not + * defined, or if {@link value} does not have an appropriate `Symbol.dispose` or `Symbol.asyncDispose` method. + */ +export declare function __addDisposableResource(env: { stack: { value?: unknown, dispose?: Function, async: boolean }[]; error: unknown; hasError: boolean; }, value: T, async: boolean): T; + +/** + * Disposes all resources in a resource-tracking environment object. + * @param env A resource-tracking environment object. + * @returns A {@link Promise} if any resources in the environment were marked as `async` when added; otherwise, `void`. + * + * @throws {SuppressedError} if an error thrown during disposal would have suppressed a prior error from disposal or the + * error recorded in the resource-tracking environment object. + * @seealso {@link __addDisposableResource} + */ +export declare function __disposeResources(env: { stack: { value?: unknown, dispose?: Function, async: boolean }[]; error: unknown; hasError: boolean; }): any; + +/** + * Transforms a relative import specifier ending in a non-declaration TypeScript file extension to its JavaScript file extension counterpart. + * @param path The import specifier. + * @param preserveJsx Causes '*.tsx' to transform to '*.jsx' instead of '*.js'. Should be true when `--jsx` is set to `preserve`. + */ +export declare function __rewriteRelativeImportExtension(path: string, preserveJsx?: boolean): string; \ No newline at end of file diff --git a/node_modules/tslib/tslib.es6.html b/node_modules/tslib/tslib.es6.html new file mode 100644 index 0000000..b122e41 --- /dev/null +++ b/node_modules/tslib/tslib.es6.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/node_modules/tslib/tslib.es6.js b/node_modules/tslib/tslib.es6.js new file mode 100644 index 0000000..6c1739b --- /dev/null +++ b/node_modules/tslib/tslib.es6.js @@ -0,0 +1,402 @@ +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise, SuppressedError, Symbol, Iterator */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +export function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +export var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + } + return __assign.apply(this, arguments); +} + +export function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +} + +export function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} + +export function __param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +} + +export function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _, done = false; + for (var i = decorators.length - 1; i >= 0; i--) { + var context = {}; + for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; + for (var p in contextIn.access) context.access[p] = contextIn.access[p]; + context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; + var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) continue; + if (result === null || typeof result !== "object") throw new TypeError("Object expected"); + if (_ = accept(result.get)) descriptor.get = _; + if (_ = accept(result.set)) descriptor.set = _; + if (_ = accept(result.init)) initializers.unshift(_); + } + else if (_ = accept(result)) { + if (kind === "field") initializers.unshift(_); + else descriptor[key] = _; + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor); + done = true; +}; + +export function __runInitializers(thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i = 0; i < initializers.length; i++) { + value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); + } + return useValue ? value : void 0; +}; + +export function __propKey(x) { + return typeof x === "symbol" ? x : "".concat(x); +}; + +export function __setFunctionName(f, name, prefix) { + if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); +}; + +export function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} + +export function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +export function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +export var __createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); + +export function __exportStar(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); +} + +export function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +} + +export function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; +} + +/** @deprecated */ +export function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; +} + +/** @deprecated */ +export function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +} + +export function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +export function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +} + +export function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i; + function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; } + function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } +} + +export function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } +} + +export function __asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } +} + +export function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; + +var __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}; + +var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); +}; + +export function __importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; +} + +export function __importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; +} + +export function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +} + +export function __classPrivateFieldSet(receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +} + +export function __classPrivateFieldIn(state, receiver) { + if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); +} + +export function __addDisposableResource(env, value, async) { + if (value !== null && value !== void 0) { + if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); + var dispose, inner; + if (async) { + if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); + dispose = value[Symbol.asyncDispose]; + } + if (dispose === void 0) { + if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); + dispose = value[Symbol.dispose]; + if (async) inner = dispose; + } + if (typeof dispose !== "function") throw new TypeError("Object not disposable."); + if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } }; + env.stack.push({ value: value, dispose: dispose, async: async }); + } + else if (async) { + env.stack.push({ async: true }); + } + return value; + +} + +var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; +}; + +export function __disposeResources(env) { + function fail(e) { + env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; + env.hasError = true; + } + var r, s = 0; + function next() { + while (r = env.stack.pop()) { + try { + if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next); + if (r.dispose) { + var result = r.dispose.call(r.value); + if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); + } + else s |= 1; + } + catch (e) { + fail(e); + } + } + if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve(); + if (env.hasError) throw env.error; + } + return next(); +} + +export function __rewriteRelativeImportExtension(path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; +} + +export default { + __extends: __extends, + __assign: __assign, + __rest: __rest, + __decorate: __decorate, + __param: __param, + __esDecorate: __esDecorate, + __runInitializers: __runInitializers, + __propKey: __propKey, + __setFunctionName: __setFunctionName, + __metadata: __metadata, + __awaiter: __awaiter, + __generator: __generator, + __createBinding: __createBinding, + __exportStar: __exportStar, + __values: __values, + __read: __read, + __spread: __spread, + __spreadArrays: __spreadArrays, + __spreadArray: __spreadArray, + __await: __await, + __asyncGenerator: __asyncGenerator, + __asyncDelegator: __asyncDelegator, + __asyncValues: __asyncValues, + __makeTemplateObject: __makeTemplateObject, + __importStar: __importStar, + __importDefault: __importDefault, + __classPrivateFieldGet: __classPrivateFieldGet, + __classPrivateFieldSet: __classPrivateFieldSet, + __classPrivateFieldIn: __classPrivateFieldIn, + __addDisposableResource: __addDisposableResource, + __disposeResources: __disposeResources, + __rewriteRelativeImportExtension: __rewriteRelativeImportExtension, +}; diff --git a/node_modules/tslib/tslib.es6.mjs b/node_modules/tslib/tslib.es6.mjs new file mode 100644 index 0000000..c17990a --- /dev/null +++ b/node_modules/tslib/tslib.es6.mjs @@ -0,0 +1,401 @@ +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise, SuppressedError, Symbol, Iterator */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +export function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +export var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + } + return __assign.apply(this, arguments); +} + +export function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +} + +export function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} + +export function __param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +} + +export function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _, done = false; + for (var i = decorators.length - 1; i >= 0; i--) { + var context = {}; + for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; + for (var p in contextIn.access) context.access[p] = contextIn.access[p]; + context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; + var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) continue; + if (result === null || typeof result !== "object") throw new TypeError("Object expected"); + if (_ = accept(result.get)) descriptor.get = _; + if (_ = accept(result.set)) descriptor.set = _; + if (_ = accept(result.init)) initializers.unshift(_); + } + else if (_ = accept(result)) { + if (kind === "field") initializers.unshift(_); + else descriptor[key] = _; + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor); + done = true; +}; + +export function __runInitializers(thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i = 0; i < initializers.length; i++) { + value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); + } + return useValue ? value : void 0; +}; + +export function __propKey(x) { + return typeof x === "symbol" ? x : "".concat(x); +}; + +export function __setFunctionName(f, name, prefix) { + if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); +}; + +export function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} + +export function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +export function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +export var __createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); + +export function __exportStar(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); +} + +export function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +} + +export function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; +} + +/** @deprecated */ +export function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; +} + +/** @deprecated */ +export function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +} + +export function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +export function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +} + +export function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i; + function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; } + function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } +} + +export function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } +} + +export function __asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } +} + +export function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; + +var __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}; + +var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); +}; + +export function __importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; +} + +export function __importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; +} + +export function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +} + +export function __classPrivateFieldSet(receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +} + +export function __classPrivateFieldIn(state, receiver) { + if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); +} + +export function __addDisposableResource(env, value, async) { + if (value !== null && value !== void 0) { + if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); + var dispose, inner; + if (async) { + if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); + dispose = value[Symbol.asyncDispose]; + } + if (dispose === void 0) { + if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); + dispose = value[Symbol.dispose]; + if (async) inner = dispose; + } + if (typeof dispose !== "function") throw new TypeError("Object not disposable."); + if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } }; + env.stack.push({ value: value, dispose: dispose, async: async }); + } + else if (async) { + env.stack.push({ async: true }); + } + return value; +} + +var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; +}; + +export function __disposeResources(env) { + function fail(e) { + env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; + env.hasError = true; + } + var r, s = 0; + function next() { + while (r = env.stack.pop()) { + try { + if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next); + if (r.dispose) { + var result = r.dispose.call(r.value); + if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); + } + else s |= 1; + } + catch (e) { + fail(e); + } + } + if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve(); + if (env.hasError) throw env.error; + } + return next(); +} + +export function __rewriteRelativeImportExtension(path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; +} + +export default { + __extends, + __assign, + __rest, + __decorate, + __param, + __esDecorate, + __runInitializers, + __propKey, + __setFunctionName, + __metadata, + __awaiter, + __generator, + __createBinding, + __exportStar, + __values, + __read, + __spread, + __spreadArrays, + __spreadArray, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, + __classPrivateFieldIn, + __addDisposableResource, + __disposeResources, + __rewriteRelativeImportExtension, +}; diff --git a/node_modules/tslib/tslib.html b/node_modules/tslib/tslib.html new file mode 100644 index 0000000..44c9ba5 --- /dev/null +++ b/node_modules/tslib/tslib.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/node_modules/tslib/tslib.js b/node_modules/tslib/tslib.js new file mode 100644 index 0000000..5e12ace --- /dev/null +++ b/node_modules/tslib/tslib.js @@ -0,0 +1,484 @@ +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */ +var __extends; +var __assign; +var __rest; +var __decorate; +var __param; +var __esDecorate; +var __runInitializers; +var __propKey; +var __setFunctionName; +var __metadata; +var __awaiter; +var __generator; +var __exportStar; +var __values; +var __read; +var __spread; +var __spreadArrays; +var __spreadArray; +var __await; +var __asyncGenerator; +var __asyncDelegator; +var __asyncValues; +var __makeTemplateObject; +var __importStar; +var __importDefault; +var __classPrivateFieldGet; +var __classPrivateFieldSet; +var __classPrivateFieldIn; +var __createBinding; +var __addDisposableResource; +var __disposeResources; +var __rewriteRelativeImportExtension; +(function (factory) { + var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; + if (typeof define === "function" && define.amd) { + define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); + } + else if (typeof module === "object" && typeof module.exports === "object") { + factory(createExporter(root, createExporter(module.exports))); + } + else { + factory(createExporter(root)); + } + function createExporter(exports, previous) { + if (exports !== root) { + if (typeof Object.create === "function") { + Object.defineProperty(exports, "__esModule", { value: true }); + } + else { + exports.__esModule = true; + } + } + return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; + } +}) +(function (exporter) { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + + __extends = function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + + __rest = function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + }; + + __decorate = function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + + __param = function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } + }; + + __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _, done = false; + for (var i = decorators.length - 1; i >= 0; i--) { + var context = {}; + for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; + for (var p in contextIn.access) context.access[p] = contextIn.access[p]; + context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; + var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) continue; + if (result === null || typeof result !== "object") throw new TypeError("Object expected"); + if (_ = accept(result.get)) descriptor.get = _; + if (_ = accept(result.set)) descriptor.set = _; + if (_ = accept(result.init)) initializers.unshift(_); + } + else if (_ = accept(result)) { + if (kind === "field") initializers.unshift(_); + else descriptor[key] = _; + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor); + done = true; + }; + + __runInitializers = function (thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i = 0; i < initializers.length; i++) { + value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); + } + return useValue ? value : void 0; + }; + + __propKey = function (x) { + return typeof x === "symbol" ? x : "".concat(x); + }; + + __setFunctionName = function (f, name, prefix) { + if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); + }; + + __metadata = function (metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); + }; + + __awaiter = function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + + __generator = function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + + __exportStar = function(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); + }; + + __createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); + + __values = function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + + __read = function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; + }; + + /** @deprecated */ + __spread = function () { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + }; + + /** @deprecated */ + __spreadArrays = function () { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + }; + + __spreadArray = function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + }; + + __await = function (v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); + }; + + __asyncGenerator = function (thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i; + function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; } + function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } + }; + + __asyncDelegator = function (o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } + }; + + __asyncValues = function (o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } + }; + + __makeTemplateObject = function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; + }; + + var __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }; + + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + + __importStar = function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; + + __importDefault = function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + + __classPrivateFieldGet = function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); + }; + + __classPrivateFieldSet = function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; + }; + + __classPrivateFieldIn = function (state, receiver) { + if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); + }; + + __addDisposableResource = function (env, value, async) { + if (value !== null && value !== void 0) { + if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); + var dispose, inner; + if (async) { + if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); + dispose = value[Symbol.asyncDispose]; + } + if (dispose === void 0) { + if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); + dispose = value[Symbol.dispose]; + if (async) inner = dispose; + } + if (typeof dispose !== "function") throw new TypeError("Object not disposable."); + if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } }; + env.stack.push({ value: value, dispose: dispose, async: async }); + } + else if (async) { + env.stack.push({ async: true }); + } + return value; + }; + + var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; + }; + + __disposeResources = function (env) { + function fail(e) { + env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; + env.hasError = true; + } + var r, s = 0; + function next() { + while (r = env.stack.pop()) { + try { + if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next); + if (r.dispose) { + var result = r.dispose.call(r.value); + if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); + } + else s |= 1; + } + catch (e) { + fail(e); + } + } + if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve(); + if (env.hasError) throw env.error; + } + return next(); + }; + + __rewriteRelativeImportExtension = function (path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; + }; + + exporter("__extends", __extends); + exporter("__assign", __assign); + exporter("__rest", __rest); + exporter("__decorate", __decorate); + exporter("__param", __param); + exporter("__esDecorate", __esDecorate); + exporter("__runInitializers", __runInitializers); + exporter("__propKey", __propKey); + exporter("__setFunctionName", __setFunctionName); + exporter("__metadata", __metadata); + exporter("__awaiter", __awaiter); + exporter("__generator", __generator); + exporter("__exportStar", __exportStar); + exporter("__createBinding", __createBinding); + exporter("__values", __values); + exporter("__read", __read); + exporter("__spread", __spread); + exporter("__spreadArrays", __spreadArrays); + exporter("__spreadArray", __spreadArray); + exporter("__await", __await); + exporter("__asyncGenerator", __asyncGenerator); + exporter("__asyncDelegator", __asyncDelegator); + exporter("__asyncValues", __asyncValues); + exporter("__makeTemplateObject", __makeTemplateObject); + exporter("__importStar", __importStar); + exporter("__importDefault", __importDefault); + exporter("__classPrivateFieldGet", __classPrivateFieldGet); + exporter("__classPrivateFieldSet", __classPrivateFieldSet); + exporter("__classPrivateFieldIn", __classPrivateFieldIn); + exporter("__addDisposableResource", __addDisposableResource); + exporter("__disposeResources", __disposeResources); + exporter("__rewriteRelativeImportExtension", __rewriteRelativeImportExtension); +}); + +0 && (module.exports = { + __extends: __extends, + __assign: __assign, + __rest: __rest, + __decorate: __decorate, + __param: __param, + __esDecorate: __esDecorate, + __runInitializers: __runInitializers, + __propKey: __propKey, + __setFunctionName: __setFunctionName, + __metadata: __metadata, + __awaiter: __awaiter, + __generator: __generator, + __exportStar: __exportStar, + __createBinding: __createBinding, + __values: __values, + __read: __read, + __spread: __spread, + __spreadArrays: __spreadArrays, + __spreadArray: __spreadArray, + __await: __await, + __asyncGenerator: __asyncGenerator, + __asyncDelegator: __asyncDelegator, + __asyncValues: __asyncValues, + __makeTemplateObject: __makeTemplateObject, + __importStar: __importStar, + __importDefault: __importDefault, + __classPrivateFieldGet: __classPrivateFieldGet, + __classPrivateFieldSet: __classPrivateFieldSet, + __classPrivateFieldIn: __classPrivateFieldIn, + __addDisposableResource: __addDisposableResource, + __disposeResources: __disposeResources, + __rewriteRelativeImportExtension: __rewriteRelativeImportExtension, +}); diff --git a/pages/index/step2.vue b/pages/index/step2.vue index 847ea28..eca9e51 100644 --- a/pages/index/step2.vue +++ b/pages/index/step2.vue @@ -1,19 +1,18 @@ @@ -22,407 +21,201 @@ export default { data() { return { - canvasWidth: 300, - canvasHeight: 400, + seatData: { + "xCoords": [6,7,8,9,10,11,12,13,14,15], + "yCoords": [6,6,6,6,6,6,6,6,6,6], + "statuses": [1,1,1,1,1,1,1,1,1,1], + "levels": ["B","B","B","B","B","B","A","A","A","A"] + }, ctx: null, - areas: [], // 从接口获取的区域数据 - selectedArea: null, - colorMap: { - 'A区': '#FF5252', - 'B区': '#4CAF50', - 'C区': '#2196F3', - 'D区': '#FFC107' - } - } + canvas: null, + img: null, + scale: 1.0, + offsetX: 0, + offsetY: 0, + lastTouch: { x: 0, y: 0 } + }; }, - - async onLoad() { - // 模拟API请求 - await this.loadAreaData(); - }, - onReady() { - setTimeout(() => { - this.initCanvas().catch(e => { - console.error('初始化失败:', e); - uni.showToast({ - title: '画布初始化失败', - icon: 'none' - }); - }); - }, 300); - }, - + this.initCanvas(); + }, methods: { - // 模拟加载区域数据 - async loadAreaData() { - try { - // 这里替换为您的实际API请求 - const data = [{ - "areacode": "lg0umpjukrdn", - "areaname": "C4区", - "description": "C4区", - "remain": 94, - "polygon": [131, 184, 130, 196, 146, 201, 174, 208, 174, 215, 215, 215, 258, 215, 258, 205, 257, 192, 258, 184, 215, 184, 174, 184, 131, 184] - }, { - "areacode": "pnk4022gt71m", - "areaname": "A4区-一层", - "description": "A4区-一层", - "remain": 0, - "polygon": [490, 464, 490, 475, 490, 488, 490, 499, 532, 499, 572, 499, 614, 499, 614, 488, 599, 480, 586, 474, 572, 464, 532, 464, 490, 464] - }, { - "areacode": "e0jhx1sa8194", - "areaname": "D1区-一层", - "description": "D1区-一层", - "remain": 247, - "polygon": [604, 345, 603, 385, 604, 396, 624, 439, 643, 437, 644, 417, 643, 396, 644, 367, 644, 344, 616, 345, 644, 346, 630, 344, 604, 345] - }, { - "areacode": "qxhs4574ffrh", - "areaname": "D1区-二层", - "description": "D1区-二层", - "remain": 191, - "polygon": [648, 349, 648, 386, 648, 425, 648, 452, 668, 452, 668, 462, 674, 462, 674, 425, 674, 386, 674, 349, 666, 349, 656, 349, 648, 349] - }, { - "areacode": "ar2q2e74ffrj", - "areaname": "D2区-二层", - "description": "D2区-二层", - "remain": 122, - "polygon": [647, 240, 648, 270, 648, 309, 648, 350, 657, 350, 665, 350, 673, 350, 673, 309, 673, 270, 673, 229, 667, 229, 667, 239, 647, 240] - }, { - "areacode": "qar2r374ffrl", - "areaname": "D2区-一层", - "description": "D2区-一层", - "remain": 153, - "polygon": [617, 266, 605, 285, 606, 303, 606, 342, 626, 341, 645, 342, 643, 341, 642, 302, 642, 278, 642, 263, 642, 249, 626, 248, 617, 266] - }, { - "areacode": "fpfaxmsa816f", - "areaname": "A2区-一层", - "description": "A2区-一层", - "remain": 0, - "polygon": [269, 463, 269, 476, 269, 488, 269, 501, 301, 501, 332, 501, 364, 501, 364, 488, 364, 476, 364, 463, 332, 463, 301, 463, 269, 463] - }, { - "areacode": "tse56pjukrdx", - "areaname": "C3区", - "description": "C3区", - "remain": 215, - "polygon": [279, 141, 279, 174, 266, 173, 265, 180, 308, 180, 339, 180, 369, 180, 369, 167, 369, 154, 369, 141, 339, 141, 308, 141, 279, 141] - }, { - "areacode": "lpkym7ej0kmd", - "areaname": "B1区-一层", - "description": "B1区-一层", - "remain": 248, - "polygon": [104, 250, 104, 282, 104, 313, 104, 345, 118, 345, 131, 345, 145, 345, 145, 313, 145, 288, 138, 276, 131, 263, 123, 250, 104, 250] - }, { - "areacode": "r6xrfc2gt71x", - "areaname": "C3区", - "description": "C3区", - "remain": 143, - "polygon": [269, 186, 269, 196, 269, 207, 269, 217, 300, 217, 333, 217, 364, 217, 364, 207, 364, 196, 364, 186, 333, 186, 300, 186, 269, 186] - }, { - "areacode": "h84jstej0kmf", - "areaname": "C1区", - "description": "C1区", - "remain": 337, - "polygon": [477, 133, 476, 168, 491, 168, 491, 179, 519, 178, 690, 179, 689, 170, 660, 170, 659, 140, 670, 140, 670, 134, 530, 134, 477, 133] - }, { - "areacode": "tqaegcej0kmg", - "areaname": "A2区-二层", - "description": "A2区-二层", - "remain": 0, - "polygon": [278, 514, 277, 526, 256, 525, 256, 542, 289, 542, 311, 542, 311, 531, 364, 533, 364, 525, 352, 525, 352, 513, 303, 513, 278, 514] - }, { - "areacode": "606fa9ej0kmh", - "areaname": "A3区-一层", - "description": "A3区-一层", - "remain": 0, - "polygon": [384, 466, 384, 477, 384, 489, 384, 500, 416, 500, 447, 500, 479, 500, 479, 489, 479, 477, 479, 466, 447, 466, 416, 466, 384, 466] - }, { - "areacode": "2x9j4bej0km8", - "areaname": "B1区-二层", - "description": "B1区-二层", - "remain": 192, - "polygon": [74, 231, 73, 270, 73, 304, 73, 340, 84, 340, 91, 340, 101, 340, 101, 304, 101, 283, 100, 239, 80, 238, 80, 230, 74, 231] - }, { - "areacode": "81mj022gt723", - "areaname": "A4区-二层", - "description": "A4区-二层", - "remain": 0, - "polygon": [513, 511, 513, 525, 493, 525, 493, 547, 556, 547, 624, 547, 657, 546, 657, 513, 687, 513, 688, 501, 489, 500, 490, 511, 513, 511] - }, { - "areacode": "f217dy2gt72f", - "areaname": "C2区", - "description": "C2区", - "remain": 136, - "polygon": [372, 144, 372, 156, 372, 168, 372, 180, 403, 180, 434, 180, 481, 180, 481, 175, 467, 175, 467, 144, 434, 144, 403, 144, 372, 144] - }, { - "areacode": "crxllrjukre8", - "areaname": "A3区-二层", - "description": "A3区-二层", - "remain": 0, - "polygon": [386, 515, 387, 528, 376, 527, 376, 535, 436, 533, 436, 545, 486, 545, 486, 534, 486, 526, 463, 526, 464, 515, 411, 515, 386, 515] - }, { - "areacode": "kb8wtgjukre9", - "areaname": "C2区", - "description": "C2区", - "remain": 144, - "polygon": [386, 186, 386, 197, 386, 206, 386, 217, 416, 217, 448, 217, 478, 217, 478, 206, 478, 197, 478, 186, 448, 186, 416, 186, 386, 186] - }, { - "areacode": "0wrt1djukrea", - "areaname": "C1区", - "description": "C1区", - "remain": 60, - "polygon": [496, 184, 496, 194, 496, 205, 496, 215, 571, 214, 572, 204, 587, 205, 598, 202, 614, 194, 614, 184, 574, 184, 536, 184, 496, 184] - }, { - "areacode": "hya95p74ffs3", - "areaname": "B2区-二层", - "description": "B2区-二层", - "remain": 191, - "polygon": [73, 337, 73, 378, 72, 415, 73, 457, 78, 457, 78, 449, 100, 449, 101, 415, 100, 394, 101, 337, 92, 337, 82, 337, 73, 337] - }, { - "areacode": "rrw413jukre2", - "areaname": "A1区-一层", - "description": "A1区-一层", - "remain": 0, - "polygon": [256, 465, 256, 476, 256, 489, 256, 499, 213, 499, 172, 499, 129, 499, 129, 485, 144, 479, 158, 473, 172, 465, 213, 465, 256, 465] - }, { - "areacode": "sagsr1sa816m", - "areaname": "C4区", - "description": "C4区", - "remain": 490, - "polygon": [88, 139, 89, 171, 61, 172, 60, 181, 224, 181, 259, 182, 259, 174, 273, 173, 272, 154, 273, 131, 77, 132, 77, 139, 88, 139] - }, { - "areacode": "eqk4nyjukre4", - "areaname": "B2区一层", - "description": "B2区一层", - "remain": 247, - "polygon": [104, 344, 104, 376, 104, 406, 104, 438, 123, 438, 128, 425, 134, 415, 143, 399, 144, 376, 144, 344, 130, 344, 118, 344, 104, 344] - }, { - "areacode": "rrtc9e2gt72d", - "areaname": "A1区-二层", - "description": "A1区-二层", - "remain": 0, - "polygon": [62, 501, 62, 509, 90, 510, 89, 549, 250, 548, 250, 527, 231, 528, 230, 510, 254, 509, 254, 501, 191, 501, 125, 501, 62, 501] - }] - this.areas = data.map(area => ({ - ...area, - color: this.getAreaColor(area.areaname), - // 转换多边形为绘制路径 - path: this.parsePolygon(area.polygon) - })); - } catch (error) { - console.error('数据加载失败:', error); - } + async initCanvas() { + const query = uni.createSelectorQuery().in(this); + query.select('#seatCanvas') + .fields({ node: true, size: true }) + .exec(async (res) => { + if (!res || !res[0]) return; + + const canvas = res[0].node; + const ctx = canvas.getContext('2d'); + const dpr = uni.getSystemInfoSync().pixelRatio; + + canvas.width = res[0].width * dpr; + canvas.height = res[0].height * dpr; + ctx.scale(dpr, dpr); + + this.canvas = canvas; + this.ctx = ctx; + + // 加载座位图片 + try { + const imagePath = await this.loadImageForMiniProgram( + 'https://assets.tech.troyrc.com/sx25/images/events/dingwei1.png' + ); + this.img = imagePath; + this.renderSeats(); + } catch (error) { + console.error('图片加载失败:', error); + } + }); + }, + + // 专为微信小程序优化的图片加载方法 + loadImageForMiniProgram(url) { + return new Promise((resolve, reject) => { + // 第一步:下载图片到临时文件 + uni.downloadFile({ + url, + success: downloadRes => { + // 第二步:获取图片信息(宽高等) + uni.getImageInfo({ + src: downloadRes.tempFilePath, + success: imageInfo => { + resolve({ + path: downloadRes.tempFilePath, + width: imageInfo.width, + height: imageInfo.height + }); + }, + fail: err => reject(`获取图片信息失败: ${JSON.stringify(err)}`) + }); + }, + fail: err => reject(`下载图片失败: ${JSON.stringify(err)}`) + }); + }); + }, + + renderSeats() { + if (!this.ctx || !this.img) return; + + const { ctx } = this; + const GRID_SIZE = 30 * this.scale; + + // 清空画布 + ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); + + // 绘制所有座位 + this.seatData.xCoords.forEach((x, i) => { + const y = this.seatData.yCoords[i]; + const status = this.seatData.statuses[i]; + + // 计算实际绘制位置 + const drawX = (x - 6) * GRID_SIZE + this.offsetX; + const drawY = (y - 6) * GRID_SIZE + this.offsetY; + + // 绘制座位图片 - 直接使用临时文件路径 + ctx.drawImage( + this.img.path, + drawX, + drawY, + GRID_SIZE, + GRID_SIZE + ); + + // 根据状态添加效果 + if (status === 2) { // 不可用状态 + ctx.fillStyle = 'rgba(0,0,0,0.5)'; + ctx.fillRect(drawX, drawY, GRID_SIZE, GRID_SIZE); + } + + // 绘制座位信息 + ctx.fillStyle = '#ffffff'; + ctx.font = `${8 * this.scale}px sans-serif`; + ctx.textAlign = 'center'; + ctx.fillText( + `${this.seatData.rowNames[i]}${this.seatData.seatNames[i]}`, + drawX + GRID_SIZE / 2, + drawY + GRID_SIZE / 2 + 3 * this.scale + ); + }); + + // 在微信小程序中必须调用 draw() 方法才能更新画布 + ctx.draw(); + }, + // 手势操作(保持不变) + handleTouchStart(e) { + this.lastTouch = { + x: e.touches[0].x, + y: e.touches[0].y + }; }, - // 根据区域名称获取颜色 - getAreaColor(name) { - for (const [key, value] of Object.entries(this.colorMap)) { - if (name.includes(key)) return value; - } - return '#9E9E9E'; // 默认颜色 + handleTouchMove(e) { + const touchX = e.touches[0].x; + const touchY = e.touches[0].y; + + this.offsetX += (touchX - this.lastTouch.x) * 1.5; + this.offsetY += (touchY - this.lastTouch.y) * 1.5; + + this.lastTouch = { x: touchX, y: touchY }; + this.renderSeats(); }, - // 解析多边形数据 - parsePolygon(points) { - const path = []; - // 检查输入数据 - if (!points || !Array.isArray(points) || points.length % 2 !== 0) { - console.error('无效的多边形数据:', points); - return path; - } - - for (let i = 0; i < points.length; i += 2) { - // 确保坐标是数字 - const x = Number(points[i]); - const y = Number(points[i+1]); - if (!isNaN(x) && !isNaN(y)) { - path.push({ x, y }); - } else { - console.warn('忽略无效坐标:', points[i], points[i+1]); - } - } - - // 确保多边形闭合 - if (path.length > 0 && - (path[0].x !== path[path.length-1].x || - path[0].y !== path[path.length-1].y)) { - path.push({...path[0]}); - } - - return path; - }, - - async initCanvas() { - try { - // 获取Canvas节点 - const canvasNode = await new Promise((resolve, reject) => { - const query = uni.createSelectorQuery().in(this); - query.select('#selectCanvas') - .fields({ node: true, size: true }) - .exec(res => { - res[0]?.node ? resolve(res[0].node) : reject('Canvas节点获取失败'); - }); - }); - - // 获取系统信息 - const systemInfo = uni.getSystemInfoSync(); - - // 设置Canvas的显示尺寸(CSS像素) - this.canvasWidth = systemInfo.windowWidth; - this.canvasHeight = systemInfo.windowHeight * 0.8; - - // 设置Canvas的实际像素尺寸(考虑设备像素比) - const dpr = systemInfo.pixelRatio || 1; - canvasNode.width = this.canvasWidth * dpr; - canvasNode.height = this.canvasHeight * dpr; - - // 初始化上下文 - this.ctx = uni.createCanvasContext('selectCanvas', this); - - // 缩放上下文以匹配设备像素比 - this.ctx.scale(dpr, dpr); - - // 绘制内容 - this.drawAllAreas(); - - } catch (error) { - console.error('初始化失败:', error); - this.useFallbackRender(); - } - }, - - - // 绘制所有区域 - drawAllAreas() { - // 清空画布 - this.ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight); - - // 绘制背景 - this.ctx.setFillStyle('#f5f5f5'); - this.ctx.fillRect(0, 0, this.canvasWidth, this.canvasHeight); - - // 绘制所有区域 - this.areas.forEach(area => { - this.drawArea(area); - }); - - this.ctx.draw(); + handleTouchEnd() { + // 可添加惯性滑动效果 }, - // 绘制单个区域 - drawArea(area) { - this.ctx.beginPath(); - this.ctx.moveTo(area.path[0].x, area.path[0].y); - - for (let i = 1; i < area.path.length; i++) { - this.ctx.lineTo(area.path[i].x, area.path[i].y); - } - - this.ctx.closePath(); - this.ctx.setFillStyle(area.color); - this.ctx.fill(); - - // 如果是选中状态,添加边框 - if (this.selectedArea === area) { - this.ctx.setStrokeStyle('#000000'); - this.ctx.setLineWidth(2); - this.ctx.stroke(); - } + // 缩放控制(保持不变) + zoomIn() { + this.scale = Math.min(this.scale * 1.2, 3.0); + this.renderSeats(); }, - // 检查点击了哪个区域 - async checkAreaSelection(x, y) { - return new Promise((resolve) => { - const query = uni.createSelectorQuery().in(this); - query.select('#selectCanvas') - .boundingClientRect(rect => { - if (!rect) return resolve(null); - - // 转换坐标到Canvas坐标系 - const canvasX = x - rect.left; - const canvasY = y - rect.top; - - // 使用isPointInPath检测(简化版) - const clickedArea = this.areas.find(area => - this.isPointInPolygon(canvasX, canvasY, area.path) - ); - - resolve(clickedArea); - }) - .exec(); - }); + zoomOut() { + this.scale = Math.max(this.scale * 0.8, 0.5); + this.renderSeats(); }, - // 判断点是否在多边形内 - isPointInPolygon(x, y, polygon) { - // 添加参数检查 - if (!polygon || !Array.isArray(polygon) || polygon.length < 3) { - console.warn('无效的多边形数据', polygon); - return false; - } - - let inside = false; - for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) { - const xi = polygon[i].x, yi = polygon[i].y; - const xj = polygon[j].x, yj = polygon[j].y; - - // 添加坐标检查 - if (isNaN(xi) || isNaN(yi) || isNaN(xj) || isNaN(yj)) { - console.warn('无效的坐标点', {xi, yi, xj, yj}); - return false; - } - - const intersect = ((yi > y) !== (yj > y)) - && (x < (xj - xi) * (y - yi) / (yj - yi) + xi); - if (intersect) inside = !inside; - } - return inside; - }, - // 处理触摸开始 - async handleTouchStart(e) { - const touch = e.touches[0]; - const clickedArea = await this.checkAreaSelection(touch.clientX, touch.clientY); - - if (clickedArea) { - this.selectedArea = clickedArea; - this.drawAllAreas(); - - uni.showToast({ - title: `选中: ${clickedArea.areaname}`, - icon: 'none' - }); - - // 返回选中区域数据 - this.$emit('area-selected', { - areacode: clickedArea.areacode, - areaname: clickedArea.areaname, - remain: clickedArea.remain - }); - } + resetView() { + this.scale = 1.0; + this.offsetX = 0; + this.offsetY = 0; + this.renderSeats(); } } -} +}; - \ No newline at end of file diff --git a/seat.jpg b/seat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e84af1d9ed4fe6f07844e5548f0a36dcfb1eac4e GIT binary patch literal 6076 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 O`1}|#Exk>d)A2v5)ZrEY literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map index e0aa5f8..4943999 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["\r\n\r\n\n","import App from './App'\n\n// #ifndef VUE3\nimport Vue from 'vue'\nimport './uni.promisify.adaptor'\nVue.config.productionTip = false\nApp.mpType = 'app'\nconst app = new Vue({\n ...App\n})\napp.$mount()\n// #endif\n\n// #ifdef VUE3\nimport { createSSRApp } from 'vue'\nexport function createApp() {\n const app = createSSRApp(App)\n return {\n app\n }\n}\n// #endif"],"names":["uni","createSSRApp","App"],"mappings":";;;;;;;AACC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,EACxB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,UAAU;AAAA,EACtB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACvB;AACD;ACIM,SAAS,YAAY;AAC1B,QAAM,MAAMC,cAAY,aAACC,SAAG;AAC5B,SAAO;AAAA,IACL;AAAA,EACD;AACH;AACC,YAAO,IAAA,MAAA,MAAA;;"} \ No newline at end of file +{"version":3,"file":"app.js","sources":["App.vue"],"sourcesContent":["\n\n\n"],"names":["uni"],"mappings":";;;;;;;AACC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,YAAY;AAAA,EACxB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,UAAU;AAAA,EACtB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACvB;AACD;;;;;;;;;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map index cbc6c42..c4ce1df 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map @@ -1 +1 @@ -{"version":3,"file":"vendor.js","sources":["../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.api.esm.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/dist/mp.esm.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js"],"sourcesContent":["/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","const isObject = (val) => val !== null && typeof val === 'object';\nconst defaultDelimiters = ['{', '}'];\nclass BaseFormatter {\n constructor() {\n this._caches = Object.create(null);\n }\n interpolate(message, values, delimiters = defaultDelimiters) {\n if (!values) {\n return [message];\n }\n let tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message, delimiters);\n this._caches[message] = tokens;\n }\n return compile(tokens, values);\n }\n}\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\nfunction parse(format, [startDelimiter, endDelimiter]) {\n const tokens = [];\n let position = 0;\n let text = '';\n while (position < format.length) {\n let char = format[position++];\n if (char === startDelimiter) {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n text = '';\n let sub = '';\n char = format[position++];\n while (char !== undefined && char !== endDelimiter) {\n sub += char;\n char = format[position++];\n }\n const isClosed = char === endDelimiter;\n const type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type });\n }\n // else if (char === '%') {\n // // when found rails i18n syntax, skip text capture\n // if (format[position] !== '{') {\n // text += char\n // }\n // }\n else {\n text += char;\n }\n }\n text && tokens.push({ type: 'text', value: text });\n return tokens;\n}\nfunction compile(tokens, values) {\n const compiled = [];\n let index = 0;\n const mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') {\n return compiled;\n }\n while (index < tokens.length) {\n const token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break;\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break;\n case 'named':\n if (mode === 'named') {\n compiled.push(values[token.value]);\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\n }\n }\n break;\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Detect 'unknown' type of token!`);\n }\n break;\n }\n index++;\n }\n return compiled;\n}\n\nconst LOCALE_ZH_HANS = 'zh-Hans';\nconst LOCALE_ZH_HANT = 'zh-Hant';\nconst LOCALE_EN = 'en';\nconst LOCALE_FR = 'fr';\nconst LOCALE_ES = 'es';\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst defaultFormatter = new BaseFormatter();\nfunction include(str, parts) {\n return !!parts.find((part) => str.indexOf(part) !== -1);\n}\nfunction startsWith(str, parts) {\n return parts.find((part) => str.indexOf(part) === 0);\n}\nfunction normalizeLocale(locale, messages) {\n if (!locale) {\n return;\n }\n locale = locale.trim().replace(/_/g, '-');\n if (messages && messages[locale]) {\n return locale;\n }\n locale = locale.toLowerCase();\n if (locale === 'chinese') {\n // 支付宝\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('zh') === 0) {\n if (locale.indexOf('-hans') > -1) {\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('-hant') > -1) {\n return LOCALE_ZH_HANT;\n }\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\n return LOCALE_ZH_HANT;\n }\n return LOCALE_ZH_HANS;\n }\n let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];\n if (messages && Object.keys(messages).length > 0) {\n locales = Object.keys(messages);\n }\n const lang = startsWith(locale, locales);\n if (lang) {\n return lang;\n }\n}\nclass I18n {\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\n this.locale = LOCALE_EN;\n this.fallbackLocale = LOCALE_EN;\n this.message = {};\n this.messages = {};\n this.watchers = [];\n if (fallbackLocale) {\n this.fallbackLocale = fallbackLocale;\n }\n this.formater = formater || defaultFormatter;\n this.messages = messages || {};\n this.setLocale(locale || LOCALE_EN);\n if (watcher) {\n this.watchLocale(watcher);\n }\n }\n setLocale(locale) {\n const oldLocale = this.locale;\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\n if (!this.messages[this.locale]) {\n // 可能初始化时不存在\n this.messages[this.locale] = {};\n }\n this.message = this.messages[this.locale];\n // 仅发生变化时,通知\n if (oldLocale !== this.locale) {\n this.watchers.forEach((watcher) => {\n watcher(this.locale, oldLocale);\n });\n }\n }\n getLocale() {\n return this.locale;\n }\n watchLocale(fn) {\n const index = this.watchers.push(fn) - 1;\n return () => {\n this.watchers.splice(index, 1);\n };\n }\n add(locale, message, override = true) {\n const curMessages = this.messages[locale];\n if (curMessages) {\n if (override) {\n Object.assign(curMessages, message);\n }\n else {\n Object.keys(message).forEach((key) => {\n if (!hasOwn(curMessages, key)) {\n curMessages[key] = message[key];\n }\n });\n }\n }\n else {\n this.messages[locale] = message;\n }\n }\n f(message, values, delimiters) {\n return this.formater.interpolate(message, values, delimiters).join('');\n }\n t(key, locale, values) {\n let message = this.message;\n if (typeof locale === 'string') {\n locale = normalizeLocale(locale, this.messages);\n locale && (message = this.messages[locale]);\n }\n else {\n values = locale;\n }\n if (!hasOwn(message, key)) {\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\n return key;\n }\n return this.formater.interpolate(message[key], values).join('');\n }\n}\n\nfunction watchAppLocale(appVm, i18n) {\n // 需要保证 watch 的触发在组件渲染之前\n if (appVm.$watchLocale) {\n // vue2\n appVm.$watchLocale((newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n else {\n appVm.$watch(() => appVm.$locale, (newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n}\nfunction getDefaultLocale() {\n if (typeof uni !== 'undefined' && uni.getLocale) {\n return uni.getLocale();\n }\n // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\n if (typeof global !== 'undefined' && global.getLocale) {\n return global.getLocale();\n }\n return LOCALE_EN;\n}\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\n // 兼容旧版本入参\n if (typeof locale !== 'string') {\n // ;[locale, messages] = [\n // messages as unknown as string,\n // locale as unknown as LocaleMessages,\n // ]\n // 暂不使用数组解构,uts编译器暂未支持。\n const options = [\n messages,\n locale,\n ];\n locale = options[0];\n messages = options[1];\n }\n if (typeof locale !== 'string') {\n // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\n locale = getDefaultLocale();\n }\n if (typeof fallbackLocale !== 'string') {\n fallbackLocale =\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\n LOCALE_EN;\n }\n const i18n = new I18n({\n locale,\n fallbackLocale,\n messages,\n watcher,\n });\n let t = (key, values) => {\n if (typeof getApp !== 'function') {\n // app view\n /* eslint-disable no-func-assign */\n t = function (key, values) {\n return i18n.t(key, values);\n };\n }\n else {\n let isWatchedAppLocale = false;\n t = function (key, values) {\n const appVm = getApp().$vm;\n // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\n // options: {\n // \ttype: Array,\n // \tdefault () {\n // \t\treturn [{\n // \t\t\ticon: 'shop',\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\n // \t\t}, {\n // \t\t\ticon: 'cart',\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\n // \t\t}]\n // \t}\n // },\n if (appVm) {\n // 触发响应式\n appVm.$locale;\n if (!isWatchedAppLocale) {\n isWatchedAppLocale = true;\n watchAppLocale(appVm, i18n);\n }\n }\n return i18n.t(key, values);\n };\n }\n return t(key, values);\n };\n return {\n i18n,\n f(message, values, delimiters) {\n return i18n.f(message, values, delimiters);\n },\n t(key, values) {\n return t(key, values);\n },\n add(locale, message, override = true) {\n return i18n.add(locale, message, override);\n },\n watch(fn) {\n return i18n.watchLocale(fn);\n },\n getLocale() {\n return i18n.getLocale();\n },\n setLocale(newLocale) {\n return i18n.setLocale(newLocale);\n },\n };\n}\n\nconst isString = (val) => typeof val === 'string';\nlet formater;\nfunction hasI18nJson(jsonObj, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n return walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n return true;\n }\n }\n else {\n return hasI18nJson(value, delimiters);\n }\n });\n}\nfunction parseI18nJson(jsonObj, values, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, values, delimiters);\n }\n }\n else {\n parseI18nJson(value, values, delimiters);\n }\n });\n return jsonObj;\n}\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\n if (!isI18nStr(jsonStr, delimiters)) {\n return jsonStr;\n }\n if (!formater) {\n formater = new BaseFormatter();\n }\n const localeValues = [];\n Object.keys(locales).forEach((name) => {\n if (name !== locale) {\n localeValues.push({\n locale: name,\n values: locales[name],\n });\n }\n });\n localeValues.unshift({ locale, values: locales[locale] });\n try {\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\n }\n catch (e) { }\n return jsonStr;\n}\nfunction isI18nStr(value, delimiters) {\n return value.indexOf(delimiters[0]) > -1;\n}\nfunction compileStr(value, values, delimiters) {\n return formater.interpolate(value, values, delimiters).join('');\n}\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\n const value = jsonObj[key];\n if (isString(value)) {\n // 存在国际化\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\n if (localeValues.length > 1) {\n // 格式化国际化语言\n const valueLocales = (jsonObj[key + 'Locales'] = {});\n localeValues.forEach((localValue) => {\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\n });\n }\n }\n }\n else {\n compileJsonObj(value, localeValues, delimiters);\n }\n}\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\n walkJsonObj(jsonObj, (jsonObj, key) => {\n compileValue(jsonObj, key, localeValues, delimiters);\n });\n return jsonObj;\n}\nfunction walkJsonObj(jsonObj, walk) {\n if (Array.isArray(jsonObj)) {\n for (let i = 0; i < jsonObj.length; i++) {\n if (walk(jsonObj, i)) {\n return true;\n }\n }\n }\n else if (isObject(jsonObj)) {\n for (const key in jsonObj) {\n if (walk(jsonObj, key)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction resolveLocale(locales) {\n return (locale) => {\n if (!locale) {\n return locale;\n }\n locale = normalizeLocale(locale) || locale;\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\n };\n}\nfunction resolveLocaleChain(locale) {\n const chain = [];\n const tokens = locale.split('-');\n while (tokens.length) {\n chain.push(tokens.join('-'));\n tokens.pop();\n }\n return chain;\n}\n\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\n","import { isHTMLTag, isSVGTag, isVoidTag, isString, isFunction, isPlainObject, hyphenate, camelize, normalizeStyle as normalizeStyle$1, parseStringStyle, isArray, normalizeClass as normalizeClass$1, extend, capitalize } from '@vue/shared';\n\nconst BUILT_IN_TAG_NAMES = [\n 'ad',\n 'ad-content-page',\n 'ad-draw',\n 'audio',\n 'button',\n 'camera',\n 'canvas',\n 'checkbox',\n 'checkbox-group',\n 'cover-image',\n 'cover-view',\n 'editor',\n 'form',\n 'functional-page-navigator',\n 'icon',\n 'image',\n 'input',\n 'label',\n 'live-player',\n 'live-pusher',\n 'map',\n 'movable-area',\n 'movable-view',\n 'navigator',\n 'official-account',\n 'open-data',\n 'picker',\n 'picker-view',\n 'picker-view-column',\n 'progress',\n 'radio',\n 'radio-group',\n 'rich-text',\n 'scroll-view',\n 'slider',\n 'swiper',\n 'swiper-item',\n 'switch',\n 'text',\n 'textarea',\n 'video',\n 'view',\n 'web-view',\n 'location-picker',\n 'location-view',\n];\nconst BUILT_IN_TAGS = BUILT_IN_TAG_NAMES.map((tag) => 'uni-' + tag);\nconst TAGS = [\n 'app',\n 'layout',\n 'content',\n 'main',\n 'top-window',\n 'left-window',\n 'right-window',\n 'tabbar',\n 'page',\n 'page-head',\n 'page-wrapper',\n 'page-body',\n 'page-refresh',\n 'actionsheet',\n 'modal',\n 'toast',\n 'resize-sensor',\n 'shadow-root',\n].map((tag) => 'uni-' + tag);\nconst NVUE_BUILT_IN_TAGS = [\n 'svg',\n 'view',\n 'a',\n 'div',\n 'img',\n 'image',\n 'text',\n 'span',\n 'input',\n 'textarea',\n 'spinner',\n 'select',\n // slider 被自定义 u-slider 替代\n // 'slider',\n 'slider-neighbor',\n 'indicator',\n 'canvas',\n 'list',\n 'cell',\n 'header',\n 'loading',\n 'loading-indicator',\n 'refresh',\n 'scrollable',\n 'scroller',\n 'video',\n 'web',\n 'embed',\n 'tabbar',\n 'tabheader',\n 'datepicker',\n 'timepicker',\n 'marquee',\n 'countdown',\n 'dc-switch',\n 'waterfall',\n 'richtext',\n 'recycle-list',\n 'u-scalable',\n 'barcode',\n 'gcanvas',\n];\nconst UVUE_BUILT_IN_TAGS = [\n 'ad',\n 'ad-content-page',\n 'ad-draw',\n 'native-view',\n 'loading-indicator',\n 'list-view',\n 'list-item',\n 'swiper',\n 'swiper-item',\n 'rich-text',\n 'sticky-view',\n 'sticky-header',\n 'sticky-section',\n // 自定义\n 'uni-slider',\n // 原生实现\n 'button',\n 'nested-scroll-header',\n 'nested-scroll-body',\n 'waterflow',\n 'flow-item',\n 'share-element',\n 'cover-view',\n 'cover-image',\n];\nconst UVUE_WEB_BUILT_IN_TAGS = [\n 'list-view',\n 'list-item',\n 'sticky-section',\n 'sticky-header',\n 'cloud-db-element',\n].map((tag) => 'uni-' + tag);\nconst UVUE_IOS_BUILT_IN_TAGS = [\n 'scroll-view',\n 'web-view',\n 'slider',\n 'form',\n 'switch',\n];\nconst UVUE_HARMONY_BUILT_IN_TAGS = [\n // TODO 列出完整列表\n ...BUILT_IN_TAG_NAMES,\n];\nconst NVUE_U_BUILT_IN_TAGS = [\n 'u-text',\n 'u-image',\n 'u-input',\n 'u-textarea',\n 'u-video',\n 'u-web-view',\n 'u-slider',\n 'u-ad',\n 'u-ad-draw',\n 'u-rich-text',\n];\nconst UNI_UI_CONFLICT_TAGS = ['list-item'].map((tag) => 'uni-' + tag);\nfunction isBuiltInComponent(tag) {\n if (UNI_UI_CONFLICT_TAGS.indexOf(tag) !== -1) {\n return false;\n }\n // h5 平台会被转换为 v-uni-\n const realTag = 'uni-' + tag.replace('v-uni-', '');\n // TODO 区分x和非x\n return (BUILT_IN_TAGS.indexOf(realTag) !== -1 ||\n UVUE_WEB_BUILT_IN_TAGS.indexOf(realTag) !== -1);\n}\nfunction isH5CustomElement(tag, isX = false) {\n if (isX && UVUE_WEB_BUILT_IN_TAGS.indexOf(tag) !== -1) {\n return true;\n }\n return TAGS.indexOf(tag) !== -1 || BUILT_IN_TAGS.indexOf(tag) !== -1;\n}\nfunction isUniXElement(name) {\n return /^I?Uni.*Element(?:Impl)?$/.test(name);\n}\nfunction isH5NativeTag(tag) {\n return (tag !== 'head' &&\n (isHTMLTag(tag) || isSVGTag(tag)) &&\n !isBuiltInComponent(tag));\n}\nfunction isAppNativeTag(tag) {\n return isHTMLTag(tag) || isSVGTag(tag) || isBuiltInComponent(tag);\n}\nconst NVUE_CUSTOM_COMPONENTS = [\n 'ad',\n 'ad-draw',\n 'button',\n 'checkbox-group',\n 'checkbox',\n 'form',\n 'icon',\n 'label',\n 'movable-area',\n 'movable-view',\n 'navigator',\n 'picker',\n 'progress',\n 'radio-group',\n 'radio',\n 'rich-text',\n 'swiper-item',\n 'swiper',\n 'switch',\n 'slider',\n 'picker-view',\n 'picker-view-column',\n];\n// 内置的easycom组件\nconst UVUE_BUILT_IN_EASY_COMPONENTS = ['map', 'camera'];\nfunction isAppUVueBuiltInEasyComponent(tag) {\n return UVUE_BUILT_IN_EASY_COMPONENTS.includes(tag);\n}\n// 主要是指前端实现的组件列表\nconst UVUE_CUSTOM_COMPONENTS = [\n ...NVUE_CUSTOM_COMPONENTS,\n ...UVUE_BUILT_IN_EASY_COMPONENTS,\n];\nfunction isAppUVueNativeTag(tag) {\n // 前端实现的内置组件都会注册一个根组件\n if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n return true;\n }\n if (UVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (UVUE_CUSTOM_COMPONENTS.includes(tag)) {\n return false;\n }\n if (isBuiltInComponent(tag)) {\n return true;\n }\n // u-text,u-video...\n if (NVUE_U_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n return false;\n}\nfunction isAppIOSUVueNativeTag(tag) {\n // 前端实现的内置组件都会注册一个根组件\n if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n return true;\n }\n if (NVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (UVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (UVUE_IOS_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n return false;\n}\nfunction isAppHarmonyUVueNativeTag(tag) {\n // video 目前是easycom实现的\n if (tag === 'video' || tag === 'map') {\n return false;\n }\n // 前端实现的内置组件都会注册一个根组件\n if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n return true;\n }\n if (NVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (UVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (UVUE_HARMONY_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n return false;\n}\nfunction isAppNVueNativeTag(tag) {\n if (NVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (NVUE_CUSTOM_COMPONENTS.includes(tag)) {\n return false;\n }\n if (isBuiltInComponent(tag)) {\n return true;\n }\n // u-text,u-video...\n if (NVUE_U_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n return false;\n}\nfunction isMiniProgramNativeTag(tag) {\n return isBuiltInComponent(tag);\n}\nfunction isMiniProgramUVueNativeTag(tag) {\n // 小程序平台内置的自定义元素,会被转换为 view\n if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n return true;\n }\n return isBuiltInComponent(tag);\n}\nfunction createIsCustomElement(tags = []) {\n return function isCustomElement(tag) {\n return tags.includes(tag);\n };\n}\nfunction isComponentTag(tag) {\n return tag[0].toLowerCase() + tag.slice(1) === 'component';\n}\nconst COMPONENT_SELECTOR_PREFIX = 'uni-';\nconst COMPONENT_PREFIX = 'v-' + COMPONENT_SELECTOR_PREFIX;\n// TODO 是否还存在其他需要特殊处理的 void 标签?\nconst APP_VOID_TAGS = ['textarea'];\nfunction isAppVoidTag(tag) {\n return APP_VOID_TAGS.includes(tag) || isVoidTag(tag);\n}\n\nconst LINEFEED = '\\n';\nconst NAVBAR_HEIGHT = 44;\nconst TABBAR_HEIGHT = 50;\nconst ON_REACH_BOTTOM_DISTANCE = 50;\nconst RESPONSIVE_MIN_WIDTH = 768;\nconst UNI_STORAGE_LOCALE = 'UNI_LOCALE';\n// quickapp-webview 不能使用 default 作为插槽名称\nconst SLOT_DEFAULT_NAME = 'd';\nconst COMPONENT_NAME_PREFIX = 'VUni';\nconst I18N_JSON_DELIMITERS = ['%', '%'];\nconst PRIMARY_COLOR = '#007aff';\nconst SELECTED_COLOR = '#0062cc'; // 选中的颜色,如选项卡默认的选中颜色\nconst BACKGROUND_COLOR = '#f7f7f7'; // 背景色,如标题栏默认背景色\nconst UNI_SSR = '__uniSSR';\nconst UNI_SSR_TITLE = 'title';\nconst UNI_SSR_STORE = 'store';\nconst UNI_SSR_DATA = 'data';\nconst UNI_SSR_GLOBAL_DATA = 'globalData';\nconst SCHEME_RE = /^([a-z-]+:)?\\/\\//i;\nconst DATA_RE = /^data:.*,.*/;\nconst WEB_INVOKE_APPSERVICE = 'WEB_INVOKE_APPSERVICE';\nconst WXS_PROTOCOL = 'wxs://';\nconst JSON_PROTOCOL = 'json://';\nconst WXS_MODULES = 'wxsModules';\nconst RENDERJS_MODULES = 'renderjsModules';\n// lifecycle\n// App and Page\nconst ON_SHOW = 'onShow';\nconst ON_HIDE = 'onHide';\n//App\nconst ON_LAUNCH = 'onLaunch';\nconst ON_ERROR = 'onError';\nconst ON_THEME_CHANGE = 'onThemeChange';\nconst OFF_THEME_CHANGE = 'offThemeChange';\nconst ON_HOST_THEME_CHANGE = 'onHostThemeChange';\nconst OFF_HOST_THEME_CHANGE = 'offHostThemeChange';\nconst ON_KEYBOARD_HEIGHT_CHANGE = 'onKeyboardHeightChange';\nconst ON_PAGE_NOT_FOUND = 'onPageNotFound';\nconst ON_UNHANDLE_REJECTION = 'onUnhandledRejection';\nconst ON_EXIT = 'onExit';\n//Page\nconst ON_LOAD = 'onLoad';\nconst ON_READY = 'onReady';\nconst ON_UNLOAD = 'onUnload';\n// 百度特有\nconst ON_INIT = 'onInit';\n// 微信特有\nconst ON_SAVE_EXIT_STATE = 'onSaveExitState';\nconst ON_RESIZE = 'onResize';\nconst ON_BACK_PRESS = 'onBackPress';\nconst ON_PAGE_SCROLL = 'onPageScroll';\nconst ON_TAB_ITEM_TAP = 'onTabItemTap';\nconst ON_REACH_BOTTOM = 'onReachBottom';\nconst ON_PULL_DOWN_REFRESH = 'onPullDownRefresh';\nconst ON_SHARE_TIMELINE = 'onShareTimeline';\nconst ON_SHARE_CHAT = 'onShareChat'; // xhs-share\nconst ON_ADD_TO_FAVORITES = 'onAddToFavorites';\nconst ON_SHARE_APP_MESSAGE = 'onShareAppMessage';\n// navigationBar\nconst ON_NAVIGATION_BAR_BUTTON_TAP = 'onNavigationBarButtonTap';\nconst ON_NAVIGATION_BAR_CHANGE = 'onNavigationBarChange';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED = 'onNavigationBarSearchInputClicked';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED = 'onNavigationBarSearchInputChanged';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED = 'onNavigationBarSearchInputConfirmed';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED = 'onNavigationBarSearchInputFocusChanged';\n// framework\nconst ON_APP_ENTER_FOREGROUND = 'onAppEnterForeground';\nconst ON_APP_ENTER_BACKGROUND = 'onAppEnterBackground';\nconst ON_WEB_INVOKE_APP_SERVICE = 'onWebInvokeAppService';\nconst ON_WXS_INVOKE_CALL_METHOD = 'onWxsInvokeCallMethod';\n// mergeVirtualHostAttributes\nconst VIRTUAL_HOST_STYLE = 'virtualHostStyle';\nconst VIRTUAL_HOST_CLASS = 'virtualHostClass';\nconst VIRTUAL_HOST_HIDDEN = 'virtualHostHidden';\nconst VIRTUAL_HOST_ID = 'virtualHostId';\n\nfunction cache(fn) {\n const cache = Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nfunction cacheStringFunction(fn) {\n return cache(fn);\n}\nfunction getLen(str = '') {\n return ('' + str).replace(/[^\\x00-\\xff]/g, '**').length;\n}\nfunction hasLeadingSlash(str) {\n return str.indexOf('/') === 0;\n}\nfunction addLeadingSlash(str) {\n return hasLeadingSlash(str) ? str : '/' + str;\n}\nfunction removeLeadingSlash(str) {\n return hasLeadingSlash(str) ? str.slice(1) : str;\n}\nconst invokeArrayFns = (fns, arg) => {\n let ret;\n for (let i = 0; i < fns.length; i++) {\n ret = fns[i](arg);\n }\n return ret;\n};\nfunction updateElementStyle(element, styles) {\n for (const attrName in styles) {\n element.style[attrName] = styles[attrName];\n }\n}\nfunction once(fn, ctx = null) {\n let res;\n return ((...args) => {\n if (fn) {\n res = fn.apply(ctx, args);\n fn = null;\n }\n return res;\n });\n}\nconst sanitise = (val) => (val && JSON.parse(JSON.stringify(val))) || val;\nconst _completeValue = (value) => (value > 9 ? value : '0' + value);\nfunction formatDateTime({ date = new Date(), mode = 'date' }) {\n if (mode === 'time') {\n return (_completeValue(date.getHours()) + ':' + _completeValue(date.getMinutes()));\n }\n else {\n return (date.getFullYear() +\n '-' +\n _completeValue(date.getMonth() + 1) +\n '-' +\n _completeValue(date.getDate()));\n }\n}\nfunction callOptions(options, data) {\n options = options || {};\n if (isString(data)) {\n data = {\n errMsg: data,\n };\n }\n if (/:ok$/.test(data.errMsg)) {\n if (isFunction(options.success)) {\n options.success(data);\n }\n }\n else {\n if (isFunction(options.fail)) {\n options.fail(data);\n }\n }\n if (isFunction(options.complete)) {\n options.complete(data);\n }\n}\nfunction getValueByDataPath(obj, path) {\n if (!isString(path)) {\n return;\n }\n path = path.replace(/\\[(\\d+)\\]/g, '.$1');\n const parts = path.split('.');\n let key = parts[0];\n if (!obj) {\n obj = {};\n }\n if (parts.length === 1) {\n return obj[key];\n }\n return getValueByDataPath(obj[key], parts.slice(1).join('.'));\n}\nfunction sortObject(obj) {\n let sortObj = {};\n if (isPlainObject(obj)) {\n Object.keys(obj)\n .sort()\n .forEach((key) => {\n const _key = key;\n sortObj[_key] = obj[_key];\n });\n }\n return !Object.keys(sortObj) ? obj : sortObj;\n}\nfunction getGlobalOnce() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n // worker\n if (typeof self !== 'undefined') {\n return self;\n }\n // browser\n if (typeof window !== 'undefined') {\n return window;\n }\n // nodejs\n // if (typeof global !== 'undefined') {\n // return global\n // }\n function g() {\n return this;\n }\n if (typeof g() !== 'undefined') {\n return g();\n }\n return (function () {\n return new Function('return this')();\n })();\n}\nlet g = undefined;\nfunction getGlobal() {\n if (g) {\n return g;\n }\n g = getGlobalOnce();\n return g;\n}\n\nfunction isComponentInternalInstance(vm) {\n return !!vm.appContext;\n}\nfunction resolveComponentInstance(instance) {\n return (instance &&\n (isComponentInternalInstance(instance) ? instance.proxy : instance));\n}\nfunction resolveOwnerVm(vm) {\n if (!vm) {\n return;\n }\n let componentName = vm.type.name;\n while (componentName && isBuiltInComponent(hyphenate(componentName))) {\n // ownerInstance 内置组件需要使用父 vm\n vm = vm.parent;\n componentName = vm.type.name;\n }\n return vm.proxy;\n}\nfunction isElement(el) {\n // Element\n return el.nodeType === 1;\n}\nfunction resolveOwnerEl(instance, multi = false) {\n const { vnode } = instance;\n if (isElement(vnode.el)) {\n return multi ? (vnode.el ? [vnode.el] : []) : vnode.el;\n }\n const { subTree } = instance;\n // ShapeFlags.ARRAY_CHILDREN = 1<<4\n if (subTree.shapeFlag & 16) {\n const elemVNodes = subTree.children.filter((vnode) => vnode.el && isElement(vnode.el));\n if (elemVNodes.length > 0) {\n if (multi) {\n return elemVNodes.map((node) => node.el);\n }\n return elemVNodes[0].el;\n }\n }\n return multi ? (vnode.el ? [vnode.el] : []) : vnode.el;\n}\nfunction dynamicSlotName(name) {\n return name === 'default' ? SLOT_DEFAULT_NAME : name;\n}\nconst customizeRE = /:/g;\nfunction customizeEvent(str) {\n return camelize(str.replace(customizeRE, '-'));\n}\nfunction normalizeStyle(value) {\n const g = getGlobal();\n if (g && g.UTSJSONObject && value instanceof g.UTSJSONObject) {\n const styleObject = {};\n g.UTSJSONObject.keys(value).forEach((key) => {\n styleObject[key] = value[key];\n });\n return normalizeStyle$1(styleObject);\n }\n else if (value instanceof Map) {\n const styleObject = {};\n value.forEach((value, key) => {\n styleObject[key] = value;\n });\n return normalizeStyle$1(styleObject);\n }\n else if (isString(value)) {\n return parseStringStyle(value);\n }\n else if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item)\n ? parseStringStyle(item)\n : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n }\n else {\n return normalizeStyle$1(value);\n }\n}\nfunction normalizeClass(value) {\n let res = '';\n const g = getGlobal();\n if (g && g.UTSJSONObject && value instanceof g.UTSJSONObject) {\n g.UTSJSONObject.keys(value).forEach((key) => {\n if (value[key]) {\n res += key + ' ';\n }\n });\n }\n else if (value instanceof Map) {\n value.forEach((value, key) => {\n if (value) {\n res += key + ' ';\n }\n });\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + ' ';\n }\n }\n }\n else {\n res = normalizeClass$1(value);\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nlet lastLogTime = 0;\nfunction formatLog(module, ...args) {\n const now = Date.now();\n const diff = lastLogTime ? now - lastLogTime : 0;\n lastLogTime = now;\n return `[${now}][${diff}ms][${module}]:${args\n .map((arg) => JSON.stringify(arg))\n .join(' ')}`;\n}\n\nfunction formatKey(key) {\n return camelize(key.substring(5));\n}\n// question/139181,增加副作用,避免 initCustomDataset 在 build 下被 tree-shaking\nconst initCustomDatasetOnce = /*#__PURE__*/ once((isBuiltInElement) => {\n isBuiltInElement =\n isBuiltInElement || ((el) => el.tagName.startsWith('UNI-'));\n const prototype = HTMLElement.prototype;\n const setAttribute = prototype.setAttribute;\n prototype.setAttribute = function (key, value) {\n if (key.startsWith('data-') && isBuiltInElement(this)) {\n const dataset = this.__uniDataset ||\n (this.__uniDataset = {});\n dataset[formatKey(key)] = value;\n }\n setAttribute.call(this, key, value);\n };\n const removeAttribute = prototype.removeAttribute;\n prototype.removeAttribute = function (key) {\n if (this.__uniDataset &&\n key.startsWith('data-') &&\n isBuiltInElement(this)) {\n delete this.__uniDataset[formatKey(key)];\n }\n removeAttribute.call(this, key);\n };\n});\nfunction getCustomDataset(el) {\n return extend({}, el.dataset, el.__uniDataset);\n}\n\nconst unitRE = new RegExp(`\"[^\"]+\"|'[^']+'|url\\\\([^)]+\\\\)|(\\\\d*\\\\.?\\\\d+)[r|u]px`, 'g');\nfunction toFixed(number, precision) {\n const multiplier = Math.pow(10, precision + 1);\n const wholeNumber = Math.floor(number * multiplier);\n return (Math.round(wholeNumber / 10) * 10) / multiplier;\n}\nconst defaultRpx2Unit = {\n unit: 'rem',\n unitRatio: 10 / 320,\n unitPrecision: 5,\n};\nconst defaultMiniProgramRpx2Unit = {\n unit: 'rpx',\n unitRatio: 1,\n unitPrecision: 1,\n};\nconst defaultNVueRpx2Unit = defaultMiniProgramRpx2Unit;\nfunction createRpx2Unit(unit, unitRatio, unitPrecision) {\n // ignore: rpxCalcIncludeWidth\n return (val) => val.replace(unitRE, (m, $1) => {\n if (!$1) {\n return m;\n }\n if (unitRatio === 1) {\n return `${$1}${unit}`;\n }\n const value = toFixed(parseFloat($1) * unitRatio, unitPrecision);\n return value === 0 ? '0' : `${value}${unit}`;\n });\n}\n\nfunction passive(passive) {\n return { passive };\n}\nfunction normalizeDataset(el) {\n // TODO\n return JSON.parse(JSON.stringify(el.dataset || {}));\n}\nfunction normalizeTarget(el) {\n const { id, offsetTop, offsetLeft } = el;\n return {\n id,\n dataset: getCustomDataset(el),\n offsetTop,\n offsetLeft,\n };\n}\nfunction addFont(family, source, desc) {\n const fonts = document.fonts;\n if (fonts) {\n const fontFace = new FontFace(family, source, desc);\n return fontFace.load().then(() => {\n fonts.add && fonts.add(fontFace);\n });\n }\n return new Promise((resolve) => {\n const style = document.createElement('style');\n const values = [];\n if (desc) {\n const { style, weight, stretch, unicodeRange, variant, featureSettings } = desc;\n style && values.push(`font-style:${style}`);\n weight && values.push(`font-weight:${weight}`);\n stretch && values.push(`font-stretch:${stretch}`);\n unicodeRange && values.push(`unicode-range:${unicodeRange}`);\n variant && values.push(`font-variant:${variant}`);\n featureSettings && values.push(`font-feature-settings:${featureSettings}`);\n }\n style.innerText = `@font-face{font-family:\"${family}\";src:${source};${values.join(';')}}`;\n document.head.appendChild(style);\n resolve();\n });\n}\nfunction scrollTo(scrollTop, duration, isH5) {\n if (isString(scrollTop)) {\n const el = document.querySelector(scrollTop);\n if (el) {\n const { top } = el.getBoundingClientRect();\n scrollTop = top + window.pageYOffset;\n // 如果存在,减去 高度\n const pageHeader = document.querySelector('uni-page-head');\n if (pageHeader) {\n scrollTop -= pageHeader.offsetHeight;\n }\n }\n }\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n const documentElement = document.documentElement;\n const { clientHeight, scrollHeight } = documentElement;\n scrollTop = Math.min(scrollTop, scrollHeight - clientHeight);\n if (duration === 0) {\n // 部分浏览器(比如微信)中 scrollTop 的值需要通过 document.body 来控制\n documentElement.scrollTop = document.body.scrollTop = scrollTop;\n return;\n }\n if (window.scrollY === scrollTop) {\n return;\n }\n const scrollTo = (duration) => {\n if (duration <= 0) {\n window.scrollTo(0, scrollTop);\n return;\n }\n const distaince = scrollTop - window.scrollY;\n requestAnimationFrame(function () {\n window.scrollTo(0, window.scrollY + (distaince / duration) * 10);\n scrollTo(duration - 10);\n });\n };\n scrollTo(duration);\n}\n\nconst encode = encodeURIComponent;\nfunction stringifyQuery(obj, encodeStr = encode) {\n const res = obj\n ? Object.keys(obj)\n .map((key) => {\n let val = obj[key];\n if (typeof val === undefined || val === null) {\n val = '';\n }\n else if (isPlainObject(val)) {\n val = JSON.stringify(val);\n }\n return encodeStr(key) + '=' + encodeStr(val);\n })\n .filter((x) => x.length > 0)\n .join('&')\n : null;\n return res ? `?${res}` : '';\n}\n/**\n * Decode text using `decodeURIComponent`. Returns the original text if it\n * fails.\n *\n * @param text - string to decode\n * @returns decoded string\n */\nfunction decode(text) {\n try {\n return decodeURIComponent('' + text);\n }\n catch (err) { }\n return '' + text;\n}\nfunction decodedQuery(query = {}) {\n const decodedQuery = {};\n Object.keys(query).forEach((name) => {\n try {\n decodedQuery[name] = decode(query[name]);\n }\n catch (e) {\n decodedQuery[name] = query[name];\n }\n });\n return decodedQuery;\n}\nconst PLUS_RE = /\\+/g; // %2B\n/**\n * https://github.com/vuejs/vue-router-next/blob/master/src/query.ts\n * @internal\n *\n * @param search - search string to parse\n * @returns a query object\n */\nfunction parseQuery(search) {\n const query = {};\n // avoid creating an object with an empty key and empty value\n // because of split('&')\n if (search === '' || search === '?')\n return query;\n const hasLeadingIM = search[0] === '?';\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\n for (let i = 0; i < searchParams.length; ++i) {\n // pre decode the + into space\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\n // allow the = character\n let eqPos = searchParam.indexOf('=');\n let key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n let value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n if (key in query) {\n // an extra variable for ts types\n let currentValue = query[key];\n if (!isArray(currentValue)) {\n currentValue = query[key] = [currentValue];\n }\n currentValue.push(value);\n }\n else {\n query[key] = value;\n }\n }\n return query;\n}\n\nfunction parseUrl(url) {\n const [path, querystring] = url.split('?', 2);\n return {\n path,\n query: parseQuery(querystring || ''),\n };\n}\n\nfunction parseNVueDataset(attr) {\n const dataset = {};\n if (attr) {\n Object.keys(attr).forEach((key) => {\n if (key.indexOf('data-') === 0) {\n dataset[key.replace('data-', '')] = attr[key];\n }\n });\n }\n return dataset;\n}\n\nfunction plusReady(callback) {\n if (!isFunction(callback)) {\n return;\n }\n if (window.plus) {\n return callback();\n }\n document.addEventListener('plusready', callback);\n}\n\nclass DOMException extends Error {\n constructor(message) {\n super(message);\n this.name = 'DOMException';\n }\n}\n\nfunction normalizeEventType(type, options) {\n if (options) {\n if (options.capture) {\n type += 'Capture';\n }\n if (options.once) {\n type += 'Once';\n }\n if (options.passive) {\n type += 'Passive';\n }\n }\n return `on${capitalize(camelize(type))}`;\n}\nclass UniEvent {\n constructor(type, opts) {\n this.defaultPrevented = false;\n this.timeStamp = Date.now();\n this._stop = false;\n this._end = false;\n this.type = type;\n this.bubbles = !!opts.bubbles;\n this.cancelable = !!opts.cancelable;\n }\n preventDefault() {\n this.defaultPrevented = true;\n }\n stopImmediatePropagation() {\n this._end = this._stop = true;\n }\n stopPropagation() {\n this._stop = true;\n }\n}\nfunction createUniEvent(evt) {\n if (evt instanceof UniEvent) {\n return evt;\n }\n const [type] = parseEventName(evt.type);\n const uniEvent = new UniEvent(type, {\n bubbles: false,\n cancelable: false,\n });\n extend(uniEvent, evt);\n return uniEvent;\n}\nclass UniEventTarget {\n constructor() {\n this.listeners = Object.create(null);\n }\n dispatchEvent(evt) {\n const listeners = this.listeners[evt.type];\n if (!listeners) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(formatLog('dispatchEvent', this.nodeId), evt.type, 'not found');\n }\n return false;\n }\n // 格式化事件类型\n const event = createUniEvent(evt);\n const len = listeners.length;\n for (let i = 0; i < len; i++) {\n listeners[i].call(this, event);\n if (event._end) {\n break;\n }\n }\n return event.cancelable && event.defaultPrevented;\n }\n addEventListener(type, listener, options) {\n type = normalizeEventType(type, options);\n (this.listeners[type] || (this.listeners[type] = [])).push(listener);\n }\n removeEventListener(type, callback, options) {\n type = normalizeEventType(type, options);\n const listeners = this.listeners[type];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseEventName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while ((m = name.match(optionsModifierRE))) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n return [hyphenate(name.slice(2)), options];\n}\n\nconst EventModifierFlags = /*#__PURE__*/ (() => {\n return {\n stop: 1,\n prevent: 1 << 1,\n self: 1 << 2,\n };\n})();\nfunction encodeModifier(modifiers) {\n let flag = 0;\n if (modifiers.includes('stop')) {\n flag |= EventModifierFlags.stop;\n }\n if (modifiers.includes('prevent')) {\n flag |= EventModifierFlags.prevent;\n }\n if (modifiers.includes('self')) {\n flag |= EventModifierFlags.self;\n }\n return flag;\n}\n\nconst NODE_TYPE_PAGE = 0;\nconst NODE_TYPE_ELEMENT = 1;\nconst NODE_TYPE_TEXT = 3;\nconst NODE_TYPE_COMMENT = 8;\nfunction sibling(node, type) {\n const { parentNode } = node;\n if (!parentNode) {\n return null;\n }\n const { childNodes } = parentNode;\n return childNodes[childNodes.indexOf(node) + (type === 'n' ? 1 : -1)] || null;\n}\nfunction removeNode(node) {\n const { parentNode } = node;\n if (parentNode) {\n const { childNodes } = parentNode;\n const index = childNodes.indexOf(node);\n if (index > -1) {\n node.parentNode = null;\n childNodes.splice(index, 1);\n }\n }\n}\nfunction checkNodeId(node) {\n if (!node.nodeId && node.pageNode) {\n node.nodeId = node.pageNode.genId();\n }\n}\n// 为优化性能,各平台不使用proxy来实现node的操作拦截,而是直接通过pageNode定制\nclass UniNode extends UniEventTarget {\n constructor(nodeType, nodeName, container) {\n super();\n this.pageNode = null;\n this.parentNode = null;\n this._text = null;\n if (container) {\n const { pageNode } = container;\n if (pageNode) {\n this.pageNode = pageNode;\n this.nodeId = pageNode.genId();\n !pageNode.isUnmounted && pageNode.onCreate(this, nodeName);\n }\n }\n this.nodeType = nodeType;\n this.nodeName = nodeName;\n this.childNodes = [];\n }\n get firstChild() {\n return this.childNodes[0] || null;\n }\n get lastChild() {\n const { childNodes } = this;\n const length = childNodes.length;\n return length ? childNodes[length - 1] : null;\n }\n get nextSibling() {\n return sibling(this, 'n');\n }\n get nodeValue() {\n return null;\n }\n set nodeValue(_val) { }\n get textContent() {\n return this._text || '';\n }\n set textContent(text) {\n this._text = text;\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onTextContent(this, text);\n }\n }\n get parentElement() {\n const { parentNode } = this;\n if (parentNode && parentNode.nodeType === NODE_TYPE_ELEMENT) {\n return parentNode;\n }\n return null;\n }\n get previousSibling() {\n return sibling(this, 'p');\n }\n appendChild(newChild) {\n return this.insertBefore(newChild, null);\n }\n cloneNode(deep) {\n const cloned = extend(Object.create(Object.getPrototypeOf(this)), this);\n const { attributes } = cloned;\n if (attributes) {\n cloned.attributes = extend({}, attributes);\n }\n if (deep) {\n cloned.childNodes = cloned.childNodes.map((childNode) => childNode.cloneNode(true));\n }\n return cloned;\n }\n insertBefore(newChild, refChild) {\n // 先从现在的父节点移除(注意:不能触发onRemoveChild,否则会生成先remove该 id,再 insert)\n removeNode(newChild);\n newChild.pageNode = this.pageNode;\n newChild.parentNode = this;\n checkNodeId(newChild);\n const { childNodes } = this;\n if (refChild) {\n const index = childNodes.indexOf(refChild);\n if (index === -1) {\n throw new DOMException(`Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.`);\n }\n childNodes.splice(index, 0, newChild);\n }\n else {\n childNodes.push(newChild);\n }\n return this.pageNode && !this.pageNode.isUnmounted\n ? this.pageNode.onInsertBefore(this, newChild, refChild)\n : newChild;\n }\n removeChild(oldChild) {\n const { childNodes } = this;\n const index = childNodes.indexOf(oldChild);\n if (index === -1) {\n throw new DOMException(`Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.`);\n }\n oldChild.parentNode = null;\n childNodes.splice(index, 1);\n return this.pageNode && !this.pageNode.isUnmounted\n ? this.pageNode.onRemoveChild(oldChild)\n : oldChild;\n }\n}\nconst ATTR_CLASS = 'class';\nconst ATTR_STYLE = 'style';\nconst ATTR_INNER_HTML = 'innerHTML';\nconst ATTR_TEXT_CONTENT = 'textContent';\nconst ATTR_V_SHOW = '.vShow';\nconst ATTR_V_OWNER_ID = '.vOwnerId';\nconst ATTR_V_RENDERJS = '.vRenderjs';\nconst ATTR_CHANGE_PREFIX = 'change:';\nclass UniBaseNode extends UniNode {\n constructor(nodeType, nodeName, container) {\n super(nodeType, nodeName, container);\n this.attributes = Object.create(null);\n this.style = null;\n this.vShow = null;\n this._html = null;\n }\n get className() {\n return (this.attributes[ATTR_CLASS] || '');\n }\n set className(val) {\n this.setAttribute(ATTR_CLASS, val);\n }\n get innerHTML() {\n return '';\n }\n set innerHTML(html) {\n this._html = html;\n }\n addEventListener(type, listener, options) {\n super.addEventListener(type, listener, options);\n if (this.pageNode && !this.pageNode.isUnmounted) {\n if (listener.wxsEvent) {\n this.pageNode.onAddWxsEvent(this, normalizeEventType(type, options), listener.wxsEvent, encodeModifier(listener.modifiers || []));\n }\n else {\n this.pageNode.onAddEvent(this, normalizeEventType(type, options), encodeModifier(listener.modifiers || []));\n }\n }\n }\n removeEventListener(type, callback, options) {\n super.removeEventListener(type, callback, options);\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onRemoveEvent(this, normalizeEventType(type, options));\n }\n }\n getAttribute(qualifiedName) {\n if (qualifiedName === ATTR_STYLE) {\n return this.style;\n }\n return this.attributes[qualifiedName];\n }\n removeAttribute(qualifiedName) {\n if (qualifiedName == ATTR_STYLE) {\n this.style = null;\n }\n else {\n delete this.attributes[qualifiedName];\n }\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onRemoveAttribute(this, qualifiedName);\n }\n }\n setAttribute(qualifiedName, value) {\n if (qualifiedName === ATTR_STYLE) {\n this.style = value;\n }\n else {\n this.attributes[qualifiedName] = value;\n }\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onSetAttribute(this, qualifiedName, value);\n }\n }\n toJSON({ attr, normalize, } = {}) {\n const { attributes, style, listeners, _text } = this;\n const res = {};\n if (Object.keys(attributes).length) {\n res.a = normalize ? normalize(attributes) : attributes;\n }\n const events = Object.keys(listeners);\n if (events.length) {\n let w = undefined;\n const e = {};\n events.forEach((name) => {\n const handlers = listeners[name];\n if (handlers.length) {\n // 可能存在多个 handler 且不同 modifiers 吗?\n const { wxsEvent, modifiers } = handlers[0];\n const modifier = encodeModifier(modifiers || []);\n if (!wxsEvent) {\n e[name] = modifier;\n }\n else {\n if (!w) {\n w = {};\n }\n w[name] = [normalize ? normalize(wxsEvent) : wxsEvent, modifier];\n }\n }\n });\n res.e = normalize ? normalize(e, false) : e;\n if (w) {\n res.w = normalize ? normalize(w, false) : w;\n }\n }\n if (style !== null) {\n res.s = normalize ? normalize(style) : style;\n }\n if (!attr) {\n res.i = this.nodeId;\n res.n = this.nodeName;\n }\n if (_text !== null) {\n res.t = normalize ? normalize(_text) : _text;\n }\n return res;\n }\n}\n\nclass UniCommentNode extends UniNode {\n constructor(text, container) {\n super(NODE_TYPE_COMMENT, '#comment', container);\n this._text = (process.env.NODE_ENV !== 'production') ? text : '';\n }\n toJSON(opts = {}) {\n // 暂时不传递 text 到 view 层,没啥意义,节省点数据量\n return opts.attr\n ? {}\n : {\n i: this.nodeId,\n };\n // return opts.attr\n // ? { t: this._text as string }\n // : {\n // i: this.nodeId!,\n // t: this._text as string,\n // }\n }\n}\n\nclass UniElement extends UniBaseNode {\n constructor(nodeName, container) {\n super(NODE_TYPE_ELEMENT, nodeName.toUpperCase(), container);\n this.tagName = this.nodeName;\n }\n}\nclass UniInputElement extends UniElement {\n get value() {\n return this.getAttribute('value');\n }\n set value(val) {\n this.setAttribute('value', val);\n }\n}\nclass UniTextAreaElement extends UniInputElement {\n}\n\nclass UniTextNode extends UniBaseNode {\n constructor(text, container) {\n super(NODE_TYPE_TEXT, '#text', container);\n this._text = text;\n }\n get nodeValue() {\n return this._text || '';\n }\n set nodeValue(text) {\n this._text = text;\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onNodeValue(this, text);\n }\n }\n}\n\nconst forcePatchProps = {\n AD: ['data'],\n 'AD-DRAW': ['data'],\n 'LIVE-PLAYER': ['picture-in-picture-mode'],\n MAP: [\n 'markers',\n 'polyline',\n 'circles',\n 'controls',\n 'include-points',\n 'polygons',\n ],\n PICKER: ['range', 'value'],\n 'PICKER-VIEW': ['value'],\n 'RICH-TEXT': ['nodes'],\n VIDEO: ['danmu-list', 'header'],\n 'WEB-VIEW': ['webview-styles'],\n};\nconst forcePatchPropKeys = ['animation'];\n\nconst forcePatchProp = (el, key) => {\n if (forcePatchPropKeys.indexOf(key) > -1) {\n return true;\n }\n const keys = forcePatchProps[el.nodeName];\n if (keys && keys.indexOf(key) > -1) {\n return true;\n }\n return false;\n};\n\nconst ACTION_TYPE_PAGE_CREATE = 1;\nconst ACTION_TYPE_PAGE_CREATED = 2;\nconst ACTION_TYPE_CREATE = 3;\nconst ACTION_TYPE_INSERT = 4;\nconst ACTION_TYPE_REMOVE = 5;\nconst ACTION_TYPE_SET_ATTRIBUTE = 6;\nconst ACTION_TYPE_REMOVE_ATTRIBUTE = 7;\nconst ACTION_TYPE_ADD_EVENT = 8;\nconst ACTION_TYPE_REMOVE_EVENT = 9;\nconst ACTION_TYPE_SET_TEXT = 10;\nconst ACTION_TYPE_ADD_WXS_EVENT = 12;\nconst ACTION_TYPE_PAGE_SCROLL = 15;\nconst ACTION_TYPE_EVENT = 20;\n\n/**\n * 需要手动传入 timer,主要是解决 App 平台的定制 timer\n */\nfunction debounce(fn, delay, { clearTimeout, setTimeout }) {\n let timeout;\n const newFn = function () {\n clearTimeout(timeout);\n const timerFn = () => fn.apply(this, arguments);\n timeout = setTimeout(timerFn, delay);\n };\n newFn.cancel = function () {\n clearTimeout(timeout);\n };\n return newFn;\n}\n\nclass EventChannel {\n constructor(id, events) {\n this.id = id;\n this.listener = {};\n this.emitCache = [];\n if (events) {\n Object.keys(events).forEach((name) => {\n this.on(name, events[name]);\n });\n }\n }\n emit(eventName, ...args) {\n const fns = this.listener[eventName];\n if (!fns) {\n return this.emitCache.push({\n eventName,\n args,\n });\n }\n fns.forEach((opt) => {\n opt.fn.apply(opt.fn, args);\n });\n this.listener[eventName] = fns.filter((opt) => opt.type !== 'once');\n }\n on(eventName, fn) {\n this._addListener(eventName, 'on', fn);\n this._clearCache(eventName);\n }\n once(eventName, fn) {\n this._addListener(eventName, 'once', fn);\n this._clearCache(eventName);\n }\n off(eventName, fn) {\n const fns = this.listener[eventName];\n if (!fns) {\n return;\n }\n if (fn) {\n for (let i = 0; i < fns.length;) {\n if (fns[i].fn === fn) {\n fns.splice(i, 1);\n i--;\n }\n i++;\n }\n }\n else {\n delete this.listener[eventName];\n }\n }\n _clearCache(eventName) {\n for (let index = 0; index < this.emitCache.length; index++) {\n const cache = this.emitCache[index];\n const _name = eventName\n ? cache.eventName === eventName\n ? eventName\n : null\n : cache.eventName;\n if (!_name)\n continue;\n const location = this.emit.apply(this, [_name, ...cache.args]);\n if (typeof location === 'number') {\n this.emitCache.pop();\n continue;\n }\n this.emitCache.splice(index, 1);\n index--;\n }\n }\n _addListener(eventName, type, fn) {\n (this.listener[eventName] || (this.listener[eventName] = [])).push({\n fn,\n type,\n });\n }\n}\n\nconst PAGE_HOOKS = [\n ON_INIT,\n ON_LOAD,\n ON_SHOW,\n ON_HIDE,\n ON_UNLOAD,\n ON_BACK_PRESS,\n ON_PAGE_SCROLL,\n ON_TAB_ITEM_TAP,\n ON_REACH_BOTTOM,\n ON_PULL_DOWN_REFRESH,\n ON_SHARE_TIMELINE,\n ON_SHARE_APP_MESSAGE,\n ON_SHARE_CHAT,\n ON_ADD_TO_FAVORITES,\n ON_SAVE_EXIT_STATE,\n ON_NAVIGATION_BAR_BUTTON_TAP,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\n];\nfunction isRootImmediateHook(name) {\n const PAGE_SYNC_HOOKS = [ON_LOAD, ON_SHOW];\n return PAGE_SYNC_HOOKS.indexOf(name) > -1;\n}\n// isRootImmediateHookX deprecated\nfunction isRootHook(name) {\n return PAGE_HOOKS.indexOf(name) > -1;\n}\nconst UniLifecycleHooks = [\n ON_SHOW,\n ON_HIDE,\n ON_LAUNCH,\n ON_ERROR,\n ON_THEME_CHANGE,\n ON_PAGE_NOT_FOUND,\n ON_UNHANDLE_REJECTION,\n ON_EXIT,\n ON_INIT,\n ON_LOAD,\n ON_READY,\n ON_UNLOAD,\n ON_RESIZE,\n ON_BACK_PRESS,\n ON_PAGE_SCROLL,\n ON_TAB_ITEM_TAP,\n ON_REACH_BOTTOM,\n ON_PULL_DOWN_REFRESH,\n ON_SHARE_TIMELINE,\n ON_ADD_TO_FAVORITES,\n ON_SHARE_APP_MESSAGE,\n ON_SHARE_CHAT,\n ON_SAVE_EXIT_STATE,\n ON_NAVIGATION_BAR_BUTTON_TAP,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\n];\nconst MINI_PROGRAM_PAGE_RUNTIME_HOOKS = /*#__PURE__*/ (() => {\n return {\n onPageScroll: 1,\n onShareAppMessage: 1 << 1,\n onShareTimeline: 1 << 2,\n };\n})();\nfunction isUniLifecycleHook(name, value, checkType = true) {\n // 检查类型\n if (checkType && !isFunction(value)) {\n return false;\n }\n if (UniLifecycleHooks.indexOf(name) > -1) {\n // 已预定义\n return true;\n }\n else if (name.indexOf('on') === 0) {\n // 以 on 开头\n return true;\n }\n return false;\n}\n\nlet vueApp;\nconst createVueAppHooks = [];\n/**\n * 提供 createApp 的回调事件,方便三方插件接收 App 对象,处理挂靠全局 mixin 之类的逻辑\n */\nfunction onCreateVueApp(hook) {\n // TODO 每个 nvue 页面都会触发\n if (vueApp) {\n return hook(vueApp);\n }\n createVueAppHooks.push(hook);\n}\nfunction invokeCreateVueAppHook(app) {\n vueApp = app;\n createVueAppHooks.forEach((hook) => hook(app));\n}\nconst invokeCreateErrorHandler = once((app, createErrorHandler) => {\n // 不再判断开发者是否监听了onError,直接返回 createErrorHandler,内部 errorHandler 会调用开发者自定义的 errorHandler,以及判断开发者是否监听了onError\n return createErrorHandler(app);\n});\n\nconst E = function () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n};\nE.prototype = {\n _id: 1,\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx,\n _id: this._id,\n });\n return this._id++;\n },\n once: function (name, callback, ctx) {\n var self = this;\n function listener() {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n return this;\n },\n off: function (name, event) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n if (evts && event) {\n for (var i = evts.length - 1; i >= 0; i--) {\n if (evts[i].fn === event ||\n evts[i].fn._ === event ||\n evts[i]._id === event) {\n evts.splice(i, 1);\n break;\n }\n }\n liveEvents = evts;\n }\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n liveEvents.length ? (e[name] = liveEvents) : delete e[name];\n return this;\n },\n};\nvar E$1 = E;\n\nconst borderStyles = {\n black: 'rgba(0,0,0,0.4)',\n white: 'rgba(255,255,255,0.4)',\n};\nfunction normalizeTabBarStyles(borderStyle) {\n if (borderStyle && borderStyle in borderStyles) {\n return borderStyles[borderStyle];\n }\n return borderStyle;\n}\nfunction normalizeTitleColor(titleColor) {\n return titleColor === 'black' ? '#000000' : '#ffffff';\n}\nfunction resolveStringStyleItem(modeStyle, styleItem, key) {\n if (isString(styleItem) && styleItem.startsWith('@')) {\n const _key = styleItem.replace('@', '');\n let _styleItem = modeStyle[_key] || styleItem;\n switch (key) {\n case 'titleColor':\n _styleItem = normalizeTitleColor(_styleItem);\n break;\n case 'borderStyle':\n _styleItem = normalizeTabBarStyles(_styleItem);\n break;\n }\n return _styleItem;\n }\n return styleItem;\n}\nfunction normalizeStyles(pageStyle, themeConfig = {}, mode = 'light') {\n const modeStyle = themeConfig[mode];\n const styles = {};\n if (typeof modeStyle === 'undefined' || !pageStyle)\n return pageStyle;\n Object.keys(pageStyle).forEach((key) => {\n const styleItem = pageStyle[key]; // Object Array String\n const parseStyleItem = () => {\n if (isPlainObject(styleItem))\n return normalizeStyles(styleItem, themeConfig, mode);\n if (isArray(styleItem))\n return styleItem.map((item) => {\n if (isPlainObject(item))\n return normalizeStyles(item, themeConfig, mode);\n return resolveStringStyleItem(modeStyle, item);\n });\n return resolveStringStyleItem(modeStyle, styleItem, key);\n };\n styles[key] = parseStyleItem();\n });\n return styles;\n}\n\nfunction getEnvLocale() {\n const { env } = process;\n const lang = env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE;\n return (lang && lang.replace(/[.:].*/, '')) || 'en';\n}\n\nconst isStringIntegerKey = (key) => typeof key === 'string' &&\n key !== 'NaN' &&\n key[0] !== '-' &&\n '' + parseInt(key, 10) === key;\nconst isNumberIntegerKey = (key) => typeof key === 'number' &&\n !isNaN(key) &&\n key >= 0 &&\n parseInt(key + '', 10) === key;\n/**\n * 用于替代@vue/shared的isIntegerKey,原始方法在鸿蒙arkts中会引发bug。根本原因是arkts的数组的key是数字而不是字符串。\n * 目前这个方法使用的地方都和数组有关,切记不能挪作他用。\n * @param key\n * @returns\n */\nconst isIntegerKey = (key) => isNumberIntegerKey(key) || isStringIntegerKey(key);\n\nexport { ACTION_TYPE_ADD_EVENT, ACTION_TYPE_ADD_WXS_EVENT, ACTION_TYPE_CREATE, ACTION_TYPE_EVENT, ACTION_TYPE_INSERT, ACTION_TYPE_PAGE_CREATE, ACTION_TYPE_PAGE_CREATED, ACTION_TYPE_PAGE_SCROLL, ACTION_TYPE_REMOVE, ACTION_TYPE_REMOVE_ATTRIBUTE, ACTION_TYPE_REMOVE_EVENT, ACTION_TYPE_SET_ATTRIBUTE, ACTION_TYPE_SET_TEXT, ATTR_CHANGE_PREFIX, ATTR_CLASS, ATTR_INNER_HTML, ATTR_STYLE, ATTR_TEXT_CONTENT, ATTR_V_OWNER_ID, ATTR_V_RENDERJS, ATTR_V_SHOW, BACKGROUND_COLOR, BUILT_IN_TAGS, BUILT_IN_TAG_NAMES, COMPONENT_NAME_PREFIX, COMPONENT_PREFIX, COMPONENT_SELECTOR_PREFIX, DATA_RE, E$1 as Emitter, EventChannel, EventModifierFlags, I18N_JSON_DELIMITERS, JSON_PROTOCOL, LINEFEED, MINI_PROGRAM_PAGE_RUNTIME_HOOKS, NAVBAR_HEIGHT, NODE_TYPE_COMMENT, NODE_TYPE_ELEMENT, NODE_TYPE_PAGE, NODE_TYPE_TEXT, NVUE_BUILT_IN_TAGS, NVUE_U_BUILT_IN_TAGS, OFF_HOST_THEME_CHANGE, OFF_THEME_CHANGE, ON_ADD_TO_FAVORITES, ON_APP_ENTER_BACKGROUND, ON_APP_ENTER_FOREGROUND, ON_BACK_PRESS, ON_ERROR, ON_EXIT, ON_HIDE, ON_HOST_THEME_CHANGE, ON_INIT, ON_KEYBOARD_HEIGHT_CHANGE, ON_LAUNCH, ON_LOAD, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_CHANGE, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, ON_PAGE_NOT_FOUND, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_REACH_BOTTOM_DISTANCE, ON_READY, ON_RESIZE, ON_SAVE_EXIT_STATE, ON_SHARE_APP_MESSAGE, ON_SHARE_CHAT, ON_SHARE_TIMELINE, ON_SHOW, ON_TAB_ITEM_TAP, ON_THEME_CHANGE, ON_UNHANDLE_REJECTION, ON_UNLOAD, ON_WEB_INVOKE_APP_SERVICE, ON_WXS_INVOKE_CALL_METHOD, PLUS_RE, PRIMARY_COLOR, RENDERJS_MODULES, RESPONSIVE_MIN_WIDTH, SCHEME_RE, SELECTED_COLOR, SLOT_DEFAULT_NAME, TABBAR_HEIGHT, TAGS, UNI_SSR, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR_STORE, UNI_SSR_TITLE, UNI_STORAGE_LOCALE, UNI_UI_CONFLICT_TAGS, UVUE_BUILT_IN_TAGS, UVUE_HARMONY_BUILT_IN_TAGS, UVUE_IOS_BUILT_IN_TAGS, UVUE_WEB_BUILT_IN_TAGS, UniBaseNode, UniCommentNode, UniElement, UniEvent, UniInputElement, UniLifecycleHooks, UniNode, UniTextAreaElement, UniTextNode, VIRTUAL_HOST_CLASS, VIRTUAL_HOST_HIDDEN, VIRTUAL_HOST_ID, VIRTUAL_HOST_STYLE, WEB_INVOKE_APPSERVICE, WXS_MODULES, WXS_PROTOCOL, addFont, addLeadingSlash, borderStyles, cache, cacheStringFunction, callOptions, createIsCustomElement, createRpx2Unit, createUniEvent, customizeEvent, debounce, decode, decodedQuery, defaultMiniProgramRpx2Unit, defaultNVueRpx2Unit, defaultRpx2Unit, dynamicSlotName, forcePatchProp, formatDateTime, formatLog, getCustomDataset, getEnvLocale, getGlobal, getLen, getValueByDataPath, initCustomDatasetOnce, invokeArrayFns, invokeCreateErrorHandler, invokeCreateVueAppHook, isAppHarmonyUVueNativeTag, isAppIOSUVueNativeTag, isAppNVueNativeTag, isAppNativeTag, isAppUVueBuiltInEasyComponent, isAppUVueNativeTag, isAppVoidTag, isBuiltInComponent, isComponentInternalInstance, isComponentTag, isH5CustomElement, isH5NativeTag, isIntegerKey, isMiniProgramNativeTag, isMiniProgramUVueNativeTag, isRootHook, isRootImmediateHook, isUniLifecycleHook, isUniXElement, normalizeClass, normalizeDataset, normalizeEventType, normalizeProps, normalizeStyle, normalizeStyles, normalizeTabBarStyles, normalizeTarget, normalizeTitleColor, onCreateVueApp, once, parseEventName, parseNVueDataset, parseQuery, parseUrl, passive, plusReady, removeLeadingSlash, resolveComponentInstance, resolveOwnerEl, resolveOwnerVm, sanitise, scrollTo, sortObject, stringifyQuery, updateElementStyle };\n","import { isRootHook, getValueByDataPath, isUniLifecycleHook, ON_ERROR, UniLifecycleHooks, invokeCreateErrorHandler, dynamicSlotName } from '@dcloudio/uni-shared';\nimport { NOOP, extend, isSymbol, isObject, def, hasChanged, isFunction, isArray, isPromise, camelize, capitalize, EMPTY_OBJ, remove, toHandlerKey, hasOwn, hyphenate, isReservedProp, toRawType, isString, normalizeClass, normalizeStyle, isOn, toTypeString, isMap, isIntegerKey, isSet, isPlainObject, makeMap, invokeArrayFns, isBuiltInDirective, looseToNumber, NO, EMPTY_ARR, isModelListener, toNumber, toDisplayString } from '@vue/shared';\nexport { EMPTY_OBJ, camelize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\n/**\n* @dcloudio/uni-mp-vue v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n\nfunction warn$2(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn$2(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn$2(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn$2(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$2(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn$2(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] || type : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type] || type;\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n console.error(err);\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick$1(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction hasQueueJob(job) {\n return queue.indexOf(job) > -1;\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. 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.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n // fixed by xxxxxx\n // 为 0 是 App,无 parent 是 Page 指向 App\n component.uid === 0 ? void 0 : component.parent ? component.parent.uid : 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction markAttrsAccessed() {\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect$1(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect$1(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n // fixed by xxxxxx\n mount() {\n },\n // fixed by xxxxxx\n unmount() {\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n if (currentInstance.type.mpType === \"app\") {\n currentInstance.appContext.app.provide(key, value);\n }\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n if (isRootHook(type)) {\n target = target.root;\n }\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(\n (ErrorTypeStrings[type] || type.replace(/^on/, \"\")).replace(/ hook$/, \"\")\n );\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (``)\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n // fixed by xxxxxx vue-i18n 在 dev 模式,访问了 $el,故模拟一个假的\n // $el: i => i.vnode.el,\n $el: (i) => i.__$el || (i.__$el = {}),\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n // $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy!)),// fixed by xxxxxx\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \r\n\r\n","import MiniProgramPage from 'C:/Users/hp/Desktop/app/canvas/pages/index/step2.vue'\nwx.createPage(MiniProgramPage)"],"names":["MiniProgramPage"],"mappings":";;;;;AAOC,MAAM,aAAa,MAAW;;;;;;;;;ACN/B,GAAG,WAAWA,SAAe;"} \ No newline at end of file +{"version":3,"file":"step2.js","sources":["pages/index/step2.vue?type=page"],"sourcesContent":["import MiniProgramPage from '/Users/sunmeng/Desktop/wx/canvas/pages/index/step2.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/common/assets.js b/unpackage/dist/dev/mp-weixin/common/assets.js deleted file mode 100644 index be03fa9..0000000 --- a/unpackage/dist/dev/mp-weixin/common/assets.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -const _imports_0 = "/static/logo.png"; -exports._imports_0 = _imports_0; -//# sourceMappingURL=../../.sourcemap/mp-weixin/common/assets.js.map diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js index 120c5d6..186ac8f 100644 --- a/unpackage/dist/dev/mp-weixin/common/vendor.js +++ b/unpackage/dist/dev/mp-weixin/common/vendor.js @@ -88,6 +88,37 @@ const looseToNumber = (val) => { const n = parseFloat(val); return isNaN(n) ? val : n; }; +const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); +}; +const replacer = (_key, val) => { + if (val && val.__v_isRef) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v; +}; const LOCALE_ZH_HANS = "zh-Hans"; const LOCALE_ZH_HANT = "zh-Hant"; const LOCALE_EN = "en"; @@ -5026,6 +5057,7 @@ function patchStopImmediatePropagation(e2, value) { } } const o = (value, key) => vOn(value, key); +const t = (val) => toDisplayString(val); function createApp$1(rootComponent, rootProps = null) { rootComponent && (rootComponent.mpType = "app"); return createVueApp(rootComponent, rootProps).use(plugin); @@ -5105,9 +5137,9 @@ function assertType(value, type) { let valid; const expectedType = getType(type); if (isSimpleType(expectedType)) { - const t = typeof value; - valid = t === expectedType.toLowerCase(); - if (!valid && t === "object") { + const t2 = typeof value; + valid = t2 === expectedType.toLowerCase(); + if (!valid && t2 === "object") { valid = value instanceof type; } } else if (expectedType === "Object") { @@ -5902,29 +5934,11 @@ function getOSInfo(system, platform) { osName = platform; osVersion = system; } else { - osName = system.split(" ")[0] || platform; + osName = system.split(" ")[0] || ""; osVersion = system.split(" ")[1] || ""; } - osName = osName.toLocaleLowerCase(); - switch (osName) { - case "harmony": - case "ohos": - case "openharmony": - osName = "harmonyos"; - break; - case "iphone os": - osName = "ios"; - break; - case "mac": - case "darwin": - osName = "macos"; - break; - case "windows_nt": - osName = "windows"; - break; - } return { - osName, + osName: osName.toLocaleLowerCase(), osVersion }; } @@ -5945,9 +5959,9 @@ function populateParameters(fromRes, toRes) { appVersion: "1.0.0", appVersionCode: "100", appLanguage: getAppLanguage(hostLanguage), - uniCompileVersion: "4.61", - uniCompilerVersion: "4.61", - uniRuntimeVersion: "4.61", + uniCompileVersion: "4.57", + uniCompilerVersion: "4.57", + uniRuntimeVersion: "4.57", uniPlatform: "mp-weixin", deviceBrand, deviceModel: model, @@ -6096,9 +6110,9 @@ const getAppBaseInfo = { appLanguage: getAppLanguage(hostLanguage), isUniAppX: false, uniPlatform: "mp-weixin", - uniCompileVersion: "4.61", - uniCompilerVersion: "4.61", - uniRuntimeVersion: "4.61" + uniCompileVersion: "4.57", + uniCompilerVersion: "4.57", + uniRuntimeVersion: "4.57" }; extend(toRes, parameters); } @@ -6379,91 +6393,6 @@ function tryConnectSocket(host2, port, id) { }); }); } -const CONSOLE_TYPES = ["log", "warn", "error", "info", "debug"]; -const originalConsole = /* @__PURE__ */ CONSOLE_TYPES.reduce((methods, type) => { - methods[type] = console[type].bind(console); - return methods; -}, {}); -let sendError = null; -const errorQueue = /* @__PURE__ */ new Set(); -const errorExtra = {}; -function sendErrorMessages(errors) { - if (sendError == null) { - errors.forEach((error) => { - errorQueue.add(error); - }); - return; - } - const data = errors.map((err) => { - if (typeof err === "string") { - return err; - } - const isPromiseRejection = err && "promise" in err && "reason" in err; - const prefix = isPromiseRejection ? "UnhandledPromiseRejection: " : ""; - if (isPromiseRejection) { - err = err.reason; - } - if (err instanceof Error && err.stack) { - if (err.message && !err.stack.includes(err.message)) { - return `${prefix}${err.message} -${err.stack}`; - } - return `${prefix}${err.stack}`; - } - if (typeof err === "object" && err !== null) { - try { - return prefix + JSON.stringify(err); - } catch (err2) { - return prefix + String(err2); - } - } - return prefix + String(err); - }).filter(Boolean); - if (data.length > 0) { - sendError(JSON.stringify(Object.assign({ - type: "error", - data - }, errorExtra))); - } -} -function setSendError(value, extra = {}) { - sendError = value; - Object.assign(errorExtra, extra); - if (value != null && errorQueue.size > 0) { - const errors = Array.from(errorQueue); - errorQueue.clear(); - sendErrorMessages(errors); - } -} -function initOnError() { - function onError2(error) { - try { - if (typeof PromiseRejectionEvent !== "undefined" && error instanceof PromiseRejectionEvent && error.reason instanceof Error && error.reason.message && error.reason.message.includes(`Cannot create property 'errMsg' on string 'taskId`)) { - return; - } - if (true) { - originalConsole.error(error); - } - sendErrorMessages([error]); - } catch (err) { - originalConsole.error(err); - } - } - if (typeof index.onError === "function") { - index.onError(onError2); - } - if (typeof index.onUnhandledRejection === "function") { - index.onUnhandledRejection(onError2); - } - return function offError2() { - if (typeof index.offError === "function") { - index.offError(onError2); - } - if (typeof index.offUnhandledRejection === "function") { - index.offUnhandledRejection(onError2); - } - }; -} function formatMessage(type, args) { try { return { @@ -6496,16 +6425,7 @@ function formatArg(arg, depth = 0) { case "boolean": return formatBoolean(arg); case "object": - try { - return formatObject(arg, depth); - } catch (e) { - return { - type: "object", - value: { - properties: [] - } - }; - } + return formatObject(arg, depth); case "undefined": return formatUndefined(); case "function": @@ -6651,21 +6571,14 @@ function formatObject(value, depth) { } } } - let entries = Object.entries(value); - if (isHarmonyBuilderParams(value)) { - entries = entries.filter(([key]) => key !== "modifier" && key !== "nodeContent"); - } return { type: "object", className, value: { - properties: entries.map((entry) => formatObjectProperty(entry[0], entry[1], depth + 1)) + properties: Object.entries(value).map((entry) => formatObjectProperty(entry[0], entry[1], depth + 1)) } }; } -function isHarmonyBuilderParams(value) { - return value.modifier && value.modifier._attribute && value.nodeContent; -} function isComponentPublicInstance(value) { return value.$ && isComponentInternalInstance(value.$); } @@ -6743,11 +6656,10 @@ function formatMapEntry(value, depth) { value: formatArg(value[1], depth) }; } +const CONSOLE_TYPES = ["log", "warn", "error", "info", "debug"]; let sendConsole = null; const messageQueue = []; const messageExtra = {}; -const EXCEPTION_BEGIN_MARK = "---BEGIN:EXCEPTION---"; -const EXCEPTION_END_MARK = "---END:EXCEPTION---"; function sendConsoleMessages(messages) { if (sendConsole == null) { messageQueue.push(...messages); @@ -6767,6 +6679,10 @@ function setSendConsole(value, extra = {}) { sendConsoleMessages(messages); } } +const originalConsole = /* @__PURE__ */ CONSOLE_TYPES.reduce((methods, type) => { + methods[type] = console[type].bind(console); + return methods; +}, {}); const atFileRegex = /^\s*at\s+[\w/./-]+:\d+$/; function rewriteConsole() { function wrapConsole(type) { @@ -6781,18 +6697,6 @@ function rewriteConsole() { { originalConsole[type](...originalArgs); } - if (type === "error" && args.length === 1) { - const arg = args[0]; - if (typeof arg === "string" && arg.startsWith(EXCEPTION_BEGIN_MARK)) { - const startIndex = EXCEPTION_BEGIN_MARK.length; - const endIndex = arg.length - EXCEPTION_END_MARK.length; - sendErrorMessages([arg.slice(startIndex, endIndex)]); - return; - } else if (arg instanceof Error) { - sendErrorMessages([arg]); - return; - } - } sendConsoleMessages([formatMessage(type, args)]); }; } @@ -6837,10 +6741,87 @@ function isConsoleWritable() { console.log = value; return isWritable; } +let sendError = null; +const errorQueue = /* @__PURE__ */ new Set(); +const errorExtra = {}; +function sendErrorMessages(errors) { + if (sendError == null) { + errors.forEach((error) => { + errorQueue.add(error); + }); + return; + } + const data = errors.map((err) => { + const isPromiseRejection = err && "promise" in err && "reason" in err; + const prefix = isPromiseRejection ? "UnhandledPromiseRejection: " : ""; + if (isPromiseRejection) { + err = err.reason; + } + if (err instanceof Error && err.stack) { + if (err.message && !err.stack.includes(err.message)) { + return `${prefix}${err.message} +${err.stack}`; + } + return `${prefix}${err.stack}`; + } + if (typeof err === "object" && err !== null) { + try { + return prefix + JSON.stringify(err); + } catch (err2) { + return prefix + String(err2); + } + } + return prefix + String(err); + }).filter(Boolean); + if (data.length > 0) { + sendError(JSON.stringify(Object.assign({ + type: "error", + data + }, errorExtra))); + } +} +function setSendError(value, extra = {}) { + sendError = value; + Object.assign(errorExtra, extra); + if (value != null && errorQueue.size > 0) { + const errors = Array.from(errorQueue); + errorQueue.clear(); + sendErrorMessages(errors); + } +} +function initOnError() { + function onError2(error) { + try { + if (typeof PromiseRejectionEvent !== "undefined" && error instanceof PromiseRejectionEvent && error.reason instanceof Error && error.reason.message && error.reason.message.includes(`Cannot create property 'errMsg' on string 'taskId`)) { + return; + } + if (true) { + originalConsole.error(error); + } + sendErrorMessages([error]); + } catch (err) { + originalConsole.error(err); + } + } + if (typeof index.onError === "function") { + index.onError(onError2); + } + if (typeof index.onUnhandledRejection === "function") { + index.onUnhandledRejection(onError2); + } + return function offError2() { + if (typeof index.offError === "function") { + index.offError(onError2); + } + if (typeof index.offUnhandledRejection === "function") { + index.offUnhandledRejection(onError2); + } + }; +} function initRuntimeSocketService() { - const hosts = "192.168.160.1,192.168.229.1,172.10.0.126,127.0.0.1"; + const hosts = "127.0.0.1,172.10.0.188"; const port = "8090"; - const id = "mp-weixin_Q6XvSB"; + const id = "mp-weixin_D35JxL"; const lazy = typeof swan !== "undefined"; let restoreError = lazy ? () => { } : initOnError(); @@ -6856,19 +6837,13 @@ function initRuntimeSocketService() { restoreError(); restoreConsole(); originalConsole.error(wrapError("开发模式下日志通道建立 socket 连接失败。")); - { - originalConsole.error(wrapError("小程序平台,请勾选不校验合法域名配置。")); - } + originalConsole.error(wrapError("如果是小程序平台,请勾选不校验合法域名配置。")); originalConsole.error(wrapError("如果是运行到真机,请确认手机与电脑处于同一网络。")); return false; } - { - initMiniProgramGlobalFlag(); - } + initMiniProgramGlobalFlag(); socket.onClose(() => { - { - originalConsole.error(wrapError("开发模式下日志通道 socket 连接关闭,请在 HBuilderX 中重新运行。")); - } + originalConsole.error(wrapError("开发模式下日志通道 socket 连接关闭,请在 HBuilderX 中重新运行。")); restoreError(); restoreConsole(); }); @@ -7787,9 +7762,7 @@ const createSubpackageApp = initCreateSubpackageApp(); } exports._export_sfc = _export_sfc; exports.createSSRApp = createSSRApp; -exports.getCurrentInstance = getCurrentInstance; exports.index = index; exports.o = o; -exports.onMounted = onMounted; -exports.ref = ref; +exports.t = t; //# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map diff --git a/unpackage/dist/dev/mp-weixin/index.js b/unpackage/dist/dev/mp-weixin/index.js deleted file mode 100644 index 0f8b3b9..0000000 --- a/unpackage/dist/dev/mp-weixin/index.js +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; -const common_vendor = require("./common/vendor.js"); -const _sfc_main = { - __name: "index", - setup(__props) { - const canvasWidth = common_vendor.ref(200); - const canvasHeight = common_vendor.ref(200); - const instance = common_vendor.getCurrentInstance(); - function draw() { - const ctx = common_vendor.index.createCanvasContext("canvas", instance); - common_vendor.index.__f__("log", "at pages/index/index.vue:20", ctx, "12"); - ctx.beginPath(); - ctx.arc(100, 100, 80, 0, Math.PI * 2); - ctx.setFillStyle("rgba(0, 0, 0, 1)"); - ctx.fill(); - ctx.beginPath(); - ctx.arc(100, 100, 75, 0, Math.PI * 2); - ctx.setFillStyle("white"); - ctx.fill(); - ctx.draw(); - } - const handleDraw = () => { - common_vendor.index.__f__("log", "at pages/index/index.vue:37", "111111"); - draw(); - common_vendor.index.__f__("log", "at pages/index/index.vue:39", "222222222"); - }; - common_vendor.onMounted(() => { - }); - return (_ctx, _cache) => { - return { - a: canvasWidth.value, - b: canvasHeight.value, - c: common_vendor.o(handleDraw) - }; - }; - } -}; -const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-1cf27b2a"]]); -exports.MiniProgramPage = MiniProgramPage; -//# sourceMappingURL=../.sourcemap/mp-weixin/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js index c5ca0bf..cde1346 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.js +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js @@ -1,4 +1,174 @@ "use strict"; -const index = require("../../index.js"); -wx.createPage(index.MiniProgramPage); +const common_vendor = require("../../common/vendor.js"); +const _sfc_main = { + data() { + return { + ctx: null, + canvasWidth: 0, + canvasHeight: 0, + seatSize: 30, + gap: 10, + rows: 8, + cols: 10, + seats: [], + selectedSeats: [], + touchStartX: 0, + touchStartY: 0, + offsetX: 0, + offsetY: 0, + scale: 1 + }; + }, + onReady() { + this.initSeats(); + this.initCanvas(); + }, + methods: { + initSeats() { + for (let i = 0; i < this.rows; i++) { + this.seats[i] = []; + for (let j = 0; j < this.cols; j++) { + const isSold = Math.random() < 0.2; + this.seats[i][j] = { + row: i, + col: j, + status: isSold ? "sold" : "available", + // available, selected, sold + x: 0, + y: 0 + }; + } + } + }, + async initCanvas() { + const { canvas, width, height } = await this.getCanvasNode("seatCanvas"); + this.canvasWidth = width; + this.canvasHeight = height; + this.ctx = canvas.getContext("2d"); + const totalWidth = this.cols * (this.seatSize + this.gap) - this.gap; + const totalHeight = this.rows * (this.seatSize + this.gap) - this.gap; + this.offsetX = (this.canvasWidth - totalWidth) / 2; + this.offsetY = (this.canvasHeight - totalHeight) / 2; + this.drawSeats(); + }, + getCanvasNode(id) { + return new Promise((resolve) => { + const query = common_vendor.index.createSelectorQuery().in(this); + query.select(`#${id}`).fields({ node: true, size: true }).exec((res) => { + common_vendor.index.__f__("log", "at pages/index/index.vue:94", "给我看看", res); + common_vendor.index.__f__("log", "at pages/index/index.vue:95", "给我看看", res); + common_vendor.index.__f__("log", "at pages/index/index.vue:96", "给我看看", res); + common_vendor.index.__f__("log", "at pages/index/index.vue:97", "给我看看", res); + common_vendor.index.__f__("log", "at pages/index/index.vue:98", "给我看看", res); + common_vendor.index.__f__("log", "at pages/index/index.vue:99", "给我看看", res); + const canvas = res[0].node; + const width = res[0].width; + const height = res[0].height; + canvas.width = width * common_vendor.index.getSystemInfoSync().pixelRatio; + canvas.height = height * common_vendor.index.getSystemInfoSync().pixelRatio; + resolve({ canvas, width, height }); + }); + }); + }, + drawSeats() { + if (!this.ctx) + return; + this.ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight); + this.ctx.save(); + this.ctx.translate(this.offsetX, this.offsetY); + this.ctx.scale(this.scale, this.scale); + for (let i = 0; i < this.rows; i++) { + for (let j = 0; j < this.cols; j++) { + const seat = this.seats[i][j]; + const x = j * (this.seatSize + this.gap); + const y = i * (this.seatSize + this.gap); + seat.x = x; + seat.y = y; + switch (seat.status) { + case "available": + this.ctx.fillStyle = "#4CAF50"; + break; + case "selected": + this.ctx.fillStyle = "#2196F3"; + break; + case "sold": + this.ctx.fillStyle = "#9E9E9E"; + break; + } + this.ctx.beginPath(); + this.ctx.roundRect(x, y, this.seatSize, this.seatSize, 4); + this.ctx.fill(); + this.ctx.fillStyle = "#FFFFFF"; + this.ctx.font = "12px Arial"; + this.ctx.textAlign = "center"; + this.ctx.textBaseline = "middle"; + this.ctx.fillText( + `${String.fromCharCode(65 + i)}${j + 1}`, + x + this.seatSize / 2, + y + this.seatSize / 2 + ); + } + } + this.ctx.restore(); + }, + handleTouchStart(e) { + this.touchStartX = e.touches[0].x; + this.touchStartY = e.touches[0].y; + }, + handleTouchMove(e) { + const touchX = e.touches[0].x; + const touchY = e.touches[0].y; + const dx = touchX - this.touchStartX; + const dy = touchY - this.touchStartY; + this.offsetX += dx; + this.offsetY += dy; + const minX = this.canvasWidth - (this.cols * (this.seatSize + this.gap) - this.gap) * this.scale; + const minY = this.canvasHeight - (this.rows * (this.seatSize + this.gap) - this.gap) * this.scale; + this.offsetX = Math.max(minX, Math.min(0, this.offsetX)); + this.offsetY = Math.max(minY, Math.min(0, this.offsetY)); + this.touchStartX = touchX; + this.touchStartY = touchY; + this.drawSeats(); + }, + handleTouchEnd(e) { + const touchX = e.changedTouches[0].x; + const touchY = e.changedTouches[0].y; + const canvasX = (touchX - this.offsetX) / this.scale; + const canvasY = (touchY - this.offsetY) / this.scale; + for (let i = 0; i < this.rows; i++) { + for (let j = 0; j < this.cols; j++) { + const seat = this.seats[i][j]; + if (canvasX >= seat.x && canvasX <= seat.x + this.seatSize && canvasY >= seat.y && canvasY <= seat.y + this.seatSize) { + this.toggleSeatSelection(seat); + return; + } + } + } + }, + toggleSeatSelection(seat) { + if (seat.status === "sold") + return; + if (seat.status === "available") { + seat.status = "selected"; + this.selectedSeats.push(`${String.fromCharCode(65 + seat.row)}${seat.col + 1}`); + } else { + seat.status = "available"; + this.selectedSeats = this.selectedSeats.filter( + (s) => s !== `${String.fromCharCode(65 + seat.row)}${seat.col + 1}` + ); + } + this.drawSeats(); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.o((...args) => $options.handleTouchStart && $options.handleTouchStart(...args)), + b: common_vendor.o((...args) => $options.handleTouchMove && $options.handleTouchMove(...args)), + c: common_vendor.o((...args) => $options.handleTouchEnd && $options.handleTouchEnd(...args)), + d: common_vendor.t($data.selectedSeats.join(", ") || "无") + }; +} +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createPage(MiniProgramPage); //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml index 8d9d9fc..bfd8ec0 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml @@ -1 +1 @@ - \ No newline at end of file +银幕可选已选已售已选座位:{{d}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss index 99c7c73..3d0a361 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss @@ -1,4 +1,61 @@ -button.data-v-1cf27b2a { - margin-top: 10px; +.container { + display: flex; + flex-direction: column; + align-items: center; + padding: 20rpx; + height: 100vh; + background-color: #f5f5f5; +} +.screen { + width: 80%; + height: 40rpx; + background: linear-gradient(to bottom, #ccc, #fff); + margin-bottom: 40rpx; + text-align: center; + font-size: 28rpx; + color: #333; + border-radius: 8rpx; + box-shadow: 0 4rpx 8rpx rgba(0, 0, 0, 0.1); +} +.seat-canvas { + width: 100%; + height: 500rpx; + background-color: #fff; + margin-bottom: 20rpx; + border-radius: 8rpx; + box-shadow: 0 4rpx 8rpx rgba(0, 0, 0, 0.1); +} +.legend { + display: flex; + justify-content: center; + margin-bottom: 20rpx; +} +.legend-item { + display: flex; + align-items: center; + margin: 0 20rpx; +} +.seat-icon { + width: 30rpx; + height: 30rpx; + margin-right: 10rpx; + border-radius: 4rpx; +} +.available { + background-color: #4CAF50; +} +.selected { + background-color: #2196F3; +} +.sold { + background-color: #9E9E9E; +} +.selected-seats { + padding: 20rpx; + background-color: #fff; + border-radius: 8rpx; + width: 90%; + text-align: center; + box-shadow: 0 4rpx 8rpx rgba(0, 0, 0, 0.1); } diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index2.js b/unpackage/dist/dev/mp-weixin/pages/index/index2.js deleted file mode 100644 index fbb48ac..0000000 --- a/unpackage/dist/dev/mp-weixin/pages/index/index2.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -const index = require("../../index.js"); -wx.createPage(index.MiniProgramPage); -//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/index2.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/index/indexFu.js b/unpackage/dist/dev/mp-weixin/pages/index/indexFu.js deleted file mode 100644 index 4d0785a..0000000 --- a/unpackage/dist/dev/mp-weixin/pages/index/indexFu.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; -require("../../common/vendor.js"); -if (!Math) { - indexZi(); -} -const indexZi = () => "./index2.js"; -const _sfc_main = { - __name: "indexFu", - setup(__props) { - return (_ctx, _cache) => { - return {}; - }; - } -}; -wx.createPage(_sfc_main); -//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/indexFu.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/index/indexFu.json b/unpackage/dist/dev/mp-weixin/pages/index/indexFu.json deleted file mode 100644 index 3c6e243..0000000 --- a/unpackage/dist/dev/mp-weixin/pages/index/indexFu.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "navigationBarTitleText": "fu", - "usingComponents": { - "index-zi": "./index" - } -} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/indexFu.wxml b/unpackage/dist/dev/mp-weixin/pages/index/indexFu.wxml deleted file mode 100644 index 55b40e8..0000000 --- a/unpackage/dist/dev/mp-weixin/pages/index/indexFu.wxml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/indexFu.wxss b/unpackage/dist/dev/mp-weixin/pages/index/indexFu.wxss deleted file mode 100644 index e69de29..0000000 diff --git a/unpackage/dist/dev/mp-weixin/pages/index/step2.js b/unpackage/dist/dev/mp-weixin/pages/index/step2.js index 32528f9..57d1889 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/step2.js +++ b/unpackage/dist/dev/mp-weixin/pages/index/step2.js @@ -1,16 +1,150 @@ "use strict"; -require("../../common/vendor.js"); -if (!Math) { - indexstep2(); -} -const indexstep2 = () => "./index2.js"; +const common_vendor = require("../../common/vendor.js"); const _sfc_main = { - __name: "step2", - setup(__props) { - return (_ctx, _cache) => { - return {}; + data() { + return { + seatData: { + "xCoords": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15], + "yCoords": [6, 6, 6, 6, 6, 6, 6, 6, 6, 6], + "statuses": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "levels": ["B", "B", "B", "B", "B", "B", "A", "A", "A", "A"] + }, + ctx: null, + canvas: null, + img: null, + scale: 1, + offsetX: 0, + offsetY: 0, + lastTouch: { x: 0, y: 0 } }; + }, + onReady() { + this.initCanvas(); + }, + methods: { + async initCanvas() { + const query = common_vendor.index.createSelectorQuery().in(this); + query.select("#seatCanvas").fields({ node: true, size: true }).exec(async (res) => { + if (!res || !res[0]) + return; + const canvas = res[0].node; + const ctx = canvas.getContext("2d"); + const dpr = common_vendor.index.getSystemInfoSync().pixelRatio; + canvas.width = res[0].width * dpr; + canvas.height = res[0].height * dpr; + ctx.scale(dpr, dpr); + this.canvas = canvas; + this.ctx = ctx; + try { + const imagePath = await this.loadImageForMiniProgram( + "https://assets.tech.troyrc.com/sx25/images/events/dingwei1.png" + ); + this.img = imagePath; + this.renderSeats(); + } catch (error) { + common_vendor.index.__f__("error", "at pages/index/step2.vue:69", "图片加载失败:", error); + } + }); + }, + // 专为微信小程序优化的图片加载方法 + loadImageForMiniProgram(url) { + return new Promise((resolve, reject) => { + common_vendor.index.downloadFile({ + url, + success: (downloadRes) => { + common_vendor.index.getImageInfo({ + src: downloadRes.tempFilePath, + success: (imageInfo) => { + resolve({ + path: downloadRes.tempFilePath, + width: imageInfo.width, + height: imageInfo.height + }); + }, + fail: (err) => reject(`获取图片信息失败: ${JSON.stringify(err)}`) + }); + }, + fail: (err) => reject(`下载图片失败: ${JSON.stringify(err)}`) + }); + }); + }, + renderSeats() { + if (!this.ctx || !this.img) + return; + const { ctx } = this; + const GRID_SIZE = 30 * this.scale; + ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); + this.seatData.xCoords.forEach((x, i) => { + const y = this.seatData.yCoords[i]; + const status = this.seatData.statuses[i]; + const drawX = (x - 6) * GRID_SIZE + this.offsetX; + const drawY = (y - 6) * GRID_SIZE + this.offsetY; + ctx.drawImage( + this.img.path, + drawX, + drawY, + GRID_SIZE, + GRID_SIZE + ); + if (status === 2) { + ctx.fillStyle = "rgba(0,0,0,0.5)"; + ctx.fillRect(drawX, drawY, GRID_SIZE, GRID_SIZE); + } + ctx.fillStyle = "#ffffff"; + ctx.font = `${8 * this.scale}px sans-serif`; + ctx.textAlign = "center"; + ctx.fillText( + `${this.seatData.rowNames[i]}${this.seatData.seatNames[i]}`, + drawX + GRID_SIZE / 2, + drawY + GRID_SIZE / 2 + 3 * this.scale + ); + }); + ctx.draw(); + }, + // 手势操作(保持不变) + handleTouchStart(e) { + this.lastTouch = { + x: e.touches[0].x, + y: e.touches[0].y + }; + }, + handleTouchMove(e) { + const touchX = e.touches[0].x; + const touchY = e.touches[0].y; + this.offsetX += (touchX - this.lastTouch.x) * 1.5; + this.offsetY += (touchY - this.lastTouch.y) * 1.5; + this.lastTouch = { x: touchX, y: touchY }; + this.renderSeats(); + }, + handleTouchEnd() { + }, + // 缩放控制(保持不变) + zoomIn() { + this.scale = Math.min(this.scale * 1.2, 3); + this.renderSeats(); + }, + zoomOut() { + this.scale = Math.max(this.scale * 0.8, 0.5); + this.renderSeats(); + }, + resetView() { + this.scale = 1; + this.offsetX = 0; + this.offsetY = 0; + this.renderSeats(); + } } }; -wx.createPage(_sfc_main); +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.o((...args) => $options.handleTouchStart && $options.handleTouchStart(...args)), + b: common_vendor.o((...args) => $options.handleTouchMove && $options.handleTouchMove(...args)), + c: common_vendor.o((...args) => $options.handleTouchEnd && $options.handleTouchEnd(...args)), + d: common_vendor.o((...args) => $options.zoomIn && $options.zoomIn(...args)), + e: common_vendor.o((...args) => $options.zoomOut && $options.zoomOut(...args)), + f: common_vendor.o((...args) => $options.resetView && $options.resetView(...args)) + }; +} +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-7ebe9a05"]]); +wx.createPage(MiniProgramPage); //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/step2.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/index/step2.json b/unpackage/dist/dev/mp-weixin/pages/index/step2.json index df8d65e..757dc1e 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/step2.json +++ b/unpackage/dist/dev/mp-weixin/pages/index/step2.json @@ -1,6 +1,4 @@ { "navigationBarTitleText": "fu", - "usingComponents": { - "indexstep2": "./index" - } + "usingComponents": {} } \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/step2.wxml b/unpackage/dist/dev/mp-weixin/pages/index/step2.wxml index 4e195fb..04331ff 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/step2.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/index/step2.wxml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/step2.wxss b/unpackage/dist/dev/mp-weixin/pages/index/step2.wxss index e69de29..81af4db 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/step2.wxss +++ b/unpackage/dist/dev/mp-weixin/pages/index/step2.wxss @@ -0,0 +1,28 @@ + +/* 样式保持不变 */ +.container.data-v-7ebe9a05 { + position: relative; + width: 100%; + height: 80vh; +} +.canvas.data-v-7ebe9a05 { + width: 100%; + height: 100%; + background-color: #f5f5f5; +} +.controls.data-v-7ebe9a05 { + position: absolute; + bottom: 20px; + left: 0; + right: 0; + display: flex; + justify-content: center; + gap: 15px; +} +.controls button.data-v-7ebe9a05 { + padding: 8px 16px; + background-color: #4a7afe; + color: white; + border-radius: 4px; + font-size: 14px; +} diff --git a/unpackage/dist/dev/mp-weixin/project.config.json b/unpackage/dist/dev/mp-weixin/project.config.json index 1a75e49..4b7aa20 100644 --- a/unpackage/dist/dev/mp-weixin/project.config.json +++ b/unpackage/dist/dev/mp-weixin/project.config.json @@ -1,29 +1,36 @@ { - "description": "项目配置文件。", - "packOptions": { - "ignore": [], - "include": [] + "description": "项目配置文件。", + "packOptions": { + "ignore": [] + }, + "setting": { + "urlCheck": false, + "es6": true, + "postcss": false, + "minified": false, + "newFeature": true, + "bigPackageSizeSupport": true + }, + "compileType": "miniprogram", + "libVersion": "", + "appid": "touristappid", + "projectname": "canvas", + "condition": { + "search": { + "current": -1, + "list": [] }, - "setting": { - "urlCheck": false, - "es6": true, - "postcss": false, - "minified": false, - "newFeature": true, - "bigPackageSizeSupport": true, - "babelSetting": { - "ignore": [], - "disablePlugins": [], - "outputPath": "" - } + "conversation": { + "current": -1, + "list": [] }, - "compileType": "miniprogram", - "libVersion": "3.8.3", - "appid": "touristappid", - "projectname": "canvas", - "condition": {}, - "editorSetting": { - "tabIndent": "insertSpaces", - "tabSize": 4 + "game": { + "current": -1, + "list": [] + }, + "miniprogram": { + "current": -1, + "list": [] } + } } \ No newline at end of file