commit 96ab62493fff8fb6da5be307950eda800d6c2b00 Author: kola-web Date: Tue Jul 8 12:00:37 2025 +0800 init diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..5d47c21 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f0f94c2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules +src/images/.svn +.idea +.DS_Store diff --git a/.neoconf.json b/.neoconf.json new file mode 100644 index 0000000..437bfce --- /dev/null +++ b/.neoconf.json @@ -0,0 +1,10 @@ +{ + "emmet_language_server": { + "init_options": { + "preferences": { + "css.intUnit": "rpx", + "css.floatUnitr": "rpx" + } + } + } +} diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..170b4a2 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,35 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc.json", + "printWidth": 120, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": true, + "bracketSpacing": true, + "trailingComma": "all", + "arrowParens": "always", + "endOfLine": "auto", + "htmlWhitespaceSensitivity": "ignore", + "singleAttributePerLine": false, + "jsxSingleQuote": true, + "overrides": [ + { + "files": "*.wxml", + "options": { + "parser": "html" + } + }, + { + "files": "*.wxss", + "options": { + "parser": "css" + } + }, + { + "files": "*.wxs", + "options": { + "parser": "babel" + } + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7095e9f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,10 @@ +{ + "path-autocomplete.pathMappings": { + "@": "${folder}/src", + "/": "${folder}/src", + }, + "emmet.preferences": { + "css.intUnit": "rpx", + "css.floatUnit": "rpx" + }, +} diff --git a/2024-10-31.md b/2024-10-31.md new file mode 100644 index 0000000..2b36d96 --- /dev/null +++ b/2024-10-31.md @@ -0,0 +1 @@ +# 2024-10-31 diff --git a/README.md b/README.md new file mode 100644 index 0000000..4b5e8d1 --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +1. user 打开小程序进入 身份认证页面 +2. 判断图片是否涂抹 +3. 图像识别模糊 可以反向确认 通过ocr识别接口 接入ocr同时识别不到 姓名,年龄等字样,及判断该病历已被涂抹 + + + +https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567 + +images svn 地址 +svn://39.106.86.127:28386/projects/takeda/proj_src/shop/frontend/web/wt + +(/images/)(\S\*(?=["|'])) +{{imageUrl}}$2?t={{Timestamp}} + +ui问题 + +1. 首页绑定医生弹窗需要重新切图 +2. 播放语音条图片没切 + +showModel颜色统一 + +```ts +wx.showModal({ + confirmColor: '#00B4C5', + cancelColor: '#141515', +}); +``` + +审核账号 +18910233000 1111 diff --git a/dist.nu b/dist.nu new file mode 100644 index 0000000..6d9f8fe --- /dev/null +++ b/dist.nu @@ -0,0 +1,5 @@ +cd ./src/images/; +svn add . --no-ignore --force; +svn ci -m "版本更新"; +cd ..; +cd ..; diff --git a/dist.ps1 b/dist.ps1 new file mode 100644 index 0000000..d75626b --- /dev/null +++ b/dist.ps1 @@ -0,0 +1,8 @@ +# Change to the src/images directory, or exit if the directory doesn't exist +Set-Location -Path ./src/images/ -ErrorAction Stop + +# Add all files to svn, including ignored files and forced additions +svn add . --no-ignore --force + +# Commit the changes with a message +svn ci -m "版本更新" diff --git a/dist.sh b/dist.sh new file mode 100644 index 0000000..c6b3638 --- /dev/null +++ b/dist.sh @@ -0,0 +1,4 @@ +#!/bin/bash +cd ./src/images/ || exit +svn add . --no-ignore --force +svn ci -m "版本更新" diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..e22c302 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,28 @@ +// eslint.config.mjs +import antfu from '@antfu/eslint-config' +import prettierConfig from 'eslint-config-prettier' + +export default antfu( + { + env: { + es6: true, + }, + stylistic: false, + parserOptions: { project: ['./tsconfig.json'] }, + globals: { + wx: true, + App: true, + Page: true, + getCurrentPages: true, + getApp: true, + Component: true, + requirePlugin: true, + requireMiniProgram: true, + }, + rules: { + 'eslint-comments/no-unlimited-disable': 'off', + 'ts/no-require-imports': 'off', + }, + }, + prettierConfig, +) diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..a97367d --- /dev/null +++ b/index.d.ts @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} diff --git a/keymap.json b/keymap.json new file mode 100644 index 0000000..6a68266 --- /dev/null +++ b/keymap.json @@ -0,0 +1,316 @@ +[ + // emmet + { + "key": "alt+e", + "command": "workbench.action.showEmmetCommands" + }, + // console + { + "key": "ctrl+shift+l", + "command": "js-console.insertConsoleLog", + "when": "editorTextFocus" + }, + { + "key": "shift+alt+l", + "command": "-js-console.insertConsoleLog", + "when": "editorTextFocus" + }, + { + "key": "ctrl+shift+t", + "command": "js-console.insertConsoleTable", + "when": "editorTextFocus" + }, + { + "key": "shift+alt+t", + "command": "-js-console.insertConsoleTable", + "when": "editorTextFocus" + }, + { + "key": "ctrl+shift+w", + "command": "js-console.insertConsoleWarn", + "when": "editorTextFocus" + }, + { + "key": "shift+alt+w", + "command": "-js-console.insertConsoleWarn", + "when": "editorTextFocus" + }, + { + "key": "ctrl+shift+d", + "command": "workbench.debug.panel.action.clearReplAction" + }, + { + "key": "ctrl+shift+e", + "command": "js-console.insertConsoleError", + "when": "editorTextFocus" + }, + { + "key": "shift+alt+e", + "command": "-js-console.insertConsoleError", + "when": "editorTextFocus" + }, + // Explorer + { + "key": "enter", + "command": "list.select", + "when": "listFocus && !inputFocus" + }, + { + "key": "a", + "command": "explorer.newFile", + "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus" + }, + { + "key": "shift+a", + "command": "explorer.newFolder", + "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus" + }, + { + "key": "y", + "command": "filesExplorer.copy", + "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus" + }, + { + "key": "x", + "command": "filesExplorer.cut", + "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus" + }, + { + "key": "p", + "command": "filesExplorer.paste", + "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus" + }, + { + "key": "r", + "command": "renameFile", + "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus" + }, + { + "key": "m", + "command": "workbench.files.action.refreshFilesExplorer", + "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus" + }, + // { + // "key": "m", + // "command": "editor.action.showContextMenu", + // "when": "explorerViewletVisible && filesExplorerFocus && !inputFocus" + // }, + { + "key": "q", + "command": "workbench.action.toggleSidebarVisibility", + "when": "explorerResourceMoveableToTrash && explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus" + }, + // "command": "workbench.files.action.refreshFilesExplorer", + { + "key": "d", + "command": "moveFileToTrash", + "when": "explorerResourceMoveableToTrash && explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus" + }, + { + "key": "shift+d", + "command": "deleteFile", + "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus" + }, + { + "key": "c", + "command": "workbench.files.action.collapseExplorerFolders", + "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus" + }, + { + "key": "s", + "command": "explorer.openToSide", + "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus" + }, + { + "key": "f", + "command": "revealFileInOS", + "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus" + }, + { + "key": "t", + "command": "openInTerminal", + "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus" + }, + { + "key": "u", + "command": "copyFilePath", + "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus" + }, + { + "key": "i", + "command": "copyRelativeFilePath", + "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus" + }, + // select + { + "key": "ctrl+n", + "command": "selectNextSuggestion", + "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus" + }, + { + "key": "ctrl+n", + "command": "workbench.action.quickOpenSelectNext", + "when": "inQuickOpen" + }, + { + "key": "ctrl+p", + "command": "selectPrevSuggestion", + "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus" + }, + { + "key": "ctrl+p", + "command": "workbench.action.quickOpenSelectPrevious", + "when": "inQuickOpen" + }, + // focus + { + "key": "ctrl+h", + "command": "workbench.action.navigateLeft", + "when": "terminalFocus || sideBarFocus" + }, + { + "key": "ctrl+l", + "command": "workbench.action.navigateRight", + "when": "terminalFocus || sideBarFocus" + }, + { + "key": "ctrl+p", + "command": "workbench.action.navigateUp", + "when": "terminalFocus || sideBarFocus" + }, + { + "key": "ctrl+n", + "command": "workbench.action.navigateDown", + "when": "terminalFocus || sideBarFocus" + }, + // changeCase + { + "key": "alt+;", + "command": "extension.changeCase.commands" + }, + // focus + { + "key": "alt+`", + "command": "workbench.action.toggleSidebarVisibility" + }, + { + "key": "alt+1", + "command": "workbench.view.explorer" + }, + { + "key": "alt-2", + "command": "outline.focus" + }, + { + "key": "alt-3", + "command": "workbench.view.extension.project-manager" + }, + { + "key": "alt-4", + "command": "todo-tree-view.focus" + }, + { + "key": "alt-5", + "command": "workbench.view.extension.dockerView" + }, + { + "key": "alt+9", + "command": "workbench.view.scm" + }, + { + "key": "alt-0", + "command": "workbench.action.toggleActivityBarVisibility" + }, + { + "key": "tab", + "command": "markdown.extension.onTabKey", + "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus && !hasOtherSuggestions && !hasSnippetCompletions && !inSnippetMode && !suggestWidgetVisible && editorLangId == 'markdown' && vim.mode =='Insert'" + }, + { + "key": "tab", + "command": "-markdown.extension.onTabKey", + "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus && !hasOtherSuggestions && !hasSnippetCompletions && !inSnippetMode && !suggestWidgetVisible && editorLangId == 'markdown'" + }, + { + "key": "shift+tab", + "command": "-markdown.extension.onShiftTabKey", + "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus && !hasOtherSuggestions && !hasSnippetCompletions && !inSnippetMode && !suggestWidgetVisible && editorLangId == 'markdown'" + }, + { + "key": "shift+tab", + "command": "markdown.extension.onShiftTabKey", + "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus && !hasOtherSuggestions && !hasSnippetCompletions && !inSnippetMode && !suggestWidgetVisible && editorLangId == 'markdown' && vim.mode =='Insert'" + }, + // nav buffer + { + "key": "tab", + "command": "workbench.action.nextEditor", + "when": "vim.mode != 'Insert' && vim.mode != 'CommandlineInProgress' && !panelFocus" + }, + { + "key": "shift+tab", + "command": "workbench.action.previousEditor", + "when": "vim.mode != 'Insert' && vim.mode != 'CommandlineInProgress' && !panelFocus" + }, + // 转换色值格式 + { + "key": "alt+-", + "command": "color-conversion.colorConversion", + "when": "editorTextFocus && editorHasSelection" + }, + // whichkey + { + "key": "space", + "command": "whichkey.show", + "when": "!inputFocus" + }, + { + "key": "e", + "command": "whichkey.triggerKey", + "args": { + "key": "e", + "when": "sideBarVisible && explorerViewletVisible" + }, + "when": "whichkeyVisible && sideBarVisible && explorerViewletVisible" + }, + // 编辑器大小 + { + "key": "shift+ctrl+0", + "command": "workbench.action.evenEditorWidths" + }, + { + "key": "ctrl+down", + "command": "workbench.action.decreaseViewHeight" + }, + { + "key": "ctrl+up", + "command": "workbench.action.increaseViewHeight" + }, + { + "key": "ctrl+right", + "command": "workbench.action.decreaseViewWidth" + }, + { + "key": "ctrl+left", + "command": "workbench.action.increaseViewWidth" + }, + { + "key": "alt+j", + "command": "workbench.action.togglePanel" + }, + { + "key": "ctrl+j", + "command": "-workbench.action.togglePanel" + }, + // replace vim C-d C-u + { + "key": "ctrl+d", + "command": "cursorPageDown", + "when": "textInputFocus" + }, + { + "key": "ctrl+u", + "command": "cursorPageUp", + "when": "textInputFocus" + } +] diff --git a/package.json b/package.json new file mode 100644 index 0000000..5e6d787 --- /dev/null +++ b/package.json @@ -0,0 +1,26 @@ +{ + "name": "shizhong", + "version": "1.0.0", + "description": "", + "author": "", + "license": "", + "keywords": [], + "scripts": { + "lint:fix": "eslint . --fix" + }, + "dependencies": { + "@vant/weapp": "^1.11.6", + "crypto-js": "^4.2.0", + "dayjs": "^1.11.13", + "miniprogram-licia": "^1.39.2", + "mp-html": "^2.5.0", + "typescript": "^5.3.3" + }, + "devDependencies": { + "@antfu/eslint-config": "^3.7.3", + "eslint": "^9.12.0", + "eslint-config-prettier": "^9.1.0", + "miniprogram-api-typings": "^4.0.1", + "prettier": "3.3.3" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..c0719ac --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3127 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@vant/weapp': + specifier: ^1.11.6 + version: 1.11.6 + crypto-js: + specifier: ^4.2.0 + version: 4.2.0 + dayjs: + specifier: ^1.11.13 + version: 1.11.13 + miniprogram-licia: + specifier: ^1.39.2 + version: 1.43.0 + mp-html: + specifier: ^2.5.0 + version: 2.5.0 + typescript: + specifier: ^5.3.3 + version: 5.6.3 + devDependencies: + '@antfu/eslint-config': + specifier: ^3.7.3 + version: 3.7.3(@typescript-eslint/utils@8.9.0(eslint@9.12.0)(typescript@5.6.3))(@vue/compiler-sfc@3.5.12)(eslint@9.12.0)(typescript@5.6.3) + eslint: + specifier: ^9.12.0 + version: 9.12.0 + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@9.12.0) + miniprogram-api-typings: + specifier: ^4.0.1 + version: 4.0.1 + prettier: + specifier: 3.3.3 + version: 3.3.3 + +packages: + + '@antfu/eslint-config@3.7.3': + resolution: {integrity: sha512-vzhKtzQT+f/xBV8T5U8SFy3D7uAqL2CEcjsJVqtA7F8tdKvGuC/96uWeEKMHk5lRfijgj+xRvb+c4qQn60YlIA==} + hasBin: true + peerDependencies: + '@eslint-react/eslint-plugin': ^1.5.8 + '@prettier/plugin-xml': ^3.4.1 + '@unocss/eslint-plugin': '>=0.50.0' + astro-eslint-parser: ^1.0.2 + eslint: ^9.10.0 + eslint-plugin-astro: ^1.2.0 + eslint-plugin-format: '>=0.1.0' + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-refresh: ^0.4.4 + eslint-plugin-solid: ^0.14.3 + eslint-plugin-svelte: '>=2.35.1' + prettier-plugin-astro: ^0.13.0 + prettier-plugin-slidev: ^1.0.5 + svelte-eslint-parser: '>=0.37.0' + peerDependenciesMeta: + '@eslint-react/eslint-plugin': + optional: true + '@prettier/plugin-xml': + optional: true + '@unocss/eslint-plugin': + optional: true + astro-eslint-parser: + optional: true + eslint-plugin-astro: + optional: true + eslint-plugin-format: + optional: true + eslint-plugin-react-hooks: + optional: true + eslint-plugin-react-refresh: + optional: true + eslint-plugin-solid: + optional: true + eslint-plugin-svelte: + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-slidev: + optional: true + svelte-eslint-parser: + optional: true + + '@antfu/install-pkg@0.4.1': + resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} + + '@clack/core@0.3.4': + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} + + '@clack/prompts@0.7.0': + resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} + bundledDependencies: + - is-unicode-supported + + '@es-joy/jsdoccomment@0.48.0': + resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} + engines: {node: '>=16'} + + '@es-joy/jsdoccomment@0.49.0': + resolution: {integrity: sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==} + engines: {node: '>=16'} + + '@eslint-community/eslint-plugin-eslint-comments@4.4.0': + resolution: {integrity: sha512-yljsWl5Qv3IkIRmJ38h3NrHXFCm4EUl55M8doGTF6hvzvFF8kRpextgSrg2dwHev9lzBZyafCr9RelGIyQm6fw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/compat@1.2.0': + resolution: {integrity: sha512-CkPWddN7J9JPrQedEr2X7AjK9y1jaMJtxZ4A/+jTMFA2+n5BWhcKHW/EbJyARqg2zzQfgtWUtVmG3hrG6+nGpg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.10.0 + peerDependenciesMeta: + eslint: + optional: true + + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.6.0': + resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.12.0': + resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/markdown@6.2.0': + resolution: {integrity: sha512-ZLWZ6RNy5flf1Nk2DBt0V77MQpQEo8snkjVT75P5J0SJkE/QNoqgy7+dBvNjlyZuj664pU43uDXWg3J8AfF0IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.0': + resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@humanfs/core@0.19.0': + resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.5': + resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@stylistic/eslint-plugin@2.9.0': + resolution: {integrity: sha512-OrDyFAYjBT61122MIY1a3SfEgy3YCMgt2vL4eoPmvTwDBwyQhAXurxNQznlRD/jESNfYWfID8Ej+31LljvF7Xg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@typescript-eslint/eslint-plugin@8.9.0': + resolution: {integrity: sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.9.0': + resolution: {integrity: sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@8.9.0': + resolution: {integrity: sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.9.0': + resolution: {integrity: sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@8.9.0': + resolution: {integrity: sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.9.0': + resolution: {integrity: sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.9.0': + resolution: {integrity: sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@8.9.0': + resolution: {integrity: sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@vant/weapp@1.11.6': + resolution: {integrity: sha512-a3heReWYT2gNdsyj6x1hBwsM8V8NrjcPAmle86NH2CD2V/i/h0le75piW6KntSfOPCwekVWMBKhysNrBpJeKdw==} + + '@vitest/eslint-plugin@1.1.7': + resolution: {integrity: sha512-pTWGW3y6lH2ukCuuffpan6kFxG6nIuoesbhMiQxskyQMRcCN5t9SXsKrNHvEw3p8wcCsgJoRqFZVkOTn6TjclA==} + peerDependencies: + '@typescript-eslint/utils': '>= 8.0' + eslint: '>= 8.57.0' + typescript: '>= 5.0.0' + vitest: '*' + peerDependenciesMeta: + typescript: + optional: true + vitest: + optional: true + + '@vue/compiler-core@3.5.12': + resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} + + '@vue/compiler-dom@3.5.12': + resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} + + '@vue/compiler-sfc@3.5.12': + resolution: {integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==} + + '@vue/compiler-ssr@3.5.12': + resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} + + '@vue/shared@3.5.12': + resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + caniuse-lite@1.0.30001668: + resolution: {integrity: sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + core-js-compat@3.38.1: + resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + electron-to-chromium@1.5.39: + resolution: {integrity: sha512-4xkpSR6CjuiaNyvwiWDI85N9AxsvbPawB8xc7yzLPonYTuP19BVgYweKyUMFtHEZgIcHWMt1ks5Cqx2m+6/Grg==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-flat-gitignore@0.3.0: + resolution: {integrity: sha512-0Ndxo4qGhcewjTzw52TK06Mc00aDtHNTdeeW2JfONgDcLkRO/n/BteMRzNVpLQYxdCC/dFEilfM9fjjpGIJ9Og==} + peerDependencies: + eslint: ^9.5.0 + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-flat-config-utils@0.4.0: + resolution: {integrity: sha512-kfd5kQZC+BMO0YwTol6zxjKX1zAsk8JfSAopbKjKqmENTJcew+yBejuvccAg37cvOrN0Mh+DVbeyznuNWEjt4A==} + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-merge-processors@0.1.0: + resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} + peerDependencies: + eslint: '*' + + eslint-plugin-antfu@2.7.0: + resolution: {integrity: sha512-gZM3jq3ouqaoHmUNszb1Zo2Ux7RckSvkGksjLWz9ipBYGSv1EwwBETN6AdiUXn+RpVHXTbEMPAPlXJazcA6+iA==} + peerDependencies: + eslint: '*' + + eslint-plugin-command@0.2.6: + resolution: {integrity: sha512-T0bHZ1oblW1xUHUVoBKZJR2osSNNGkfZuK4iqboNwuNS/M7tdp3pmURaJtTi/XDzitxaQ02lvOdFH0mUd5QLvQ==} + peerDependencies: + eslint: '*' + + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-import-x@4.3.1: + resolution: {integrity: sha512-5TriWkXulDl486XnYYRgsL+VQoS/7mhN/2ci02iLCuL7gdhbiWxnsuL/NTcaKY9fpMgsMFjWZBtIGW7pb+RX0g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + eslint-plugin-jsdoc@50.4.1: + resolution: {integrity: sha512-OXIq+JJQPCLAKL473/esioFOwbXyRE5MAQ4HbZjcp3e+K3zdxt2uDpGs3FR+WezUXNStzEtTfgx15T+JFrVwBA==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-jsonc@2.16.0: + resolution: {integrity: sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-n@17.11.1: + resolution: {integrity: sha512-93IUD82N6tIEgjztVI/l3ElHtC2wTa9boJHrD8iN+NyDxjxz/daZUZKfkedjBZNdg6EqDk4irybUsiPwDqXAEA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.23.0' + + eslint-plugin-no-only-tests@3.3.0: + resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} + engines: {node: '>=5.0.0'} + + eslint-plugin-perfectionist@3.9.0: + resolution: {integrity: sha512-qLsV6/94hokK+k77wUeLMEtB3tS/NtC9ke5OZCAaeCyK1VyVv7Ct0il16vkNNw/1IwNo8Fy60PKjQZSBcsVX5A==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + astro-eslint-parser: ^1.0.2 + eslint: '>=8.0.0' + svelte: '>=3.0.0' + svelte-eslint-parser: ^0.41.1 + vue-eslint-parser: '>=9.0.0' + peerDependenciesMeta: + astro-eslint-parser: + optional: true + svelte: + optional: true + svelte-eslint-parser: + optional: true + vue-eslint-parser: + optional: true + + eslint-plugin-regexp@2.6.0: + resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} + engines: {node: ^18 || >=20} + peerDependencies: + eslint: '>=8.44.0' + + eslint-plugin-toml@0.11.1: + resolution: {integrity: sha512-Y1WuMSzfZpeMIrmlP1nUh3kT8p96mThIq4NnHrYUhg10IKQgGfBZjAWnrg9fBqguiX4iFps/x/3Hb5TxBisfdw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-unicorn@55.0.0: + resolution: {integrity: sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==} + engines: {node: '>=18.18'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-plugin-unused-imports@4.1.4: + resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^9.0.0 || ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + + eslint-plugin-vue@9.29.0: + resolution: {integrity: sha512-hamyjrBhNH6Li6R1h1VF9KHfshJlKgKEg3ARbGTn72CMNDSMhWbgC7NdkRDEh25AFW+4SDATzyNM+3gWuZii8g==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-yml@1.14.0: + resolution: {integrity: sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-processor-vue-blocks@0.1.2: + resolution: {integrity: sha512-PfpJ4uKHnqeL/fXUnzYkOax3aIenlwewXRX8jFinA1a2yCFnLgMuiH3xvCgvHHUlV2xJWQHbCTdiJWGwb3NqpQ==} + peerDependencies: + '@vue/compiler-sfc': ^3.3.0 + eslint: ^8.50.0 || ^9.0.0 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-scope@8.1.0: + resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.1.0: + resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.12.0: + resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.2.0: + resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.11.0: + resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} + engines: {node: '>=18'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} + engines: {node: '>=12.0.0'} + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + + markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + + mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + miniprogram-api-typings@4.0.1: + resolution: {integrity: sha512-Ok4SSNCYnNLgbAhHCpIeqx6XICZ3aUxZ2iQDExmwKEinWaQQFzzxobK5JP9skrEOWn9PoKodjw4iUdF8Um0i/A==} + + miniprogram-licia@1.43.0: + resolution: {integrity: sha512-NTQxO0LaoIv66I7civEqyUwtF36My7S0TwGyvMAFUpUqGXcQZsM9Ng2OWwHaBvlqdjjPHSacTMH3XqGpnieEow==} + + mlly@1.7.2: + resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} + + mp-html@2.5.0: + resolution: {integrity: sha512-uvBH5tIaDIlj8qaxsvNXU3RKX0jvXOo3J6FAi/notUv/ds6j79UUTE82aDkxxUk0eLUU0CiCqMrR7WWnytk30Q==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-manager-detector@0.2.2: + resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + + parse-imports@2.2.1: + resolution: {integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==} + engines: {node: '>= 18'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slashes@3.0.12: + resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + synckit@0.6.2: + resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} + engines: {node: '>=12.20'} + + synckit@0.9.2: + resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} + engines: {node: ^14.18.0 || >=16.0.0} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toml-eslint-parser@0.10.0: + resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + tslib@2.8.0: + resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaml-eslint-parser@1.2.3: + resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} + engines: {node: ^14.17.0 || >=16.0.0} + + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@antfu/eslint-config@3.7.3(@typescript-eslint/utils@8.9.0(eslint@9.12.0)(typescript@5.6.3))(@vue/compiler-sfc@3.5.12)(eslint@9.12.0)(typescript@5.6.3)': + dependencies: + '@antfu/install-pkg': 0.4.1 + '@clack/prompts': 0.7.0 + '@eslint-community/eslint-plugin-eslint-comments': 4.4.0(eslint@9.12.0) + '@eslint/markdown': 6.2.0 + '@stylistic/eslint-plugin': 2.9.0(eslint@9.12.0)(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.6.3) + '@vitest/eslint-plugin': 1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3) + eslint: 9.12.0 + eslint-config-flat-gitignore: 0.3.0(eslint@9.12.0) + eslint-flat-config-utils: 0.4.0 + eslint-merge-processors: 0.1.0(eslint@9.12.0) + eslint-plugin-antfu: 2.7.0(eslint@9.12.0) + eslint-plugin-command: 0.2.6(eslint@9.12.0) + eslint-plugin-import-x: 4.3.1(eslint@9.12.0)(typescript@5.6.3) + eslint-plugin-jsdoc: 50.4.1(eslint@9.12.0) + eslint-plugin-jsonc: 2.16.0(eslint@9.12.0) + eslint-plugin-n: 17.11.1(eslint@9.12.0) + eslint-plugin-no-only-tests: 3.3.0 + eslint-plugin-perfectionist: 3.9.0(eslint@9.12.0)(typescript@5.6.3)(vue-eslint-parser@9.4.3(eslint@9.12.0)) + eslint-plugin-regexp: 2.6.0(eslint@9.12.0) + eslint-plugin-toml: 0.11.1(eslint@9.12.0) + eslint-plugin-unicorn: 55.0.0(eslint@9.12.0) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0) + eslint-plugin-vue: 9.29.0(eslint@9.12.0) + eslint-plugin-yml: 1.14.0(eslint@9.12.0) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.5.12)(eslint@9.12.0) + globals: 15.11.0 + jsonc-eslint-parser: 2.4.0 + local-pkg: 0.5.0 + parse-gitignore: 2.0.0 + picocolors: 1.1.0 + toml-eslint-parser: 0.10.0 + vue-eslint-parser: 9.4.3(eslint@9.12.0) + yaml-eslint-parser: 1.2.3 + yargs: 17.7.2 + transitivePeerDependencies: + - '@typescript-eslint/utils' + - '@vue/compiler-sfc' + - supports-color + - svelte + - typescript + - vitest + + '@antfu/install-pkg@0.4.1': + dependencies: + package-manager-detector: 0.2.2 + tinyexec: 0.3.0 + + '@antfu/utils@0.7.10': {} + + '@babel/code-frame@7.25.7': + dependencies: + '@babel/highlight': 7.25.7 + picocolors: 1.1.0 + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.7': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/highlight@7.25.7': + dependencies: + '@babel/helper-validator-identifier': 7.25.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.0 + + '@babel/parser@7.26.2': + dependencies: + '@babel/types': 7.26.0 + + '@babel/types@7.26.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@clack/core@0.3.4': + dependencies: + picocolors: 1.1.0 + sisteransi: 1.0.5 + + '@clack/prompts@0.7.0': + dependencies: + '@clack/core': 0.3.4 + picocolors: 1.1.0 + sisteransi: 1.0.5 + + '@es-joy/jsdoccomment@0.48.0': + dependencies: + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.1.0 + + '@es-joy/jsdoccomment@0.49.0': + dependencies: + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.1.0 + + '@eslint-community/eslint-plugin-eslint-comments@4.4.0(eslint@9.12.0)': + dependencies: + escape-string-regexp: 4.0.0 + eslint: 9.12.0 + ignore: 5.3.2 + + '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0)': + dependencies: + eslint: 9.12.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.11.1': {} + + '@eslint/compat@1.2.0(eslint@9.12.0)': + optionalDependencies: + eslint: 9.12.0 + + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.6.0': {} + + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 + debug: 4.3.7 + espree: 10.2.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.12.0': {} + + '@eslint/markdown@6.2.0': + dependencies: + '@eslint/plugin-kit': 0.2.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + transitivePeerDependencies: + - supports-color + + '@eslint/object-schema@2.1.4': {} + + '@eslint/plugin-kit@0.2.0': + dependencies: + levn: 0.4.1 + + '@humanfs/core@0.19.0': {} + + '@humanfs/node@0.16.5': + dependencies: + '@humanfs/core': 0.19.0 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@pkgr/core@0.1.1': {} + + '@stylistic/eslint-plugin@2.9.0(eslint@9.12.0)(typescript@5.6.3)': + dependencies: + '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) + eslint: 9.12.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 + estraverse: 5.3.0 + picomatch: 4.0.2 + transitivePeerDependencies: + - supports-color + - typescript + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + + '@types/estree@1.0.6': {} + + '@types/json-schema@7.0.15': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/ms@0.7.34': {} + + '@types/normalize-package-data@2.4.4': {} + + '@types/unist@3.0.3': {} + + '@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3)': + dependencies: + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.9.0 + '@typescript-eslint/type-utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.9.0 + eslint: 9.12.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.9.0 + '@typescript-eslint/types': 8.9.0 + '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.9.0 + debug: 4.3.7 + eslint: 9.12.0 + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.9.0': + dependencies: + '@typescript-eslint/types': 8.9.0 + '@typescript-eslint/visitor-keys': 8.9.0 + + '@typescript-eslint/type-utils@8.9.0(eslint@9.12.0)(typescript@5.6.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) + debug: 4.3.7 + ts-api-utils: 1.3.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/types@8.9.0': {} + + '@typescript-eslint/typescript-estree@8.9.0(typescript@5.6.3)': + dependencies: + '@typescript-eslint/types': 8.9.0 + '@typescript-eslint/visitor-keys': 8.9.0 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.9.0(eslint@9.12.0)(typescript@5.6.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + '@typescript-eslint/scope-manager': 8.9.0 + '@typescript-eslint/types': 8.9.0 + '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) + eslint: 9.12.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@8.9.0': + dependencies: + '@typescript-eslint/types': 8.9.0 + eslint-visitor-keys: 3.4.3 + + '@vant/weapp@1.11.6': {} + + '@vitest/eslint-plugin@1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3)': + dependencies: + '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) + eslint: 9.12.0 + optionalDependencies: + typescript: 5.6.3 + + '@vue/compiler-core@3.5.12': + dependencies: + '@babel/parser': 7.26.2 + '@vue/shared': 3.5.12 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.12': + dependencies: + '@vue/compiler-core': 3.5.12 + '@vue/shared': 3.5.12 + + '@vue/compiler-sfc@3.5.12': + dependencies: + '@babel/parser': 7.26.2 + '@vue/compiler-core': 3.5.12 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 + estree-walker: 2.0.2 + magic-string: 0.30.12 + postcss: 8.4.47 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.12': + dependencies: + '@vue/compiler-dom': 3.5.12 + '@vue/shared': 3.5.12 + + '@vue/shared@3.5.12': {} + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + are-docs-informative@0.0.2: {} + + argparse@2.0.1: {} + + balanced-match@1.0.2: {} + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001668 + electron-to-chromium: 1.5.39 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) + + builtin-modules@3.3.0: {} + + callsites@3.1.0: {} + + caniuse-lite@1.0.30001668: {} + + ccount@2.0.1: {} + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + character-entities@2.0.2: {} + + ci-info@4.0.0: {} + + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + comment-parser@1.4.1: {} + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + core-js-compat@3.38.1: + dependencies: + browserslist: 4.24.0 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-js@4.2.0: {} + + cssesc@3.0.0: {} + + dayjs@1.11.13: {} + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 + + deep-is@0.1.4: {} + + dequal@2.0.3: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + electron-to-chromium@1.5.39: {} + + emoji-regex@8.0.0: {} + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + entities@4.5.0: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-module-lexer@1.5.4: {} + + escalade@3.2.0: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-compat-utils@0.5.1(eslint@9.12.0): + dependencies: + eslint: 9.12.0 + semver: 7.6.3 + + eslint-config-flat-gitignore@0.3.0(eslint@9.12.0): + dependencies: + '@eslint/compat': 1.2.0(eslint@9.12.0) + eslint: 9.12.0 + find-up-simple: 1.0.0 + + eslint-config-prettier@9.1.0(eslint@9.12.0): + dependencies: + eslint: 9.12.0 + + eslint-flat-config-utils@0.4.0: + dependencies: + pathe: 1.1.2 + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.15.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + eslint-merge-processors@0.1.0(eslint@9.12.0): + dependencies: + eslint: 9.12.0 + + eslint-plugin-antfu@2.7.0(eslint@9.12.0): + dependencies: + '@antfu/utils': 0.7.10 + eslint: 9.12.0 + + eslint-plugin-command@0.2.6(eslint@9.12.0): + dependencies: + '@es-joy/jsdoccomment': 0.48.0 + eslint: 9.12.0 + + eslint-plugin-es-x@7.8.0(eslint@9.12.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + '@eslint-community/regexpp': 4.11.1 + eslint: 9.12.0 + eslint-compat-utils: 0.5.1(eslint@9.12.0) + + eslint-plugin-import-x@4.3.1(eslint@9.12.0)(typescript@5.6.3): + dependencies: + '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) + debug: 4.3.7 + doctrine: 3.0.0 + eslint: 9.12.0 + eslint-import-resolver-node: 0.3.9 + get-tsconfig: 4.8.1 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + stable-hash: 0.0.4 + tslib: 2.8.0 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-jsdoc@50.4.1(eslint@9.12.0): + dependencies: + '@es-joy/jsdoccomment': 0.49.0 + are-docs-informative: 0.0.2 + comment-parser: 1.4.1 + debug: 4.3.7 + escape-string-regexp: 4.0.0 + eslint: 9.12.0 + espree: 10.2.0 + esquery: 1.6.0 + parse-imports: 2.2.1 + semver: 7.6.3 + spdx-expression-parse: 4.0.0 + synckit: 0.9.2 + transitivePeerDependencies: + - supports-color + + eslint-plugin-jsonc@2.16.0(eslint@9.12.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + eslint: 9.12.0 + eslint-compat-utils: 0.5.1(eslint@9.12.0) + espree: 9.6.1 + graphemer: 1.4.0 + jsonc-eslint-parser: 2.4.0 + natural-compare: 1.4.0 + synckit: 0.6.2 + + eslint-plugin-n@17.11.1(eslint@9.12.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + enhanced-resolve: 5.17.1 + eslint: 9.12.0 + eslint-plugin-es-x: 7.8.0(eslint@9.12.0) + get-tsconfig: 4.8.1 + globals: 15.11.0 + ignore: 5.3.2 + minimatch: 9.0.5 + semver: 7.6.3 + + eslint-plugin-no-only-tests@3.3.0: {} + + eslint-plugin-perfectionist@3.9.0(eslint@9.12.0)(typescript@5.6.3)(vue-eslint-parser@9.4.3(eslint@9.12.0)): + dependencies: + '@typescript-eslint/types': 8.9.0 + '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) + eslint: 9.12.0 + minimatch: 9.0.5 + natural-compare-lite: 1.4.0 + optionalDependencies: + vue-eslint-parser: 9.4.3(eslint@9.12.0) + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-regexp@2.6.0(eslint@9.12.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + '@eslint-community/regexpp': 4.11.1 + comment-parser: 1.4.1 + eslint: 9.12.0 + jsdoc-type-pratt-parser: 4.1.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scslre: 0.3.0 + + eslint-plugin-toml@0.11.1(eslint@9.12.0): + dependencies: + debug: 4.3.7 + eslint: 9.12.0 + eslint-compat-utils: 0.5.1(eslint@9.12.0) + lodash: 4.17.21 + toml-eslint-parser: 0.10.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-unicorn@55.0.0(eslint@9.12.0): + dependencies: + '@babel/helper-validator-identifier': 7.25.7 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + ci-info: 4.0.0 + clean-regexp: 1.0.0 + core-js-compat: 3.38.1 + eslint: 9.12.0 + esquery: 1.6.0 + globals: 15.11.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.6.3 + strip-indent: 3.0.0 + + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0): + dependencies: + eslint: 9.12.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3) + + eslint-plugin-vue@9.29.0(eslint@9.12.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + eslint: 9.12.0 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.2 + semver: 7.6.3 + vue-eslint-parser: 9.4.3(eslint@9.12.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-yml@1.14.0(eslint@9.12.0): + dependencies: + debug: 4.3.7 + eslint: 9.12.0 + eslint-compat-utils: 0.5.1(eslint@9.12.0) + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.2.3 + transitivePeerDependencies: + - supports-color + + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.5.12)(eslint@9.12.0): + dependencies: + '@vue/compiler-sfc': 3.5.12 + eslint: 9.12.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-scope@8.1.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.1.0: {} + + eslint@9.12.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + '@eslint-community/regexpp': 4.11.1 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.6.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.12.0 + '@eslint/plugin-kit': 0.2.0 + '@humanfs/node': 0.16.5 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.7 + escape-string-regexp: 4.0.0 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@10.2.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.1.0 + + espree@9.6.1: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 3.4.3 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up-simple@1.0.0: {} + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + + flatted@3.3.1: {} + + function-bind@1.1.2: {} + + get-caller-file@2.0.5: {} + + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@14.0.0: {} + + globals@15.11.0: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hosted-git-info@2.8.9: {} + + ignore@5.3.2: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + is-arrayish@0.2.1: {} + + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + isexe@2.0.0: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsdoc-type-pratt-parser@4.1.0: {} + + jsesc@0.5.0: {} + + jsesc@3.0.2: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + jsonc-eslint-parser@2.4.0: + dependencies: + acorn: 8.12.1 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.6.3 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lines-and-columns@1.2.4: {} + + local-pkg@0.5.0: + dependencies: + mlly: 1.7.2 + pkg-types: 1.2.1 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + longest-streak@3.1.0: {} + + magic-string@0.30.12: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + markdown-table@3.0.3: {} + + mdast-util-find-and-replace@3.0.1: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.3 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-markdown@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + merge2@1.4.1: {} + + micromark-core-commonmark@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-table@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-destination@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-label@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-space@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + + micromark-factory-title@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-whitespace@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-character@2.1.0: + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-chunked@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-classify-character@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-combine-extensions@2.0.0: + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-decode-numeric-character-reference@2.0.1: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-decode-string@2.0.0: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + + micromark-util-encode@2.0.0: {} + + micromark-util-html-tag-name@2.0.0: {} + + micromark-util-normalize-identifier@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-resolve-all@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-util-sanitize-uri@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-subtokenize@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-symbol@2.0.0: {} + + micromark-util-types@2.0.0: {} + + micromark@4.0.0: + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.7 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + min-indent@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + miniprogram-api-typings@4.0.1: {} + + miniprogram-licia@1.43.0: {} + + mlly@1.7.2: + dependencies: + acorn: 8.12.1 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + + mp-html@2.5.0: {} + + ms@2.1.3: {} + + nanoid@3.3.7: {} + + natural-compare-lite@1.4.0: {} + + natural-compare@1.4.0: {} + + node-releases@2.0.18: {} + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-try@2.2.0: {} + + package-manager-detector@0.2.2: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-gitignore@2.0.0: {} + + parse-imports@2.2.1: + dependencies: + es-module-lexer: 1.5.4 + slashes: 3.0.12 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.25.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + pathe@1.1.2: {} + + picocolors@1.1.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pkg-types@1.2.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.2 + pathe: 1.1.2 + + pluralize@8.0.0: {} + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier@3.3.3: {} + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + refa@0.12.1: + dependencies: + '@eslint-community/regexpp': 4.11.1 + + regexp-ast-analysis@0.7.1: + dependencies: + '@eslint-community/regexpp': 4.11.1 + refa: 0.12.1 + + regexp-tree@0.1.27: {} + + regjsparser@0.10.0: + dependencies: + jsesc: 0.5.0 + + require-directory@2.1.1: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + scslre@0.3.0: + dependencies: + '@eslint-community/regexpp': 4.11.1 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + + semver@5.7.2: {} + + semver@7.6.3: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + sisteransi@1.0.5: {} + + slashes@3.0.12: {} + + source-map-js@1.2.1: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.20 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + + spdx-license-ids@3.0.20: {} + + stable-hash@0.0.4: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@3.1.1: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + synckit@0.6.2: + dependencies: + tslib: 2.8.0 + + synckit@0.9.2: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.8.0 + + tapable@2.2.1: {} + + text-table@0.2.0: {} + + tinyexec@0.3.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toml-eslint-parser@0.10.0: + dependencies: + eslint-visitor-keys: 3.4.3 + + ts-api-utils@1.3.0(typescript@5.6.3): + dependencies: + typescript: 5.6.3 + + tslib@2.8.0: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + typescript@5.6.3: {} + + ufo@1.5.4: {} + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + update-browserslist-db@1.1.1(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + vue-eslint-parser@9.4.3(eslint@9.12.0): + dependencies: + debug: 4.3.7 + eslint: 9.12.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + lodash: 4.17.21 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + xml-name-validator@4.0.0: {} + + y18n@5.0.8: {} + + yaml-eslint-parser@1.2.3: + dependencies: + eslint-visitor-keys: 3.4.3 + lodash: 4.17.21 + yaml: 2.6.0 + + yaml@2.6.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} + + zwitch@2.0.4: {} diff --git a/project.config.json b/project.config.json new file mode 100644 index 0000000..1f018b2 --- /dev/null +++ b/project.config.json @@ -0,0 +1,65 @@ +{ + "description": "项目配置文件", + "miniprogramRoot": "src/", + "compileType": "miniprogram", + "setting": { + "useCompilerPlugins": [ + "typescript", + "sass" + ], + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + }, + "coverView": false, + "postcss": false, + "minified": false, + "enhance": true, + "showShadowRootInWxmlPanel": false, + "packNpmManually": true, + "packNpmRelationList": [ + { + "packageJsonPath": "package.json", + "miniprogramNpmDistDir": "./src" + } + ], + "ignoreUploadUnusedFiles": true, + "compileHotReLoad": false, + "skylineRenderEnable": true, + "es6": true + }, + "simulatorType": "wechat", + "simulatorPluginLibVersion": {}, + "condition": {}, + "srcMiniprogramRoot": "src/", + "editorSetting": { + "tabIndent": "insertSpaces", + "tabSize": 2 + }, + "libVersion": "2.32.3", + "ignore": [], + "packOptions": { + "ignore": [ + { + "value": "/images/*.*", + "type": "glob" + }, + { + "value": "/images/**/*.*", + "type": "glob" + }, + { + "value": "/images/**/**/*.*", + "type": "glob" + } + ], + "include": [ + { + "value": "/images/tabbar/*.*", + "type": "glob" + } + ] + }, + "appid": "wxbdf6f933281b1eb4" +} \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..31fdf95 --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,99 @@ +{ + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "projectname": "shizhong-miniprogram", + "setting": { + "compileHotReLoad": true, + "urlCheck": true + }, + "condition": { + "miniprogram": { + "list": [ + { + "name": "pages/classify/index", + "pathName": "pages/classify/index", + "query": "id=9", + "launchMode": "default", + "scene": null + }, + { + "name": "pages/article/index", + "pathName": "pages/article/index", + "query": "id=8", + "launchMode": "default", + "scene": null + }, + { + "name": "文章详情", + "pathName": "pages/article/index", + "query": "id=8", + "launchMode": "default", + "scene": null + }, + { + "name": "个人信息", + "pathName": "pages/userInfo/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "隐私协议", + "pathName": "pages/protocol/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "搜索", + "pathName": "pages/search/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "分类列表", + "pathName": "pages/classify/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "我的收藏", + "pathName": "pages/collection/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "我的", + "pathName": "pages/my/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "首页", + "pathName": "pages/home/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "调研", + "pathName": "pages/topic/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "登录", + "pathName": "pages/login/index", + "query": "", + "launchMode": "default", + "scene": null + } + ] + } + }, + "libVersion": "3.7.7" +} \ No newline at end of file diff --git a/src/app.json b/src/app.json new file mode 100644 index 0000000..711dd87 --- /dev/null +++ b/src/app.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://dldir1.qq.com/WechatWebDev/editor-extension/wx-json/app.schema.json", + "pages": [ + "pages/home/index", + "pages/login/index", + "pages/switchLogin/index", + "pages/my/index", + "pages/topic/index", + "pages/collection/index", + "pages/classify/index", + "pages/article/index", + "pages/search/index", + "pages/protocol/index", + "pages/userInfo/index", + "pages/longPicture/index" + ], + "preloadRule": {}, + "window": { + "backgroundTextStyle": "light", + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "Weixin", + "navigationBarTextStyle": "black", + "navigationStyle": "custom" + }, + "tabBar": { + "custom": false, + "color": "#4E5969", + "selectedColor": "#3FAFFA", + "borderStyle": "white", + "list": [ + { + "iconPath": "/images/tabbar/tab1.png", + "selectedIconPath": "/images/tabbar/tab-active1.png", + "pagePath": "pages/home/index", + "text": "首页" + }, + { + "iconPath": "/images/tabbar/tab2.png", + "selectedIconPath": "/images/tabbar/tab-active2.png", + "pagePath": "pages/my/index", + "text": "我的" + } + ] + }, + "resolveAlias": { + "@/*": "/*" + }, + "rendererOptions": { + "skyline": { + "defaultDisplayBlock": true, + "disableABTest": true, + "sdkVersionBegin": "3.0.0", + "sdkVersionEnd": "15.255.255" + } + }, + "componentFramework": "glass-easel", + "sitemapLocation": "sitemap.json", + "lazyCodeLoading": "requiredComponents", + "requiredBackgroundModes": ["audio"] +} diff --git a/src/app.scss b/src/app.scss new file mode 100644 index 0000000..75f4fde --- /dev/null +++ b/src/app.scss @@ -0,0 +1 @@ +/**app.wxss**/ diff --git a/src/app.ts b/src/app.ts new file mode 100644 index 0000000..5bf3813 --- /dev/null +++ b/src/app.ts @@ -0,0 +1,109 @@ +import component from '@/utils/component'; +import relativeTime from '@/utils/dayjs/relativeTime.js'; +import page from '@/utils/page'; +import { request } from '@/utils/request'; +import { parseScene } from './utils/util'; +const dayjs = require('dayjs'); +const licia = require('miniprogram-licia'); + +require('/utils/dayjs/day-zh-cn.js'); + +dayjs.locale('zh-cn'); // 全局使用 +dayjs.extend(relativeTime); + +App({ + globalData: { + // 测试号 wx2b0bb13edf717c1d + // dev + // appid:wxbdf6f933281b1eb4 + url: 'https://m.shizhong.hbraas.com', + upFileUrl: 'https://m.shizhong.hbraas.com/', + imageUrl: 'https://m.shizhong.hbraas.com/api/shizhong/', + // pro + // appid:wxa4a28b299df7d921 + // url: 'https://m.shizhong.hbsaas.com', + // upFileUrl: 'https://m.shizhong.hbsaas.com/', + // imageUrl: 'https://m.shizhong.hbsaas.com/api/shizhong/', + + loginState: '', + isLogin: 0, + isAnswer: '0', + + scene: null, + + backPath: '', + }, + onLaunch() { + Page = page as WechatMiniprogram.Page.Constructor; + Component = component as WechatMiniprogram.Component.Constructor; + + wx.ajax = licia.curry(request)({ gUrl: this.globalData.url }); + + wx.login({ + success: (res) => { + wx.ajax({ + method: 'GET', + url: '?r=shizhong/user/init-login', + data: { + code: res.code, + }, + }).then((res) => { + this.globalData.loginState = res.loginState; + this.globalData.isLogin = res.isLogin || 999; + }); + }, + }); + + wx.setInnerAudioOption({ + obeyMuteSwitch: false, + mixWithOther: false, + }); + }, + onShow(options) { + if (options.query.scene) { + this.globalData.scene = parseScene(options.query.scene); + } + }, + waitLogin(waitLoginState = false, requireLogin = false, bakcPath = '') { + let time: number; + return new Promise((resolve) => { + time = setInterval(() => { + const { isLogin, loginState } = this.globalData; + if (loginState) { + clearInterval(time); + if (waitLoginState) { + resolve(true); + } else if (isLogin === 0 || !isLogin) { + this.globalData.backPath = bakcPath; + wx.reLaunch({ url: '/pages/login/index' }); + } else if (requireLogin && isLogin === 999) { + this.globalData.backPath = bakcPath; + wx.reLaunch({ url: '/pages/login/index' }); + } else { + resolve(true); + } + } + }, 500); + }); + }, + getUserInfo(self: WechatMiniprogram.Page.Instance, callback?: (res: any) => void) { + wx.ajax({ + method: 'GET', + url: '?r=shizhong/account/get-info', + data: {}, + }).then((res) => { + if (self) { + self.setData({ + userInfo: res, + }); + } + callback?.(res); + }); + }, + getMenuInfo(self) { + const menuButtonInfo = wx.getMenuButtonBoundingClientRect(); + self.setData({ + menuButtonInfo, + }); + }, +}); diff --git a/src/components/global-toast/index.json b/src/components/global-toast/index.json new file mode 100644 index 0000000..074f50b --- /dev/null +++ b/src/components/global-toast/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "@vant/weapp/popup/index" + } +} diff --git a/src/components/global-toast/index.scss b/src/components/global-toast/index.scss new file mode 100644 index 0000000..ef89137 --- /dev/null +++ b/src/components/global-toast/index.scss @@ -0,0 +1,83 @@ +.popup1 { + padding: 110rpx 0 0; + width: 651rpx; + height: 820rpx; + box-sizing: border-box; + + .title { + font-size: 40rpx; + color: #222222; + font-weight: bold; + text-align: center; + } + + .code { + margin: 48rpx auto 0; + display: block; + width: 304rpx; + height: 304rpx; + } + + .tip { + margin-top: 40rpx; + font-size: 32rpx; + color: #65686c; + text-align: center; + } + .close { + margin: 120rpx auto 0; + display: block; + width: 72rpx; + height: 72rpx; + } +} + +.popup3 { + .badge { + position: relative; + z-index: 1; + display: block; + margin: 0 auto; + width: 264rpx; + height: 264rpx; + } + .container { + margin-top: -130rpx; + padding: 136rpx 44rpx 0; + width: 622rpx; + height: 632rpx; + box-sizing: border-box; + background: linear-gradient(180deg, #e7f8ff 0%, #ffffff 100%); + border-radius: 36rpx 36rpx 36rpx 36rpx; + .title { + font-size: 48rpx; + color: #222222; + font-weight: bold; + text-align: center; + } + .tip { + margin-top: 24rpx; + font-size: 36rpx; + color: #65686c; + line-height: 56rpx; + } + .btn1 { + margin-top: 44rpx; + font-size: 36rpx; + color: #ffffff; + height: 88rpx; + display: flex; + align-items: center; + justify-content: center; + background: #3795f7; + border-radius: 96rpx 96rpx 96rpx 96rpx; + } + .btn2 { + margin-top: 16rpx; + padding: 16rpx 32rpx; + font-size: 32rpx; + color: #3795f7; + text-align: center; + } + } +} diff --git a/src/components/global-toast/index.ts b/src/components/global-toast/index.ts new file mode 100644 index 0000000..5be460c --- /dev/null +++ b/src/components/global-toast/index.ts @@ -0,0 +1,39 @@ +const _app = getApp(); + +// pages/story/a.ts +Component({ + /** + * 组件的属性列表 + */ + properties: { + show: { + type: Boolean, + value: false, + }, + type: { + type: Number, + value: 0, + }, + params: { + type: Object, + value: {}, + }, + }, + + /** + * 组件的初始数据 + */ + data: {}, + + /** + * 组件的方法列表 + */ + methods: { + handleConform() { + this.triggerEvent('conform'); + }, + handleClose() { + this.triggerEvent('close'); + }, + }, +}); diff --git a/src/components/global-toast/index.wxml b/src/components/global-toast/index.wxml new file mode 100644 index 0000000..b6ab5bd --- /dev/null +++ b/src/components/global-toast/index.wxml @@ -0,0 +1,32 @@ + + + 关注适中信息微信公众号 + + 长按识别二维码关注 + + + + + + + 添加适中信息企业微信 + + 长按识别二维码添加 + + + + + + + + + 该账号未开通阅读权益 + 此小程序暂时仅供经邀请的企业用户使用,请使用有权益的手机号登录。 + 换个手机号登录 + 取消 + + + diff --git a/src/components/pagination/index.js b/src/components/pagination/index.js new file mode 100644 index 0000000..c1a789f --- /dev/null +++ b/src/components/pagination/index.js @@ -0,0 +1,20 @@ +const app = getApp(); + +Component({ + properties: { + pagination: { + type: Object, + value() { + return {}; + }, + }, + }, + data: { + imageUrl: app.globalData.imageUrl, + }, + methods: { + handleTouchmove() { + return false; + }, + }, +}); diff --git a/src/components/pagination/index.json b/src/components/pagination/index.json new file mode 100644 index 0000000..24029b0 --- /dev/null +++ b/src/components/pagination/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-divider": "@vant/weapp/divider/index" + } +} diff --git a/src/components/pagination/index.scss b/src/components/pagination/index.scss new file mode 100644 index 0000000..08a9dea --- /dev/null +++ b/src/components/pagination/index.scss @@ -0,0 +1,6 @@ +/* components/pagination/index.wxss */ +.none { + display: block; + margin: 30rpx auto; + width: 80%; +} diff --git a/src/components/pagination/index.wxml b/src/components/pagination/index.wxml new file mode 100644 index 0000000..3f1150d --- /dev/null +++ b/src/components/pagination/index.wxml @@ -0,0 +1,6 @@ + + + + 加载中... + +没有更多了 diff --git a/src/components/uploadFile/index.json b/src/components/uploadFile/index.json new file mode 100644 index 0000000..5625d07 --- /dev/null +++ b/src/components/uploadFile/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "@vant/weapp/popup/index", + "van-uploader": "@vant/weapp/uploader/index" + } +} diff --git a/src/components/uploadFile/index.scss b/src/components/uploadFile/index.scss new file mode 100644 index 0000000..d70d62d --- /dev/null +++ b/src/components/uploadFile/index.scss @@ -0,0 +1,30 @@ +.button { + padding: 0; + line-height: 1; + background-color: transparent; + &::after { + border: none; + outline: none; + } +} + +.popup1 { + position: relative; + width: 580rpx; + height: 590rpx; + box-sizing: border-box; + .bg { + width: 100%; + height: 100%; + } + .sure { + position: absolute; + width: 100%; + bottom: 40rpx; + left: 0; + text-align: center; + font-size: 32rpx; + color: rgba(0, 180, 197, 1); + line-height: 48rpx; + } +} diff --git a/src/components/uploadFile/index.ts b/src/components/uploadFile/index.ts new file mode 100644 index 0000000..3efb12f --- /dev/null +++ b/src/components/uploadFile/index.ts @@ -0,0 +1,132 @@ +const app = getApp(); + +// pages/story/a.ts +Component({ + /** + * 组件的属性列表 + */ + properties: { + chooseAvatar: { + type: Boolean, + value: false, + }, + chooseMessage: { + type: Boolean, + value: false, + }, + accept: { + type: String, + value: 'image', + }, + }, + + /** + * 组件的初始数据 + */ + data: { + cacheEditParams: {}, + }, + + /** + * 组件的方法列表 + */ + methods: { + GetExtensionFileName(pathfilename) { + const reg = /(\\+)/g; + const pString = pathfilename.replace(reg, '#'); //用正则表达式来将\或\\替换成# + const arr = pString.split('#'); // 以“#”为分隔符,将字符分解为数组 例如 D Program Files bg.png + const lastString = arr[arr.length - 1]; //取最后一个字符 + const arr2 = lastString.split('.'); // 再以"."作为分隔符 + return arr2[arr2.length - 1]; //将后缀名返回出来 + }, + handleAfterRead(e) { + this.uploadFile(e.detail.file).then((res) => { + this.triggerEvent('file', res as object); + }); + }, + handleChooseAvatar(e) { + this.uploadFile({ + fileType: 'image', + tempFilePath: e.detail.avatarUrl, + size: 0, + }).then((res) => { + this.triggerEvent('file', res as object); + }); + }, + handleChooseFile() { + wx.chooseMessageFile({ + type: 'file', + count: 1, + success: (res) => { + this.uploadFile({ + ...res.tempFiles[0], + fileType: res.tempFiles[0].type, + tempFilePath: res.tempFiles[0].path, + }).then((res) => { + this.triggerEvent('file', res as object); + }); + }, + fail() { + wx.showToast({ + icon: 'none', + title: '取消选择', + }); + }, + }); + }, + uploadFile(item) { + wx.showLoading({ + title: '正在上传', + }); + return new Promise((resolve, reject) => { + let url = `${app.globalData.upFileUrl}?r=file-service/upload-`; + if (item.fileType === 'image') { + url += 'img'; + } else if (item.fileType === 'video' || item.type === 'video') { + url += 'video'; + item.tempFilePath = item.url; + } else if (item.fileType === 'audio') { + url += 'audio'; + } else { + url += 'doc'; + } + wx.uploadFile({ + filePath: item.tempFilePath, + name: 'file', + url, + success: (res) => { + wx.hideLoading(); + const data = JSON.parse(res.data); + const suffix = this.GetExtensionFileName(data.data.Url); + const expandJson = { + fileId: '', + name: item.name || `病历相关文件.${suffix}`, + size: (item.size / 1024).toFixed(2), + fileUrl: data.data.Url, + suffix, + type: item.fileType, + imgUrl: '', + duration: 0, + videoUrl: '', + hash: '', + }; + if (item.fileType === 'image') { + expandJson.imgUrl = data.data.Url; + } else if (item.fileType === 'video' || item.type === 'video') { + expandJson.imgUrl = data.data.SnapshotUrl; + } else if (item.fileType === 'audio') { + expandJson.duration = Number.parseInt(String(item.duration / 1000)); + } + resolve(expandJson); + }, + fail() { + wx.hideLoading(); + reject(new Error('上传失败')); + }, + }); + }); + }, + }, +}); + +export {}; diff --git a/src/components/uploadFile/index.wxml b/src/components/uploadFile/index.wxml new file mode 100644 index 0000000..4fcc942 --- /dev/null +++ b/src/components/uploadFile/index.wxml @@ -0,0 +1,9 @@ + + + + + diff --git a/src/custom-tab-bar/index.json b/src/custom-tab-bar/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/custom-tab-bar/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/custom-tab-bar/index.scss b/src/custom-tab-bar/index.scss new file mode 100644 index 0000000..247abdd --- /dev/null +++ b/src/custom-tab-bar/index.scss @@ -0,0 +1,130 @@ +.tabbar { + padding: 0 0 calc(env(safe-area-inset-bottom) + 12rpx); + display: flex; + justify-content: space-between; + background-color: #fff; + box-shadow: 0rpx 3rpx 27rpx 0rpx rgba(40, 48, 49, 0.1); + .custom { + flex-shrink: 0; + position: relative; + width: 94rpx; + height: 64rpx; + .add { + position: absolute; + top: -42rpx; + width: 94rpx; + height: 94rpx; + } + .popup-tip { + padding: 20rpx 34rpx 28rpx; + position: absolute; + top: -60rpx; + left: 50%; + transform: translate(-50%, -100%); + border-radius: 16rpx; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + box-shadow: 0 4rpx 11rpx rgba(0, 0, 0, 0.08); + .close { + position: absolute; + top: -10rpx; + right: -10rpx; + width: 40rpx; + height: 40rpx; + } + .content { + text-align: center; + font-size: 32rpx; + color: #fff; + white-space: nowrap; + line-height: 48rpx; + .plus { + color: #fff; + font-size: 48rpx; + font-weight: bold; + } + } + .pt-footer { + margin-top: 16rpx; + display: flex; + align-items: center; + justify-content: center; + gap: 24rpx; + white-space: nowrap; + .ok { + padding: 16rpx 42rpx; + font-size: 24rpx; + color: #00b4c5; + font-size: 32rpx; + line-height: 32rpx; + border-radius: 120rpx; + background: #fff; + } + } + &::after { + position: absolute; + content: ""; + bottom: -10rpx; + left: 50%; + transform: translateX(-50%); + width: 0; + height: 0; + border-style: solid; + border-width: 12rpx 12rpx 0 12rpx; + border-color: #56cabb transparent transparent transparent; + } + } + } + .tab-item { + position: relative; + padding-top: 10rpx; + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + .icon-wrap { + position: relative; + width: 48rpx; + height: 48rpx; + .icon { + display: block; + width: 100%; + height: 100%; + } + .icon-active { + display: none; + width: 100%; + height: 100%; + } + .dot { + position: absolute; + top: 0; + right: 0; + width: 16rpx; + height: 16rpx; + border-radius: 50%; + background-color: #ed4f39; + } + } + .name { + margin-top: 8rpx; + font-size: 22rpx; + color: rgba(20, 21, 21, 1); + line-height: 21rpx; + } + &.active { + .icon-wrap { + .icon { + display: none; + } + .icon-active { + display: block; + } + } + .name { + color: rgba(0, 180, 197, 1); + } + } + } +} diff --git a/src/custom-tab-bar/index.ts b/src/custom-tab-bar/index.ts new file mode 100644 index 0000000..2b54590 --- /dev/null +++ b/src/custom-tab-bar/index.ts @@ -0,0 +1,74 @@ +const _app = getApp(); + +// pages/story/a.ts +Component({ + /** + * 组件的属性列表 + */ + properties: {}, + + /** + * 组件的初始数据 + */ + data: { + showEntryCase: false, + active: 0, + notice: false, + tabbar: [ + { + path: "/pages/home/index", + name: "首页", + icon: "tab1.png", + iconActive: "tab-active1.png", + activeIndex: 1, + }, + { + path: "/pages/cases/index", + name: "病历", + icon: "tab2.png", + iconActive: "tab-active2.png", + activeIndex: 2, + }, + { + custom: true, + path: "/module1/pages/entryCases/index", + }, + { + path: "/pages/chatRoomList/index", + name: "学习窗", + icon: "tab3.png", + iconActive: "tab-active3.png", + activeIndex: 3, + }, + { + path: "/pages/my/index", + name: "我的", + icon: "tab4.png", + iconActive: "tab-active4.png", + activeIndex: 4, + }, + ], + userInfo: {}, + }, + /** + * 组件的方法列表 + */ + methods: { + handleTab(e: any) { + const { index } = e.currentTarget.dataset; + const tab = this.data.tabbar[index]; + if (tab.custom) { + this.handleClsoeCaseTip(); + wx.navigateTo({ + url: tab.path, + }); + } else { + wx.switchTab({ + url: tab.path, + }); + } + }, + }, +}); + +export {}; diff --git a/src/custom-tab-bar/index.wxml b/src/custom-tab-bar/index.wxml new file mode 100644 index 0000000..dd31ede --- /dev/null +++ b/src/custom-tab-bar/index.wxml @@ -0,0 +1,33 @@ + + + + + + + + 点击 + + + ,可录入病历 + + 邀约合作医生一起讨论哦 + + + 去录入 + + + + + + + + + + {{item.name}} + + + diff --git a/src/images/badge.png b/src/images/badge.png new file mode 100644 index 0000000..1a9d042 Binary files /dev/null and b/src/images/badge.png differ diff --git a/src/images/empty-1.png b/src/images/empty-1.png new file mode 100644 index 0000000..a8aa419 Binary files /dev/null and b/src/images/empty-1.png differ diff --git a/src/images/empty-search.png b/src/images/empty-search.png new file mode 100644 index 0000000..a8aa419 Binary files /dev/null and b/src/images/empty-search.png differ diff --git a/src/images/fold-up.png b/src/images/fold-up.png new file mode 100644 index 0000000..a64f696 Binary files /dev/null and b/src/images/fold-up.png differ diff --git a/src/images/home-bg.png b/src/images/home-bg.png new file mode 100644 index 0000000..bdb5bd1 Binary files /dev/null and b/src/images/home-bg.png differ diff --git a/src/images/home-card-bg.png b/src/images/home-card-bg.png new file mode 100644 index 0000000..cb768b6 Binary files /dev/null and b/src/images/home-card-bg.png differ diff --git a/src/images/home-logo.png b/src/images/home-logo.png new file mode 100644 index 0000000..3b40316 Binary files /dev/null and b/src/images/home-logo.png differ diff --git a/src/images/home-title.png b/src/images/home-title.png new file mode 100644 index 0000000..0e2433c Binary files /dev/null and b/src/images/home-title.png differ diff --git a/src/images/icon-close.png b/src/images/icon-close.png new file mode 100644 index 0000000..5934bee Binary files /dev/null and b/src/images/icon-close.png differ diff --git a/src/images/icon-collection-active.png b/src/images/icon-collection-active.png new file mode 100644 index 0000000..5d90bde Binary files /dev/null and b/src/images/icon-collection-active.png differ diff --git a/src/images/icon-collection.png b/src/images/icon-collection.png new file mode 100644 index 0000000..e3c680b Binary files /dev/null and b/src/images/icon-collection.png differ diff --git a/src/images/icon-collection1.png b/src/images/icon-collection1.png new file mode 100644 index 0000000..5c049c0 Binary files /dev/null and b/src/images/icon-collection1.png differ diff --git a/src/images/icon-directory.png b/src/images/icon-directory.png new file mode 100644 index 0000000..b31527e Binary files /dev/null and b/src/images/icon-directory.png differ diff --git a/src/images/icon-edit.png b/src/images/icon-edit.png new file mode 100644 index 0000000..a5b54cc Binary files /dev/null and b/src/images/icon-edit.png differ diff --git a/src/images/icon-eye.png b/src/images/icon-eye.png new file mode 100644 index 0000000..a96ca4b Binary files /dev/null and b/src/images/icon-eye.png differ diff --git a/src/images/icon-phone.png b/src/images/icon-phone.png new file mode 100644 index 0000000..2bc1ea2 Binary files /dev/null and b/src/images/icon-phone.png differ diff --git a/src/images/icon-pic.png b/src/images/icon-pic.png new file mode 100644 index 0000000..a9752d9 Binary files /dev/null and b/src/images/icon-pic.png differ diff --git a/src/images/icon-play.png b/src/images/icon-play.png new file mode 100644 index 0000000..3ae7ad9 Binary files /dev/null and b/src/images/icon-play.png differ diff --git a/src/images/icon-prev.png b/src/images/icon-prev.png new file mode 100644 index 0000000..e73b2b9 Binary files /dev/null and b/src/images/icon-prev.png differ diff --git a/src/images/icon-search.png b/src/images/icon-search.png new file mode 100644 index 0000000..e12c699 Binary files /dev/null and b/src/images/icon-search.png differ diff --git a/src/images/icon-stop.png b/src/images/icon-stop.png new file mode 100644 index 0000000..02c9aa6 Binary files /dev/null and b/src/images/icon-stop.png differ diff --git a/src/images/item-tip-close.png b/src/images/item-tip-close.png new file mode 100644 index 0000000..c414d84 Binary files /dev/null and b/src/images/item-tip-close.png differ diff --git a/src/images/login-bg.png b/src/images/login-bg.png new file mode 100644 index 0000000..dd52936 Binary files /dev/null and b/src/images/login-bg.png differ diff --git a/src/images/login-popup-badge.png b/src/images/login-popup-badge.png new file mode 100644 index 0000000..7bcac54 Binary files /dev/null and b/src/images/login-popup-badge.png differ diff --git a/src/images/login-popup-title.png b/src/images/login-popup-title.png new file mode 100644 index 0000000..d069750 Binary files /dev/null and b/src/images/login-popup-title.png differ diff --git a/src/images/mpPic.jpg b/src/images/mpPic.jpg new file mode 100644 index 0000000..88c9e60 Binary files /dev/null and b/src/images/mpPic.jpg differ diff --git a/src/images/my-list-icon1.png b/src/images/my-list-icon1.png new file mode 100644 index 0000000..cdc4760 Binary files /dev/null and b/src/images/my-list-icon1.png differ diff --git a/src/images/my-list-icon2.png b/src/images/my-list-icon2.png new file mode 100644 index 0000000..af1e1d1 Binary files /dev/null and b/src/images/my-list-icon2.png differ diff --git a/src/images/my-list-icon3.png b/src/images/my-list-icon3.png new file mode 100644 index 0000000..13a3b39 Binary files /dev/null and b/src/images/my-list-icon3.png differ diff --git a/src/images/my-list-icon4.png b/src/images/my-list-icon4.png new file mode 100644 index 0000000..abb7fe9 Binary files /dev/null and b/src/images/my-list-icon4.png differ diff --git a/src/images/none.png b/src/images/none.png new file mode 100644 index 0000000..e0c650f Binary files /dev/null and b/src/images/none.png differ diff --git a/src/images/place.png b/src/images/place.png new file mode 100644 index 0000000..15f30f8 Binary files /dev/null and b/src/images/place.png differ diff --git a/src/images/popup1-bg.png b/src/images/popup1-bg.png new file mode 100644 index 0000000..9130378 Binary files /dev/null and b/src/images/popup1-bg.png differ diff --git a/src/images/qyPic.jpg b/src/images/qyPic.jpg new file mode 100644 index 0000000..5c08e8f Binary files /dev/null and b/src/images/qyPic.jpg differ diff --git a/src/images/relove.png b/src/images/relove.png new file mode 100644 index 0000000..e01d5b4 Binary files /dev/null and b/src/images/relove.png differ diff --git a/src/images/slogan-bg.png b/src/images/slogan-bg.png new file mode 100644 index 0000000..b6eabb8 Binary files /dev/null and b/src/images/slogan-bg.png differ diff --git a/src/images/tabbar/tab-active1.png b/src/images/tabbar/tab-active1.png new file mode 100644 index 0000000..fee4acb Binary files /dev/null and b/src/images/tabbar/tab-active1.png differ diff --git a/src/images/tabbar/tab-active2.png b/src/images/tabbar/tab-active2.png new file mode 100644 index 0000000..ab74304 Binary files /dev/null and b/src/images/tabbar/tab-active2.png differ diff --git a/src/images/tabbar/tab1.png b/src/images/tabbar/tab1.png new file mode 100644 index 0000000..f383c9a Binary files /dev/null and b/src/images/tabbar/tab1.png differ diff --git a/src/images/tabbar/tab2.png b/src/images/tabbar/tab2.png new file mode 100644 index 0000000..01c5646 Binary files /dev/null and b/src/images/tabbar/tab2.png differ diff --git a/src/images/topic-bg.png b/src/images/topic-bg.png new file mode 100644 index 0000000..01bcc43 Binary files /dev/null and b/src/images/topic-bg.png differ diff --git a/src/images/topic-card-bg.png b/src/images/topic-card-bg.png new file mode 100644 index 0000000..dfc03ab Binary files /dev/null and b/src/images/topic-card-bg.png differ diff --git a/src/images/topic-end-bg.png b/src/images/topic-end-bg.png new file mode 100644 index 0000000..46a30cb Binary files /dev/null and b/src/images/topic-end-bg.png differ diff --git a/src/images/topic-start-badge.png b/src/images/topic-start-badge.png new file mode 100644 index 0000000..5358a16 Binary files /dev/null and b/src/images/topic-start-badge.png differ diff --git a/src/images/topic-start-code1.png b/src/images/topic-start-code1.png new file mode 100644 index 0000000..d715078 Binary files /dev/null and b/src/images/topic-start-code1.png differ diff --git a/src/images/topic-start-code2.png b/src/images/topic-start-code2.png new file mode 100644 index 0000000..8b87823 Binary files /dev/null and b/src/images/topic-start-code2.png differ diff --git a/src/images/topic-start.png b/src/images/topic-start.png new file mode 100644 index 0000000..4d75520 Binary files /dev/null and b/src/images/topic-start.png differ diff --git a/src/images/user.png b/src/images/user.png new file mode 100644 index 0000000..e9dff94 Binary files /dev/null and b/src/images/user.png differ diff --git a/src/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts b/src/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/action-sheet/index.js b/src/miniprogram_npm/@vant/weapp/action-sheet/index.js new file mode 100644 index 0000000..8403b68 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/action-sheet/index.js @@ -0,0 +1,78 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +(0, component_1.VantComponent)({ + classes: ['list-class'], + mixins: [button_1.button], + props: { + show: Boolean, + title: String, + cancelText: String, + description: String, + round: { + type: Boolean, + value: true, + }, + zIndex: { + type: Number, + value: 100, + }, + actions: { + type: Array, + value: [], + }, + overlay: { + type: Boolean, + value: true, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + }, + closeOnClickAction: { + type: Boolean, + value: true, + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + methods: { + onSelect: function (event) { + var _this = this; + var index = event.currentTarget.dataset.index; + var _a = this.data, actions = _a.actions, closeOnClickAction = _a.closeOnClickAction, canIUseGetUserProfile = _a.canIUseGetUserProfile; + var item = actions[index]; + if (item) { + this.$emit('select', item); + if (closeOnClickAction) { + this.onClose(); + } + if (item.openType === 'getUserInfo' && canIUseGetUserProfile) { + wx.getUserProfile({ + desc: item.getUserProfileDesc || ' ', + complete: function (userProfile) { + _this.$emit('getuserinfo', userProfile); + }, + }); + } + } + }, + onCancel: function () { + this.$emit('cancel'); + }, + onClose: function () { + this.$emit('close'); + }, + onClickOverlay: function () { + this.$emit('click-overlay'); + this.onClose(); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/action-sheet/index.json b/src/miniprogram_npm/@vant/weapp/action-sheet/index.json new file mode 100644 index 0000000..19bf989 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/action-sheet/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-popup": "../popup/index", + "van-loading": "../loading/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxml b/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxml new file mode 100644 index 0000000..6311e33 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxml @@ -0,0 +1,70 @@ + + + + + {{ title }} + + + + {{ description }} + + + + + + + + + + {{ cancelText }} + + + diff --git a/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxss b/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxss new file mode 100644 index 0000000..eedd361 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-action-sheet{color:var(--action-sheet-item-text-color,#323233);max-height:var(--action-sheet-max-height,90%)!important}.van-action-sheet__cancel,.van-action-sheet__item{background-color:var(--action-sheet-item-background,#fff);font-size:var(--action-sheet-item-font-size,16px);line-height:var(--action-sheet-item-line-height,22px);padding:14px 16px;text-align:center}.van-action-sheet__cancel--hover,.van-action-sheet__item--hover{background-color:#f2f3f5}.van-action-sheet__cancel:after,.van-action-sheet__item:after{border-width:0}.van-action-sheet__cancel{color:var(--action-sheet-cancel-text-color,#646566)}.van-action-sheet__gap{background-color:var(--action-sheet-cancel-padding-color,#f7f8fa);display:block;height:var(--action-sheet-cancel-padding-top,8px)}.van-action-sheet__item--disabled{color:var(--action-sheet-item-disabled-text-color,#c8c9cc)}.van-action-sheet__item--disabled.van-action-sheet__item--hover{background-color:var(--action-sheet-item-background,#fff)}.van-action-sheet__subname{color:var(--action-sheet-subname-color,#969799);font-size:var(--action-sheet-subname-font-size,12px);line-height:var(--action-sheet-subname-line-height,20px);margin-top:var(--padding-xs,8px)}.van-action-sheet__header{font-size:var(--action-sheet-header-font-size,16px);font-weight:var(--font-weight-bold,500);line-height:var(--action-sheet-header-height,48px);text-align:center}.van-action-sheet__description{color:var(--action-sheet-description-color,#969799);font-size:var(--action-sheet-description-font-size,14px);line-height:var(--action-sheet-description-line-height,20px);padding:20px var(--padding-md,16px);text-align:center}.van-action-sheet__close{color:var(--action-sheet-close-icon-color,#c8c9cc);font-size:var(--action-sheet-close-icon-size,22px)!important;line-height:inherit!important;padding:var(--action-sheet-close-icon-padding,0 16px);position:absolute!important;right:0;top:0}.van-action-sheet__loading{display:flex!important} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/area/index.d.ts b/src/miniprogram_npm/@vant/weapp/area/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/area/index.js b/src/miniprogram_npm/@vant/weapp/area/index.js new file mode 100644 index 0000000..73de66d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.js @@ -0,0 +1,235 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __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; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var shared_1 = require("../picker/shared"); +var utils_1 = require("../common/utils"); +var EMPTY_CODE = '000000'; +(0, component_1.VantComponent)({ + classes: ['active-class', 'toolbar-class', 'column-class'], + props: __assign(__assign({}, shared_1.pickerProps), { showToolbar: { + type: Boolean, + value: true, + }, value: { + type: String, + observer: function (value) { + this.code = value; + this.setValues(); + }, + }, areaList: { + type: Object, + value: {}, + observer: 'setValues', + }, columnsNum: { + type: null, + value: 3, + }, columnsPlaceholder: { + type: Array, + observer: function (val) { + this.setData({ + typeToColumnsPlaceholder: { + province: val[0] || '', + city: val[1] || '', + county: val[2] || '', + }, + }); + }, + } }), + data: { + columns: [{ values: [] }, { values: [] }, { values: [] }], + typeToColumnsPlaceholder: {}, + }, + mounted: function () { + var _this = this; + (0, utils_1.requestAnimationFrame)(function () { + _this.setValues(); + }); + }, + methods: { + getPicker: function () { + if (this.picker == null) { + this.picker = this.selectComponent('.van-area__picker'); + } + return this.picker; + }, + onCancel: function (event) { + this.emit('cancel', event.detail); + }, + onConfirm: function (event) { + var index = event.detail.index; + var value = event.detail.value; + value = this.parseValues(value); + this.emit('confirm', { value: value, index: index }); + }, + emit: function (type, detail) { + detail.values = detail.value; + delete detail.value; + this.$emit(type, detail); + }, + parseValues: function (values) { + var columnsPlaceholder = this.data.columnsPlaceholder; + return values.map(function (value, index) { + if (value && + (!value.code || value.name === columnsPlaceholder[index])) { + return __assign(__assign({}, value), { code: '', name: '' }); + } + return value; + }); + }, + onChange: function (event) { + var _this = this; + var _a; + var _b = event.detail, index = _b.index, picker = _b.picker, value = _b.value; + this.code = value[index].code; + (_a = this.setValues()) === null || _a === void 0 ? void 0 : _a.then(function () { + _this.$emit('change', { + picker: picker, + values: _this.parseValues(picker.getValues()), + index: index, + }); + }); + }, + getConfig: function (type) { + var areaList = this.data.areaList; + return (areaList && areaList["".concat(type, "_list")]) || {}; + }, + getList: function (type, code) { + if (type !== 'province' && !code) { + return []; + } + var typeToColumnsPlaceholder = this.data.typeToColumnsPlaceholder; + var list = this.getConfig(type); + var result = Object.keys(list).map(function (code) { return ({ + code: code, + name: list[code], + }); }); + if (code != null) { + // oversea code + if (code[0] === '9' && type === 'city') { + code = '9'; + } + result = result.filter(function (item) { return item.code.indexOf(code) === 0; }); + } + if (typeToColumnsPlaceholder[type] && result.length) { + // set columns placeholder + var codeFill = type === 'province' + ? '' + : type === 'city' + ? EMPTY_CODE.slice(2, 4) + : EMPTY_CODE.slice(4, 6); + result.unshift({ + code: "".concat(code).concat(codeFill), + name: typeToColumnsPlaceholder[type], + }); + } + return result; + }, + getIndex: function (type, code) { + var compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6; + var list = this.getList(type, code.slice(0, compareNum - 2)); + // oversea code + if (code[0] === '9' && type === 'province') { + compareNum = 1; + } + code = code.slice(0, compareNum); + for (var i = 0; i < list.length; i++) { + if (list[i].code.slice(0, compareNum) === code) { + return i; + } + } + return 0; + }, + setValues: function () { + var picker = this.getPicker(); + if (!picker) { + return; + } + var code = this.code || this.getDefaultCode(); + var provinceList = this.getList('province'); + var cityList = this.getList('city', code.slice(0, 2)); + var stack = []; + var indexes = []; + var columnsNum = this.data.columnsNum; + if (columnsNum >= 1) { + stack.push(picker.setColumnValues(0, provinceList, false)); + indexes.push(this.getIndex('province', code)); + } + if (columnsNum >= 2) { + stack.push(picker.setColumnValues(1, cityList, false)); + indexes.push(this.getIndex('city', code)); + if (cityList.length && code.slice(2, 4) === '00') { + code = cityList[0].code; + } + } + if (columnsNum === 3) { + stack.push(picker.setColumnValues(2, this.getList('county', code.slice(0, 4)), false)); + indexes.push(this.getIndex('county', code)); + } + return Promise.all(stack) + .catch(function () { }) + .then(function () { return picker.setIndexes(indexes); }) + .catch(function () { }); + }, + getDefaultCode: function () { + var columnsPlaceholder = this.data.columnsPlaceholder; + if (columnsPlaceholder.length) { + return EMPTY_CODE; + } + var countyCodes = Object.keys(this.getConfig('county')); + if (countyCodes[0]) { + return countyCodes[0]; + } + var cityCodes = Object.keys(this.getConfig('city')); + if (cityCodes[0]) { + return cityCodes[0]; + } + return ''; + }, + getValues: function () { + var picker = this.getPicker(); + if (!picker) { + return []; + } + return this.parseValues(picker.getValues().filter(function (value) { return !!value; })); + }, + getDetail: function () { + var values = this.getValues(); + var area = { + code: '', + country: '', + province: '', + city: '', + county: '', + }; + if (!values.length) { + return area; + } + var names = values.map(function (item) { return item.name; }); + area.code = values[values.length - 1].code; + if (area.code[0] === '9') { + area.country = names[1] || ''; + area.province = names[2] || ''; + } + else { + area.province = names[0] || ''; + area.city = names[1] || ''; + area.county = names[2] || ''; + } + return area; + }, + reset: function (code) { + this.code = code || ''; + return this.setValues(); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/area/index.json b/src/miniprogram_npm/@vant/weapp/area/index.json new file mode 100644 index 0000000..a778e91 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/area/index.wxml b/src/miniprogram_npm/@vant/weapp/area/index.wxml new file mode 100644 index 0000000..3a437b7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.wxml @@ -0,0 +1,20 @@ + + + diff --git a/src/miniprogram_npm/@vant/weapp/area/index.wxs b/src/miniprogram_npm/@vant/weapp/area/index.wxs new file mode 100644 index 0000000..07723c1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.wxs @@ -0,0 +1,8 @@ +/* eslint-disable */ +function displayColumns(columns, columnsNum) { + return columns.slice(0, +columnsNum); +} + +module.exports = { + displayColumns: displayColumns, +}; diff --git a/src/miniprogram_npm/@vant/weapp/area/index.wxss b/src/miniprogram_npm/@vant/weapp/area/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/button/index.d.ts b/src/miniprogram_npm/@vant/weapp/button/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/button/index.js b/src/miniprogram_npm/@vant/weapp/button/index.js new file mode 100644 index 0000000..984135c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.js @@ -0,0 +1,67 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +var version_1 = require("../common/version"); +var mixins = [button_1.button]; +if ((0, version_1.canIUseFormFieldButton)()) { + mixins.push('wx://form-field-button'); +} +(0, component_1.VantComponent)({ + mixins: mixins, + classes: ['hover-class', 'loading-class'], + data: { + baseStyle: '', + }, + props: { + formType: String, + icon: String, + classPrefix: { + type: String, + value: 'van-icon', + }, + plain: Boolean, + block: Boolean, + round: Boolean, + square: Boolean, + loading: Boolean, + hairline: Boolean, + disabled: Boolean, + loadingText: String, + customStyle: String, + loadingType: { + type: String, + value: 'circular', + }, + type: { + type: String, + value: 'default', + }, + dataset: null, + size: { + type: String, + value: 'normal', + }, + loadingSize: { + type: String, + value: '20px', + }, + color: String, + }, + methods: { + onClick: function (event) { + var _this = this; + this.$emit('click', event); + var _a = this.data, canIUseGetUserProfile = _a.canIUseGetUserProfile, openType = _a.openType, getUserProfileDesc = _a.getUserProfileDesc, lang = _a.lang; + if (openType === 'getUserInfo' && canIUseGetUserProfile) { + wx.getUserProfile({ + desc: getUserProfileDesc || ' ', + lang: lang || 'en', + complete: function (userProfile) { + _this.$emit('getuserinfo', userProfile); + }, + }); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/button/index.json b/src/miniprogram_npm/@vant/weapp/button/index.json new file mode 100644 index 0000000..e00a588 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-loading": "../loading/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/button/index.wxml b/src/miniprogram_npm/@vant/weapp/button/index.wxml new file mode 100644 index 0000000..e7f60f1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.wxml @@ -0,0 +1,56 @@ + + + + diff --git a/src/miniprogram_npm/@vant/weapp/button/index.wxs b/src/miniprogram_npm/@vant/weapp/button/index.wxs new file mode 100644 index 0000000..8b649fe --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.wxs @@ -0,0 +1,39 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); + +function rootStyle(data) { + if (!data.color) { + return data.customStyle; + } + + var properties = { + color: data.plain ? data.color : '#fff', + background: data.plain ? null : data.color, + }; + + // hide border when color is linear-gradient + if (data.color.indexOf('gradient') !== -1) { + properties.border = 0; + } else { + properties['border-color'] = data.color; + } + + return style([properties, data.customStyle]); +} + +function loadingColor(data) { + if (data.plain) { + return data.color ? data.color : '#c9c9c9'; + } + + if (data.type === 'default') { + return '#c9c9c9'; + } + + return '#fff'; +} + +module.exports = { + rootStyle: rootStyle, + loadingColor: loadingColor, +}; diff --git a/src/miniprogram_npm/@vant/weapp/button/index.wxss b/src/miniprogram_npm/@vant/weapp/button/index.wxss new file mode 100644 index 0000000..bd8bb5a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-button{-webkit-text-size-adjust:100%;align-items:center;-webkit-appearance:none;border-radius:var(--button-border-radius,2px);box-sizing:border-box;display:inline-flex;font-size:var(--button-default-font-size,16px);height:var(--button-default-height,44px);justify-content:center;line-height:var(--button-line-height,20px);padding:0;position:relative;text-align:center;transition:opacity .2s;vertical-align:middle}.van-button:before{background-color:#000;border:inherit;border-color:#000;border-radius:inherit;content:" ";height:100%;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{background:var(--button-default-background-color,#fff);border:var(--button-border-width,1px) solid var(--button-default-border-color,#ebedf0);color:var(--button-default-color,#323233)}.van-button--primary{background:var(--button-primary-background-color,#07c160);border:var(--button-border-width,1px) solid var(--button-primary-border-color,#07c160);color:var(--button-primary-color,#fff)}.van-button--info{background:var(--button-info-background-color,#1989fa);border:var(--button-border-width,1px) solid var(--button-info-border-color,#1989fa);color:var(--button-info-color,#fff)}.van-button--danger{background:var(--button-danger-background-color,#ee0a24);border:var(--button-border-width,1px) solid var(--button-danger-border-color,#ee0a24);color:var(--button-danger-color,#fff)}.van-button--warning{background:var(--button-warning-background-color,#ff976a);border:var(--button-border-width,1px) solid var(--button-warning-border-color,#ff976a);color:var(--button-warning-color,#fff)}.van-button--plain{background:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:var(--button-warning-background-color,#ff976a)}.van-button--large{height:var(--button-large-height,50px);width:100%}.van-button--normal{font-size:var(--button-normal-font-size,14px);padding:0 15px}.van-button--small{font-size:var(--button-small-font-size,12px);height:var(--button-small-height,30px);min-width:var(--button-small-min-width,60px);padding:0 var(--padding-xs,8px)}.van-button--mini{display:inline-block;font-size:var(--button-mini-font-size,10px);height:var(--button-mini-height,22px);min-width:var(--button-mini-min-width,50px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:flex;width:100%}.van-button--round{border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{opacity:var(--button-disabled-opacity,.5)}.van-button__text{display:inline}.van-button__icon+.van-button__text:not(:empty),.van-button__loading-text{margin-left:4px}.van-button__icon{line-height:inherit!important;min-width:1em;vertical-align:top}.van-button--hairline{border-width:0;padding-top:1px}.van-button--hairline:after{border-color:inherit;border-radius:calc(var(--button-border-radius, 2px)*2);border-width:1px}.van-button--hairline.van-button--round:after{border-radius:var(--button-round-border-radius,999px)}.van-button--hairline.van-button--square:after{border-radius:0} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/calendar/calendar.wxml b/src/miniprogram_npm/@vant/weapp/calendar/calendar.wxml new file mode 100644 index 0000000..2ddb048 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/calendar.wxml @@ -0,0 +1,70 @@ + + + +
+ +
+ + + + + + + + + + + + {{ + computed.getButtonDisabled(type, currentDate, minRange) + ? confirmDisabledText + : confirmText + }} + + +
diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.js b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.js new file mode 100644 index 0000000..544b3a4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.js @@ -0,0 +1,45 @@ +"use strict"; +var __spreadArray = (this && this.__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)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../../../common/component"); +(0, component_1.VantComponent)({ + props: { + title: { + type: String, + value: '日期选择', + }, + subtitle: String, + showTitle: Boolean, + showSubtitle: Boolean, + firstDayOfWeek: { + type: Number, + observer: 'initWeekDay', + }, + }, + data: { + weekdays: [], + }, + created: function () { + this.initWeekDay(); + }, + methods: { + initWeekDay: function () { + var defaultWeeks = ['日', '一', '二', '三', '四', '五', '六']; + var firstDayOfWeek = this.data.firstDayOfWeek || 0; + this.setData({ + weekdays: __spreadArray(__spreadArray([], defaultWeeks.slice(firstDayOfWeek, 7), true), defaultWeeks.slice(0, firstDayOfWeek), true), + }); + }, + onClickSubtitle: function (event) { + this.$emit('click-subtitle', event); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.json b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml new file mode 100644 index 0000000..7e56c83 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml @@ -0,0 +1,16 @@ + + + + {{ title }} + + + + {{ subtitle }} + + + + + {{ item }} + + + diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss new file mode 100644 index 0000000..272537e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss @@ -0,0 +1 @@ +@import '../../../common/index.wxss';.van-calendar__header{box-shadow:var(--calendar-header-box-shadow,0 2px 10px hsla(220,1%,50%,.16));flex-shrink:0}.van-calendar__header-subtitle,.van-calendar__header-title{font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__header-title+.van-calendar__header-title,.van-calendar__header-title:empty{display:none}.van-calendar__header-title:empty+.van-calendar__header-title{display:block!important}.van-calendar__weekdays{display:flex}.van-calendar__weekday{flex:1;font-size:var(--calendar-weekdays-font-size,12px);line-height:var(--calendar-weekdays-height,30px);text-align:center} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts new file mode 100644 index 0000000..3ccf85a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts @@ -0,0 +1,6 @@ +export interface Day { + date: Date; + type: string; + text: number; + bottomInfo?: string; +} diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.js b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.js new file mode 100644 index 0000000..4d137f5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.js @@ -0,0 +1,158 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../../../common/component"); +var utils_1 = require("../../utils"); +(0, component_1.VantComponent)({ + props: { + date: { + type: null, + observer: 'setDays', + }, + type: { + type: String, + observer: 'setDays', + }, + color: String, + minDate: { + type: null, + observer: 'setDays', + }, + maxDate: { + type: null, + observer: 'setDays', + }, + showMark: Boolean, + rowHeight: null, + formatter: { + type: null, + observer: 'setDays', + }, + currentDate: { + type: null, + observer: 'setDays', + }, + firstDayOfWeek: { + type: Number, + observer: 'setDays', + }, + allowSameDay: Boolean, + showSubtitle: Boolean, + showMonthTitle: Boolean, + }, + data: { + visible: true, + days: [], + }, + methods: { + onClick: function (event) { + var index = event.currentTarget.dataset.index; + var item = this.data.days[index]; + if (item.type !== 'disabled') { + this.$emit('click', item); + } + }, + setDays: function () { + var days = []; + var startDate = new Date(this.data.date); + var year = startDate.getFullYear(); + var month = startDate.getMonth(); + var totalDay = (0, utils_1.getMonthEndDay)(startDate.getFullYear(), startDate.getMonth() + 1); + for (var day = 1; day <= totalDay; day++) { + var date = new Date(year, month, day); + var type = this.getDayType(date); + var config = { + date: date, + type: type, + text: day, + bottomInfo: this.getBottomInfo(type), + }; + if (this.data.formatter) { + config = this.data.formatter(config); + } + days.push(config); + } + this.setData({ days: days }); + }, + getMultipleDayType: function (day) { + var currentDate = this.data.currentDate; + if (!Array.isArray(currentDate)) { + return ''; + } + var isSelected = function (date) { + return currentDate.some(function (item) { return (0, utils_1.compareDay)(item, date) === 0; }); + }; + if (isSelected(day)) { + var prevDay = (0, utils_1.getPrevDay)(day); + var nextDay = (0, utils_1.getNextDay)(day); + var prevSelected = isSelected(prevDay); + var nextSelected = isSelected(nextDay); + if (prevSelected && nextSelected) { + return 'multiple-middle'; + } + if (prevSelected) { + return 'end'; + } + return nextSelected ? 'start' : 'multiple-selected'; + } + return ''; + }, + getRangeDayType: function (day) { + var _a = this.data, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay; + if (!Array.isArray(currentDate)) { + return ''; + } + var startDay = currentDate[0], endDay = currentDate[1]; + if (!startDay) { + return ''; + } + var compareToStart = (0, utils_1.compareDay)(day, startDay); + if (!endDay) { + return compareToStart === 0 ? 'start' : ''; + } + var compareToEnd = (0, utils_1.compareDay)(day, endDay); + if (compareToStart === 0 && compareToEnd === 0 && allowSameDay) { + return 'start-end'; + } + if (compareToStart === 0) { + return 'start'; + } + if (compareToEnd === 0) { + return 'end'; + } + if (compareToStart > 0 && compareToEnd < 0) { + return 'middle'; + } + return ''; + }, + getDayType: function (day) { + var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, currentDate = _a.currentDate; + if ((0, utils_1.compareDay)(day, minDate) < 0 || (0, utils_1.compareDay)(day, maxDate) > 0) { + return 'disabled'; + } + if (type === 'single') { + return (0, utils_1.compareDay)(day, currentDate) === 0 ? 'selected' : ''; + } + if (type === 'multiple') { + return this.getMultipleDayType(day); + } + /* istanbul ignore else */ + if (type === 'range') { + return this.getRangeDayType(day); + } + return ''; + }, + getBottomInfo: function (type) { + if (this.data.type === 'range') { + if (type === 'start') { + return '开始'; + } + if (type === 'end') { + return '结束'; + } + if (type === 'start-end') { + return '开始/结束'; + } + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.json b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml new file mode 100644 index 0000000..0c73b2f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml @@ -0,0 +1,39 @@ + + + + + + {{ computed.formatMonthTitle(date) }} + + + + + {{ computed.getMark(date) }} + + + + + {{ item.topInfo }} + {{ item.text }} + + {{ item.bottomInfo }} + + + + + {{ item.topInfo }} + {{ item.text }} + + {{ item.bottomInfo }} + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs new file mode 100644 index 0000000..55e45a5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs @@ -0,0 +1,71 @@ +/* eslint-disable */ +var utils = require('../../utils.wxs'); + +function getMark(date) { + return getDate(date).getMonth() + 1; +} + +var ROW_HEIGHT = 64; + +function getDayStyle(type, index, date, rowHeight, color, firstDayOfWeek) { + var style = []; + var current = getDate(date).getDay() || 7; + var offset = current < firstDayOfWeek ? (7 - firstDayOfWeek + current) : + current === 7 && firstDayOfWeek === 0 ? 0 : + (current - firstDayOfWeek); + + if (index === 0) { + style.push(['margin-left', (100 * offset) / 7 + '%']); + } + + if (rowHeight !== ROW_HEIGHT) { + style.push(['height', rowHeight + 'px']); + } + + if (color) { + if ( + type === 'start' || + type === 'end' || + type === 'start-end' || + type === 'multiple-selected' || + type === 'multiple-middle' + ) { + style.push(['background', color]); + } else if (type === 'middle') { + style.push(['color', color]); + } + } + + return style + .map(function(item) { + return item.join(':'); + }) + .join(';'); +} + +function formatMonthTitle(date) { + date = getDate(date); + return date.getFullYear() + '年' + (date.getMonth() + 1) + '月'; +} + +function getMonthStyle(visible, date, rowHeight) { + if (!visible) { + date = getDate(date); + + var totalDay = utils.getMonthEndDay( + date.getFullYear(), + date.getMonth() + 1 + ); + var offset = getDate(date).getDay(); + var padding = Math.ceil((totalDay + offset) / 7) * rowHeight; + + return 'padding-bottom:' + padding + 'px'; + } +} + +module.exports = { + getMark: getMark, + getDayStyle: getDayStyle, + formatMonthTitle: formatMonthTitle, + getMonthStyle: getMonthStyle +}; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss new file mode 100644 index 0000000..9aee73d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss @@ -0,0 +1 @@ +@import '../../../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:100%}.van-calendar__month-title{font-size:var(--calendar-month-title-font-size,14px);font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__days{display:flex;flex-wrap:wrap;position:relative;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{color:var(--calendar-month-mark-color,rgba(242,243,245,.8));font-size:var(--calendar-month-mark-font-size,160px);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:0}.van-calendar__day,.van-calendar__selected-day{align-items:center;display:flex;justify-content:center;text-align:center}.van-calendar__day{font-size:var(--calendar-day-font-size,16px);height:var(--calendar-day-height,64px);position:relative;width:14.285%}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{background-color:var(--calendar-range-edge-background-color,#ee0a24);color:var(--calendar-range-edge-color,#fff)}.van-calendar__day--start{border-radius:4px 0 0 4px}.van-calendar__day--end{border-radius:0 4px 4px 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px}.van-calendar__day--middle{color:var(--calendar-range-middle-color,#ee0a24)}.van-calendar__day--middle:after{background-color:currentColor;bottom:0;content:"";left:0;opacity:var(--calendar-range-middle-background-opacity,.1);position:absolute;right:0;top:0}.van-calendar__day--disabled{color:var(--calendar-day-disabled-color,#c8c9cc);cursor:default}.van-calendar__bottom-info,.van-calendar__top-info{font-size:var(--calendar-info-font-size,10px);left:0;line-height:var(--calendar-info-line-height,14px);position:absolute;right:0}@media (max-width:350px){.van-calendar__bottom-info,.van-calendar__top-info{font-size:9px}}.van-calendar__top-info{top:6px}.van-calendar__bottom-info{bottom:6px}.van-calendar__selected-day{background-color:var(--calendar-selected-day-background-color,#ee0a24);border-radius:4px;color:var(--calendar-selected-day-color,#fff);height:var(--calendar-selected-day-size,54px);width:var(--calendar-selected-day-size,54px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.d.ts b/src/miniprogram_npm/@vant/weapp/calendar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.js b/src/miniprogram_npm/@vant/weapp/calendar/index.js new file mode 100644 index 0000000..7a7324d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.js @@ -0,0 +1,383 @@ +"use strict"; +var __spreadArray = (this && this.__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)); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var utils_1 = require("./utils"); +var toast_1 = __importDefault(require("../toast/toast")); +var utils_2 = require("../common/utils"); +var initialMinDate = (0, utils_1.getToday)().getTime(); +var initialMaxDate = (function () { + var now = (0, utils_1.getToday)(); + return new Date(now.getFullYear(), now.getMonth() + 6, now.getDate()).getTime(); +})(); +var getTime = function (date) { + return date instanceof Date ? date.getTime() : date; +}; +(0, component_1.VantComponent)({ + props: { + title: { + type: String, + value: '日期选择', + }, + color: String, + show: { + type: Boolean, + observer: function (val) { + if (val) { + this.initRect(); + this.scrollIntoView(); + } + }, + }, + formatter: null, + confirmText: { + type: String, + value: '确定', + }, + confirmDisabledText: { + type: String, + value: '确定', + }, + rangePrompt: String, + showRangePrompt: { + type: Boolean, + value: true, + }, + defaultDate: { + type: null, + value: (0, utils_1.getToday)().getTime(), + observer: function (val) { + this.setData({ currentDate: val }); + this.scrollIntoView(); + }, + }, + allowSameDay: Boolean, + type: { + type: String, + value: 'single', + observer: 'reset', + }, + minDate: { + type: Number, + value: initialMinDate, + }, + maxDate: { + type: Number, + value: initialMaxDate, + }, + position: { + type: String, + value: 'bottom', + }, + rowHeight: { + type: null, + value: utils_1.ROW_HEIGHT, + }, + round: { + type: Boolean, + value: true, + }, + poppable: { + type: Boolean, + value: true, + }, + showMark: { + type: Boolean, + value: true, + }, + showTitle: { + type: Boolean, + value: true, + }, + showConfirm: { + type: Boolean, + value: true, + }, + showSubtitle: { + type: Boolean, + value: true, + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + }, + maxRange: { + type: null, + value: null, + }, + minRange: { + type: Number, + value: 1, + }, + firstDayOfWeek: { + type: Number, + value: 0, + }, + readonly: Boolean, + rootPortal: { + type: Boolean, + value: false, + }, + }, + data: { + subtitle: '', + currentDate: null, + scrollIntoView: '', + }, + watch: { + minDate: function () { + this.initRect(); + }, + maxDate: function () { + this.initRect(); + }, + }, + created: function () { + this.setData({ + currentDate: this.getInitialDate(this.data.defaultDate), + }); + }, + mounted: function () { + if (this.data.show || !this.data.poppable) { + this.initRect(); + this.scrollIntoView(); + } + }, + methods: { + reset: function () { + this.setData({ currentDate: this.getInitialDate(this.data.defaultDate) }); + this.scrollIntoView(); + }, + initRect: function () { + var _this = this; + if (this.contentObserver != null) { + this.contentObserver.disconnect(); + } + var contentObserver = this.createIntersectionObserver({ + thresholds: [0, 0.1, 0.9, 1], + observeAll: true, + }); + this.contentObserver = contentObserver; + contentObserver.relativeTo('.van-calendar__body'); + contentObserver.observe('.month', function (res) { + if (res.boundingClientRect.top <= res.relativeRect.top) { + // @ts-ignore + _this.setData({ subtitle: (0, utils_1.formatMonthTitle)(res.dataset.date) }); + } + }); + }, + limitDateRange: function (date, minDate, maxDate) { + if (minDate === void 0) { minDate = null; } + if (maxDate === void 0) { maxDate = null; } + minDate = minDate || this.data.minDate; + maxDate = maxDate || this.data.maxDate; + if ((0, utils_1.compareDay)(date, minDate) === -1) { + return minDate; + } + if ((0, utils_1.compareDay)(date, maxDate) === 1) { + return maxDate; + } + return date; + }, + getInitialDate: function (defaultDate) { + var _this = this; + if (defaultDate === void 0) { defaultDate = null; } + var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, allowSameDay = _a.allowSameDay; + if (!defaultDate) + return []; + var now = (0, utils_1.getToday)().getTime(); + if (type === 'range') { + if (!Array.isArray(defaultDate)) { + defaultDate = []; + } + var _b = defaultDate || [], startDay = _b[0], endDay = _b[1]; + var startDate = getTime(startDay || now); + var start = this.limitDateRange(startDate, minDate, allowSameDay ? startDate : (0, utils_1.getPrevDay)(new Date(maxDate)).getTime()); + var date = getTime(endDay || now); + var end = this.limitDateRange(date, allowSameDay ? date : (0, utils_1.getNextDay)(new Date(minDate)).getTime()); + return [start, end]; + } + if (type === 'multiple') { + if (Array.isArray(defaultDate)) { + return defaultDate.map(function (date) { return _this.limitDateRange(date); }); + } + return [this.limitDateRange(now)]; + } + if (!defaultDate || Array.isArray(defaultDate)) { + defaultDate = now; + } + return this.limitDateRange(defaultDate); + }, + scrollIntoView: function () { + var _this = this; + (0, utils_2.requestAnimationFrame)(function () { + var _a = _this.data, currentDate = _a.currentDate, type = _a.type, show = _a.show, poppable = _a.poppable, minDate = _a.minDate, maxDate = _a.maxDate; + if (!currentDate) + return; + // @ts-ignore + var targetDate = type === 'single' ? currentDate : currentDate[0]; + var displayed = show || !poppable; + if (!targetDate || !displayed) { + return; + } + var months = (0, utils_1.getMonths)(minDate, maxDate); + months.some(function (month, index) { + if ((0, utils_1.compareMonth)(month, targetDate) === 0) { + _this.setData({ scrollIntoView: "month".concat(index) }); + return true; + } + return false; + }); + }); + }, + onOpen: function () { + this.$emit('open'); + }, + onOpened: function () { + this.$emit('opened'); + }, + onClose: function () { + this.$emit('close'); + }, + onClosed: function () { + this.$emit('closed'); + }, + onClickDay: function (event) { + if (this.data.readonly) { + return; + } + var date = event.detail.date; + var _a = this.data, type = _a.type, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay; + if (type === 'range') { + // @ts-ignore + var startDay_1 = currentDate[0], endDay = currentDate[1]; + if (startDay_1 && !endDay) { + var compareToStart = (0, utils_1.compareDay)(date, startDay_1); + if (compareToStart === 1) { + var days_1 = this.selectComponent('.month').data.days; + days_1.some(function (day, index) { + var isDisabled = day.type === 'disabled' && + getTime(startDay_1) < getTime(day.date) && + getTime(day.date) < getTime(date); + if (isDisabled) { + (date = days_1[index - 1].date); + } + return isDisabled; + }); + this.select([startDay_1, date], true); + } + else if (compareToStart === -1) { + this.select([date, null]); + } + else if (allowSameDay) { + this.select([date, date], true); + } + } + else { + this.select([date, null]); + } + } + else if (type === 'multiple') { + var selectedIndex_1; + // @ts-ignore + var selected = currentDate.some(function (dateItem, index) { + var equal = (0, utils_1.compareDay)(dateItem, date) === 0; + if (equal) { + selectedIndex_1 = index; + } + return equal; + }); + if (selected) { + // @ts-ignore + var cancelDate = currentDate.splice(selectedIndex_1, 1); + this.setData({ currentDate: currentDate }); + this.unselect(cancelDate); + } + else { + // @ts-ignore + this.select(__spreadArray(__spreadArray([], currentDate, true), [date], false)); + } + } + else { + this.select(date, true); + } + }, + unselect: function (dateArray) { + var date = dateArray[0]; + if (date) { + this.$emit('unselect', (0, utils_1.copyDates)(date)); + } + }, + select: function (date, complete) { + if (complete && this.data.type === 'range') { + var valid = this.checkRange(date); + if (!valid) { + // auto selected to max range if showConfirm + if (this.data.showConfirm) { + this.emit([ + date[0], + (0, utils_1.getDayByOffset)(date[0], this.data.maxRange - 1), + ]); + } + else { + this.emit(date); + } + return; + } + } + this.emit(date); + if (complete && !this.data.showConfirm) { + this.onConfirm(); + } + }, + emit: function (date) { + this.setData({ + currentDate: Array.isArray(date) ? date.map(getTime) : getTime(date), + }); + this.$emit('select', (0, utils_1.copyDates)(date)); + }, + checkRange: function (date) { + var _a = this.data, maxRange = _a.maxRange, rangePrompt = _a.rangePrompt, showRangePrompt = _a.showRangePrompt; + if (maxRange && (0, utils_1.calcDateNum)(date) > maxRange) { + if (showRangePrompt) { + (0, toast_1.default)({ + context: this, + message: rangePrompt || "\u9009\u62E9\u5929\u6570\u4E0D\u80FD\u8D85\u8FC7 ".concat(maxRange, " \u5929"), + }); + } + this.$emit('over-range'); + return false; + } + return true; + }, + onConfirm: function () { + var _this = this; + if (this.data.type === 'range' && + !this.checkRange(this.data.currentDate)) { + return; + } + wx.nextTick(function () { + // @ts-ignore + _this.$emit('confirm', (0, utils_1.copyDates)(_this.data.currentDate)); + }); + }, + onClickSubtitle: function (event) { + this.$emit('click-subtitle', event); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.json b/src/miniprogram_npm/@vant/weapp/calendar/index.json new file mode 100644 index 0000000..397d5ae --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "header": "./components/header/index", + "month": "./components/month/index", + "van-button": "../button/index", + "van-popup": "../popup/index", + "van-toast": "../toast/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.wxml b/src/miniprogram_npm/@vant/weapp/calendar/index.wxml new file mode 100644 index 0000000..9d0fc6b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.wxml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.wxs b/src/miniprogram_npm/@vant/weapp/calendar/index.wxs new file mode 100644 index 0000000..0a56646 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.wxs @@ -0,0 +1,37 @@ +/* eslint-disable */ +var utils = require('./utils.wxs'); + +function getMonths(minDate, maxDate) { + var months = []; + var cursor = getDate(minDate); + + cursor.setDate(1); + + do { + months.push(cursor.getTime()); + cursor.setMonth(cursor.getMonth() + 1); + } while (utils.compareMonth(cursor, getDate(maxDate)) !== 1); + + return months; +} + +function getButtonDisabled(type, currentDate, minRange) { + if (currentDate == null) { + return true; + } + + if (type === 'range') { + return !currentDate[0] || !currentDate[1]; + } + + if (type === 'multiple') { + return currentDate.length < minRange; + } + + return !currentDate; +} + +module.exports = { + getMonths: getMonths, + getButtonDisabled: getButtonDisabled +}; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.wxss b/src/miniprogram_npm/@vant/weapp/calendar/index.wxss new file mode 100644 index 0000000..a1f1cf0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:var(--calendar-height,100%)}.van-calendar__close-icon{top:11px}.van-calendar__popup--bottom,.van-calendar__popup--top{height:var(--calendar-popup-height,90%)}.van-calendar__popup--left,.van-calendar__popup--right{height:100%}.van-calendar__body{-webkit-overflow-scrolling:touch;flex:1;overflow:auto}.van-calendar__footer{flex-shrink:0;padding:0 var(--padding-md,16px)}.van-calendar__footer--safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}.van-calendar__footer+.van-calendar__footer,.van-calendar__footer:empty{display:none}.van-calendar__footer:empty+.van-calendar__footer{display:block!important}.van-calendar__confirm{height:var(--calendar-confirm-button-height,36px)!important;line-height:var(--calendar-confirm-button-line-height,34px)!important;margin:var(--calendar-confirm-button-margin,7px 0)!important} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/calendar/utils.d.ts b/src/miniprogram_npm/@vant/weapp/calendar/utils.d.ts new file mode 100644 index 0000000..889e6e7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/utils.d.ts @@ -0,0 +1,12 @@ +export declare const ROW_HEIGHT = 64; +export declare function formatMonthTitle(date: Date): string; +export declare function compareMonth(date1: Date | number, date2: Date | number): 0 | 1 | -1; +export declare function compareDay(day1: Date | number, day2: Date | number): 0 | 1 | -1; +export declare function getDayByOffset(date: Date, offset: number): Date; +export declare function getPrevDay(date: Date): Date; +export declare function getNextDay(date: Date): Date; +export declare function getToday(): Date; +export declare function calcDateNum(date: [Date, Date]): number; +export declare function copyDates(dates: Date | Date[]): Date | Date[]; +export declare function getMonthEndDay(year: number, month: number): number; +export declare function getMonths(minDate: number, maxDate: number): number[]; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/utils.js b/src/miniprogram_npm/@vant/weapp/calendar/utils.js new file mode 100644 index 0000000..c9e5df7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/utils.js @@ -0,0 +1,97 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getMonths = exports.getMonthEndDay = exports.copyDates = exports.calcDateNum = exports.getToday = exports.getNextDay = exports.getPrevDay = exports.getDayByOffset = exports.compareDay = exports.compareMonth = exports.formatMonthTitle = exports.ROW_HEIGHT = void 0; +exports.ROW_HEIGHT = 64; +function formatMonthTitle(date) { + if (!(date instanceof Date)) { + date = new Date(date); + } + return "".concat(date.getFullYear(), "\u5E74").concat(date.getMonth() + 1, "\u6708"); +} +exports.formatMonthTitle = formatMonthTitle; +function compareMonth(date1, date2) { + if (!(date1 instanceof Date)) { + date1 = new Date(date1); + } + if (!(date2 instanceof Date)) { + date2 = new Date(date2); + } + var year1 = date1.getFullYear(); + var year2 = date2.getFullYear(); + var month1 = date1.getMonth(); + var month2 = date2.getMonth(); + if (year1 === year2) { + return month1 === month2 ? 0 : month1 > month2 ? 1 : -1; + } + return year1 > year2 ? 1 : -1; +} +exports.compareMonth = compareMonth; +function compareDay(day1, day2) { + if (!(day1 instanceof Date)) { + day1 = new Date(day1); + } + if (!(day2 instanceof Date)) { + day2 = new Date(day2); + } + var compareMonthResult = compareMonth(day1, day2); + if (compareMonthResult === 0) { + var date1 = day1.getDate(); + var date2 = day2.getDate(); + return date1 === date2 ? 0 : date1 > date2 ? 1 : -1; + } + return compareMonthResult; +} +exports.compareDay = compareDay; +function getDayByOffset(date, offset) { + date = new Date(date); + date.setDate(date.getDate() + offset); + return date; +} +exports.getDayByOffset = getDayByOffset; +function getPrevDay(date) { + return getDayByOffset(date, -1); +} +exports.getPrevDay = getPrevDay; +function getNextDay(date) { + return getDayByOffset(date, 1); +} +exports.getNextDay = getNextDay; +function getToday() { + var today = new Date(); + today.setHours(0, 0, 0, 0); + return today; +} +exports.getToday = getToday; +function calcDateNum(date) { + var day1 = new Date(date[0]).getTime(); + var day2 = new Date(date[1]).getTime(); + return (day2 - day1) / (1000 * 60 * 60 * 24) + 1; +} +exports.calcDateNum = calcDateNum; +function copyDates(dates) { + if (Array.isArray(dates)) { + return dates.map(function (date) { + if (date === null) { + return date; + } + return new Date(date); + }); + } + return new Date(dates); +} +exports.copyDates = copyDates; +function getMonthEndDay(year, month) { + return 32 - new Date(year, month - 1, 32).getDate(); +} +exports.getMonthEndDay = getMonthEndDay; +function getMonths(minDate, maxDate) { + var months = []; + var cursor = new Date(minDate); + cursor.setDate(1); + do { + months.push(cursor.getTime()); + cursor.setMonth(cursor.getMonth() + 1); + } while (compareMonth(cursor, maxDate) !== 1); + return months; +} +exports.getMonths = getMonths; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/utils.wxs b/src/miniprogram_npm/@vant/weapp/calendar/utils.wxs new file mode 100644 index 0000000..e57f6b3 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/utils.wxs @@ -0,0 +1,25 @@ +/* eslint-disable */ +function getMonthEndDay(year, month) { + return 32 - getDate(year, month - 1, 32).getDate(); +} + +function compareMonth(date1, date2) { + date1 = getDate(date1); + date2 = getDate(date2); + + var year1 = date1.getFullYear(); + var year2 = date2.getFullYear(); + var month1 = date1.getMonth(); + var month2 = date2.getMonth(); + + if (year1 === year2) { + return month1 === month2 ? 0 : month1 > month2 ? 1 : -1; + } + + return year1 > year2 ? 1 : -1; +} + +module.exports = { + getMonthEndDay: getMonthEndDay, + compareMonth: compareMonth +}; diff --git a/src/miniprogram_npm/@vant/weapp/card/index.d.ts b/src/miniprogram_npm/@vant/weapp/card/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/card/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/card/index.js b/src/miniprogram_npm/@vant/weapp/card/index.js new file mode 100644 index 0000000..2815655 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/card/index.js @@ -0,0 +1,51 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var link_1 = require("../mixins/link"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: [ + 'num-class', + 'desc-class', + 'thumb-class', + 'title-class', + 'price-class', + 'origin-price-class', + ], + mixins: [link_1.link], + props: { + tag: String, + num: String, + desc: String, + thumb: String, + title: String, + price: { + type: String, + observer: 'updatePrice', + }, + centered: Boolean, + lazyLoad: Boolean, + thumbLink: String, + originPrice: String, + thumbMode: { + type: String, + value: 'aspectFit', + }, + currency: { + type: String, + value: '¥', + }, + }, + methods: { + updatePrice: function () { + var price = this.data.price; + var priceArr = price.toString().split('.'); + this.setData({ + integerStr: priceArr[0], + decimalStr: priceArr[1] ? ".".concat(priceArr[1]) : '', + }); + }, + onClickThumb: function () { + this.jumpLink('thumbLink'); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/card/index.json b/src/miniprogram_npm/@vant/weapp/card/index.json new file mode 100644 index 0000000..e917407 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/card/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-tag": "../tag/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/card/index.wxml b/src/miniprogram_npm/@vant/weapp/card/index.wxml new file mode 100644 index 0000000..62173e4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/card/index.wxml @@ -0,0 +1,56 @@ + + + + + + + + + {{ tag }} + + + + + + + {{ title }} + + + {{ desc }} + + + + + + + + + {{ currency }} + {{ integerStr }} + {{ decimalStr }} + + + {{ currency }} {{ originPrice }} + + x {{ num }} + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/card/index.wxss b/src/miniprogram_npm/@vant/weapp/card/index.wxss new file mode 100644 index 0000000..0f4d7c5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/card/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-card{background-color:var(--card-background-color,#fafafa);box-sizing:border-box;color:var(--card-text-color,#323233);font-size:var(--card-font-size,12px);padding:var(--card-padding,8px 16px);position:relative}.van-card__header{display:flex}.van-card__header--center{align-items:center;justify-content:center}.van-card__thumb{flex:none;height:var(--card-thumb-size,88px);margin-right:var(--padding-xs,8px);position:relative;width:var(--card-thumb-size,88px)}.van-card__thumb:empty{display:none}.van-card__img{border-radius:8px;height:100%;width:100%}.van-card__content{display:flex;flex:1;flex-direction:column;justify-content:space-between;min-height:var(--card-thumb-size,88px);min-width:0;position:relative}.van-card__content--center{justify-content:center}.van-card__desc,.van-card__title{word-wrap:break-word}.van-card__title{font-weight:700;line-height:var(--card-title-line-height,16px)}.van-card__desc{color:var(--card-desc-color,#646566);line-height:var(--card-desc-line-height,20px)}.van-card__bottom{line-height:20px}.van-card__price{color:var(--card-price-color,#ee0a24);display:inline-block;font-size:var(--card-price-font-size,12px);font-weight:700}.van-card__price-integer{font-size:var(--card-price-integer-font-size,16px)}.van-card__price-decimal,.van-card__price-integer{font-family:var(--card-price-font-family,Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif)}.van-card__origin-price{color:var(--card-origin-price-color,#646566);display:inline-block;font-size:var(--card-origin-price-font-size,10px);margin-left:5px;text-decoration:line-through}.van-card__num{float:right}.van-card__tag{left:0;position:absolute!important;top:2px}.van-card__footer{flex:none;text-align:right;width:100%} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.d.ts b/src/miniprogram_npm/@vant/weapp/cascader/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.js b/src/miniprogram_npm/@vant/weapp/cascader/index.js new file mode 100644 index 0000000..f7c239c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.js @@ -0,0 +1,224 @@ +"use strict"; +var __spreadArray = (this && this.__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)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var FieldName; +(function (FieldName) { + FieldName["TEXT"] = "text"; + FieldName["VALUE"] = "value"; + FieldName["CHILDREN"] = "children"; +})(FieldName || (FieldName = {})); +var defaultFieldNames = { + text: FieldName.TEXT, + value: FieldName.VALUE, + children: FieldName.CHILDREN, +}; +(0, component_1.VantComponent)({ + props: { + title: String, + value: { + type: String, + }, + placeholder: { + type: String, + value: '请选择', + }, + activeColor: { + type: String, + value: '#1989fa', + }, + options: { + type: Array, + value: [], + }, + swipeable: { + type: Boolean, + value: false, + }, + closeable: { + type: Boolean, + value: true, + }, + showHeader: { + type: Boolean, + value: true, + }, + closeIcon: { + type: String, + value: 'cross', + }, + fieldNames: { + type: Object, + value: defaultFieldNames, + observer: 'updateFieldNames', + }, + useTitleSlot: Boolean, + }, + data: { + tabs: [], + activeTab: 0, + textKey: FieldName.TEXT, + valueKey: FieldName.VALUE, + childrenKey: FieldName.CHILDREN, + innerValue: '', + }, + watch: { + options: function () { + this.updateTabs(); + }, + value: function (newVal) { + this.updateValue(newVal); + }, + }, + created: function () { + this.updateTabs(); + }, + methods: { + updateValue: function (val) { + var _this = this; + if (val !== undefined) { + var values = this.data.tabs.map(function (tab) { return tab.selected && tab.selected[_this.data.valueKey]; }); + if (values.indexOf(val) > -1) { + return; + } + } + this.innerValue = val; + this.updateTabs(); + }, + updateFieldNames: function () { + var _a = this.data.fieldNames || defaultFieldNames, _b = _a.text, text = _b === void 0 ? 'text' : _b, _c = _a.value, value = _c === void 0 ? 'value' : _c, _d = _a.children, children = _d === void 0 ? 'children' : _d; + this.setData({ + textKey: text, + valueKey: value, + childrenKey: children, + }); + }, + getSelectedOptionsByValue: function (options, value) { + for (var i = 0; i < options.length; i++) { + var option = options[i]; + if (option[this.data.valueKey] === value) { + return [option]; + } + if (option[this.data.childrenKey]) { + var selectedOptions = this.getSelectedOptionsByValue(option[this.data.childrenKey], value); + if (selectedOptions) { + return __spreadArray([option], selectedOptions, true); + } + } + } + }, + updateTabs: function () { + var _this = this; + var options = this.data.options; + var innerValue = this.innerValue; + if (!options.length) { + return; + } + if (innerValue !== undefined) { + var selectedOptions = this.getSelectedOptionsByValue(options, innerValue); + if (selectedOptions) { + var optionsCursor_1 = options; + var tabs_1 = selectedOptions.map(function (option) { + var tab = { + options: optionsCursor_1, + selected: option, + }; + var next = optionsCursor_1.find(function (item) { return item[_this.data.valueKey] === option[_this.data.valueKey]; }); + if (next) { + optionsCursor_1 = next[_this.data.childrenKey]; + } + return tab; + }); + if (optionsCursor_1) { + tabs_1.push({ + options: optionsCursor_1, + selected: null, + }); + } + this.setData({ + tabs: tabs_1, + }); + wx.nextTick(function () { + _this.setData({ + activeTab: tabs_1.length - 1, + }); + }); + return; + } + } + this.setData({ + tabs: [ + { + options: options, + selected: null, + }, + ], + activeTab: 0, + }); + }, + onClose: function () { + this.$emit('close'); + }, + onClickTab: function (e) { + var _a = e.detail, tabIndex = _a.index, title = _a.title; + this.$emit('click-tab', { title: title, tabIndex: tabIndex }); + this.setData({ + activeTab: tabIndex, + }); + }, + // 选中 + onSelect: function (e) { + var _this = this; + var _a = e.currentTarget.dataset, option = _a.option, tabIndex = _a.tabIndex; + if (option && option.disabled) { + return; + } + var _b = this.data, valueKey = _b.valueKey, childrenKey = _b.childrenKey; + var tabs = this.data.tabs; + tabs[tabIndex].selected = option; + if (tabs.length > tabIndex + 1) { + tabs = tabs.slice(0, tabIndex + 1); + } + if (option[childrenKey]) { + var nextTab = { + options: option[childrenKey], + selected: null, + }; + if (tabs[tabIndex + 1]) { + tabs[tabIndex + 1] = nextTab; + } + else { + tabs.push(nextTab); + } + wx.nextTick(function () { + _this.setData({ + activeTab: tabIndex + 1, + }); + }); + } + this.setData({ + tabs: tabs, + }); + var selectedOptions = tabs.map(function (tab) { return tab.selected; }).filter(Boolean); + var value = option[valueKey]; + var params = { + value: value, + tabIndex: tabIndex, + selectedOptions: selectedOptions, + }; + this.innerValue = value; + this.$emit('change', params); + if (!option[childrenKey]) { + this.$emit('finish', params); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.json b/src/miniprogram_npm/@vant/weapp/cascader/index.json new file mode 100644 index 0000000..d0f75eb --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-tab": "../tab/index", + "van-tabs": "../tabs/index" + } +} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.wxml b/src/miniprogram_npm/@vant/weapp/cascader/index.wxml new file mode 100644 index 0000000..9417234 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.wxml @@ -0,0 +1,54 @@ + + + + + {{ title }} + + + + + + + + + + + {{ option[textKey] }} + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.wxs b/src/miniprogram_npm/@vant/weapp/cascader/index.wxs new file mode 100644 index 0000000..b1aab58 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.wxs @@ -0,0 +1,24 @@ +var utils = require('../wxs/utils.wxs'); +var style = require('../wxs/style.wxs'); + +function isSelected(tab, valueKey, option) { + return tab.selected && tab.selected[valueKey] === option[valueKey] +} + +function optionClass(tab, valueKey, option) { + return utils.bem('cascader__option', { selected: isSelected(tab, valueKey, option), disabled: option.disabled }) +} + +function optionStyle(data) { + var color = data.option.color || (isSelected(data.tab, data.valueKey, data.option) ? data.activeColor : undefined); + return style({ + color + }); +} + + +module.exports = { + isSelected: isSelected, + optionClass: optionClass, + optionStyle: optionStyle, +}; \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.wxss b/src/miniprogram_npm/@vant/weapp/cascader/index.wxss new file mode 100644 index 0000000..7062486 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cascader__header{align-items:center;display:flex;height:48px;justify-content:space-between;padding:0 16px}.van-cascader__title{font-size:16px;font-weight:600;line-height:20px}.van-cascader__close-icon{color:#c8c9cc;font-size:22px;height:22px}.van-cascader__tabs-wrap{height:48px!important;padding:0 8px}.van-cascader__tab{color:#323233!important;flex:none!important;font-weight:600!important;padding:0 8px!important}.van-cascader__tab--unselected{color:#969799!important;font-weight:400!important}.van-cascader__option{align-items:center;cursor:pointer;display:flex;font-size:14px;justify-content:space-between;line-height:20px;padding:10px 16px}.van-cascader__option:active{background-color:#f2f3f5}.van-cascader__option--selected{color:#1989fa;font-weight:600}.van-cascader__option--disabled{color:#c8c9cc;cursor:not-allowed}.van-cascader__option--disabled:active{background-color:initial}.van-cascader__options{-webkit-overflow-scrolling:touch;box-sizing:border-box;height:384px;overflow-y:auto;padding-top:6px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/cell-group/index.d.ts b/src/miniprogram_npm/@vant/weapp/cell-group/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell-group/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/cell-group/index.js b/src/miniprogram_npm/@vant/weapp/cell-group/index.js new file mode 100644 index 0000000..34a93a6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell-group/index.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + title: String, + border: { + type: Boolean, + value: true, + }, + inset: Boolean, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/cell-group/index.json b/src/miniprogram_npm/@vant/weapp/cell-group/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell-group/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/cell-group/index.wxml b/src/miniprogram_npm/@vant/weapp/cell-group/index.wxml new file mode 100644 index 0000000..311e064 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell-group/index.wxml @@ -0,0 +1,11 @@ + + + + {{ title }} + + + + diff --git a/src/miniprogram_npm/@vant/weapp/cell-group/index.wxss b/src/miniprogram_npm/@vant/weapp/cell-group/index.wxss new file mode 100644 index 0000000..08b252f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell-group/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cell-group--inset{border-radius:var(--cell-group-inset-border-radius,8px);margin:var(--cell-group-inset-padding,0 16px);overflow:hidden}.van-cell-group__title{color:var(--cell-group-title-color,#969799);font-size:var(--cell-group-title-font-size,14px);line-height:var(--cell-group-title-line-height,16px);padding:var(--cell-group-title-padding,16px 16px 8px)}.van-cell-group__title--inset{padding:var(--cell-group-inset-title-padding,16px 16px 8px 32px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.d.ts b/src/miniprogram_npm/@vant/weapp/cell/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.js b/src/miniprogram_npm/@vant/weapp/cell/index.js new file mode 100644 index 0000000..80f3039 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var link_1 = require("../mixins/link"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: [ + 'title-class', + 'label-class', + 'value-class', + 'right-icon-class', + 'hover-class', + ], + mixins: [link_1.link], + props: { + title: null, + value: null, + icon: String, + size: String, + label: String, + center: Boolean, + isLink: Boolean, + required: Boolean, + clickable: Boolean, + titleWidth: String, + customStyle: String, + arrowDirection: String, + useLabelSlot: Boolean, + border: { + type: Boolean, + value: true, + }, + titleStyle: String, + }, + methods: { + onClick: function (event) { + this.$emit('click', event.detail); + this.jumpLink(); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.json b/src/miniprogram_npm/@vant/weapp/cell/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.wxml b/src/miniprogram_npm/@vant/weapp/cell/index.wxml new file mode 100644 index 0000000..8387c3c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.wxml @@ -0,0 +1,47 @@ + + + + + + + + + + {{ title }} + + + + + {{ label }} + + + + + {{ value }} + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.wxs b/src/miniprogram_npm/@vant/weapp/cell/index.wxs new file mode 100644 index 0000000..e3500c4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.wxs @@ -0,0 +1,17 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function titleStyle(data) { + return style([ + { + 'max-width': addUnit(data.titleWidth), + 'min-width': addUnit(data.titleWidth), + }, + data.titleStyle, + ]); +} + +module.exports = { + titleStyle: titleStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.wxss b/src/miniprogram_npm/@vant/weapp/cell/index.wxss new file mode 100644 index 0000000..1802f8e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cell{background-color:var(--cell-background-color,#fff);box-sizing:border-box;color:var(--cell-text-color,#323233);display:flex;font-size:var(--cell-font-size,14px);line-height:var(--cell-line-height,24px);padding:var(--cell-vertical-padding,10px) var(--cell-horizontal-padding,16px);position:relative;width:100%}.van-cell:after{border-bottom:1px solid #ebedf0;bottom:0;box-sizing:border-box;content:" ";left:16px;pointer-events:none;position:absolute;right:16px;transform:scaleY(.5);transform-origin:center}.van-cell--borderless:after{display:none}.van-cell-group{background-color:var(--cell-background-color,#fff)}.van-cell__label{color:var(--cell-label-color,#969799);font-size:var(--cell-label-font-size,12px);line-height:var(--cell-label-line-height,18px);margin-top:var(--cell-label-margin-top,3px)}.van-cell__value{color:var(--cell-value-color,#969799);overflow:hidden;text-align:right;vertical-align:middle}.van-cell__title,.van-cell__value{flex:1}.van-cell__title:empty,.van-cell__value:empty{display:none}.van-cell__left-icon-wrap,.van-cell__right-icon-wrap{align-items:center;display:flex;font-size:var(--cell-icon-size,16px);height:var(--cell-line-height,24px)}.van-cell__left-icon-wrap{margin-right:var(--padding-base,4px)}.van-cell__right-icon-wrap{color:var(--cell-right-icon-color,#969799);margin-left:var(--padding-base,4px)}.van-cell__left-icon{vertical-align:middle}.van-cell__left-icon,.van-cell__right-icon{line-height:var(--cell-line-height,24px)}.van-cell--clickable.van-cell--hover{background-color:var(--cell-active-color,#f2f3f5)}.van-cell--required{overflow:visible}.van-cell--required:before{color:var(--cell-required-color,#ee0a24);content:"*";font-size:var(--cell-font-size,14px);left:var(--padding-xs,8px);position:absolute}.van-cell--center{align-items:center}.van-cell--large{padding-bottom:var(--cell-large-vertical-padding,12px);padding-top:var(--cell-large-vertical-padding,12px)}.van-cell--large .van-cell__title{font-size:var(--cell-large-title-font-size,16px)}.van-cell--large .van-cell__value{font-size:var(--cell-large-value-font-size,16px)}.van-cell--large .van-cell__label{font-size:var(--cell-large-label-font-size,14px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/checkbox-group/index.js b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.js new file mode 100644 index 0000000..80c93a1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + field: true, + relation: (0, relation_1.useChildren)('checkbox', function (target) { + this.updateChild(target); + }), + props: { + max: Number, + value: { + type: Array, + observer: 'updateChildren', + }, + disabled: { + type: Boolean, + observer: 'updateChildren', + }, + direction: { + type: String, + value: 'vertical', + }, + }, + methods: { + updateChildren: function () { + var _this = this; + this.children.forEach(function (child) { return _this.updateChild(child); }); + }, + updateChild: function (child) { + var _a = this.data, value = _a.value, disabled = _a.disabled, direction = _a.direction; + child.setData({ + value: value.indexOf(child.data.name) !== -1, + parentDisabled: disabled, + direction: direction, + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/checkbox-group/index.json b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml new file mode 100644 index 0000000..638bf9d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss new file mode 100644 index 0000000..c5666d7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-checkbox-group--horizontal{display:flex;flex-wrap:wrap} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.d.ts b/src/miniprogram_npm/@vant/weapp/checkbox/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.js b/src/miniprogram_npm/@vant/weapp/checkbox/index.js new file mode 100644 index 0000000..6247365 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.js @@ -0,0 +1,79 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +function emit(target, value) { + target.$emit('input', value); + target.$emit('change', value); +} +(0, component_1.VantComponent)({ + field: true, + relation: (0, relation_1.useParent)('checkbox-group'), + classes: ['icon-class', 'label-class'], + props: { + value: Boolean, + disabled: Boolean, + useIconSlot: Boolean, + checkedColor: String, + labelPosition: { + type: String, + value: 'right', + }, + labelDisabled: Boolean, + shape: { + type: String, + value: 'round', + }, + iconSize: { + type: null, + value: 20, + }, + }, + data: { + parentDisabled: false, + direction: 'vertical', + }, + methods: { + emitChange: function (value) { + if (this.parent) { + this.setParentValue(this.parent, value); + } + else { + emit(this, value); + } + }, + toggle: function () { + var _a = this.data, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value; + if (!disabled && !parentDisabled) { + this.emitChange(!value); + } + }, + onClickLabel: function () { + var _a = this.data, labelDisabled = _a.labelDisabled, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value; + if (!disabled && !labelDisabled && !parentDisabled) { + this.emitChange(!value); + } + }, + setParentValue: function (parent, value) { + var parentValue = parent.data.value.slice(); + var name = this.data.name; + var max = parent.data.max; + if (value) { + if (max && parentValue.length >= max) { + return; + } + if (parentValue.indexOf(name) === -1) { + parentValue.push(name); + emit(parent, parentValue); + } + } + else { + var index = parentValue.indexOf(name); + if (index !== -1) { + parentValue.splice(index, 1); + emit(parent, parentValue); + } + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.json b/src/miniprogram_npm/@vant/weapp/checkbox/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.wxml b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxml new file mode 100644 index 0000000..39a7bb0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.wxs b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxs new file mode 100644 index 0000000..eb9c772 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxs @@ -0,0 +1,20 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) { + var styles = { + 'font-size': addUnit(iconSize), + }; + + if (checkedColor && value && !disabled && !parentDisabled) { + styles['border-color'] = checkedColor; + styles['background-color'] = checkedColor; + } + + return style(styles); +} + +module.exports = { + iconStyle: iconStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.wxss b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxss new file mode 100644 index 0000000..da2272a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-checkbox{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon-wrap,.van-checkbox__label{line-height:var(--checkbox-size,20px)}.van-checkbox__icon-wrap{flex:none}.van-checkbox__icon{align-items:center;border:1px solid var(--checkbox-border-color,#c8c9cc);box-sizing:border-box;color:transparent;display:flex;font-size:var(--checkbox-size,20px);height:1em;justify-content:center;text-align:center;transition-duration:var(--checkbox-transition-duration,.2s);transition-property:color,border-color,background-color;width:1em}.van-checkbox__icon--round{border-radius:100%}.van-checkbox__icon--checked{background-color:var(--checkbox-checked-icon-color,#1989fa);border-color:var(--checkbox-checked-icon-color,#1989fa);color:#fff}.van-checkbox__icon--disabled{background-color:var(--checkbox-disabled-background-color,#ebedf0);border-color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__icon--disabled.van-checkbox__icon--checked{color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__label{word-wrap:break-word;color:var(--checkbox-label-color,#323233);padding-left:var(--checkbox-label-margin,10px)}.van-checkbox__label--left{float:left;margin:0 var(--checkbox-label-margin,10px) 0 0}.van-checkbox__label--disabled{color:var(--checkbox-disabled-label-color,#c8c9cc)}.van-checkbox__label:empty{margin:0} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/circle/canvas.d.ts b/src/miniprogram_npm/@vant/weapp/circle/canvas.d.ts new file mode 100644 index 0000000..8a0b71e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/canvas.d.ts @@ -0,0 +1,4 @@ +/// +type CanvasContext = WechatMiniprogram.CanvasContext; +export declare function adaptor(ctx: CanvasContext & Record): CanvasContext; +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/circle/canvas.js b/src/miniprogram_npm/@vant/weapp/circle/canvas.js new file mode 100644 index 0000000..d81df74 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/canvas.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.adaptor = void 0; +function adaptor(ctx) { + // @ts-ignore + return Object.assign(ctx, { + setStrokeStyle: function (val) { + ctx.strokeStyle = val; + }, + setLineWidth: function (val) { + ctx.lineWidth = val; + }, + setLineCap: function (val) { + ctx.lineCap = val; + }, + setFillStyle: function (val) { + ctx.fillStyle = val; + }, + setFontSize: function (val) { + ctx.font = String(val); + }, + setGlobalAlpha: function (val) { + ctx.globalAlpha = val; + }, + setLineJoin: function (val) { + ctx.lineJoin = val; + }, + setTextAlign: function (val) { + ctx.textAlign = val; + }, + setMiterLimit: function (val) { + ctx.miterLimit = val; + }, + setShadow: function (offsetX, offsetY, blur, color) { + ctx.shadowOffsetX = offsetX; + ctx.shadowOffsetY = offsetY; + ctx.shadowBlur = blur; + ctx.shadowColor = color; + }, + setTextBaseline: function (val) { + ctx.textBaseline = val; + }, + createCircularGradient: function () { }, + draw: function () { }, + }); +} +exports.adaptor = adaptor; diff --git a/src/miniprogram_npm/@vant/weapp/circle/index.d.ts b/src/miniprogram_npm/@vant/weapp/circle/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/circle/index.js b/src/miniprogram_npm/@vant/weapp/circle/index.js new file mode 100644 index 0000000..e131e4b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/index.js @@ -0,0 +1,207 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var color_1 = require("../common/color"); +var component_1 = require("../common/component"); +var utils_1 = require("../common/utils"); +var validator_1 = require("../common/validator"); +var version_1 = require("../common/version"); +var canvas_1 = require("./canvas"); +function format(rate) { + return Math.min(Math.max(rate, 0), 100); +} +var PERIMETER = 2 * Math.PI; +var BEGIN_ANGLE = -Math.PI / 2; +var STEP = 1; +(0, component_1.VantComponent)({ + props: { + text: String, + lineCap: { + type: String, + value: 'round', + }, + value: { + type: Number, + value: 0, + observer: 'reRender', + }, + speed: { + type: Number, + value: 50, + }, + size: { + type: Number, + value: 100, + observer: function () { + this.drawCircle(this.currentValue); + }, + }, + fill: String, + layerColor: { + type: String, + value: color_1.WHITE, + }, + color: { + type: null, + value: color_1.BLUE, + observer: function () { + var _this = this; + this.setHoverColor().then(function () { + _this.drawCircle(_this.currentValue); + }); + }, + }, + type: { + type: String, + value: '', + }, + strokeWidth: { + type: Number, + value: 4, + }, + clockwise: { + type: Boolean, + value: true, + }, + }, + data: { + hoverColor: color_1.BLUE, + }, + methods: { + getContext: function () { + var _this = this; + var _a = this.data, type = _a.type, size = _a.size; + if (type === '' || !(0, version_1.canIUseCanvas2d)()) { + var ctx = wx.createCanvasContext('van-circle', this); + return Promise.resolve(ctx); + } + var dpr = (0, utils_1.getSystemInfoSync)().pixelRatio; + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(_this) + .select('#van-circle') + .node() + .exec(function (res) { + var canvas = res[0].node; + var ctx = canvas.getContext(type); + if (!_this.inited) { + _this.inited = true; + canvas.width = size * dpr; + canvas.height = size * dpr; + ctx.scale(dpr, dpr); + } + resolve((0, canvas_1.adaptor)(ctx)); + }); + }); + }, + setHoverColor: function () { + var _this = this; + var _a = this.data, color = _a.color, size = _a.size; + if ((0, validator_1.isObj)(color)) { + return this.getContext().then(function (context) { + if (!context) + return; + var LinearColor = context.createLinearGradient(size, 0, 0, 0); + Object.keys(color) + .sort(function (a, b) { return parseFloat(a) - parseFloat(b); }) + .map(function (key) { + return LinearColor.addColorStop(parseFloat(key) / 100, color[key]); + }); + _this.hoverColor = LinearColor; + }); + } + this.hoverColor = color; + return Promise.resolve(); + }, + presetCanvas: function (context, strokeStyle, beginAngle, endAngle, fill) { + var _a = this.data, strokeWidth = _a.strokeWidth, lineCap = _a.lineCap, clockwise = _a.clockwise, size = _a.size; + var position = size / 2; + var radius = position - strokeWidth / 2; + context.setStrokeStyle(strokeStyle); + context.setLineWidth(strokeWidth); + context.setLineCap(lineCap); + context.beginPath(); + context.arc(position, position, radius, beginAngle, endAngle, !clockwise); + context.stroke(); + if (fill) { + context.setFillStyle(fill); + context.fill(); + } + }, + renderLayerCircle: function (context) { + var _a = this.data, layerColor = _a.layerColor, fill = _a.fill; + this.presetCanvas(context, layerColor, 0, PERIMETER, fill); + }, + renderHoverCircle: function (context, formatValue) { + var clockwise = this.data.clockwise; + // 结束角度 + var progress = PERIMETER * (formatValue / 100); + var endAngle = clockwise + ? BEGIN_ANGLE + progress + : 3 * Math.PI - (BEGIN_ANGLE + progress); + this.presetCanvas(context, this.hoverColor, BEGIN_ANGLE, endAngle); + }, + drawCircle: function (currentValue) { + var _this = this; + var size = this.data.size; + this.getContext().then(function (context) { + if (!context) + return; + context.clearRect(0, 0, size, size); + _this.renderLayerCircle(context); + var formatValue = format(currentValue); + if (formatValue !== 0) { + _this.renderHoverCircle(context, formatValue); + } + context.draw(); + }); + }, + reRender: function () { + var _this = this; + // tofector 动画暂时没有想到好的解决方案 + var _a = this.data, value = _a.value, speed = _a.speed; + if (speed <= 0 || speed > 1000) { + this.drawCircle(value); + return; + } + this.clearMockInterval(); + this.currentValue = this.currentValue || 0; + var run = function () { + _this.interval = setTimeout(function () { + if (_this.currentValue !== value) { + if (Math.abs(_this.currentValue - value) < STEP) { + _this.currentValue = value; + } + else if (_this.currentValue < value) { + _this.currentValue += STEP; + } + else { + _this.currentValue -= STEP; + } + _this.drawCircle(_this.currentValue); + run(); + } + else { + _this.clearMockInterval(); + } + }, 1000 / speed); + }; + run(); + }, + clearMockInterval: function () { + if (this.interval) { + clearTimeout(this.interval); + this.interval = null; + } + }, + }, + mounted: function () { + var _this = this; + this.currentValue = this.data.value; + this.setHoverColor().then(function () { + _this.drawCircle(_this.currentValue); + }); + }, + destroyed: function () { + this.clearMockInterval(); + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/circle/index.json b/src/miniprogram_npm/@vant/weapp/circle/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/circle/index.wxml b/src/miniprogram_npm/@vant/weapp/circle/index.wxml new file mode 100644 index 0000000..52bc59f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/index.wxml @@ -0,0 +1,9 @@ + + + + + + + + {{ text }} + diff --git a/src/miniprogram_npm/@vant/weapp/circle/index.wxss b/src/miniprogram_npm/@vant/weapp/circle/index.wxss new file mode 100644 index 0000000..2200751 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-circle{display:inline-block;position:relative;text-align:center}.van-circle__text{color:var(--circle-text-color,#323233);left:0;position:absolute;top:50%;transform:translateY(-50%);width:100%} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/col/index.d.ts b/src/miniprogram_npm/@vant/weapp/col/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/col/index.js b/src/miniprogram_npm/@vant/weapp/col/index.js new file mode 100644 index 0000000..63c56eb --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useParent)('row'), + props: { + span: Number, + offset: Number, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/col/index.json b/src/miniprogram_npm/@vant/weapp/col/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/col/index.wxml b/src/miniprogram_npm/@vant/weapp/col/index.wxml new file mode 100644 index 0000000..975348b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.wxml @@ -0,0 +1,9 @@ + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/col/index.wxs b/src/miniprogram_npm/@vant/weapp/col/index.wxs new file mode 100644 index 0000000..507c1cb --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + if (!data.gutter) { + return ''; + } + + return style({ + 'padding-right': addUnit(data.gutter / 2), + 'padding-left': addUnit(data.gutter / 2), + }); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/col/index.wxss b/src/miniprogram_npm/@vant/weapp/col/index.wxss new file mode 100644 index 0000000..2fa265e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-col{box-sizing:border-box;float:left}.van-col--1{width:4.16666667%}.van-col--offset-1{margin-left:4.16666667%}.van-col--2{width:8.33333333%}.van-col--offset-2{margin-left:8.33333333%}.van-col--3{width:12.5%}.van-col--offset-3{margin-left:12.5%}.van-col--4{width:16.66666667%}.van-col--offset-4{margin-left:16.66666667%}.van-col--5{width:20.83333333%}.van-col--offset-5{margin-left:20.83333333%}.van-col--6{width:25%}.van-col--offset-6{margin-left:25%}.van-col--7{width:29.16666667%}.van-col--offset-7{margin-left:29.16666667%}.van-col--8{width:33.33333333%}.van-col--offset-8{margin-left:33.33333333%}.van-col--9{width:37.5%}.van-col--offset-9{margin-left:37.5%}.van-col--10{width:41.66666667%}.van-col--offset-10{margin-left:41.66666667%}.van-col--11{width:45.83333333%}.van-col--offset-11{margin-left:45.83333333%}.van-col--12{width:50%}.van-col--offset-12{margin-left:50%}.van-col--13{width:54.16666667%}.van-col--offset-13{margin-left:54.16666667%}.van-col--14{width:58.33333333%}.van-col--offset-14{margin-left:58.33333333%}.van-col--15{width:62.5%}.van-col--offset-15{margin-left:62.5%}.van-col--16{width:66.66666667%}.van-col--offset-16{margin-left:66.66666667%}.van-col--17{width:70.83333333%}.van-col--offset-17{margin-left:70.83333333%}.van-col--18{width:75%}.van-col--offset-18{margin-left:75%}.van-col--19{width:79.16666667%}.van-col--offset-19{margin-left:79.16666667%}.van-col--20{width:83.33333333%}.van-col--offset-20{margin-left:83.33333333%}.van-col--21{width:87.5%}.van-col--offset-21{margin-left:87.5%}.van-col--22{width:91.66666667%}.van-col--offset-22{margin-left:91.66666667%}.van-col--23{width:95.83333333%}.van-col--offset-23{margin-left:95.83333333%}.van-col--24{width:100%}.van-col--offset-24{margin-left:100%} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts b/src/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts new file mode 100644 index 0000000..32157b6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts @@ -0,0 +1,2 @@ +/// +export declare function setContentAnimate(context: WechatMiniprogram.Component.TrivialInstance, expanded: boolean, mounted: boolean): void; diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/animate.js b/src/miniprogram_npm/@vant/weapp/collapse-item/animate.js new file mode 100644 index 0000000..5734087 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/animate.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setContentAnimate = void 0; +var utils_1 = require("../common/utils"); +function useAnimation(context, expanded, mounted, height) { + var animation = wx.createAnimation({ + duration: 0, + timingFunction: 'ease-in-out', + }); + if (expanded) { + if (height === 0) { + animation.height('auto').top(1).step(); + } + else { + animation + .height(height) + .top(1) + .step({ + duration: mounted ? 300 : 1, + }) + .height('auto') + .step(); + } + context.setData({ + animation: animation.export(), + }); + return; + } + animation.height(height).top(0).step({ duration: 1 }).height(0).step({ + duration: 300, + }); + context.setData({ + animation: animation.export(), + }); +} +function setContentAnimate(context, expanded, mounted) { + (0, utils_1.getRect)(context, '.van-collapse-item__content') + .then(function (rect) { return rect.height; }) + .then(function (height) { + useAnimation(context, expanded, mounted, height); + }); +} +exports.setContentAnimate = setContentAnimate; diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts b/src/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/index.js b/src/miniprogram_npm/@vant/weapp/collapse-item/index.js new file mode 100644 index 0000000..982490e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/index.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var animate_1 = require("./animate"); +(0, component_1.VantComponent)({ + classes: ['title-class', 'content-class'], + relation: (0, relation_1.useParent)('collapse'), + props: { + size: String, + name: null, + title: null, + value: null, + icon: String, + label: String, + disabled: Boolean, + clickable: Boolean, + border: { + type: Boolean, + value: true, + }, + isLink: { + type: Boolean, + value: true, + }, + }, + data: { + expanded: false, + }, + mounted: function () { + this.updateExpanded(); + this.mounted = true; + }, + methods: { + updateExpanded: function () { + if (!this.parent) { + return; + } + var _a = this.parent.data, value = _a.value, accordion = _a.accordion; + var _b = this.parent.children, children = _b === void 0 ? [] : _b; + var name = this.data.name; + var index = children.indexOf(this); + var currentName = name == null ? index : name; + var expanded = accordion + ? value === currentName + : (value || []).some(function (name) { return name === currentName; }); + if (expanded !== this.data.expanded) { + (0, animate_1.setContentAnimate)(this, expanded, this.mounted); + } + this.setData({ index: index, expanded: expanded }); + }, + onClick: function () { + if (this.data.disabled) { + return; + } + var _a = this.data, name = _a.name, expanded = _a.expanded; + var index = this.parent.children.indexOf(this); + var currentName = name == null ? index : name; + this.parent.switch(currentName, !expanded); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/index.json b/src/miniprogram_npm/@vant/weapp/collapse-item/index.json new file mode 100644 index 0000000..0e5425c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxml b/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxml new file mode 100644 index 0000000..f11d0d4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxss b/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxss new file mode 100644 index 0000000..4a65b5a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-collapse-item__title .van-cell__right-icon{transform:rotate(90deg);transition:transform var(--collapse-item-transition-duration,.3s)}.van-collapse-item__title--expanded .van-cell__right-icon{transform:rotate(-90deg)}.van-collapse-item__title--disabled .van-cell,.van-collapse-item__title--disabled .van-cell__right-icon{color:var(--collapse-item-title-disabled-color,#c8c9cc)!important}.van-collapse-item__title--disabled .van-cell--hover{background-color:#fff!important}.van-collapse-item__wrapper{overflow:hidden}.van-collapse-item__content{background-color:var(--collapse-item-content-background-color,#fff);color:var(--collapse-item-content-text-color,#969799);font-size:var(--collapse-item-content-font-size,13px);line-height:var(--collapse-item-content-line-height,1.5);padding:var(--collapse-item-content-padding,15px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/collapse/index.d.ts b/src/miniprogram_npm/@vant/weapp/collapse/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/collapse/index.js b/src/miniprogram_npm/@vant/weapp/collapse/index.js new file mode 100644 index 0000000..943d542 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse/index.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useChildren)('collapse-item'), + props: { + value: { + type: null, + observer: 'updateExpanded', + }, + accordion: { + type: Boolean, + observer: 'updateExpanded', + }, + border: { + type: Boolean, + value: true, + }, + }, + methods: { + updateExpanded: function () { + this.children.forEach(function (child) { + child.updateExpanded(); + }); + }, + switch: function (name, expanded) { + var _a = this.data, accordion = _a.accordion, value = _a.value; + var changeItem = name; + if (!accordion) { + name = expanded + ? (value || []).concat(name) + : (value || []).filter(function (activeName) { return activeName !== name; }); + } + else { + name = expanded ? name : ''; + } + if (expanded) { + this.$emit('open', changeItem); + } + else { + this.$emit('close', changeItem); + } + this.$emit('change', name); + this.$emit('input', name); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/collapse/index.json b/src/miniprogram_npm/@vant/weapp/collapse/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/collapse/index.wxml b/src/miniprogram_npm/@vant/weapp/collapse/index.wxml new file mode 100644 index 0000000..fd4e171 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/src/miniprogram_npm/@vant/weapp/collapse/index.wxss b/src/miniprogram_npm/@vant/weapp/collapse/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/common/color.d.ts b/src/miniprogram_npm/@vant/weapp/common/color.d.ts new file mode 100644 index 0000000..386f307 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/color.d.ts @@ -0,0 +1,7 @@ +export declare const RED = "#ee0a24"; +export declare const BLUE = "#1989fa"; +export declare const WHITE = "#fff"; +export declare const GREEN = "#07c160"; +export declare const ORANGE = "#ff976a"; +export declare const GRAY = "#323233"; +export declare const GRAY_DARK = "#969799"; diff --git a/src/miniprogram_npm/@vant/weapp/common/color.js b/src/miniprogram_npm/@vant/weapp/common/color.js new file mode 100644 index 0000000..008a45a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/color.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GRAY_DARK = exports.GRAY = exports.ORANGE = exports.GREEN = exports.WHITE = exports.BLUE = exports.RED = void 0; +exports.RED = '#ee0a24'; +exports.BLUE = '#1989fa'; +exports.WHITE = '#fff'; +exports.GREEN = '#07c160'; +exports.ORANGE = '#ff976a'; +exports.GRAY = '#323233'; +exports.GRAY_DARK = '#969799'; diff --git a/src/miniprogram_npm/@vant/weapp/common/component.d.ts b/src/miniprogram_npm/@vant/weapp/common/component.d.ts new file mode 100644 index 0000000..1d0fd27 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/component.d.ts @@ -0,0 +1,4 @@ +/// +import { VantComponentOptions } from 'definitions/index'; +declare function VantComponent(vantOptions: VantComponentOptions): void; +export { VantComponent }; diff --git a/src/miniprogram_npm/@vant/weapp/common/component.js b/src/miniprogram_npm/@vant/weapp/common/component.js new file mode 100644 index 0000000..66da00e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/component.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.VantComponent = void 0; +var basic_1 = require("../mixins/basic"); +function mapKeys(source, target, map) { + Object.keys(map).forEach(function (key) { + if (source[key]) { + target[map[key]] = source[key]; + } + }); +} +function VantComponent(vantOptions) { + var options = {}; + mapKeys(vantOptions, options, { + data: 'data', + props: 'properties', + watch: 'observers', + mixins: 'behaviors', + methods: 'methods', + beforeCreate: 'created', + created: 'attached', + mounted: 'ready', + destroyed: 'detached', + classes: 'externalClasses', + }); + // add default externalClasses + options.externalClasses = options.externalClasses || []; + options.externalClasses.push('custom-class'); + // add default behaviors + options.behaviors = options.behaviors || []; + options.behaviors.push(basic_1.basic); + // add relations + var relation = vantOptions.relation; + if (relation) { + options.relations = relation.relations; + options.behaviors.push(relation.mixin); + } + // map field to form-field behavior + if (vantOptions.field) { + options.behaviors.push('wx://form-field'); + } + // add default options + options.options = { + multipleSlots: true, + addGlobalClass: true, + }; + Component(options); +} +exports.VantComponent = VantComponent; diff --git a/src/miniprogram_npm/@vant/weapp/common/index.wxss b/src/miniprogram_npm/@vant/weapp/common/index.wxss new file mode 100644 index 0000000..a73bb7a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/index.wxss @@ -0,0 +1 @@ +.van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{clear:both;content:"";display:table}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{border:0 solid #ebedf0;bottom:-50%;box-sizing:border-box;content:" ";left:-50%;pointer-events:none;position:absolute;right:-50%;top:-50%;transform:scale(.5);transform-origin:center}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/common/relation.d.ts b/src/miniprogram_npm/@vant/weapp/common/relation.d.ts new file mode 100644 index 0000000..10193fa --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/relation.d.ts @@ -0,0 +1,15 @@ +/// +type TrivialInstance = WechatMiniprogram.Component.TrivialInstance; +export declare function useParent(name: string, onEffect?: (this: TrivialInstance) => void): { + relations: { + [x: string]: WechatMiniprogram.Component.RelationOption; + }; + mixin: string; +}; +export declare function useChildren(name: string, onEffect?: (this: TrivialInstance, target: TrivialInstance) => void): { + relations: { + [x: string]: WechatMiniprogram.Component.RelationOption; + }; + mixin: string; +}; +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/common/relation.js b/src/miniprogram_npm/@vant/weapp/common/relation.js new file mode 100644 index 0000000..008256c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/relation.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useChildren = exports.useParent = void 0; +function useParent(name, onEffect) { + var _a; + var path = "../".concat(name, "/index"); + return { + relations: (_a = {}, + _a[path] = { + type: 'ancestor', + linked: function () { + onEffect && onEffect.call(this); + }, + linkChanged: function () { + onEffect && onEffect.call(this); + }, + unlinked: function () { + onEffect && onEffect.call(this); + }, + }, + _a), + mixin: Behavior({ + created: function () { + var _this = this; + Object.defineProperty(this, 'parent', { + get: function () { return _this.getRelationNodes(path)[0]; }, + }); + Object.defineProperty(this, 'index', { + // @ts-ignore + get: function () { var _a, _b; return (_b = (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.indexOf(_this); }, + }); + }, + }), + }; +} +exports.useParent = useParent; +function useChildren(name, onEffect) { + var _a; + var path = "../".concat(name, "/index"); + return { + relations: (_a = {}, + _a[path] = { + type: 'descendant', + linked: function (target) { + onEffect && onEffect.call(this, target); + }, + linkChanged: function (target) { + onEffect && onEffect.call(this, target); + }, + unlinked: function (target) { + onEffect && onEffect.call(this, target); + }, + }, + _a), + mixin: Behavior({ + created: function () { + var _this = this; + Object.defineProperty(this, 'children', { + get: function () { return _this.getRelationNodes(path) || []; }, + }); + }, + }), + }; +} +exports.useChildren = useChildren; diff --git a/src/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss b/src/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss new file mode 100644 index 0000000..442246f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss @@ -0,0 +1 @@ +.van-clearfix:after{clear:both;content:"";display:table} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss b/src/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss new file mode 100644 index 0000000..ee701df --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss @@ -0,0 +1 @@ +.van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.van-multi-ellipsis--l3{-webkit-line-clamp:3} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/common/style/hairline.wxss b/src/miniprogram_npm/@vant/weapp/common/style/hairline.wxss new file mode 100644 index 0000000..f7c6260 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/style/hairline.wxss @@ -0,0 +1 @@ +.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{border:0 solid #ebedf0;bottom:-50%;box-sizing:border-box;content:" ";left:-50%;pointer-events:none;position:absolute;right:-50%;top:-50%;transform:scale(.5);transform-origin:center}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss b/src/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss new file mode 100644 index 0000000..e69de29 diff --git a/src/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss b/src/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss new file mode 100644 index 0000000..e69de29 diff --git a/src/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss b/src/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss new file mode 100644 index 0000000..e69de29 diff --git a/src/miniprogram_npm/@vant/weapp/common/style/var.wxss b/src/miniprogram_npm/@vant/weapp/common/style/var.wxss new file mode 100644 index 0000000..e69de29 diff --git a/src/miniprogram_npm/@vant/weapp/common/utils.d.ts b/src/miniprogram_npm/@vant/weapp/common/utils.d.ts new file mode 100644 index 0000000..a77d8c6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/utils.d.ts @@ -0,0 +1,21 @@ +/// +/// +/// +/// +/// +export { isDef } from './validator'; +export { getSystemInfoSync } from './version'; +export declare function range(num: number, min: number, max: number): number; +export declare function nextTick(cb: (...args: any[]) => void): void; +export declare function addUnit(value?: string | number): string | undefined; +export declare function requestAnimationFrame(cb: () => void): NodeJS.Timeout; +export declare function pickExclude(obj: unknown, keys: string[]): {}; +export declare function getRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise; +export declare function getAllRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise; +export declare function groupSetData(context: WechatMiniprogram.Component.TrivialInstance, cb: () => void): void; +export declare function toPromise(promiseLike: Promise | unknown): Promise; +export declare function addNumber(num1: any, num2: any): number; +export declare const clamp: (num: any, min: any, max: any) => number; +export declare function getCurrentPage(): T & WechatMiniprogram.OptionalInterface & WechatMiniprogram.Page.InstanceProperties & WechatMiniprogram.Page.InstanceMethods & WechatMiniprogram.Page.Data & WechatMiniprogram.IAnyObject; +export declare const isPC: boolean; +export declare const isWxWork: boolean; diff --git a/src/miniprogram_npm/@vant/weapp/common/utils.js b/src/miniprogram_npm/@vant/weapp/common/utils.js new file mode 100644 index 0000000..1727628 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/utils.js @@ -0,0 +1,109 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isWxWork = exports.isPC = exports.getCurrentPage = exports.clamp = exports.addNumber = exports.toPromise = exports.groupSetData = exports.getAllRect = exports.getRect = exports.pickExclude = exports.requestAnimationFrame = exports.addUnit = exports.nextTick = exports.range = exports.getSystemInfoSync = exports.isDef = void 0; +var validator_1 = require("./validator"); +var version_1 = require("./version"); +var validator_2 = require("./validator"); +Object.defineProperty(exports, "isDef", { enumerable: true, get: function () { return validator_2.isDef; } }); +var version_2 = require("./version"); +Object.defineProperty(exports, "getSystemInfoSync", { enumerable: true, get: function () { return version_2.getSystemInfoSync; } }); +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} +exports.range = range; +function nextTick(cb) { + if ((0, version_1.canIUseNextTick)()) { + wx.nextTick(cb); + } + else { + setTimeout(function () { + cb(); + }, 1000 / 30); + } +} +exports.nextTick = nextTick; +function addUnit(value) { + if (!(0, validator_1.isDef)(value)) { + return undefined; + } + value = String(value); + return (0, validator_1.isNumber)(value) ? "".concat(value, "px") : value; +} +exports.addUnit = addUnit; +function requestAnimationFrame(cb) { + return setTimeout(function () { + cb(); + }, 1000 / 30); +} +exports.requestAnimationFrame = requestAnimationFrame; +function pickExclude(obj, keys) { + if (!(0, validator_1.isPlainObject)(obj)) { + return {}; + } + return Object.keys(obj).reduce(function (prev, key) { + if (!keys.includes(key)) { + prev[key] = obj[key]; + } + return prev; + }, {}); +} +exports.pickExclude = pickExclude; +function getRect(context, selector) { + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(context) + .select(selector) + .boundingClientRect() + .exec(function (rect) { + if (rect === void 0) { rect = []; } + return resolve(rect[0]); + }); + }); +} +exports.getRect = getRect; +function getAllRect(context, selector) { + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(context) + .selectAll(selector) + .boundingClientRect() + .exec(function (rect) { + if (rect === void 0) { rect = []; } + return resolve(rect[0]); + }); + }); +} +exports.getAllRect = getAllRect; +function groupSetData(context, cb) { + if ((0, version_1.canIUseGroupSetData)()) { + context.groupSetData(cb); + } + else { + cb(); + } +} +exports.groupSetData = groupSetData; +function toPromise(promiseLike) { + if ((0, validator_1.isPromise)(promiseLike)) { + return promiseLike; + } + return Promise.resolve(promiseLike); +} +exports.toPromise = toPromise; +// 浮点数精度处理 +function addNumber(num1, num2) { + var cardinal = Math.pow(10, 10); + return Math.round((num1 + num2) * cardinal) / cardinal; +} +exports.addNumber = addNumber; +// 限制value在[min, max]之间 +var clamp = function (num, min, max) { return Math.min(Math.max(num, min), max); }; +exports.clamp = clamp; +function getCurrentPage() { + var pages = getCurrentPages(); + return pages[pages.length - 1]; +} +exports.getCurrentPage = getCurrentPage; +exports.isPC = ['mac', 'windows'].includes((0, version_1.getSystemInfoSync)().platform); +// 是否企业微信 +exports.isWxWork = (0, version_1.getSystemInfoSync)().environment === 'wxwork'; diff --git a/src/miniprogram_npm/@vant/weapp/common/validator.d.ts b/src/miniprogram_npm/@vant/weapp/common/validator.d.ts new file mode 100644 index 0000000..152894a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/validator.d.ts @@ -0,0 +1,9 @@ +export declare function isFunction(val: unknown): val is Function; +export declare function isPlainObject(val: unknown): val is Record; +export declare function isPromise(val: unknown): val is Promise; +export declare function isDef(value: unknown): boolean; +export declare function isObj(x: unknown): x is Record; +export declare function isNumber(value: string): boolean; +export declare function isBoolean(value: unknown): value is boolean; +export declare function isImageUrl(url: string): boolean; +export declare function isVideoUrl(url: string): boolean; diff --git a/src/miniprogram_npm/@vant/weapp/common/validator.js b/src/miniprogram_npm/@vant/weapp/common/validator.js new file mode 100644 index 0000000..169e796 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/validator.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isVideoUrl = exports.isImageUrl = exports.isBoolean = exports.isNumber = exports.isObj = exports.isDef = exports.isPromise = exports.isPlainObject = exports.isFunction = void 0; +// eslint-disable-next-line @typescript-eslint/ban-types +function isFunction(val) { + return typeof val === 'function'; +} +exports.isFunction = isFunction; +function isPlainObject(val) { + return val !== null && typeof val === 'object' && !Array.isArray(val); +} +exports.isPlainObject = isPlainObject; +function isPromise(val) { + return isPlainObject(val) && isFunction(val.then) && isFunction(val.catch); +} +exports.isPromise = isPromise; +function isDef(value) { + return value !== undefined && value !== null; +} +exports.isDef = isDef; +function isObj(x) { + var type = typeof x; + return x !== null && (type === 'object' || type === 'function'); +} +exports.isObj = isObj; +function isNumber(value) { + return /^\d+(\.\d+)?$/.test(value); +} +exports.isNumber = isNumber; +function isBoolean(value) { + return typeof value === 'boolean'; +} +exports.isBoolean = isBoolean; +var IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i; +var VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv)/i; +function isImageUrl(url) { + return IMAGE_REGEXP.test(url); +} +exports.isImageUrl = isImageUrl; +function isVideoUrl(url) { + return VIDEO_REGEXP.test(url); +} +exports.isVideoUrl = isVideoUrl; diff --git a/src/miniprogram_npm/@vant/weapp/common/version.d.ts b/src/miniprogram_npm/@vant/weapp/common/version.d.ts new file mode 100644 index 0000000..3393221 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/version.d.ts @@ -0,0 +1,15 @@ +/// +interface WxWorkSystemInfo extends WechatMiniprogram.SystemInfo { + environment?: 'wxwork'; +} +interface SystemInfo extends WxWorkSystemInfo, WechatMiniprogram.SystemInfo { +} +export declare function getSystemInfoSync(): SystemInfo; +export declare function canIUseModel(): boolean; +export declare function canIUseFormFieldButton(): boolean; +export declare function canIUseAnimate(): boolean; +export declare function canIUseGroupSetData(): boolean; +export declare function canIUseNextTick(): boolean; +export declare function canIUseCanvas2d(): boolean; +export declare function canIUseGetUserProfile(): boolean; +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/common/version.js b/src/miniprogram_npm/@vant/weapp/common/version.js new file mode 100644 index 0000000..5937008 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/version.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.canIUseGetUserProfile = exports.canIUseCanvas2d = exports.canIUseNextTick = exports.canIUseGroupSetData = exports.canIUseAnimate = exports.canIUseFormFieldButton = exports.canIUseModel = exports.getSystemInfoSync = void 0; +var systemInfo; +function getSystemInfoSync() { + if (systemInfo == null) { + systemInfo = wx.getSystemInfoSync(); + } + return systemInfo; +} +exports.getSystemInfoSync = getSystemInfoSync; +function compareVersion(v1, v2) { + v1 = v1.split('.'); + v2 = v2.split('.'); + var len = Math.max(v1.length, v2.length); + while (v1.length < len) { + v1.push('0'); + } + while (v2.length < len) { + v2.push('0'); + } + for (var i = 0; i < len; i++) { + var num1 = parseInt(v1[i], 10); + var num2 = parseInt(v2[i], 10); + if (num1 > num2) { + return 1; + } + if (num1 < num2) { + return -1; + } + } + return 0; +} +function gte(version) { + var system = getSystemInfoSync(); + return compareVersion(system.SDKVersion, version) >= 0; +} +function canIUseModel() { + return gte('2.9.3'); +} +exports.canIUseModel = canIUseModel; +function canIUseFormFieldButton() { + return gte('2.10.3'); +} +exports.canIUseFormFieldButton = canIUseFormFieldButton; +function canIUseAnimate() { + return gte('2.9.0'); +} +exports.canIUseAnimate = canIUseAnimate; +function canIUseGroupSetData() { + return gte('2.4.0'); +} +exports.canIUseGroupSetData = canIUseGroupSetData; +function canIUseNextTick() { + try { + return wx.canIUse('nextTick'); + } + catch (e) { + return gte('2.7.1'); + } +} +exports.canIUseNextTick = canIUseNextTick; +function canIUseCanvas2d() { + return gte('2.9.0'); +} +exports.canIUseCanvas2d = canIUseCanvas2d; +function canIUseGetUserProfile() { + return !!wx.getUserProfile; +} +exports.canIUseGetUserProfile = canIUseGetUserProfile; diff --git a/src/miniprogram_npm/@vant/weapp/config-provider/index.d.ts b/src/miniprogram_npm/@vant/weapp/config-provider/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/config-provider/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/config-provider/index.js b/src/miniprogram_npm/@vant/weapp/config-provider/index.js new file mode 100644 index 0000000..21fb1c4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/config-provider/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + themeVars: { + type: Object, + value: {}, + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/config-provider/index.json b/src/miniprogram_npm/@vant/weapp/config-provider/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/config-provider/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/config-provider/index.wxml b/src/miniprogram_npm/@vant/weapp/config-provider/index.wxml new file mode 100644 index 0000000..3cfb461 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/config-provider/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/config-provider/index.wxs b/src/miniprogram_npm/@vant/weapp/config-provider/index.wxs new file mode 100644 index 0000000..7ca0203 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/config-provider/index.wxs @@ -0,0 +1,29 @@ +/* eslint-disable */ +var object = require('../wxs/object.wxs'); +var style = require('../wxs/style.wxs'); + +function kebabCase(word) { + var newWord = word + .replace(getRegExp("[A-Z]", 'g'), function (i) { + return '-' + i; + }) + .toLowerCase() + .replace(getRegExp("^-"), ''); + + return newWord; +} + +function mapThemeVarsToCSSVars(themeVars) { + var cssVars = {}; + object.keys(themeVars).forEach(function (key) { + var cssVarsKey = '--' + kebabCase(key); + cssVars[cssVarsKey] = themeVars[key]; + }); + + return style(cssVars); +} + +module.exports = { + kebabCase: kebabCase, + mapThemeVarsToCSSVars: mapThemeVarsToCSSVars, +}; diff --git a/src/miniprogram_npm/@vant/weapp/count-down/index.d.ts b/src/miniprogram_npm/@vant/weapp/count-down/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/count-down/index.js b/src/miniprogram_npm/@vant/weapp/count-down/index.js new file mode 100644 index 0000000..afc780b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/index.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var utils_1 = require("./utils"); +function simpleTick(fn) { + return setTimeout(fn, 30); +} +(0, component_1.VantComponent)({ + props: { + useSlot: Boolean, + millisecond: Boolean, + time: { + type: Number, + observer: 'reset', + }, + format: { + type: String, + value: 'HH:mm:ss', + }, + autoStart: { + type: Boolean, + value: true, + }, + }, + data: { + timeData: (0, utils_1.parseTimeData)(0), + formattedTime: '0', + }, + destroyed: function () { + clearTimeout(this.tid); + this.tid = null; + }, + methods: { + // 开始 + start: function () { + if (this.counting) { + return; + } + this.counting = true; + this.endTime = Date.now() + this.remain; + this.tick(); + }, + // 暂停 + pause: function () { + this.counting = false; + clearTimeout(this.tid); + }, + // 重置 + reset: function () { + this.pause(); + this.remain = this.data.time; + this.setRemain(this.remain); + if (this.data.autoStart) { + this.start(); + } + }, + tick: function () { + if (this.data.millisecond) { + this.microTick(); + } + else { + this.macroTick(); + } + }, + microTick: function () { + var _this = this; + this.tid = simpleTick(function () { + _this.setRemain(_this.getRemain()); + if (_this.remain !== 0) { + _this.microTick(); + } + }); + }, + macroTick: function () { + var _this = this; + this.tid = simpleTick(function () { + var remain = _this.getRemain(); + if (!(0, utils_1.isSameSecond)(remain, _this.remain) || remain === 0) { + _this.setRemain(remain); + } + if (_this.remain !== 0) { + _this.macroTick(); + } + }); + }, + getRemain: function () { + return Math.max(this.endTime - Date.now(), 0); + }, + setRemain: function (remain) { + this.remain = remain; + var timeData = (0, utils_1.parseTimeData)(remain); + if (this.data.useSlot) { + this.$emit('change', timeData); + } + this.setData({ + formattedTime: (0, utils_1.parseFormat)(this.data.format, timeData), + }); + if (remain === 0) { + this.pause(); + this.$emit('finish'); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/count-down/index.json b/src/miniprogram_npm/@vant/weapp/count-down/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/count-down/index.wxml b/src/miniprogram_npm/@vant/weapp/count-down/index.wxml new file mode 100644 index 0000000..e206e16 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/index.wxml @@ -0,0 +1,4 @@ + + + {{ formattedTime }} + diff --git a/src/miniprogram_npm/@vant/weapp/count-down/index.wxss b/src/miniprogram_npm/@vant/weapp/count-down/index.wxss new file mode 100644 index 0000000..8b957f7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-count-down{color:var(--count-down-text-color,#323233);font-size:var(--count-down-font-size,14px);line-height:var(--count-down-line-height,20px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/count-down/utils.d.ts b/src/miniprogram_npm/@vant/weapp/count-down/utils.d.ts new file mode 100644 index 0000000..876a6c1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/utils.d.ts @@ -0,0 +1,10 @@ +export type TimeData = { + days: number; + hours: number; + minutes: number; + seconds: number; + milliseconds: number; +}; +export declare function parseTimeData(time: number): TimeData; +export declare function parseFormat(format: string, timeData: TimeData): string; +export declare function isSameSecond(time1: number, time2: number): boolean; diff --git a/src/miniprogram_npm/@vant/weapp/count-down/utils.js b/src/miniprogram_npm/@vant/weapp/count-down/utils.js new file mode 100644 index 0000000..a7cfa5f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/utils.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isSameSecond = exports.parseFormat = exports.parseTimeData = void 0; +function padZero(num, targetLength) { + if (targetLength === void 0) { targetLength = 2; } + var str = num + ''; + while (str.length < targetLength) { + str = '0' + str; + } + return str; +} +var SECOND = 1000; +var MINUTE = 60 * SECOND; +var HOUR = 60 * MINUTE; +var DAY = 24 * HOUR; +function parseTimeData(time) { + var days = Math.floor(time / DAY); + var hours = Math.floor((time % DAY) / HOUR); + var minutes = Math.floor((time % HOUR) / MINUTE); + var seconds = Math.floor((time % MINUTE) / SECOND); + var milliseconds = Math.floor(time % SECOND); + return { + days: days, + hours: hours, + minutes: minutes, + seconds: seconds, + milliseconds: milliseconds, + }; +} +exports.parseTimeData = parseTimeData; +function parseFormat(format, timeData) { + var days = timeData.days; + var hours = timeData.hours, minutes = timeData.minutes, seconds = timeData.seconds, milliseconds = timeData.milliseconds; + if (format.indexOf('DD') === -1) { + hours += days * 24; + } + else { + format = format.replace('DD', padZero(days)); + } + if (format.indexOf('HH') === -1) { + minutes += hours * 60; + } + else { + format = format.replace('HH', padZero(hours)); + } + if (format.indexOf('mm') === -1) { + seconds += minutes * 60; + } + else { + format = format.replace('mm', padZero(minutes)); + } + if (format.indexOf('ss') === -1) { + milliseconds += seconds * 1000; + } + else { + format = format.replace('ss', padZero(seconds)); + } + return format.replace('SSS', padZero(milliseconds, 3)); +} +exports.parseFormat = parseFormat; +function isSameSecond(time1, time2) { + return Math.floor(time1 / 1000) === Math.floor(time2 / 1000); +} +exports.isSameSecond = isSameSecond; diff --git a/src/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/datetime-picker/index.js b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.js new file mode 100644 index 0000000..e30afef --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.js @@ -0,0 +1,329 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __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; + }; + return __assign.apply(this, arguments); +}; +var __spreadArray = (this && this.__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)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var validator_1 = require("../common/validator"); +var shared_1 = require("../picker/shared"); +var currentYear = new Date().getFullYear(); +function isValidDate(date) { + return (0, validator_1.isDef)(date) && !isNaN(new Date(date).getTime()); +} +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} +function padZero(val) { + return "00".concat(val).slice(-2); +} +function times(n, iteratee) { + var index = -1; + var result = Array(n < 0 ? 0 : n); + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} +function getTrueValue(formattedValue) { + if (formattedValue === undefined) { + formattedValue = '1'; + } + while (isNaN(parseInt(formattedValue, 10))) { + formattedValue = formattedValue.slice(1); + } + return parseInt(formattedValue, 10); +} +function getMonthEndDay(year, month) { + return 32 - new Date(year, month - 1, 32).getDate(); +} +var defaultFormatter = function (type, value) { return value; }; +(0, component_1.VantComponent)({ + classes: ['active-class', 'toolbar-class', 'column-class'], + props: __assign(__assign({}, shared_1.pickerProps), { value: { + type: null, + observer: 'updateValue', + }, filter: null, type: { + type: String, + value: 'datetime', + observer: 'updateValue', + }, showToolbar: { + type: Boolean, + value: true, + }, formatter: { + type: null, + value: defaultFormatter, + }, minDate: { + type: Number, + value: new Date(currentYear - 10, 0, 1).getTime(), + observer: 'updateValue', + }, maxDate: { + type: Number, + value: new Date(currentYear + 10, 11, 31).getTime(), + observer: 'updateValue', + }, minHour: { + type: Number, + value: 0, + observer: 'updateValue', + }, maxHour: { + type: Number, + value: 23, + observer: 'updateValue', + }, minMinute: { + type: Number, + value: 0, + observer: 'updateValue', + }, maxMinute: { + type: Number, + value: 59, + observer: 'updateValue', + } }), + data: { + innerValue: Date.now(), + columns: [], + }, + methods: { + updateValue: function () { + var _this = this; + var data = this.data; + var val = this.correctValue(data.value); + var isEqual = val === data.innerValue; + this.updateColumnValue(val).then(function () { + if (!isEqual) { + _this.$emit('input', val); + } + }); + }, + getPicker: function () { + if (this.picker == null) { + this.picker = this.selectComponent('.van-datetime-picker'); + var picker_1 = this.picker; + var setColumnValues_1 = picker_1.setColumnValues; + picker_1.setColumnValues = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return setColumnValues_1.apply(picker_1, __spreadArray(__spreadArray([], args, true), [false], false)); + }; + } + return this.picker; + }, + updateColumns: function () { + var _a = this.data.formatter, formatter = _a === void 0 ? defaultFormatter : _a; + var results = this.getOriginColumns().map(function (column) { return ({ + values: column.values.map(function (value) { return formatter(column.type, value); }), + }); }); + return this.set({ columns: results }); + }, + getOriginColumns: function () { + var filter = this.data.filter; + var results = this.getRanges().map(function (_a) { + var type = _a.type, range = _a.range; + var values = times(range[1] - range[0] + 1, function (index) { + var value = range[0] + index; + return type === 'year' ? "".concat(value) : padZero(value); + }); + if (filter) { + values = filter(type, values); + } + return { type: type, values: values }; + }); + return results; + }, + getRanges: function () { + var data = this.data; + if (data.type === 'time') { + return [ + { + type: 'hour', + range: [data.minHour, data.maxHour], + }, + { + type: 'minute', + range: [data.minMinute, data.maxMinute], + }, + ]; + } + var _a = this.getBoundary('max', data.innerValue), maxYear = _a.maxYear, maxDate = _a.maxDate, maxMonth = _a.maxMonth, maxHour = _a.maxHour, maxMinute = _a.maxMinute; + var _b = this.getBoundary('min', data.innerValue), minYear = _b.minYear, minDate = _b.minDate, minMonth = _b.minMonth, minHour = _b.minHour, minMinute = _b.minMinute; + var result = [ + { + type: 'year', + range: [minYear, maxYear], + }, + { + type: 'month', + range: [minMonth, maxMonth], + }, + { + type: 'day', + range: [minDate, maxDate], + }, + { + type: 'hour', + range: [minHour, maxHour], + }, + { + type: 'minute', + range: [minMinute, maxMinute], + }, + ]; + if (data.type === 'date') + result.splice(3, 2); + if (data.type === 'year-month') + result.splice(2, 3); + return result; + }, + correctValue: function (value) { + var data = this.data; + // validate value + var isDateType = data.type !== 'time'; + if (isDateType && !isValidDate(value)) { + value = data.minDate; + } + else if (!isDateType && !value) { + var minHour = data.minHour; + value = "".concat(padZero(minHour), ":00"); + } + // time type + if (!isDateType) { + var _a = value.split(':'), hour = _a[0], minute = _a[1]; + hour = padZero(range(hour, data.minHour, data.maxHour)); + minute = padZero(range(minute, data.minMinute, data.maxMinute)); + return "".concat(hour, ":").concat(minute); + } + // date type + value = Math.max(value, data.minDate); + value = Math.min(value, data.maxDate); + return value; + }, + getBoundary: function (type, innerValue) { + var _a; + var value = new Date(innerValue); + var boundary = new Date(this.data["".concat(type, "Date")]); + var year = boundary.getFullYear(); + var month = 1; + var date = 1; + var hour = 0; + var minute = 0; + if (type === 'max') { + month = 12; + date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1); + hour = 23; + minute = 59; + } + if (value.getFullYear() === year) { + month = boundary.getMonth() + 1; + if (value.getMonth() + 1 === month) { + date = boundary.getDate(); + if (value.getDate() === date) { + hour = boundary.getHours(); + if (value.getHours() === hour) { + minute = boundary.getMinutes(); + } + } + } + } + return _a = {}, + _a["".concat(type, "Year")] = year, + _a["".concat(type, "Month")] = month, + _a["".concat(type, "Date")] = date, + _a["".concat(type, "Hour")] = hour, + _a["".concat(type, "Minute")] = minute, + _a; + }, + onCancel: function () { + this.$emit('cancel'); + }, + onConfirm: function () { + this.$emit('confirm', this.data.innerValue); + }, + onChange: function () { + var _this = this; + var data = this.data; + var value; + var picker = this.getPicker(); + var originColumns = this.getOriginColumns(); + if (data.type === 'time') { + var indexes = picker.getIndexes(); + value = "".concat(+originColumns[0].values[indexes[0]], ":").concat(+originColumns[1] + .values[indexes[1]]); + } + else { + var indexes = picker.getIndexes(); + var values = indexes.map(function (value, index) { return originColumns[index].values[value]; }); + var year = getTrueValue(values[0]); + var month = getTrueValue(values[1]); + var maxDate = getMonthEndDay(year, month); + var date = getTrueValue(values[2]); + if (data.type === 'year-month') { + date = 1; + } + date = date > maxDate ? maxDate : date; + var hour = 0; + var minute = 0; + if (data.type === 'datetime') { + hour = getTrueValue(values[3]); + minute = getTrueValue(values[4]); + } + value = new Date(year, month - 1, date, hour, minute); + } + value = this.correctValue(value); + this.updateColumnValue(value).then(function () { + _this.$emit('input', value); + _this.$emit('change', picker); + }); + }, + updateColumnValue: function (value) { + var _this = this; + var values = []; + var type = this.data.type; + var formatter = this.data.formatter || defaultFormatter; + var picker = this.getPicker(); + if (type === 'time') { + var pair = value.split(':'); + values = [formatter('hour', pair[0]), formatter('minute', pair[1])]; + } + else { + var date = new Date(value); + values = [ + formatter('year', "".concat(date.getFullYear())), + formatter('month', padZero(date.getMonth() + 1)), + ]; + if (type === 'date') { + values.push(formatter('day', padZero(date.getDate()))); + } + if (type === 'datetime') { + values.push(formatter('day', padZero(date.getDate())), formatter('hour', padZero(date.getHours())), formatter('minute', padZero(date.getMinutes()))); + } + } + return this.set({ innerValue: value }) + .then(function () { return _this.updateColumns(); }) + .then(function () { return picker.setValues(values); }); + }, + }, + created: function () { + var _this = this; + var innerValue = this.correctValue(this.data.value); + this.updateColumnValue(innerValue).then(function () { + _this.$emit('input', innerValue); + }); + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/datetime-picker/index.json b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.json new file mode 100644 index 0000000..a778e91 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml new file mode 100644 index 0000000..ade2202 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml @@ -0,0 +1,16 @@ + diff --git a/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/definitions/index.d.ts b/src/miniprogram_npm/@vant/weapp/definitions/index.d.ts new file mode 100644 index 0000000..c90321f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/definitions/index.d.ts @@ -0,0 +1,29 @@ +/// +interface VantComponentInstance { + parent: WechatMiniprogram.Component.TrivialInstance; + children: WechatMiniprogram.Component.TrivialInstance[]; + index: number; + $emit: (name: string, detail?: unknown, options?: WechatMiniprogram.Component.TriggerEventOption) => void; + setView: (value: Record, callback?: () => void) => void; +} +export type VantComponentOptions = { + data?: Data; + field?: boolean; + classes?: string[]; + mixins?: string[]; + props?: Props; + relation?: { + relations: Record; + mixin: string; + }; + watch?: Record any>; + methods?: Methods; + beforeCreate?: () => void; + created?: () => void; + mounted?: () => void; + destroyed?: () => void; +} & ThisType, Props, Methods> & Record>; +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/definitions/index.js b/src/miniprogram_npm/@vant/weapp/definitions/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/definitions/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/src/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts b/src/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts new file mode 100644 index 0000000..db2da5f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts @@ -0,0 +1,55 @@ +/// +/// +export type Action = 'confirm' | 'cancel' | 'overlay'; +type DialogContext = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance; +interface DialogOptions { + lang?: string; + show?: boolean; + title?: string; + width?: string | number | null; + zIndex?: number; + theme?: string; + context?: (() => DialogContext) | DialogContext; + message?: string; + overlay?: boolean; + selector?: string; + ariaLabel?: string; + /** + * @deprecated use custom-class instead + */ + className?: string; + customStyle?: string; + transition?: string; + /** + * @deprecated use beforeClose instead + */ + asyncClose?: boolean; + beforeClose?: null | ((action: Action) => Promise | void); + businessId?: number; + sessionFrom?: string; + overlayStyle?: string; + appParameter?: string; + messageAlign?: string; + sendMessageImg?: string; + showMessageCard?: boolean; + sendMessagePath?: string; + sendMessageTitle?: string; + confirmButtonText?: string; + cancelButtonText?: string; + showConfirmButton?: boolean; + showCancelButton?: boolean; + closeOnClickOverlay?: boolean; + confirmButtonOpenType?: string; +} +declare const Dialog: { + (options: DialogOptions): Promise; + alert(options: DialogOptions): Promise; + confirm(options: DialogOptions): Promise; + close(): void; + stopLoading(): void; + currentOptions: DialogOptions; + defaultOptions: DialogOptions; + setDefaultOptions(options: DialogOptions): void; + resetDefaultOptions(): void; +}; +export default Dialog; diff --git a/src/miniprogram_npm/@vant/weapp/dialog/dialog.js b/src/miniprogram_npm/@vant/weapp/dialog/dialog.js new file mode 100644 index 0000000..400f4f1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/dialog.js @@ -0,0 +1,92 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __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; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var queue = []; +var defaultOptions = { + show: false, + title: '', + width: null, + theme: 'default', + message: '', + zIndex: 100, + overlay: true, + selector: '#van-dialog', + className: '', + asyncClose: false, + beforeClose: null, + transition: 'scale', + customStyle: '', + messageAlign: '', + overlayStyle: '', + confirmButtonText: '确认', + cancelButtonText: '取消', + showConfirmButton: true, + showCancelButton: false, + closeOnClickOverlay: false, + confirmButtonOpenType: '', +}; +var currentOptions = __assign({}, defaultOptions); +function getContext() { + var pages = getCurrentPages(); + return pages[pages.length - 1]; +} +var Dialog = function (options) { + options = __assign(__assign({}, currentOptions), options); + return new Promise(function (resolve, reject) { + var context = (typeof options.context === 'function' + ? options.context() + : options.context) || getContext(); + var dialog = context.selectComponent(options.selector); + delete options.context; + delete options.selector; + if (dialog) { + dialog.setData(__assign({ callback: function (action, instance) { + action === 'confirm' ? resolve(instance) : reject(instance); + } }, options)); + wx.nextTick(function () { + dialog.setData({ show: true }); + }); + queue.push(dialog); + } + else { + console.warn('未找到 van-dialog 节点,请确认 selector 及 context 是否正确'); + } + }); +}; +Dialog.alert = function (options) { return Dialog(options); }; +Dialog.confirm = function (options) { + return Dialog(__assign({ showCancelButton: true }, options)); +}; +Dialog.close = function () { + queue.forEach(function (dialog) { + dialog.close(); + }); + queue = []; +}; +Dialog.stopLoading = function () { + queue.forEach(function (dialog) { + dialog.stopLoading(); + }); +}; +Dialog.currentOptions = currentOptions; +Dialog.defaultOptions = defaultOptions; +Dialog.setDefaultOptions = function (options) { + currentOptions = __assign(__assign({}, currentOptions), options); + Dialog.currentOptions = currentOptions; +}; +Dialog.resetDefaultOptions = function () { + currentOptions = __assign({}, defaultOptions); + Dialog.currentOptions = currentOptions; +}; +Dialog.resetDefaultOptions(); +exports.default = Dialog; diff --git a/src/miniprogram_npm/@vant/weapp/dialog/index.d.ts b/src/miniprogram_npm/@vant/weapp/dialog/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/dialog/index.js b/src/miniprogram_npm/@vant/weapp/dialog/index.js new file mode 100644 index 0000000..b0acfa0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/index.js @@ -0,0 +1,135 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +var color_1 = require("../common/color"); +var utils_1 = require("../common/utils"); +(0, component_1.VantComponent)({ + mixins: [button_1.button], + classes: ['cancle-button-class', 'confirm-button-class'], + props: { + show: { + type: Boolean, + observer: function (show) { + !show && this.stopLoading(); + }, + }, + title: String, + message: String, + theme: { + type: String, + value: 'default', + }, + confirmButtonId: String, + className: String, + customStyle: String, + asyncClose: Boolean, + messageAlign: String, + beforeClose: null, + overlayStyle: String, + useSlot: Boolean, + useTitleSlot: Boolean, + useConfirmButtonSlot: Boolean, + useCancelButtonSlot: Boolean, + showCancelButton: Boolean, + closeOnClickOverlay: Boolean, + confirmButtonOpenType: String, + width: null, + zIndex: { + type: Number, + value: 2000, + }, + confirmButtonText: { + type: String, + value: '确认', + }, + cancelButtonText: { + type: String, + value: '取消', + }, + confirmButtonColor: { + type: String, + value: color_1.RED, + }, + cancelButtonColor: { + type: String, + value: color_1.GRAY, + }, + showConfirmButton: { + type: Boolean, + value: true, + }, + overlay: { + type: Boolean, + value: true, + }, + transition: { + type: String, + value: 'scale', + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + data: { + loading: { + confirm: false, + cancel: false, + }, + callback: (function () { }), + }, + methods: { + onConfirm: function () { + this.handleAction('confirm'); + }, + onCancel: function () { + this.handleAction('cancel'); + }, + onClickOverlay: function () { + this.close('overlay'); + }, + close: function (action) { + var _this = this; + this.setData({ show: false }); + wx.nextTick(function () { + _this.$emit('close', action); + var callback = _this.data.callback; + if (callback) { + callback(action, _this); + } + }); + }, + stopLoading: function () { + this.setData({ + loading: { + confirm: false, + cancel: false, + }, + }); + }, + handleAction: function (action) { + var _a; + var _this = this; + this.$emit(action, { dialog: this }); + var _b = this.data, asyncClose = _b.asyncClose, beforeClose = _b.beforeClose; + if (!asyncClose && !beforeClose) { + this.close(action); + return; + } + this.setData((_a = {}, + _a["loading.".concat(action)] = true, + _a)); + if (beforeClose) { + (0, utils_1.toPromise)(beforeClose(action)).then(function (value) { + if (value) { + _this.close(action); + } + else { + _this.stopLoading(); + } + }); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/dialog/index.json b/src/miniprogram_npm/@vant/weapp/dialog/index.json new file mode 100644 index 0000000..43417fc --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/index.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "../popup/index", + "van-button": "../button/index", + "van-goods-action": "../goods-action/index", + "van-goods-action-button": "../goods-action-button/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/dialog/index.wxml b/src/miniprogram_npm/@vant/weapp/dialog/index.wxml new file mode 100644 index 0000000..a1d8e3c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/index.wxml @@ -0,0 +1,125 @@ + + + + + + {{ title }} + + + + + {{ message }} + + + + + {{ cancelButtonText }} + + + {{ confirmButtonText }} + + + + + + + + + {{ cancelButtonText }} + + + + + + + + {{ confirmButtonText }} + + + + diff --git a/src/miniprogram_npm/@vant/weapp/dialog/index.wxss b/src/miniprogram_npm/@vant/weapp/dialog/index.wxss new file mode 100644 index 0000000..507a789 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dialog{background-color:var(--dialog-background-color,#fff);border-radius:var(--dialog-border-radius,16px);font-size:var(--dialog-font-size,16px);overflow:hidden;top:45%!important;width:var(--dialog-width,320px)}@media (max-width:321px){.van-dialog{width:var(--dialog-small-screen-width,90%)}}.van-dialog__header{font-weight:var(--dialog-header-font-weight,500);line-height:var(--dialog-header-line-height,24px);padding-top:var(--dialog-header-padding-top,24px);text-align:center}.van-dialog__header--isolated{padding:var(--dialog-header-isolated-padding,24px 0)}.van-dialog__message{-webkit-overflow-scrolling:touch;font-size:var(--dialog-message-font-size,14px);line-height:var(--dialog-message-line-height,20px);max-height:var(--dialog-message-max-height,60vh);overflow-y:auto;padding:var(--dialog-message-padding,24px);text-align:center}.van-dialog__message-text{word-wrap:break-word}.van-dialog__message--hasTitle{color:var(--dialog-has-title-message-text-color,#646566);padding-top:var(--dialog-has-title-message-padding-top,8px)}.van-dialog__message--round-button{color:#323233;padding-bottom:16px}.van-dialog__message--left{text-align:left}.van-dialog__message--right{text-align:right}.van-dialog__message--justify{text-align:justify}.van-dialog__footer{display:flex}.van-dialog__footer--round-button{padding:8px 24px 16px!important;position:relative!important}.van-dialog__button{flex:1}.van-dialog__cancel,.van-dialog__confirm{border:0!important}.van-dialog-bounce-enter{opacity:0;transform:translate3d(-50%,-50%,0) scale(.7)}.van-dialog-bounce-leave-active{opacity:0;transform:translate3d(-50%,-50%,0) scale(.9)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.d.ts b/src/miniprogram_npm/@vant/weapp/divider/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.js b/src/miniprogram_npm/@vant/weapp/divider/index.js new file mode 100644 index 0000000..5c63844 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + dashed: Boolean, + hairline: Boolean, + contentPosition: String, + fontSize: String, + borderColor: String, + textColor: String, + customStyle: String, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.json b/src/miniprogram_npm/@vant/weapp/divider/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.wxml b/src/miniprogram_npm/@vant/weapp/divider/index.wxml new file mode 100644 index 0000000..f6a5a45 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.wxml @@ -0,0 +1,9 @@ + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.wxs b/src/miniprogram_npm/@vant/weapp/divider/index.wxs new file mode 100644 index 0000000..215b14f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + return style([ + { + 'border-color': data.borderColor, + color: data.textColor, + 'font-size': addUnit(data.fontSize), + }, + data.customStyle, + ]); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.wxss b/src/miniprogram_npm/@vant/weapp/divider/index.wxss new file mode 100644 index 0000000..e91dc44 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-divider{align-items:center;border:0 solid var(--divider-border-color,#ebedf0);color:var(--divider-text-color,#969799);display:flex;font-size:var(--divider-font-size,14px);line-height:var(--divider-line-height,24px);margin:var(--divider-margin,16px 0)}.van-divider:after,.van-divider:before{border-color:inherit;border-style:inherit;border-width:1px 0 0;box-sizing:border-box;display:block;flex:1;height:1px}.van-divider:before{content:""}.van-divider--hairline:after,.van-divider--hairline:before{transform:scaleY(.5)}.van-divider--dashed{border-style:dashed}.van-divider--center:before,.van-divider--left:before,.van-divider--right:before{margin-right:var(--divider-content-padding,16px)}.van-divider--center:after,.van-divider--left:after,.van-divider--right:after{content:"";margin-left:var(--divider-content-padding,16px)}.van-divider--left:before{max-width:var(--divider-content-left-width,10%)}.van-divider--right:after{max-width:var(--divider-content-right-width,10%)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/index.js b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.js new file mode 100644 index 0000000..826c26a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.js @@ -0,0 +1,136 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: ['item-title-class'], + field: true, + relation: (0, relation_1.useParent)('dropdown-menu', function () { + this.updateDataFromParent(); + }), + props: { + value: { + type: null, + observer: 'rerender', + }, + title: { + type: String, + observer: 'rerender', + }, + disabled: Boolean, + titleClass: { + type: String, + observer: 'rerender', + }, + options: { + type: Array, + value: [], + observer: 'rerender', + }, + popupStyle: String, + useBeforeToggle: { + type: Boolean, + value: false, + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + data: { + transition: true, + showPopup: false, + showWrapper: false, + displayTitle: '', + safeAreaTabBar: false, + }, + methods: { + rerender: function () { + var _this = this; + wx.nextTick(function () { + var _a; + (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.updateItemListData(); + }); + }, + updateDataFromParent: function () { + if (this.parent) { + var _a = this.parent.data, overlay = _a.overlay, duration = _a.duration, activeColor = _a.activeColor, closeOnClickOverlay = _a.closeOnClickOverlay, direction = _a.direction, safeAreaTabBar = _a.safeAreaTabBar; + this.setData({ + overlay: overlay, + duration: duration, + activeColor: activeColor, + closeOnClickOverlay: closeOnClickOverlay, + direction: direction, + safeAreaTabBar: safeAreaTabBar, + }); + } + }, + onOpen: function () { + this.$emit('open'); + }, + onOpened: function () { + this.$emit('opened'); + }, + onClose: function () { + this.$emit('close'); + }, + onClosed: function () { + this.$emit('closed'); + this.setData({ showWrapper: false }); + }, + onOptionTap: function (event) { + var option = event.currentTarget.dataset.option; + var value = option.value; + var shouldEmitChange = this.data.value !== value; + this.setData({ showPopup: false, value: value }); + this.$emit('close'); + this.rerender(); + if (shouldEmitChange) { + this.$emit('change', value); + } + }, + toggle: function (show, options) { + var _this = this; + if (options === void 0) { options = {}; } + var showPopup = this.data.showPopup; + if (typeof show !== 'boolean') { + show = !showPopup; + } + if (show === showPopup) { + return; + } + this.onBeforeToggle(show).then(function (status) { + var _a; + if (!status) { + return; + } + _this.setData({ + transition: !options.immediate, + showPopup: show, + }); + if (show) { + (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.getChildWrapperStyle().then(function (wrapperStyle) { + _this.setData({ wrapperStyle: wrapperStyle, showWrapper: true }); + _this.rerender(); + }); + } + else { + _this.rerender(); + } + }); + }, + onBeforeToggle: function (status) { + var _this = this; + var useBeforeToggle = this.data.useBeforeToggle; + if (!useBeforeToggle) { + return Promise.resolve(true); + } + return new Promise(function (resolve) { + _this.$emit('before-toggle', { + status: status, + callback: function (value) { return resolve(value); }, + }); + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/index.json b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.json new file mode 100644 index 0000000..88d5409 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "../popup/index", + "van-cell": "../cell/index", + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml new file mode 100644 index 0000000..63904f4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml @@ -0,0 +1,50 @@ + + + + + + + {{ item.text }} + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss new file mode 100644 index 0000000..80505e9 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dropdown-item{left:0;overflow:hidden;position:fixed;right:0}.van-dropdown-item__option{text-align:left}.van-dropdown-item__option--active .van-dropdown-item__icon,.van-dropdown-item__option--active .van-dropdown-item__title{color:var(--dropdown-menu-option-active-color,#ee0a24)}.van-dropdown-item--up{top:0}.van-dropdown-item--down{bottom:0}.van-dropdown-item__icon{display:block;line-height:inherit} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts b/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts new file mode 100644 index 0000000..774eb4c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts @@ -0,0 +1,5 @@ +export interface Option { + text: string; + value: string | number; + icon: string; +} diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.js b/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.js b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.js new file mode 100644 index 0000000..aed2921 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.js @@ -0,0 +1,122 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var utils_1 = require("../common/utils"); +var ARRAY = []; +(0, component_1.VantComponent)({ + field: true, + classes: ['title-class'], + relation: (0, relation_1.useChildren)('dropdown-item', function () { + this.updateItemListData(); + }), + props: { + activeColor: { + type: String, + observer: 'updateChildrenData', + }, + overlay: { + type: Boolean, + value: true, + observer: 'updateChildrenData', + }, + zIndex: { + type: Number, + value: 10, + }, + duration: { + type: Number, + value: 200, + observer: 'updateChildrenData', + }, + direction: { + type: String, + value: 'down', + observer: 'updateChildrenData', + }, + safeAreaTabBar: { + type: Boolean, + value: false, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + observer: 'updateChildrenData', + }, + closeOnClickOutside: { + type: Boolean, + value: true, + }, + }, + data: { + itemListData: [], + }, + beforeCreate: function () { + var windowHeight = (0, utils_1.getSystemInfoSync)().windowHeight; + this.windowHeight = windowHeight; + ARRAY.push(this); + }, + destroyed: function () { + var _this = this; + ARRAY = ARRAY.filter(function (item) { return item !== _this; }); + }, + methods: { + updateItemListData: function () { + this.setData({ + itemListData: this.children.map(function (child) { return child.data; }), + }); + }, + updateChildrenData: function () { + this.children.forEach(function (child) { + child.updateDataFromParent(); + }); + }, + toggleItem: function (active) { + this.children.forEach(function (item, index) { + var showPopup = item.data.showPopup; + if (index === active) { + item.toggle(); + } + else if (showPopup) { + item.toggle(false, { immediate: true }); + } + }); + }, + close: function () { + this.children.forEach(function (child) { + child.toggle(false, { immediate: true }); + }); + }, + getChildWrapperStyle: function () { + var _this = this; + var _a = this.data, zIndex = _a.zIndex, direction = _a.direction; + return (0, utils_1.getRect)(this, '.van-dropdown-menu').then(function (rect) { + var _a = rect.top, top = _a === void 0 ? 0 : _a, _b = rect.bottom, bottom = _b === void 0 ? 0 : _b; + var offset = direction === 'down' ? bottom : _this.windowHeight - top; + var wrapperStyle = "z-index: ".concat(zIndex, ";"); + if (direction === 'down') { + wrapperStyle += "top: ".concat((0, utils_1.addUnit)(offset), ";"); + } + else { + wrapperStyle += "bottom: ".concat((0, utils_1.addUnit)(offset), ";"); + } + return wrapperStyle; + }); + }, + onTitleTap: function (event) { + var _this = this; + var index = event.currentTarget.dataset.index; + var child = this.children[index]; + if (!child.data.disabled) { + ARRAY.forEach(function (menuItem) { + if (menuItem && + menuItem.data.closeOnClickOutside && + menuItem !== _this) { + menuItem.close(); + } + }); + this.toggleItem(index); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.json b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml new file mode 100644 index 0000000..ec165a9 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml @@ -0,0 +1,23 @@ + + + + + + + + {{ computed.displayTitle(item) }} + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs new file mode 100644 index 0000000..6538854 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs @@ -0,0 +1,16 @@ +/* eslint-disable */ +function displayTitle(item) { + if (item.title) { + return item.title; + } + + var match = item.options.filter(function(option) { + return option.value === item.value; + }); + var displayTitle = match.length ? match[0].text : ''; + return displayTitle; +} + +module.exports = { + displayTitle: displayTitle +}; diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss new file mode 100644 index 0000000..dba000e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dropdown-menu{background-color:var(--dropdown-menu-background-color,#fff);box-shadow:var(--dropdown-menu-box-shadow,0 2px 12px hsla(210,1%,40%,.12));display:flex;height:var(--dropdown-menu-height,50px);-webkit-user-select:none;user-select:none}.van-dropdown-menu__item{align-items:center;display:flex;flex:1;justify-content:center;min-width:0}.van-dropdown-menu__item:active{opacity:.7}.van-dropdown-menu__item--disabled:active{opacity:1}.van-dropdown-menu__item--disabled .van-dropdown-menu__title{color:var(--dropdown-menu-title-disabled-text-color,#969799)}.van-dropdown-menu__title{box-sizing:border-box;color:var(--dropdown-menu-title-text-color,#323233);font-size:var(--dropdown-menu-title-font-size,15px);line-height:var(--dropdown-menu-title-line-height,18px);max-width:100%;padding:var(--dropdown-menu-title-padding,0 24px 0 8px);position:relative}.van-dropdown-menu__title:after{border-color:transparent transparent currentcolor currentcolor;border-style:solid;border-width:3px;content:"";margin-top:-5px;opacity:.8;position:absolute;right:11px;top:50%;transform:rotate(-45deg)}.van-dropdown-menu__title--active{color:var(--dropdown-menu-title-active-text-color,#ee0a24)}.van-dropdown-menu__title--down:after{margin-top:-1px;transform:rotate(135deg)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.d.ts b/src/miniprogram_npm/@vant/weapp/empty/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.js b/src/miniprogram_npm/@vant/weapp/empty/index.js new file mode 100644 index 0000000..755e638 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + description: String, + image: { + type: String, + value: 'default', + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.json b/src/miniprogram_npm/@vant/weapp/empty/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.wxml b/src/miniprogram_npm/@vant/weapp/empty/index.wxml new file mode 100644 index 0000000..9c7b719 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.wxml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + {{ description }} + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.wxs b/src/miniprogram_npm/@vant/weapp/empty/index.wxs new file mode 100644 index 0000000..cf92ece --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.wxs @@ -0,0 +1,15 @@ +/* eslint-disable */ +var PRESETS = ['error', 'search', 'default', 'network']; + +function imageUrl(image) { + if (PRESETS.indexOf(image) !== -1) { + return 'https://img.yzcdn.cn/vant/empty-image-' + image + '.png'; + } + + return image; +} + +module.exports = { + imageUrl: imageUrl, +}; + diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.wxss b/src/miniprogram_npm/@vant/weapp/empty/index.wxss new file mode 100644 index 0000000..0fb74fe --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-empty{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:32px 0}.van-empty__image{height:160px;width:160px}.van-empty__image:empty{display:none}.van-empty__image__img{height:100%;width:100%}.van-empty__image:not(:empty)+.van-empty__image{display:none}.van-empty__description{color:#969799;font-size:14px;line-height:20px;margin-top:16px;padding:0 60px}.van-empty__description:empty,.van-empty__description:not(:empty)+.van-empty__description{display:none}.van-empty__bottom{margin-top:24px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/field/index.d.ts b/src/miniprogram_npm/@vant/weapp/field/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/field/index.js b/src/miniprogram_npm/@vant/weapp/field/index.js new file mode 100644 index 0000000..ee64d5f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.js @@ -0,0 +1,152 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __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; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var utils_1 = require("../common/utils"); +var component_1 = require("../common/component"); +var props_1 = require("./props"); +(0, component_1.VantComponent)({ + field: true, + classes: ['input-class', 'right-icon-class', 'label-class'], + props: __assign(__assign(__assign(__assign({}, props_1.commonProps), props_1.inputProps), props_1.textareaProps), { size: String, icon: String, label: String, error: Boolean, center: Boolean, isLink: Boolean, leftIcon: String, rightIcon: String, autosize: null, required: Boolean, iconClass: String, clickable: Boolean, inputAlign: String, customStyle: String, errorMessage: String, arrowDirection: String, showWordLimit: Boolean, errorMessageAlign: String, readonly: { + type: Boolean, + observer: 'setShowClear', + }, clearable: { + type: Boolean, + observer: 'setShowClear', + }, clearTrigger: { + type: String, + value: 'focus', + }, border: { + type: Boolean, + value: true, + }, titleWidth: { + type: String, + value: '6.2em', + }, clearIcon: { + type: String, + value: 'clear', + }, extraEventParams: { + type: Boolean, + value: false, + } }), + data: { + focused: false, + innerValue: '', + showClear: false, + }, + watch: { + value: function (value) { + if (value !== this.value) { + this.setData({ innerValue: value }); + this.value = value; + this.setShowClear(); + } + }, + clearTrigger: function () { + this.setShowClear(); + }, + }, + created: function () { + this.value = this.data.value; + this.setData({ innerValue: this.value }); + }, + methods: { + formatValue: function (value) { + var maxlength = this.data.maxlength; + if (maxlength !== -1 && value.length > maxlength) { + return value.slice(0, maxlength); + } + return value; + }, + onInput: function (event) { + var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a; + var formatValue = this.formatValue(value); + this.value = formatValue; + this.setShowClear(); + return this.emitChange(__assign(__assign({}, event.detail), { value: formatValue })); + }, + onFocus: function (event) { + this.focused = true; + this.setShowClear(); + this.$emit('focus', event.detail); + }, + onBlur: function (event) { + this.focused = false; + this.setShowClear(); + this.$emit('blur', event.detail); + }, + onClickIcon: function () { + this.$emit('click-icon'); + }, + onClickInput: function (event) { + this.$emit('click-input', event.detail); + }, + onClear: function () { + var _this = this; + this.setData({ innerValue: '' }); + this.value = ''; + this.setShowClear(); + (0, utils_1.nextTick)(function () { + _this.emitChange({ value: '' }); + _this.$emit('clear', ''); + }); + }, + onConfirm: function (event) { + var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a; + this.value = value; + this.setShowClear(); + this.$emit('confirm', value); + }, + setValue: function (value) { + this.value = value; + this.setShowClear(); + if (value === '') { + this.setData({ innerValue: '' }); + } + this.emitChange({ value: value }); + }, + onLineChange: function (event) { + this.$emit('linechange', event.detail); + }, + onKeyboardHeightChange: function (event) { + this.$emit('keyboardheightchange', event.detail); + }, + onBindNicknameReview: function (event) { + this.$emit('nicknamereview', event.detail); + }, + emitChange: function (detail) { + var extraEventParams = this.data.extraEventParams; + this.setData({ value: detail.value }); + var result; + var data = extraEventParams + ? __assign(__assign({}, detail), { callback: function (data) { + result = data; + } }) : detail.value; + this.$emit('input', data); + this.$emit('change', data); + return result; + }, + setShowClear: function () { + var _a = this.data, clearable = _a.clearable, readonly = _a.readonly, clearTrigger = _a.clearTrigger; + var _b = this, focused = _b.focused, value = _b.value; + var showClear = false; + if (clearable && !readonly) { + var hasValue = !!value; + var trigger = clearTrigger === 'always' || (clearTrigger === 'focus' && focused); + showClear = hasValue && trigger; + } + this.setView({ showClear: showClear }); + }, + noop: function () { }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/field/index.json b/src/miniprogram_npm/@vant/weapp/field/index.json new file mode 100644 index 0000000..5906c50 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index", + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/field/index.wxml b/src/miniprogram_npm/@vant/weapp/field/index.wxml new file mode 100644 index 0000000..6018993 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.wxml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/field/index.wxs b/src/miniprogram_npm/@vant/weapp/field/index.wxs new file mode 100644 index 0000000..78575b9 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function inputStyle(autosize) { + if (autosize && autosize.constructor === 'Object') { + return style({ + 'min-height': addUnit(autosize.minHeight), + 'max-height': addUnit(autosize.maxHeight), + }); + } + + return ''; +} + +module.exports = { + inputStyle: inputStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/field/index.wxss b/src/miniprogram_npm/@vant/weapp/field/index.wxss new file mode 100644 index 0000000..5f7d306 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-field{--cell-icon-size:var(--field-icon-size,16px)}.van-field__label{color:var(--field-label-color,#646566)}.van-field__label--disabled{color:var(--field-disabled-text-color,#c8c9cc)}.van-field__body{align-items:center;display:flex}.van-field__body--textarea{box-sizing:border-box;line-height:1.2em;min-height:var(--cell-line-height,24px);padding:3.6px 0}.van-field__control:empty+.van-field__control{display:block}.van-field__control{background-color:initial;border:0;box-sizing:border-box;color:var(--field-input-text-color,#323233);display:none;height:var(--cell-line-height,24px);line-height:inherit;margin:0;min-height:var(--cell-line-height,24px);padding:0;position:relative;resize:none;text-align:left;width:100%}.van-field__control:empty{display:none}.van-field__control--textarea{height:var(--field-text-area-min-height,18px);min-height:var(--field-text-area-min-height,18px)}.van-field__control--error{color:var(--field-input-error-text-color,#ee0a24)}.van-field__control--disabled{background-color:initial;color:var(--field-input-disabled-text-color,#c8c9cc);opacity:1}.van-field__control--center{text-align:center}.van-field__control--right{text-align:right}.van-field__control--custom{align-items:center;display:flex;min-height:var(--cell-line-height,24px)}.van-field__placeholder{color:var(--field-placeholder-text-color,#c8c9cc);left:0;pointer-events:none;position:absolute;right:0;top:0}.van-field__placeholder--error{color:var(--field-error-message-color,#ee0a24)}.van-field__icon-root{align-items:center;display:flex;min-height:var(--cell-line-height,24px)}.van-field__clear-root,.van-field__icon-container{line-height:inherit;margin-right:calc(var(--padding-xs, 8px)*-1);padding:0 var(--padding-xs,8px);vertical-align:middle}.van-field__button,.van-field__clear-root,.van-field__icon-container{flex-shrink:0}.van-field__clear-root{color:var(--field-clear-icon-color,#c8c9cc);font-size:var(--field-clear-icon-size,16px)}.van-field__icon-container{color:var(--field-icon-container-color,#969799);font-size:var(--field-icon-size,16px)}.van-field__icon-container:empty{display:none}.van-field__button{padding-left:var(--padding-xs,8px)}.van-field__button:empty{display:none}.van-field__error-message{color:var(--field-error-message-color,#ee0a24);display:block;font-size:var(--field-error-message-text-font-size,12px);text-align:left}.van-field__error-message--center{text-align:center}.van-field__error-message--right{text-align:right}.van-field__word-limit{color:var(--field-word-limit-color,#646566);font-size:var(--field-word-limit-font-size,12px);line-height:var(--field-word-limit-line-height,16px);margin-top:var(--padding-base,4px);text-align:right}.van-field__word-num{display:inline}.van-field__word-num--full{color:var(--field-word-num-full-color,#ee0a24)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/field/input.wxml b/src/miniprogram_npm/@vant/weapp/field/input.wxml new file mode 100644 index 0000000..86b288b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/input.wxml @@ -0,0 +1,31 @@ + + diff --git a/src/miniprogram_npm/@vant/weapp/field/props.d.ts b/src/miniprogram_npm/@vant/weapp/field/props.d.ts new file mode 100644 index 0000000..5cd130a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/props.d.ts @@ -0,0 +1,4 @@ +/// +export declare const commonProps: WechatMiniprogram.Component.PropertyOption; +export declare const inputProps: WechatMiniprogram.Component.PropertyOption; +export declare const textareaProps: WechatMiniprogram.Component.PropertyOption; diff --git a/src/miniprogram_npm/@vant/weapp/field/props.js b/src/miniprogram_npm/@vant/weapp/field/props.js new file mode 100644 index 0000000..5ec647b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/props.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.textareaProps = exports.inputProps = exports.commonProps = void 0; +exports.commonProps = { + value: String, + placeholder: String, + placeholderStyle: String, + placeholderClass: String, + disabled: Boolean, + maxlength: { + type: Number, + value: -1, + }, + cursorSpacing: { + type: Number, + value: 50, + }, + autoFocus: Boolean, + focus: Boolean, + cursor: { + type: Number, + value: -1, + }, + selectionStart: { + type: Number, + value: -1, + }, + selectionEnd: { + type: Number, + value: -1, + }, + adjustPosition: { + type: Boolean, + value: true, + }, + holdKeyboard: Boolean, +}; +exports.inputProps = { + type: { + type: String, + value: 'text', + }, + password: Boolean, + confirmType: String, + confirmHold: Boolean, + alwaysEmbed: Boolean, +}; +exports.textareaProps = { + autoHeight: Boolean, + fixed: Boolean, + showConfirmBar: { + type: Boolean, + value: true, + }, + disableDefaultPadding: { + type: Boolean, + value: true, + }, +}; diff --git a/src/miniprogram_npm/@vant/weapp/field/textarea.wxml b/src/miniprogram_npm/@vant/weapp/field/textarea.wxml new file mode 100644 index 0000000..945d03e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/textarea.wxml @@ -0,0 +1,32 @@ + + + + 提交 + 提交 + + + + + + + + + 开始 + 关闭 + + + diff --git a/src/pages/login/index.json b/src/pages/login/index.json new file mode 100644 index 0000000..b3238b0 --- /dev/null +++ b/src/pages/login/index.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "van-icon": "@vant/weapp/icon/index", + "van-nav-bar": "@vant/weapp/nav-bar/index", + "van-popup": "@vant/weapp/popup/index" + } +} diff --git a/src/pages/login/index.scss b/src/pages/login/index.scss new file mode 100644 index 0000000..386f93f --- /dev/null +++ b/src/pages/login/index.scss @@ -0,0 +1,143 @@ +.page { + position: relative; + .logo { + position: absolute; + left: 32rpx; + width: 327rpx; + max-height: 100rpx; + } + .container { + margin-top: 336rpx; + padding: 64rpx 32rpx 0; + background: linear-gradient(to bottom, rgba(255, 255, 255, 0.76) 0%, #ffffff 100%) no-repeat top center/100% 186rpx; + border-radius: 32rpx; + + .tel { + .input { + padding: 24rpx 48rpx; + background-color: #f4f7fa; + border-radius: 96rpx; + font-size: 32rpx; + } + + .place-input { + color: #babdc1; + } + } + + .code-row { + margin-top: 32rpx; + display: flex; + align-items: center; + gap: 30rpx; + background-color: #f4f7fa; + border-radius: 96rpx; + + .code { + flex: 1; + padding: 24rpx 48rpx; + font-size: 32rpx; + } + + .place-code { + color: #babdc1; + } + + .btn { + flex-shrink: 0; + padding: 24rpx; + width: 7em; + text-align: center; + color: #3795f7; + font-size: 32rpx; + border-radius: 96rpx; + } + } + + .protool { + margin-top: 56rpx; + display: flex; + align-items: center; + font-size: 28rpx; + color: #999; + + .radio { + transform: scale(0.7); + } + + .link { + color: #3795f7; + } + } + + .submit { + margin-top: 70rpx; + text-align: center; + font-size: 36rpx; + color: #3795f7; + line-height: 84rpx; + border: 1px solid rgba(55, 149, 247, 0.2); + border-radius: 96rpx 96rpx 96rpx 96rpx; + } + + .tel-btn { + margin-top: 32rpx; + text-align: center; + font-size: 36rpx; + color: #ffffff; + line-height: 88rpx; + border-radius: 96rpx 96rpx 96rpx 96rpx; + background: linear-gradient(90deg, #134df6 16%, #3795f7 100%); + } + + .visitor { + margin-top: 236rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + line-height: 1; + color: #3795f7; + } + } +} + +.popup { + padding: 33rpx 0 0; + + .popup-container { + padding: 64rpx 44rpx 10rpx; + width: 622rpx; + box-sizing: border-box; + background: linear-gradient(180deg, #e7f8ff 0%, #ffffff 100%); + border-radius: 32rpx; + position: relative; + + .content { + font-size: 36rpx; + color: #65686c; + text-align: center; + .link { + color: #3795f7; + } + } + + .conform { + margin-top: 48rpx; + height: 88rpx; + text-align: center; + background: #3795f7; + line-height: 86rpx; + font-size: 36rpx; + color: #ffffff; + border-radius: 96rpx 96rpx 96rpx 96rpx; + } + + .cancel { + padding: 32rpx 0; + font-size: 32rpx; + color: #3795f7; + text-align: center; + } + } +} diff --git a/src/pages/login/index.ts b/src/pages/login/index.ts new file mode 100644 index 0000000..35ddd78 --- /dev/null +++ b/src/pages/login/index.ts @@ -0,0 +1,170 @@ +const app = getApp(); +let timer: number | null = 0; + +Page({ + data: { + menuButtonInfo: {}, + mobile: '', + code: '', + protool: false, + codeText: '发送验证码', + + back: false, + + type: '', + show: false, + }, + onLoad(options) { + this.setData({ + back: options.back === '1', + }); + }, + onShow() { + wx.hideShareMenu(); + }, + getCode() { + if (timer) return; + const mobile = this.data.mobile; + if (!mobile) { + wx.showToast({ + title: '手机号不能为空', + icon: 'none', + }); + return; + } + // 验证手机号 + if (!/^1[3-9,]\d{9}$/.test(mobile)) { + wx.showToast({ + title: '手机号格式不正确', + icon: 'none', + }); + return; + } + wx.ajax({ + method: 'POST', + url: '?r=shizhong/login/send-verify-code', + data: { + mobile, + }, + }).then(() => { + wx.showToast({ + icon: 'none', + title: '验证码已发送~', + }); + let time = 60; + timer = setInterval(() => { + time--; + this.setData({ + codeText: `${time}s后重新发送`, + }); + if (time <= 0) { + clearInterval(timer as number); + timer = null; + this.setData({ + codeText: '发送验证码', + }); + } + }, 1000); + }); + }, + handleSubmit() { + const { show, mobile, code, protool } = this.data; + if (!protool && !show) { + this.setData({ + type: 'login', + show: true, + }); + return; + } else if (show) { + this.setData({ + show: false, + protool: true, + }); + } + if (!mobile) { + wx.showToast({ + title: '请输入手机号', + icon: 'none', + }); + return; + } + if (!code) { + wx.showToast({ + title: '请输入验证码', + icon: 'none', + }); + return; + } + wx.ajax({ + method: 'POST', + url: '?r=shizhong/login/reg-login', + data: { + mobile, + code, + }, + }).then(() => { + this.submitCallback(); + }); + }, + handleWxSubmit(e: any) { + const { show, protool } = this.data; + if (!protool && !show) { + this.setData({ + type: 'phone', + show: true, + }); + return; + } else if (show) { + this.setData({ + show: false, + protool: true, + }); + } + const { iv, encryptedData } = e.detail; + if (iv && encryptedData) { + wx.ajax({ + method: 'POST', + url: '?r=shizhong/login/wx-reg-login', + data: { + iv: encodeURIComponent(iv), + encryptedData: encodeURIComponent(encryptedData), + }, + }).then(() => { + this.submitCallback(); + }); + } + }, + submitCallback() { + app.globalData.isLogin = 1; + const backPath = app.globalData.backPath; + wx.reLaunch({ url: backPath || '/pages/home/index' }); + app.globalData.backPath = ''; + }, + handleProtool() { + this.setData({ + protool: !this.data.protool, + }); + }, + handleNavProtool() { + wx.navigateTo({ url: `/pages/protocol/index` }); + }, + handleVisitor() { + if (app.globalData.isLogin !== 1) { + app.globalData.isLogin = 999; + app.globalData.backPath = ''; + } + wx.reLaunch({ + url: '/pages/home/index', + }); + }, + handleCancel() { + this.setData({ + show: false, + }); + }, + handleBack() { + wx.navigateBack(); + }, +}); + +export {}; diff --git a/src/pages/login/index.wxml b/src/pages/login/index.wxml new file mode 100644 index 0000000..4b96c45 --- /dev/null +++ b/src/pages/login/index.wxml @@ -0,0 +1,73 @@ + + + + + + + + + + + + {{codeText}} + + + + 我已阅读并同意 + 《用户隐私协议》 + + 手机验证码登录 + + + + 游客访问 + + + + + + + + +
+ 已阅读并同意 + 《用户隐私协议》 +
+ + + 取消 +
+
+
diff --git a/src/pages/longPicture/index.json b/src/pages/longPicture/index.json new file mode 100644 index 0000000..11cc17e --- /dev/null +++ b/src/pages/longPicture/index.json @@ -0,0 +1,5 @@ +{ + "navigationStyle": "default", + "navigationBarTitleText": "详情", + "usingComponents": {} +} diff --git a/src/pages/longPicture/index.scss b/src/pages/longPicture/index.scss new file mode 100644 index 0000000..019048d --- /dev/null +++ b/src/pages/longPicture/index.scss @@ -0,0 +1,3 @@ +.banner { + width: 100%; +} diff --git a/src/pages/longPicture/index.ts b/src/pages/longPicture/index.ts new file mode 100644 index 0000000..a086f18 --- /dev/null +++ b/src/pages/longPicture/index.ts @@ -0,0 +1,17 @@ +const _app = getApp(); + +Page({ + data: { + url: '', + }, + onLoad(options) { + const { url } = options; + if (url) { + this.setData({ + url: decodeURIComponent(url), + }); + } + }, +}); + +export {}; diff --git a/src/pages/longPicture/index.wxml b/src/pages/longPicture/index.wxml new file mode 100644 index 0000000..312598c --- /dev/null +++ b/src/pages/longPicture/index.wxml @@ -0,0 +1 @@ + diff --git a/src/pages/my/index.json b/src/pages/my/index.json new file mode 100644 index 0000000..5fa5f3c --- /dev/null +++ b/src/pages/my/index.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "van-icon": "@vant/weapp/icon/index", + "global-toast": "/components/global-toast/index", + "uploadFile": "/components/uploadFile/index" + } +} diff --git a/src/pages/my/index.scss b/src/pages/my/index.scss new file mode 100644 index 0000000..a9de4c9 --- /dev/null +++ b/src/pages/my/index.scss @@ -0,0 +1,90 @@ +page { + background-color: #f3f4f5; +} +.page { + background: linear-gradient(180deg, #d2f1fe 0%, rgba(244, 248, 249, 0) 100%) no-repeat top center / 100% 682rpx; + .login { + margin: 32rpx 62rpx 0; + display: flex; + gap: 24rpx; + .upload { + flex-shrink: 0; + .avatar { + width: 160rpx; + height: 160rpx; + border-radius: 50%; + } + } + .user { + padding-top: 10rpx; + flex: 1; + .name { + font-size: 40rpx; + color: #141515; + font-weight: bold; + line-height: 1; + word-break: break-all; + .icon { + vertical-align: -4rpx; + width: 36rpx; + height: 36rpx; + } + } + .tel { + margin-top: 8rpx; + font-size: 28rpx; + color: #999999; + line-height: 40rpx; + } + .status { + margin-top: 8rpx; + font-size: 28rpx; + color: #999999; + line-height: 40rpx; + } + } + .switch { + display: flex; + align-items: center; + font-size: 28rpx; + color: #999999; + } + } + .no-login { + margin: 32rpx 62rpx 0; + display: flex; + align-items: center; + gap: 24rpx; + .avatar { + width: 160rpx; + height: 160rpx; + } + .name { + font-size: 40rpx; + color: #3795f7; + } + } + .nav-list { + margin: 70rpx 32rpx 0; + padding: 0 30rpx; + background: #ffffff; + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + .nav-item { + padding: 32rpx 0; + display: flex; + align-items: center; + border-bottom: 1px solid #f0f0f0; + font-size: 36rpx; + color: #000000; + &:last-of-type { + border: none; + } + .icon { + margin-right: 20rpx; + width: 48rpx; + height: 48rpx; + } + } + } +} diff --git a/src/pages/my/index.ts b/src/pages/my/index.ts new file mode 100644 index 0000000..f29ea60 --- /dev/null +++ b/src/pages/my/index.ts @@ -0,0 +1,93 @@ +const app = getApp(); + +Page({ + data: { + toastShow: false, + toastType: 1, + + userInfo: {} as any, + }, + onShow() { + wx.showTabBar({}); + app.waitLogin().then(() => { + app.getUserInfo(this); + }); + }, + handleCollection() { + wx.navigateTo({ + url: '/pages/collection/index', + }); + }, + handleLogin() { + wx.navigateTo({ + url: '/pages/login/index', + }); + }, + handleLoginOut() { + wx.showModal({ + title: '是否确认退出登录?', + success: (res) => { + if (res.confirm) { + wx.ajax({ + method: 'POST', + url: '?r=shizhong/account/logout', + data: {}, + }).then(() => { + app.globalData.isLogin = 0; + app.globalData.isAnswer = '0'; + app.waitLogin(); + }); + } + }, + }); + }, + handleEditUser() { + wx.navigateTo({ + url: '/pages/userInfo/index', + }); + }, + handleAvatar(e) { + const avatar = e.detail.fileUrl; + wx.ajax({ + method: 'POST', + url: '?r=shizhong/account/update-info', + data: { + userName: this.data.userInfo.username, + avatar, + }, + }).then(() => { + app.getUserInfo(this); + }); + }, + handleOffice() { + wx.hideTabBar({ + success: () => { + this.setData({ + toastShow: true, + toastType: 1, + }); + }, + }); + }, + handleCompanyOffice() { + wx.hideTabBar({ + success: () => { + this.setData({ + toastShow: true, + toastType: 2, + }); + }, + }); + }, + handleToastClose() { + this.setData({ + toastShow: false, + }); + wx.showTabBar({}); + }, + handleTopic() { + wx.navigateTo({ + url: '/pages/topic/index?back=1', + }); + }, +}); diff --git a/src/pages/my/index.wxml b/src/pages/my/index.wxml new file mode 100644 index 0000000..8c6d72d --- /dev/null +++ b/src/pages/my/index.wxml @@ -0,0 +1,50 @@ + + + + + + + 我的收藏 + + + + 问卷调查 + + + + 关注公众号 + + + + 联系我们 + + + + + diff --git a/src/pages/protocol/index.json b/src/pages/protocol/index.json new file mode 100644 index 0000000..a1709b1 --- /dev/null +++ b/src/pages/protocol/index.json @@ -0,0 +1,7 @@ +{ + "navigationBarTitleText": "用户隐私协议", + "navigationStyle": "default", + "usingComponents": { + "mp-html": "mp-html" + } +} diff --git a/src/pages/protocol/index.scss b/src/pages/protocol/index.scss new file mode 100644 index 0000000..b9f0774 --- /dev/null +++ b/src/pages/protocol/index.scss @@ -0,0 +1,3 @@ +.page { + padding: 32rpx; +} diff --git a/src/pages/protocol/index.ts b/src/pages/protocol/index.ts new file mode 100644 index 0000000..72064ef --- /dev/null +++ b/src/pages/protocol/index.ts @@ -0,0 +1,10 @@ +const _app = getApp(); + +Page({ + data: { + content:`

适中健康信息小程序隐私政策


本版本更新日期:2024年12月12日

本版本生效日期:2024年12月20日



“适中健康信息”(以下亦称“我们”)非常注重保护用户(“您”)的个人信息及隐私。我们希望通过本《适中健康信息小程序隐私政策》(以下简称“本隐私政策”或本“政策”)向您清晰地介绍在使用我们的产品/服务时,我们如何处理您的个人信息。您及您的隐私对于我们至关重要,我们非常重视您的隐私和个人信息的保护。

请您在使用本产品/服务前,务必仔细阅读并充分理解本隐私政策。我们将逐一说明我们收集您的个人信息的类型及其对应的用途,以便您了解我们针对某一特定功能或服务所收集的具体个人信息的类别、使用理由及收集方式。

您在完成勾选并点击“同意”按钮后,本隐私政策即构成对双方有约束力的法律文件,即表示您同意我们按照本隐私政策收集、使用、处理和存储您的相关个人信息。


【本隐私政策的适用范围】

本隐私政策适用于您通过任何方式使用适中健康信息小程序平台或我们通过其他方式与您沟通合作时提供的全部功能和/或服务(以下合称为“本平台服务”)而收集或存储的信息。我们希望通过本隐私政策向您说明在您使用本平台服务时或我们通过其他方式与您沟通合作时,我们是如何收集、存储、使用、加工、传输、提供、公开、删除这些信息,以及我们将为您提供查阅、更正、限制、拒绝、删除、注销这些信息的方式。


本隐私政策将帮您了解以下信息:

1. 我们如何收集和使用您的个人信息

2. 我们基于何种目的或场景,收集和使用您的个人信息

3. 我们如何使用Cookie等同类技术

4. 我们如何委托处理、共享、转让、公开披露您的个人信息

5. 我们如何保存、保护您的个人信息

6. 您查阅、更正、限制、拒绝、删除、注销个人信息的权利

7. 未成年人保护

8. 本隐私政策变更及通知

9. 如何联系我们

10. 名词定义和解释


一、     我们如何收集和使用您的个人信息

(一)我们会根据本隐私政策的约定,为实现本平台服务而对所收集的个人信息进行使用。

(二)我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:合法、正当、必要和诚信原则,目的明确和直接相关原则,公开透明原则、准确性原则、问责性原则、数据安全原则等。同时,我们承诺将按业界成熟的安全标准,采取必要的措施保障您的个人信息的安全。

(三)我们对您个人信息的使用建立在下述一项或多项合法依据之上:您的同意、对公开信息的合理使用、为履行双方所签署的合同所必须及为遵守我们的法律义务。


二、     我们基于何种目的或场景,收集和使用您的个人信息

出于本隐私政策所描述的目的或场景,当您使用本平台服务时,我们可能会收集有关您的如下个人信息。若您不同意提供下列信息,有权拒绝提供,但您可能无法继续使用本平台的全部或部分服务:

(一)   注册、登录

当您需要使用本平台服务时,您首先需要注册本平台账号。为注册本平台账号,您需要提供您的手机号,以及选择性提供头像、昵称,您后续可以自主在【我的】页中填写或修改您的头像、昵称。如果您不提供上述信息,将影响您使用本平台的基本功能。

(二)   向您提供的本平台服务

1.页面浏览

当您在本平台浏览页面时,我们会收集您的本平台账号UID信息、微信OpenID,用来展示您的权益内容,以方便您的便捷使用。

2.留言板

当您在本平台给我们留言,我们将会收集、储存您的如下个人信息:微信OpenID、本平台账号UID信息、留言信息。以上信息不对外公开展示。

3.阅读文章

您在本平台上阅读文章时,我们将会收集您的本平台账号UID信息,以判断您是否有对应的阅读权限。

4.收藏文章

您在本平台上收藏或查看收藏文章时,我们将会收集您的本平台账号UID信息,以记录或读取该账号下收藏的文章内容。

5.为您提供安全保障及更佳的服务体验

当您使用本平台服务时,我们会自动收集您对我们服务的详细使用情况,作为有关网络日志保存。包括浏览、点击查看、搜索查询、分享信息、发布信息、访问日期和时间、浏览的内容及时长、浏览记录等。为了保障您的账号安全以及系统运行安全,防止欺诈、网络病毒、网络攻击等安全风险,本平台服务将满足法律法规和我们协议规则的相关要求,同时,我们会根据不同操作系统为您提供最佳的浏览体验。

(三) 如果您对我们收集和使用您的个人信息的法律依据有任何疑问或需要提供进一步的信息,请通过本隐私政策第九章节「如何联系我们」提供的联系方式与我们联系。

(四) 当我们要将您的个人信息用于本隐私政策未载明的其他目的时,会事先征求您的同意。请您知悉,本平台向您提供的服务可能将不断更新和发展,如果您选择使用本隐私政策中尚未列明的其他功能或服务时,我们会在收集您的个人信息前通过推送通知、更为显著的弹窗等方式向您详细说明信息收集的目的、方式、范围并征求您的同意。


三、     我们如何使用Cookie等同类技术

(一)依托于微信小程序提供的原生能力

为了帮助提升您的产品体验,我们会使用微信提供的一些原生能力来避免您重复登录,并存储您所在城市信息等数据,进而帮助判断您的登录状态、更好的为您提供服务、判断账户或数据安全。所有的信息获取都会经过您的授权同意才会使用,并且我们不会主动共享或转让您的信息至任何第三方,不会对外公开披露您的任何信息,您可以通过移除小程序的方式删除您已授权的信息。

(二)Cookies 的使用

我们提供的产品服务中,为了能够让您获得更好的浏览体验,我们会在您的微信内置浏览器上记录Cookies信息,指定给您的Cookies是唯一的,它只能被将Cookies发布给您的域中的Web服务器读取。大部分手机的微信内置浏览器会自动接受Cookies,我们不会将Cookies用于本隐私政策所述目的之外的任何用途。您可以在微信“我-设置-通用-存储空间-缓存”中清除保存的所有 Cookies,但如果您这么做,您可能需要在每一次访问小程序内嵌网站时重新授权获取相关信息,而且您之前的相关记录信息也会被删除,并且可能会对您所使用服务的安全性有一定影响。


四、     我们如何委托处理、共享、转让、公开披露您的个人信息

(一)   委托处理

我们会聘请服务提供商来协助我们提供客户支持。对我们委托处理个人信息的公司、组织和个人,我们会与其签署严格的个人信息保护条款和保密协定,要求他们按照我们的要求、本个人信息保护政策以及其他任何相关的个人信息保护、保密和信息安全措施来处理您的个人信息,并且对他们的个人信息处理活动进行监督。

(二)   共享

我们不会将任何个人信息出售给第三方。我们不会向本小程序运营公司以外的任何公司、组织和个人提供您的个人信息,但以下情况除外:

1. 在向您进行明确告知并获取您的单独同意的情况下共享:获得您的单独同意后,我们会与我们所披露的有关个人信息处理者共享您的相关个人信息;

2. 我们可能会根据法律法规规定,或按政府主管部门的强制性要求,向有关主管部门提供您的个人信息。

(三)   转让

我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:

1. 在向您进行明确告知并获取您的单独同意的情况下转让:获得您的单独同意后,我们会向我们所披露的有关个人信息处理者转让您的相关个人信息;

2. 在涉及合并、分立、解散、被宣告破产时,如涉及到个人信息转让,我们会向您告知接收方的名称或者姓名和联系方式。如接收方变更原先的处理目的、处理方式的,我们将要求该接收方重新取得您的同意。

(四)   公开披露

我们仅会在获得您明确同意后,公开披露您的个人信息。


五、     我们如何保存、保护您的个人信息

(一)   保存地点

我们依照法律法规的规定,将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。目前,我们不会将上述信息传输至其他地区,如果我们向其他地区传输,我们将遵循相关国家规定或者征求您的同意。

(二)   保存时间

我们会采取一切合理可行的措施,确保未收集无关的个人信息。适中健康信息小程序中个人信息储存必要期限是适中健康信息小程序为您终止服务后3年。超出必要期限后,我们将对您的个人信息进行删除或匿名化处理,但法律法规另有规定的除外。

(三)   保护措施

我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。例如,我们会使用加密技术(例如SSL)确保数据的保密性;我们会使用受信赖的保护机制防止数据遭到恶意攻击;我们会部署访问控制机制,确保只有授权人员才可访问个人信息;以及我们会举办安全和隐私保护培训课程,加强员工对于保护个人信息重要性的认识。互联网环境并非百分之百安全,我们将尽力确保或担保您发送给我们的任何信息的安全性。

(四)    数据安全能力

我们会使用不低于行业同行的加密技术、匿名化处理及相关合理可行的手段保护您的个人信息,并使用安全保护机制防止您的个人信息遭到恶意攻击。

我们会建立专门的安全部门、安全管理制度、数据安全流程保障您的个人信息安全。我们采取严格的数据使用和访问制度,确保只有授权人员才可访问您的个人信息,并适时对数据和技术进行安全审计。

(五)   安全事件处理

在不幸发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告。 同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。


六、     您查阅、更正、限制、拒绝、删除、注销个人信息的权利

我们非常重视并保护您对于个人信息处理活动中的知情权、决定权、限制权、拒绝权等权利,并为您提供了行使在个人信息处理活动中相关权利的方法。

(一)   查阅权和更正权

除法律法规规定的情形除外,您有权随时查阅和更正您的个人信息,您可以通过在本平台的【我的】查阅或修改您的个人信息,包括头像、昵称。

(二)   限制或拒绝权

对于您个人信息的收集和使用,您可以在本平台上随时通过以下方式撤回授权同意,以限制或拒绝我们收集或使用您的个人信息:

您可以通过「第九章节、如何联系我们」进行相应的同意撤回。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。在注销账号之后,我们将停止为您提供本平台服务,并依据您的要求,删除您的个人信息,但法律法规另有规定的除外。

(三)   删除权

1.您可通过微信的缓存清理功能,删除您在本平台的缓存记录提供的相关个人信息。

2.如果您需要删除您在使用本平台过程中产生的其他个人信息,在您的合理要求并经验证核实您的身份后,我们会处理您的请求。您可以通过本隐私政策「第九章节、如何联系我们」方式向我们进行反馈。

3.在以下情形中,您可以向我们提出删除个人信息的请求:

(1)  我们永久不再为您提供产品或服务;

(2)  您撤回对我们收集、使用您的个人信息的同意;

(3)  我们处理个人信息的行为违反法律、行政法规;

(4)  我们处理个人信息的行为违反了与您的约定;

(5)  您注销了用户帐号;

(6)  法律、行政法规规定的其他情形。

您同意并理解,您删除某些您已提交的个人信息可能导致您无法使用本平台的部分或者全部服务。

(四)   注销权

您可以通过「第九章节、如何联系我们」进行账户注销。一旦您注销账户,我们将停止为您提供服务。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。当您选择注销账户后,我们将停止为您提供服务,并依据您的要求,删除您的个人信息,但法律法规另有规定的除外。


七、     未成年人保护

我们非常重视对未成年人个人信息的保护,本平台服务主要面向成年人。如果我们发现收集了未成年人的个人信息,我们将尽快删除相关信息。如果您是未成年人的监护人,并且您认为我们收集了未成年人的个人信息,请您及时与我们联系,我们将采取措施删除相关信息。


八、     本隐私政策变更及通知

(一)为了向您提供更好的功能与服务,本平台服务将不时更新与变化,因此,我们将适时修订及变更隐私政策。

(二)未经您明确同意,我们不会削减您按照本隐私政策所应享有的权利。我们会在本页面上发布对本政策所做的任何变更。

(三)对于重大变更,我们可能还会提供本平台公告、推送通知或更为显著的弹窗等方式,向您发送隐私政策的最新版本。本政策重大变更包括但不限于:

1.我们的服务模式发生重大变化。如处理个人信息的目的、处理的个人信息类型、个人信息的使用方式等;

2.我们在所有权结构、组织架构等方面发生重大变化。如业务调整、破产并购等引起的所有者变更等;

3.个人信息共享、转让或公开披露的主要对象发生变化;

4.您参与个人信息处理方面的权利及其行使方式发生重大变化;

5.我们的联络方式及投诉渠道发生变化;

6.个人信息安全影响评估报告表明存在高风险时。


九、     如何联系我们

如果您对本隐私协议有任何疑问、意见或建议,或者您需要行使您的个人信息权利,请通过以下方式与我们联系:

[电子邮箱地址] sunyuping@188.com

我们将在收到您的联系信息后,尽快回复您并处理您的问题。


十、     名词定义与解释

本平台:通过电子化信息平台运营和提供的数字化产品和服务,电子化信息平台包括但不限于适中健康信息小程序、微信公众号提供数字化产品和服务的系统或平台等,具体以用户实际注册、访问或使用为准(对于该等数字化产品和服务,本协议统称为“电子化信息平台”或“平台”或“本平台”)

个人信息:以电子或者其他方式记录的与已识别或可识别的自然人有关的各种信息,不包括匿名化处理后的信息。如姓名、出生日期、身份证件号码、个人生物识别信息、住址、通信通讯联系方式、通信记录和内容、账号密码、财产信息、征信信息、行踪轨迹、住宿信息、健康生理信息、交易信息等。

敏感个人信息:敏感个人信息是指一旦泄露或者非法使用,容易导致自然人的人格尊严受到侵害或者人身、财产安全受到危害的个人信息,包括生物识别、宗教信仰、特定身份、医疗健康、金融账户、行踪轨迹等信息,以及不满十四周岁未成年人的个人信息。例如,个人敏感信息包括身份证件号码、个人生物识别信息、银行账号、通信内容、健康生理信息等。本平台不涉及敏感信息收集。

OpenID:微信OpenID是用户在微信平台上的唯一标识符,用于身份验证和跨平台登录。此处OpenID是指本平台用户注册后的唯一加密用户身份标识。



适中健康信息



` + }, + onLoad() {}, +}); + +export {} diff --git a/src/pages/protocol/index.wxml b/src/pages/protocol/index.wxml new file mode 100644 index 0000000..3bf9773 --- /dev/null +++ b/src/pages/protocol/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/src/pages/search/index.json b/src/pages/search/index.json new file mode 100644 index 0000000..9806cef --- /dev/null +++ b/src/pages/search/index.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "van-nav-bar": "@vant/weapp/nav-bar/index", + "van-icon": "@vant/weapp/icon/index", + "pagination":"/components/pagination/index" + } +} diff --git a/src/pages/search/index.scss b/src/pages/search/index.scss new file mode 100644 index 0000000..187a809 --- /dev/null +++ b/src/pages/search/index.scss @@ -0,0 +1,106 @@ +page { + background-color: #f3f4f5; +} +.page { + padding-bottom: 80rpx; + .search { + margin: 34rpx 32rpx 0; + padding: 0 0 0 24rpx; + display: flex; + align-items: center; + background: linear-gradient(158deg, #ffffff 0%, #f2f9fe 100%); + border-radius: 106rpx 106rpx 106rpx 106rpx; + border: 1px solid #ffffff; + .icon { + width: 36rpx; + height: 36rpx; + } + .input { + flex: 1; + padding: 16rpx; + line-height: 40rpx; + font-size: 28rpx; + } + .place-input { + color: #c9cdd4; + } + } + .tip { + margin: 52rpx 32rpx 0; + font-size: 28rpx; + color: #222222; + font-weight: bold; + } + .card { + padding: 24rpx; + margin: 24rpx 32rpx 0; + display: flex; + gap: 24rpx; + background: linear-gradient(173deg, #ffffff 0%, #eff7ff 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + border: 2rpx solid #ffffff; + .photo { + flex-shrink: 0; + width: 218rpx; + height: 218rpx; + border-radius: 16rpx; + } + .c-container { + flex: 1; + display: flex; + flex-direction: column; + justify-content: space-between; + .title { + font-size: 36rpx; + color: #222222; + font-weight: bold; + line-height: 48rpx; + } + .book-name { + flex: 1; + padding-top: 20rpx; + font-size: 32rpx; + color: #999999; + } + .c-footer { + margin-top: 20px; + display: flex; + justify-content: space-between; + gap: 20rpx; + .type { + font-size: 32rpx; + color: #999999; + } + .stat { + flex-shrink: 0; + .s-item { + display: flex; + align-items: center; + gap: 8rpx; + font-size: 28rpx; + color: #999999; + .icon { + width: 32rpx; + height: 32rpx; + } + } + } + } + } + } + .empty-search { + .e-icon { + margin: 186rpx auto 0; + display: block; + width: 217rpx; + height: 236rpx; + } + .content { + margin-top: 44rpx; + font-size: 32rpx; + line-height: 48rpx; + color: #999999; + text-align: center; + } + } +} diff --git a/src/pages/search/index.ts b/src/pages/search/index.ts new file mode 100644 index 0000000..c386fd7 --- /dev/null +++ b/src/pages/search/index.ts @@ -0,0 +1,78 @@ +const app = getApp(); + +Page({ + data: { + background: 'transparent', + + focus: false, + Search: '', + pagination: { + page: 1, + pages: 1, + count: 1, + }, + list: [], + }, + onLoad() { + app.waitLogin().then(() => { + this.setData({ + focus: true, + }); + }); + }, + handleInput() { + this.setData({ + 'pagination.count': 1, + }); + }, + handleSearch() { + if (!this.data.Search) { + wx.showToast({ + title: '请输入搜索内容', + icon: 'none', + }); + return; + } + this.getList(); + }, + getList(newPage = 1) { + wx.ajax({ + method: 'GET', + url: `?r=shizhong/book/search-list`, + data: { + page: newPage, + Search: this.data.Search, + }, + }).then((res) => { + const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]; + this.setData({ + list, + pagination: { + page: res.page, + pages: res.pages, + count: res.count, + }, + }); + }); + }, + onReachBottom() { + const { page, pages } = this.data.pagination; + if (pages > page && this.data.list.length) { + this.getList(page + 1); + } + }, + handleBack() { + wx.navigateBack(); + }, + handleDetail(e) { + const { id, cid } = e.currentTarget.dataset; + const backPath = `/pages/article/index?id=${id}&cid=${cid}`; + app.waitLogin(false, true, backPath).then(() => { + wx.navigateTo({ + url: backPath, + }); + }); + }, +}); + +export {}; diff --git a/src/pages/search/index.wxml b/src/pages/search/index.wxml new file mode 100644 index 0000000..5c0facf --- /dev/null +++ b/src/pages/search/index.wxml @@ -0,0 +1,58 @@ + + + + + + + + + 以下为搜到的内容 + + + + {{item.ChapterName}} + {{item.BookName}} + + {{item.CateName}}{{item.CateSecondName ? '/'+item.CateSecondName : ''}} + + + + 阅读 {{~~item.OperateNum + ~~item.BrowseNum}} + + + + + + + + + 抱歉,未搜到相关内容 + + 换个词试试吧 + + + + diff --git a/src/pages/switchLogin/index.json b/src/pages/switchLogin/index.json new file mode 100644 index 0000000..2b97f2d --- /dev/null +++ b/src/pages/switchLogin/index.json @@ -0,0 +1,6 @@ +{ + "usingComponents": { + "van-icon": "@vant/weapp/icon/index", + "van-nav-bar": "@vant/weapp/nav-bar/index" + } +} diff --git a/src/pages/switchLogin/index.scss b/src/pages/switchLogin/index.scss new file mode 100644 index 0000000..e0813cc --- /dev/null +++ b/src/pages/switchLogin/index.scss @@ -0,0 +1,161 @@ +.page { + .container { + margin-top: 336rpx; + padding: 64rpx 32rpx 0; + background: linear-gradient(to bottom, rgba(255, 255, 255, 0.76) 0%, #ffffff 100%) no-repeat top center/100% 186rpx; + border-radius: 32rpx; + + .tel { + .input { + padding: 24rpx 48rpx; + background-color: #f4f7fa; + border-radius: 96rpx; + font-size: 32rpx; + } + + .place-input { + color: #babdc1; + } + } + + .code-row { + margin-top: 32rpx; + display: flex; + align-items: center; + gap: 30rpx; + + .code { + flex: 1; + padding: 24rpx 48rpx; + background-color: #f4f7fa; + border-radius: 96rpx; + font-size: 32rpx; + } + + .place-code { + color: #babdc1; + } + + .btn { + flex-shrink: 0; + padding: 24rpx; + width: 7em; + text-align: center; + color: #fff; + font-size: 32rpx; + background-color: #3795f7; + border-radius: 96rpx; + } + } + + .protool { + margin-top: 56rpx; + display: flex; + align-items: center; + font-size: 28rpx; + color: #999; + + .radio { + transform: scale(0.7); + } + + .link { + color: #3795f7; + } + } + + .submit { + margin-top: 88rpx; + padding: 22rpx; + text-align: center; + font-size: 36rpx; + color: #fff; + line-height: 44rpx; + background: linear-gradient(90deg, #134df6 36%, #3795f7 100%); + border-radius: 96rpx 96rpx 96rpx 96rpx; + } + + .tel-btn { + margin: 78rpx auto 0; + padding: 12rpx 44rpx; + border-radius: 52rpx; + width: 352rpx; + font-size: 32rpx; + line-height: 40rpx; + color: rgba(153, 153, 153, 1); + display: flex; + gap: 12rpx; + align-items: center; + justify-content: center; + outline: none; + + .icon { + width: 28rpx; + height: 40rpx; + } + + &::after { + border: none; + outline: none; + } + } + + .visitor { + margin-top: 196rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + line-height: 1; + color: #3795f7; + } + } +} + +.popup { + padding: 33rpx 0 0; + + .popup-container { + padding: 280rpx 48rpx 0; + width: 622rpx; + height: 490rpx; + box-sizing: border-box; + background: linear-gradient(180deg, #e7f8ff 0%, #ffffff 100%); + border-radius: 32rpx; + position: relative; + + .badge { + position: absolute; + left: 0; + top: -33px; + width: 246rpx; + height: 286rpx; + } + + .title { + position: absolute; + top: 50rpx; + right: 28rpx; + width: 338rpx; + height: 164rpx; + } + + .conform { + height: 88rpx; + text-align: center; + background: #3795f7; + line-height: 88rpx; + font-size: 36rpx; + color: #FFFFFF; + border-radius: 96rpx 96rpx 96rpx 96rpx; + } + + .cancel{ + margin-top: 10rpx; + font-size: 32rpx; + color: #999999; + text-align: center; + line-height: 88rpx; + } + } +} diff --git a/src/pages/switchLogin/index.ts b/src/pages/switchLogin/index.ts new file mode 100644 index 0000000..6fce3a5 --- /dev/null +++ b/src/pages/switchLogin/index.ts @@ -0,0 +1,95 @@ +const app = getApp(); +let timer: number | null = 0; + +Page({ + data: { + menuButtonInfo: {}, + mobile: '', + code: '', + codeText: '发送验证码', + }, + onLoad() {}, + getCode() { + if (timer) return; + const mobile = this.data.mobile; + if (!mobile) { + wx.showToast({ + title: '手机号不能为空', + icon: 'none', + }); + return; + } + // 验证手机号 + if (!/^1[3-9,]\d{9}$/.test(mobile)) { + wx.showToast({ + title: '手机号格式不正确', + icon: 'none', + }); + return; + } + wx.ajax({ + method: 'POST', + url: '?r=shizhong/login/send-verify-code', + data: { + mobile, + }, + }).then(() => { + wx.showToast({ + icon: 'none', + title: '验证码已发送~', + }); + let time = 60; + timer = setInterval(() => { + time--; + this.setData({ + codeText: `${time}s后重新发送`, + }); + if (time <= 0) { + clearInterval(timer as number); + timer = null; + this.setData({ + codeText: '发送验证码', + }); + } + }, 1000); + }); + }, + handleSubmit() { + const { mobile, code } = this.data; + if (!mobile) { + wx.showToast({ + title: '请输入手机号', + icon: 'none', + }); + return; + } + if (!code) { + wx.showToast({ + title: '请输入验证码', + icon: 'none', + }); + return; + } + wx.ajax({ + method: 'POST', + url: '?r=shizhong/login/reg-login', + data: { + mobile, + code, + }, + }).then(() => { + this.submitCallback(); + }); + }, + submitCallback() { + app.globalData.isLogin = 1; + wx.reLaunch({ + url: '/pages/home/index', + }); + }, + handleBack(){ + wx.navigateBack() + } +}); + +export {}; diff --git a/src/pages/switchLogin/index.wxml b/src/pages/switchLogin/index.wxml new file mode 100644 index 0000000..1aaffeb --- /dev/null +++ b/src/pages/switchLogin/index.wxml @@ -0,0 +1,35 @@ + + + + + + + + + {{codeText}} + + 切换账号 + + diff --git a/src/pages/topic/index.json b/src/pages/topic/index.json new file mode 100644 index 0000000..9d75de7 --- /dev/null +++ b/src/pages/topic/index.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "van-progress": "@vant/weapp/progress/index", + "van-nav-bar": "@vant/weapp/nav-bar/index", + "van-icon": "@vant/weapp/icon/index", + "van-popup": "@vant/weapp/popup/index" + } +} diff --git a/src/pages/topic/index.scss b/src/pages/topic/index.scss new file mode 100644 index 0000000..fd9085a --- /dev/null +++ b/src/pages/topic/index.scss @@ -0,0 +1,219 @@ +page { + background: #f3f4f5 linear-gradient(180deg, #d2f1fe 0%, rgba(244, 248, 249, 0) 100%) no-repeat top center/100% 442rpx; +} + +.page { + min-height: 100vh; + overflow: hidden; + + .swiper { + width: 100%; + height: 1632rpx; + box-sizing: border-box; + } + + .topic { + position: relative; + margin: 16rpx 48rpx; + padding: 48rpx 40rpx 0; + box-sizing: border-box; + background: #ffffff; + box-shadow: 0rpx 8rpx 32rpx 0rpx rgba(188, 188, 188, 0.18); + border-radius: 24rpx 24rpx 24rpx 24rpx; + &::before { + content: ''; + position: absolute; + bottom: -50rpx; + left: 52rpx; + width: calc(100% - 104rpx); + height: 50rpx; + background: rgba(55, 149, 247, 0.24); + border-radius: 0 0 24rpx 24rpx; + } + &::after { + content: ''; + position: absolute; + bottom: -30rpx; + left: 22rpx; + width: calc(100% - 44rpx); + height: 30rpx; + background: rgba(55, 149, 247, 0.8); + border-radius: 0 0 24rpx 24rpx; + } + + .order { + font-size: 60rpx; + color: #3795f7; + font-weight: bold; + + .all { + font-size: 44rpx; + color: #cdcdcd; + } + } + + .progress { + margin-top: 26rpx; + } + + .content { + margin-top: 34rpx; + font-size: 36rpx; + color: #222222; + line-height: 64rpx; + white-space: pre-line; + } + + .btn { + margin-top: 32rpx; + font-size: 36rpx; + color: #65686c; + line-height: 88rpx; + text-align: center; + height: 88rpx; + background: #f4f7fa; + border-radius: 84rpx 84rpx 84rpx 84rpx; + + &.active { + color: #ffffff; + background: #3795f7; + } + } + + .footer { + width: 100%; + padding: 60rpx 0; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: space-between; + + .prev { + flex: 1; + font-size: 36rpx; + color: #3795f7; + font-weight: bold; + display: flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + + .icon { + margin-right: 16rpx; + width: 44rpx; + height: 44rpx; + } + } + + .submit { + width: 290rpx; + height: 88rpx; + font-size: 36rpx; + color: #ffffff; + background: #3795f7; + border-radius: 96rpx 96rpx 96rpx 96rpx; + text-align: center; + line-height: 88rpx; + font-weight: normal; + } + } + } + + .end { + position: relative; + margin: 272rpx 48rpx 16rpx; + padding: 70rpx 52rpx 84rpx; + box-sizing: border-box; + background: #ffffff; + box-shadow: 0rpx 8rpx 32rpx 0rpx rgba(188, 188, 188, 0.18); + border-radius: 24rpx 24rpx 24rpx 24rpx; + .badge { + display: block; + margin: 0 auto; + width: 217rpx; + height: 182rpx; + } + .title { + font-size: 40rpx; + color: #222222; + font-weight: bold; + text-align: center; + } + .content { + margin-top: 30rpx; + font-size: 32rpx; + color: #222222; + } + .codes { + margin-top: 30rpx; + display: flex; + justify-content: space-between; + .c-item { + .code { + width: 246rpx; + height: 246rpx; + } + .name { + margin-top: 4rpx; + text-align: center; + font-size: 28rpx; + color: #222222; + } + } + } + .btn { + margin-top: 54rpx; + height: 88rpx; + text-align: center; + line-height: 88rpx; + font-size: 36rpx; + color: #fff; + background: #3795f7; + border-radius: 96rpx 96rpx 96rpx 96rpx; + } + } +} + +.relove { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + width: 388rpx; + height: 350rpx; + background: rgba(0, 0, 0, 0.67); + border-radius: 42rpx 42rpx 42rpx 42rpx; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + text-align: center; + .icon { + width: 84rpx; + height: 84rpx; + } + .content { + margin-top: 26rpx; + font-size: 40rpx; + color: #ffffff; + } +} + +.start { + padding: 710rpx 32rpx 0; + width: 654rpx; + height: 860rpx; + box-sizing: border-box; + .btn { + width: 596rpx; + height: 88rpx; + font-size: 36rpx; + color: #FFFFFF; + display: flex; + align-items: center; + justify-content: center; + background: #3795f7; + border-radius: 96rpx 96rpx 96rpx 96rpx; + } +} diff --git a/src/pages/topic/index.ts b/src/pages/topic/index.ts new file mode 100644 index 0000000..464bf9b --- /dev/null +++ b/src/pages/topic/index.ts @@ -0,0 +1,146 @@ +const app = getApp(); +// const licia = require('miniprogram-licia'); + +Page({ + data: { + nav: 0, + percentage: 0, + question: [] as { questionId: string; title: string; answer?: '1' | '2' }[], + + back: false, + + start: true, + end: false, + + answerList: [ + ['非常了解', '一般了解', '完全不了解'], + ['非常了解', '一般了解', '完全不了解'], + ['非常了解', '一般了解', '完全不了解'], + ['非常了解', '一般了解', '完全不了解'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['非常了解', '一般了解', '完全不了解'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ['很感兴趣', '一般兴趣', '不感兴趣'], + ], + }, + onLoad(options) { + this.setData({ + back: options.back === '1', + }); + app.waitLogin(true).then(() => { + this.getList(); + }); + }, + getList() { + wx.ajax({ + method: 'GET', + url: '?r=shizhong/account/get-question', + data: {}, + }).then((res) => { + this.setData({ + question: res, + }); + }); + }, + handleEnd() { + app.waitLogin().then(() => { + wx.reLaunch({ + url: '/pages/home/index', + }); + }); + }, + // handleBtn: licia.debounce(function (e) { + // const { index, id } = e.currentTarget.dataset; + // const { question, nav } = this.data; + // question[index].answer = id; + // this.setData({ + // question, + // nav: nav === question.length - 1 ? nav : nav + 1, + // percentage: ((nav + 1) / question.length) * 100, + // }); + // }, 200), + handleBtn(e) { + const { index, id } = e.currentTarget.dataset; + const { question, nav } = this.data; + // 防止重复点击 + if (question[index].answer && nav > index) return; + question[index].answer = id; + this.setData({ + question, + nav: nav === question.length - 1 ? nav : nav + 1, + percentage: ((nav + 1) / question.length) * 100, + }); + }, + handlePrev() { + this.setData({ + nav: this.data.nav - 1, + }); + }, + handleSubmit() { + const answer = this.data.question.map((item) => { + return { + qId: item.questionId, + answer: item.answer, + }; + }); + wx.ajax({ + method: 'POST', + url: '?r=shizhong/account/answer-question', + data: { + answer: JSON.stringify(answer), + }, + }).then(() => { + this.setData({ + end: true, + }); + }); + }, + bindtransition() { + this.setData({ + nav: this.data.nav, + }); + }, + catchTouchMove() { + return false; + }, + handleStart() { + this.setData({ start: false }); + }, + handleBack() { + if (this.data.end) { + wx.navigateBack(); + } else { + wx.showModal({ + title: '确认退出?', + content: '还差一点就完成了,退出会清空所有答题,确认现在要退出吗?', + cancelText: '退出', + confirmText: '继续答题', + success: (res) => { + if (res.cancel) { + if (this.data.back) { + wx.navigateBack(); + } else { + wx.reLaunch({ + url: '/pages/home/index', + }); + } + } + }, + }); + } + }, +}); + +export {}; diff --git a/src/pages/topic/index.wxml b/src/pages/topic/index.wxml new file mode 100644 index 0000000..7802710 --- /dev/null +++ b/src/pages/topic/index.wxml @@ -0,0 +1,100 @@ + + + + + + + + + {{index + 1}}/ + {{question.length}} + + + + + {{questionItem.title}} + + {{answerList[index][0]}} + + + {{answerList[index][1]}} + + + {{answerList[index][2]}} + + + + + 上一题 + + + 提交 + + + + + + + + + + 提交成功 + + 感谢您的参与! + + + 欢迎使用适中健康信息小程序,您将看到一个查有可依、科学性、体系化的健康信息世界,化零为整,随时查阅。 + + + + + 关注公众号 + + + + 关注企微号 + + + 现在体验 + + + + + + 开始答题 + + diff --git a/src/pages/userInfo/index.json b/src/pages/userInfo/index.json new file mode 100644 index 0000000..fb43e76 --- /dev/null +++ b/src/pages/userInfo/index.json @@ -0,0 +1,7 @@ +{ + "navigationStyle": "default", + "navigationBarTitleText": "个人信息", + "usingComponents": { + "uploadFile": "/components/uploadFile/index" + } +} diff --git a/src/pages/userInfo/index.scss b/src/pages/userInfo/index.scss new file mode 100644 index 0000000..f0171e1 --- /dev/null +++ b/src/pages/userInfo/index.scss @@ -0,0 +1,56 @@ +page { + background-color: #f3f4f5; +} +.page { + padding: 32rpx; + .container { + border-radius: 16rpx; + background-color: #fff; + .row { + padding: 36rpx 32rpx; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid #f0f0f0; + &:last-of-type { + border: none; + } + &.small { + padding: 24rpx 32rpx; + } + .label { + font-size: 36rpx; + color: #222222; + } + .wrap { + flex: 1; + display: flex; + justify-content: flex-end; + .avatar { + position: relative; + width: 100rpx; + height: 100rpx; + .a-img { + width: 100rpx; + height: 100rpx; + border-radius: 50%; + } + .icon { + position: absolute; + bottom: 0; + right: 0; + width: 32rpx; + height: 32rpx; + } + } + .input { + text-align: right; + font-size: 36rpx; + } + .place-input { + color: #babdc1; + } + } + } + } +} diff --git a/src/pages/userInfo/index.ts b/src/pages/userInfo/index.ts new file mode 100644 index 0000000..2f86ab6 --- /dev/null +++ b/src/pages/userInfo/index.ts @@ -0,0 +1,59 @@ +const app = getApp(); + +Page({ + data: { + username: '', + userInfo: {} as any, + }, + onLoad() { + app.waitLogin().then(() => { + app.getUserInfo(this); + }); + }, + handleFile(e) { + const avatar = e.detail.fileUrl; + this.setData({ + 'userInfo.avatar': avatar, + }); + this.updateUserInfo(); + }, + handleInputBlur(e) { + this.setData({ + username: e.detail.value, + }); + }, + handleInputBlurPass(e) { + if (e.detail.pass) { + this.setData({ + [`userInfo.username`]: this.data.username, + }); + this.updateUserInfo(); + } + }, + updateUserInfo() { + const { avatar, username } = this.data.userInfo; + if (!username) { + wx.showToast({ + title: '请输入用户名', + icon: 'none', + }); + return; + } + wx.ajax({ + method: 'POST', + url: '?r=shizhong/account/update-info', + data: { + userName: username, + avatar, + }, + }).then(() => { + app.getUserInfo(this); + wx.showToast({ + title: '保存成功', + icon: 'none', + }); + }); + }, +}); + +export {}; diff --git a/src/pages/userInfo/index.wxml b/src/pages/userInfo/index.wxml new file mode 100644 index 0000000..14b9cc3 --- /dev/null +++ b/src/pages/userInfo/index.wxml @@ -0,0 +1,42 @@ + + + + 头像 + + + + + + + + + + 昵称 + + + + + + diff --git a/src/sitemap.json b/src/sitemap.json new file mode 100644 index 0000000..ca02add --- /dev/null +++ b/src/sitemap.json @@ -0,0 +1,7 @@ +{ + "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", + "rules": [{ + "action": "allow", + "page": "*" + }] +} \ No newline at end of file diff --git a/src/utils/component.ts b/src/utils/component.ts new file mode 100644 index 0000000..d3b9c1f --- /dev/null +++ b/src/utils/component.ts @@ -0,0 +1,58 @@ +/** + * 使用方法: + * 1、app.js 引入此文件:const page = require('xx/xx/page); + * 2、app.js onLaunch 的时候 Page = page + */ + +const originalComponent = Component; + +function component( + config: WechatMiniprogram.Component.Instance< + WechatMiniprogram.Component.DataOption, + WechatMiniprogram.Component.PropertyOption, + WechatMiniprogram.Component.MethodOption, + WechatMiniprogram.Component.BehaviorOption + >, +) { + if (config?.lifetimes?.attached) { + const originalOnAttached = config.lifetimes.attached; + config.lifetimes.attached = function (options) { + setImageParams(this); + getApp().getMenuInfo(this); + + if (originalOnAttached) { + originalOnAttached.call(this, options); + } + }; + } else { + const originalOnAttached = config.attached; + config.attached = function (options) { + setImageParams(this); + getApp().getMenuInfo(this); + + if (originalOnAttached) { + originalOnAttached.call(this, options); + } + }; + } + + return originalComponent(config); +} + +function setImageParams( + currPage: WechatMiniprogram.Component.Instance< + WechatMiniprogram.Component.DataOption, + WechatMiniprogram.Component.PropertyOption, + WechatMiniprogram.Component.MethodOption, + WechatMiniprogram.Component.BehaviorOption + >, +) { + const date = new Date(); + const Timestamp = date.getTime(); + currPage.setData({ + imageUrl: getApp().globalData.imageUrl, + Timestamp, + }); +} + +export default component; diff --git a/src/utils/crypto.ts b/src/utils/crypto.ts new file mode 100644 index 0000000..421e131 --- /dev/null +++ b/src/utils/crypto.ts @@ -0,0 +1,34 @@ +import CryptoJS from 'crypto-js'; +// 使用密钥长度128的RIJNDAEL算法解码数据,加密模式:ECB + +const key = 'hbsaas1mobile2a6f8'; + +// 解密函数 +export function decryptData(encryptedData) { + // Step 1: 替换 base64 字符中的 "+" 和 "/" 为 URL 安全的字符 + encryptedData = encryptedData.replace(/-/g, '+').replace(/_/g, '/'); + + // Step 2: 解码 base64 数据 + const decodedData = CryptoJS.enc.Base64.parse(encryptedData); + + // Step 3: 填充 key,确保它的长度为 24 字节(128 位) + let paddedKey = key; + const keyLength = paddedKey.length; + if (keyLength < 24) { + paddedKey = paddedKey.padEnd(24, '\0'); // 用零填充至 16 字节 + } + + // Step 4: 使用 AES ECB 模式解密 + const decryptedData = CryptoJS.AES.decrypt({ ciphertext: decodedData }, CryptoJS.enc.Utf8.parse(paddedKey), { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7, // 与 PHP 中的 PKCS5 padding 对应 + }); + + // Step 5: 转换解密结果为明文字符串 + return decryptedData.toString(CryptoJS.enc.Utf8); +} + +// 示例使用: +// const encryptedData = "6QUbssj247RF6oIMf9nqT6F5LoYpAkFENy5wc572gws"; // 从 PHP 获取的加密数据 +// const decrypted = decryptData(encryptedData, key); +// console.log(decrypted); // 输出解密后的数据 diff --git a/src/utils/dayjs/day-zh-cn.js b/src/utils/dayjs/day-zh-cn.js new file mode 100644 index 0000000..59f5cc0 --- /dev/null +++ b/src/utils/dayjs/day-zh-cn.js @@ -0,0 +1,2 @@ + +!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,_){return"W"===_?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,_){var t=100*e+_;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return t.default.locale(d,null,!0),d})); diff --git a/src/utils/dayjs/relativeTime.d.ts b/src/utils/dayjs/relativeTime.d.ts new file mode 100644 index 0000000..444b0c2 --- /dev/null +++ b/src/utils/dayjs/relativeTime.d.ts @@ -0,0 +1,24 @@ +import { PluginFunc, ConfigType } from 'dayjs' + +declare interface RelativeTimeThreshold { + l: string + r?: number + d?: string +} + +declare interface RelativeTimeOptions { + rounding?: (num: number) => number + thresholds?: RelativeTimeThreshold[] +} + +declare const plugin: PluginFunc +export = plugin + +declare module 'dayjs' { + interface Dayjs { + fromNow(withoutSuffix?: boolean): string + from(compared: ConfigType, withoutSuffix?: boolean): string + toNow(withoutSuffix?: boolean): string + to(compared: ConfigType, withoutSuffix?: boolean): string + } +} diff --git a/src/utils/dayjs/relativeTime.js b/src/utils/dayjs/relativeTime.js new file mode 100644 index 0000000..898eee6 --- /dev/null +++ b/src/utils/dayjs/relativeTime.js @@ -0,0 +1 @@ +!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){"use strict";return function(r,e,t){r=r||{};var n=e.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],m=h.length,c=0;c0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(""+p)),a="string"==typeof v?v.replace("%d",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return"function"==typeof M?M(a):M.replace("%s",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}})); \ No newline at end of file diff --git a/src/utils/page.ts b/src/utils/page.ts new file mode 100644 index 0000000..3374017 --- /dev/null +++ b/src/utils/page.ts @@ -0,0 +1,63 @@ +/** + * 使用方法: + * 1、app.js 引入此文件:const page = require('xx/xx/page); + * 2、app.js onLaunch 的时候 Page = page + */ + +const originalPage = Page; + +function page(config: WechatMiniprogram.Page.Instance) { + const originalOnLoad = config.onLoad; + config.onLoad = function (options) { + setImageParams(this); + getApp().getMenuInfo(this); + + if (originalOnLoad) { + originalOnLoad.call(this, options); + } + }; + + const originalOnShareAppMessage = config.onShareAppMessage; + config.onShareAppMessage = function (options) { + if (originalOnShareAppMessage) { + return originalOnShareAppMessage.call(this, options); + } else { + // const date = new Date(); + // const Timestamp = date.getTime(); + + // const pages = getCurrentPages(); + // const currentPage = pages[pages.length - 1]; + // const url = currentPage.route; + + return { + // imageUrl: `${getApp().globalData.imageUrl}1/1.png?t=${Timestamp}`, + }; + } + }; + + config.onPageScroll = function (e: any) { + const { scrollTop } = e; + let background = 'transparent'; + if (scrollTop > 20) { + background = '#fff'; + } + this.setData({ + background, + }); + }; + + return originalPage(config); +} + +function setImageParams( + currPage: WechatMiniprogram.Page.Instance, +) { + const date = new Date(); + const Timestamp = date.getTime(); + currPage.setData({ + imageUrl: getApp().globalData.imageUrl, + Timestamp, + }); +} + +export default page; diff --git a/src/utils/request.ts b/src/utils/request.ts new file mode 100644 index 0000000..816f481 --- /dev/null +++ b/src/utils/request.ts @@ -0,0 +1,71 @@ +interface IGlobalParams { + gUrl: string +} + +export const request = function ( + { gUrl }: IGlobalParams, + { url, method, data, header, showMsg = true, loading = false, isJSON = false, ...options }: IAgaxParams, +): Promise { + return new Promise((resolve, reject) => { + if (loading) { + wx.showLoading({ + title: '加载中...', + mask: true, + }) + } + wx.request({ + header: { + loginState: getApp().globalData.loginState, + ...header, + }, + url: gUrl + url, + method, + data: { + loginState: getApp().globalData.loginState, + ...(data as object), + }, + ...options, + success(res: any) { + const { code, data } = res.data + if (isJSON) { + resolve(res.data) + } else if (code === 0) { + resolve(data) + } else if (showMsg) { + const msg = errPicker(res.data) + if (loading) { + setTimeout(() => { + wx.showToast({ + title: msg, + icon: 'none', + }) + }, 30) + } else { + wx.showToast({ + title: msg, + icon: 'none', + }) + reject(res) + } + } else { + reject(res) + } + }, + fail(err) { + reject(err) + }, + complete() { + if (loading) { + wx.hideLoading() + } + }, + }) + }) +} + +function errPicker(err: any) { + if (typeof err === 'string') { + return err + } + return err.data || err.msg || err.errMsg || (err.detail && err.detail.errMsg) || '未知错误' +} diff --git a/src/utils/util.ts b/src/utils/util.ts new file mode 100644 index 0000000..fc0ca95 --- /dev/null +++ b/src/utils/util.ts @@ -0,0 +1,64 @@ +export const formatTime = (date: Date) => { + const year = date.getFullYear(); + const month = date.getMonth() + 1; + const day = date.getDate(); + const hour = date.getHours(); + const minute = date.getMinutes(); + const second = date.getSeconds(); + + return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`; +}; + +export const formatNumber = (n: number) => { + const s = n.toString(); + return s[1] ? s : `0${s}`; +}; + +/** + * 获取当前页面路径 + * @returns string + */ +export const getCurrentPageUrl = function () { + const pages = getCurrentPages(); + const currentPage = pages[pages.length - 1]; + const url = `/${currentPage.route}`; + return url; +}; + +/** + * 获取当前页面路径 & 参数 + * @returns string + */ +export const getCurrentPageUrlWithArgs = function () { + const pages = getCurrentPages(); + const currentPage = pages[pages.length - 1]; + const url = currentPage.route; + const options = currentPage.options; + let urlWithArgs = `/${url}?`; + for (const key in options) { + const value = options[key]; + urlWithArgs += `${key}=${value}&`; + } + urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1); + return urlWithArgs; +}; + +const parseUrlArgsToArray = (urlArgs) => { + urlArgs = urlArgs.split('&'); + const results = {}; + urlArgs.forEach((arg) => { + arg = arg.split('='); + if (arg[0] && arg[1]) { + results[arg[0]] = arg[1]; + } + }); + return results; +}; + +export const parseScene = (scene) => { + if (scene) { + return parseUrlArgsToArray(decodeURIComponent(scene)); + } else { + return null; + } +}; diff --git a/src/utils/util.wxs b/src/utils/util.wxs new file mode 100644 index 0000000..d56aab6 --- /dev/null +++ b/src/utils/util.wxs @@ -0,0 +1,12 @@ +function include(value, arr) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] === value) { + return true; + } + } + return false; +} + +module.exports = { + include: include, +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..11a248b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": ["ES2020"], + "experimentalDecorators": true, + "baseUrl": ".", + "module": "CommonJS", + "paths": { + "@vant/weapp/*": ["path/to/node_modules/@vant/weapp/dist/*"], + "@/*": ["src/*"] + }, + "typeRoots": ["./typings"], + "types": ["miniprogram-api-typings"], + "allowJs": true, + "strict": true, + "strictNullChecks": true, + "strictPropertyInitialization": true, + "alwaysStrict": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": false, + "noImplicitReturns": true, + "noImplicitThis": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true + }, + "include": ["./**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/typings/index.d.ts b/typings/index.d.ts new file mode 100644 index 0000000..fb8efe7 --- /dev/null +++ b/typings/index.d.ts @@ -0,0 +1,70 @@ +interface IAppOption { + globalData: { + userInfo?: IUserInfo; + url: string; + upFileUrl: string; + imageUrl: string; + loginState: string; + isLogin: 0 | 1 | 999; + isAnswer: '0' | '1'; + scene: null | { [key: string]: any }; + backPath: string; + }; + userInfoReadyCallback?: WechatMiniprogram.GetUserInfoSuccessCallback; + waitLogin: (waitLoginState?: boolean, requireLogin?: boolean, backPath?: string) => Promise; + getMenuInfo: (arg0: WechatMiniprogram.Page.Instance) => void; + getUserInfo: (arg0: WechatMiniprogram.Page.Instance, arg1?: (arg0: any) => void) => void; +} + +interface IAgaxParams extends WechatMiniprogram.RequestOption { + showMsg?: boolean; + loading?: boolean; + isJSON?: boolean; +} + +declare namespace WechatMiniprogram { + export interface Wx { + ajax: (arg0: IAgaxParams) => Promise; + WebIM; + } +} + +interface IUserInfo { + UserId: string; + IsDoctor: number; + DoctorId: number; + Name: string; + Img: string; + Telephone: string; + HospitalId: string; + TitleType: number; + OtherTitle: string; + DoctorLevel: number; + Introduce: string; + Department: IDepartment[]; + DepartmentId: string[]; + Specialty: ISpecialty[]; + SpecialtyId: string[]; + HospitalName: string; + HospitalClassification: string; + HospitalLevel: string; + ProvinceName: string; + CityName: string; + CountyName: string; + Address: string; + HospitalClassificationName: string; + HospitalLevelName: string; +} + +interface IDepartment { + DepartmentId: string; + DepartmentName: string; + DoctorId: string; +} + +interface ISpecialty { + SpecialtyId: string; + SpecialtyName: string; + DepartmentId: string; + DoctorId: string; +}