├── .github └── workflows │ └── build.yml ├── .gitignore ├── .vscode └── extensions.json ├── README.md ├── index.html ├── package.json ├── pnpm-lock.yaml ├── public └── vite.svg ├── src ├── App.vue ├── assets │ └── vue.svg ├── components │ ├── Dialog.vue │ ├── formDialog.vue │ ├── types.ts │ ├── useDialog.ts │ ├── useDialogState.ts │ └── useDialogWithForm.ts ├── main.ts └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build and Deploy 2 | on: 3 | push: 4 | branches: 5 | - main 6 | permissions: 7 | contents: write 8 | jobs: 9 | build-and-deploy: 10 | concurrency: ci-${{ github.ref }} # Recommended if you intend to make multiple deployments in quick succession. 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout 🛎️ 14 | uses: actions/checkout@v3 15 | 16 | - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. 17 | run: | 18 | npm i -g pnpm 19 | pnpm i 20 | pnpm build 21 | 22 | - name: Deploy 🚀 23 | uses: JamesIves/github-pages-deploy-action@v4 24 | with: 25 | branch: gh-pages 26 | folder: dist # The folder the action should deploy. -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # useDialog 2 | 3 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + Vue + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "use-dialog", 3 | "private": true, 4 | "version": "0.0.0", 5 | "homepage": "https://qc2168.github.io/useDialog", 6 | "type": "module", 7 | "scripts": { 8 | "dev": "vite", 9 | "build": "vue-tsc --noEmit && vite build", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "@element-plus/icons-vue": "^2.0.10", 14 | "element-plus": "^2.2.18", 15 | "less": "^4.1.3", 16 | "vue": "^3.2.37" 17 | }, 18 | "devDependencies": { 19 | "@types/node": "^18.11.13", 20 | "@vitejs/plugin-vue": "^3.1.0", 21 | "typescript": "^4.6.4", 22 | "vite": "^3.1.0", 23 | "vue-tsc": "^0.40.4" 24 | } 25 | } -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@element-plus/icons-vue': ^2.0.10 5 | '@types/node': ^18.11.13 6 | '@vitejs/plugin-vue': ^3.1.0 7 | element-plus: ^2.2.18 8 | less: ^4.1.3 9 | typescript: ^4.6.4 10 | vite: ^3.1.0 11 | vue: ^3.2.37 12 | vue-tsc: ^0.40.4 13 | 14 | dependencies: 15 | '@element-plus/icons-vue': 2.0.10_vue@3.2.41 16 | element-plus: 2.2.18_vue@3.2.41 17 | less: 4.1.3 18 | vue: 3.2.41 19 | 20 | devDependencies: 21 | '@types/node': 18.11.13 22 | '@vitejs/plugin-vue': 3.1.2_vite@3.1.8+vue@3.2.41 23 | typescript: 4.8.4 24 | vite: 3.1.8_less@4.1.3 25 | vue-tsc: 0.40.13_typescript@4.8.4 26 | 27 | packages: 28 | 29 | /@babel/helper-string-parser/7.19.4: 30 | resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} 31 | engines: {node: '>=6.9.0'} 32 | 33 | /@babel/helper-validator-identifier/7.19.1: 34 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} 35 | engines: {node: '>=6.9.0'} 36 | 37 | /@babel/parser/7.19.4: 38 | resolution: {integrity: sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==} 39 | engines: {node: '>=6.0.0'} 40 | hasBin: true 41 | dependencies: 42 | '@babel/types': 7.19.4 43 | 44 | /@babel/types/7.19.4: 45 | resolution: {integrity: sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==} 46 | engines: {node: '>=6.9.0'} 47 | dependencies: 48 | '@babel/helper-string-parser': 7.19.4 49 | '@babel/helper-validator-identifier': 7.19.1 50 | to-fast-properties: 2.0.0 51 | 52 | /@ctrl/tinycolor/3.4.1: 53 | resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==} 54 | engines: {node: '>=10'} 55 | dev: false 56 | 57 | /@element-plus/icons-vue/2.0.10_vue@3.2.41: 58 | resolution: {integrity: sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==} 59 | peerDependencies: 60 | vue: ^3.2.0 61 | dependencies: 62 | vue: 3.2.41 63 | dev: false 64 | 65 | /@esbuild/android-arm/0.15.11: 66 | resolution: {integrity: sha512-PzMcQLazLBkwDEkrNPi9AbjFt6+3I7HKbiYF2XtWQ7wItrHvEOeO3T8Am434zAozWtVP7lrTue1bEfc2nYWeCA==} 67 | engines: {node: '>=12'} 68 | cpu: [arm] 69 | os: [android] 70 | requiresBuild: true 71 | dev: true 72 | optional: true 73 | 74 | /@esbuild/linux-loong64/0.15.11: 75 | resolution: {integrity: sha512-geWp637tUhNmhL3Xgy4Bj703yXB9dqiLJe05lCUfjSFDrQf9C/8pArusyPUbUbPwlC/EAUjBw32sxuIl/11dZw==} 76 | engines: {node: '>=12'} 77 | cpu: [loong64] 78 | os: [linux] 79 | requiresBuild: true 80 | dev: true 81 | optional: true 82 | 83 | /@floating-ui/core/1.0.1: 84 | resolution: {integrity: sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA==} 85 | dev: false 86 | 87 | /@floating-ui/dom/1.0.2: 88 | resolution: {integrity: sha512-5X9WSvZ8/fjy3gDu8yx9HAA4KG1lazUN2P4/VnaXLxTO9Dz53HI1oYoh1OlhqFNlHgGDiwFX5WhFCc2ljbW3yA==} 89 | dependencies: 90 | '@floating-ui/core': 1.0.1 91 | dev: false 92 | 93 | /@sxzz/popperjs-es/2.11.7: 94 | resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} 95 | dev: false 96 | 97 | /@types/lodash-es/4.17.6: 98 | resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} 99 | dependencies: 100 | '@types/lodash': 4.14.186 101 | dev: false 102 | 103 | /@types/lodash/4.14.186: 104 | resolution: {integrity: sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==} 105 | dev: false 106 | 107 | /@types/node/18.11.13: 108 | resolution: {integrity: sha512-IASpMGVcWpUsx5xBOrxMj7Bl8lqfuTY7FKAnPmu5cHkfQVWF8GulWS1jbRqA934qZL35xh5xN/+Xe/i26Bod4w==} 109 | dev: true 110 | 111 | /@types/web-bluetooth/0.0.15: 112 | resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} 113 | dev: false 114 | 115 | /@vitejs/plugin-vue/3.1.2_vite@3.1.8+vue@3.2.41: 116 | resolution: {integrity: sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==} 117 | engines: {node: ^14.18.0 || >=16.0.0} 118 | peerDependencies: 119 | vite: ^3.0.0 120 | vue: ^3.2.25 121 | dependencies: 122 | vite: 3.1.8_less@4.1.3 123 | vue: 3.2.41 124 | dev: true 125 | 126 | /@volar/code-gen/0.40.13: 127 | resolution: {integrity: sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==} 128 | dependencies: 129 | '@volar/source-map': 0.40.13 130 | dev: true 131 | 132 | /@volar/source-map/0.40.13: 133 | resolution: {integrity: sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==} 134 | dependencies: 135 | '@vue/reactivity': 3.2.38 136 | dev: true 137 | 138 | /@volar/typescript-faster/0.40.13: 139 | resolution: {integrity: sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==} 140 | dependencies: 141 | semver: 7.3.8 142 | dev: true 143 | 144 | /@volar/vue-language-core/0.40.13: 145 | resolution: {integrity: sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==} 146 | dependencies: 147 | '@volar/code-gen': 0.40.13 148 | '@volar/source-map': 0.40.13 149 | '@vue/compiler-core': 3.2.41 150 | '@vue/compiler-dom': 3.2.41 151 | '@vue/compiler-sfc': 3.2.41 152 | '@vue/reactivity': 3.2.41 153 | '@vue/shared': 3.2.41 154 | dev: true 155 | 156 | /@volar/vue-typescript/0.40.13: 157 | resolution: {integrity: sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==} 158 | dependencies: 159 | '@volar/code-gen': 0.40.13 160 | '@volar/typescript-faster': 0.40.13 161 | '@volar/vue-language-core': 0.40.13 162 | dev: true 163 | 164 | /@vue/compiler-core/3.2.41: 165 | resolution: {integrity: sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==} 166 | dependencies: 167 | '@babel/parser': 7.19.4 168 | '@vue/shared': 3.2.41 169 | estree-walker: 2.0.2 170 | source-map: 0.6.1 171 | 172 | /@vue/compiler-dom/3.2.41: 173 | resolution: {integrity: sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==} 174 | dependencies: 175 | '@vue/compiler-core': 3.2.41 176 | '@vue/shared': 3.2.41 177 | 178 | /@vue/compiler-sfc/3.2.41: 179 | resolution: {integrity: sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==} 180 | dependencies: 181 | '@babel/parser': 7.19.4 182 | '@vue/compiler-core': 3.2.41 183 | '@vue/compiler-dom': 3.2.41 184 | '@vue/compiler-ssr': 3.2.41 185 | '@vue/reactivity-transform': 3.2.41 186 | '@vue/shared': 3.2.41 187 | estree-walker: 2.0.2 188 | magic-string: 0.25.9 189 | postcss: 8.4.18 190 | source-map: 0.6.1 191 | 192 | /@vue/compiler-ssr/3.2.41: 193 | resolution: {integrity: sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==} 194 | dependencies: 195 | '@vue/compiler-dom': 3.2.41 196 | '@vue/shared': 3.2.41 197 | 198 | /@vue/reactivity-transform/3.2.41: 199 | resolution: {integrity: sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==} 200 | dependencies: 201 | '@babel/parser': 7.19.4 202 | '@vue/compiler-core': 3.2.41 203 | '@vue/shared': 3.2.41 204 | estree-walker: 2.0.2 205 | magic-string: 0.25.9 206 | 207 | /@vue/reactivity/3.2.38: 208 | resolution: {integrity: sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==} 209 | dependencies: 210 | '@vue/shared': 3.2.38 211 | dev: true 212 | 213 | /@vue/reactivity/3.2.41: 214 | resolution: {integrity: sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==} 215 | dependencies: 216 | '@vue/shared': 3.2.41 217 | 218 | /@vue/runtime-core/3.2.41: 219 | resolution: {integrity: sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==} 220 | dependencies: 221 | '@vue/reactivity': 3.2.41 222 | '@vue/shared': 3.2.41 223 | 224 | /@vue/runtime-dom/3.2.41: 225 | resolution: {integrity: sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==} 226 | dependencies: 227 | '@vue/runtime-core': 3.2.41 228 | '@vue/shared': 3.2.41 229 | csstype: 2.6.21 230 | 231 | /@vue/server-renderer/3.2.41_vue@3.2.41: 232 | resolution: {integrity: sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==} 233 | peerDependencies: 234 | vue: 3.2.41 235 | dependencies: 236 | '@vue/compiler-ssr': 3.2.41 237 | '@vue/shared': 3.2.41 238 | vue: 3.2.41 239 | 240 | /@vue/shared/3.2.38: 241 | resolution: {integrity: sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==} 242 | dev: true 243 | 244 | /@vue/shared/3.2.41: 245 | resolution: {integrity: sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==} 246 | 247 | /@vueuse/core/9.3.0_vue@3.2.41: 248 | resolution: {integrity: sha512-64Rna8IQDWpdrJxgitDg7yv1yTp41ZmvV8zlLEylK4QQLWAhz1OFGZDPZ8bU4lwcGgbEJ2sGi2jrdNh4LttUSQ==} 249 | dependencies: 250 | '@types/web-bluetooth': 0.0.15 251 | '@vueuse/metadata': 9.3.0 252 | '@vueuse/shared': 9.3.0_vue@3.2.41 253 | vue-demi: 0.13.11_vue@3.2.41 254 | transitivePeerDependencies: 255 | - '@vue/composition-api' 256 | - vue 257 | dev: false 258 | 259 | /@vueuse/metadata/9.3.0: 260 | resolution: {integrity: sha512-GnnfjbzIPJIh9ngL9s9oGU1+Hx/h5/KFqTfJykzh/1xjaHkedV9g0MASpdmPZIP+ynNhKAcEfA6g5i8KXwtoMA==} 261 | dev: false 262 | 263 | /@vueuse/shared/9.3.0_vue@3.2.41: 264 | resolution: {integrity: sha512-caGUWLY0DpPC6l31KxeUy6vPVNA0yKxx81jFYLoMpyP6cF84FG5Dkf69DfSUqL57wX8JcUkJDMnQaQIZPWFEQQ==} 265 | dependencies: 266 | vue-demi: 0.13.11_vue@3.2.41 267 | transitivePeerDependencies: 268 | - '@vue/composition-api' 269 | - vue 270 | dev: false 271 | 272 | /async-validator/4.2.5: 273 | resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} 274 | dev: false 275 | 276 | /copy-anything/2.0.6: 277 | resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} 278 | dependencies: 279 | is-what: 3.14.1 280 | 281 | /csstype/2.6.21: 282 | resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} 283 | 284 | /dayjs/1.11.5: 285 | resolution: {integrity: sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==} 286 | dev: false 287 | 288 | /debug/3.2.7: 289 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 290 | peerDependencies: 291 | supports-color: '*' 292 | peerDependenciesMeta: 293 | supports-color: 294 | optional: true 295 | dependencies: 296 | ms: 2.1.3 297 | optional: true 298 | 299 | /element-plus/2.2.18_vue@3.2.41: 300 | resolution: {integrity: sha512-2pK2zmVOwP14eFl3rGoR+3BWJwDyO+DZCvzjQ8L6qjUR+hVKwFhgxIcSkKJatbcHFw5Xui6UyN20jV+gQP7mLg==} 301 | peerDependencies: 302 | vue: ^3.2.0 303 | dependencies: 304 | '@ctrl/tinycolor': 3.4.1 305 | '@element-plus/icons-vue': 2.0.10_vue@3.2.41 306 | '@floating-ui/dom': 1.0.2 307 | '@popperjs/core': /@sxzz/popperjs-es/2.11.7 308 | '@types/lodash': 4.14.186 309 | '@types/lodash-es': 4.17.6 310 | '@vueuse/core': 9.3.0_vue@3.2.41 311 | async-validator: 4.2.5 312 | dayjs: 1.11.5 313 | escape-html: 1.0.3 314 | lodash: 4.17.21 315 | lodash-es: 4.17.21 316 | lodash-unified: 1.0.2_3ib2ivapxullxkx3xftsimdk7u 317 | memoize-one: 6.0.0 318 | normalize-wheel-es: 1.2.0 319 | vue: 3.2.41 320 | transitivePeerDependencies: 321 | - '@vue/composition-api' 322 | dev: false 323 | 324 | /errno/0.1.8: 325 | resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} 326 | hasBin: true 327 | requiresBuild: true 328 | dependencies: 329 | prr: 1.0.1 330 | optional: true 331 | 332 | /esbuild-android-64/0.15.11: 333 | resolution: {integrity: sha512-rrwoXEiuI1kaw4k475NJpexs8GfJqQUKcD08VR8sKHmuW9RUuTR2VxcupVvHdiGh9ihxL9m3lpqB1kju92Ialw==} 334 | engines: {node: '>=12'} 335 | cpu: [x64] 336 | os: [android] 337 | requiresBuild: true 338 | dev: true 339 | optional: true 340 | 341 | /esbuild-android-arm64/0.15.11: 342 | resolution: {integrity: sha512-/hDubOg7BHOhUUsT8KUIU7GfZm5bihqssvqK5PfO4apag7YuObZRZSzViyEKcFn2tPeHx7RKbSBXvAopSHDZJQ==} 343 | engines: {node: '>=12'} 344 | cpu: [arm64] 345 | os: [android] 346 | requiresBuild: true 347 | dev: true 348 | optional: true 349 | 350 | /esbuild-darwin-64/0.15.11: 351 | resolution: {integrity: sha512-1DqHD0ms3AhiwkKnjRUzmiW7JnaJJr5FKrPiR7xuyMwnjDqvNWDdMq4rKSD9OC0piFNK6n0LghsglNMe2MwJtA==} 352 | engines: {node: '>=12'} 353 | cpu: [x64] 354 | os: [darwin] 355 | requiresBuild: true 356 | dev: true 357 | optional: true 358 | 359 | /esbuild-darwin-arm64/0.15.11: 360 | resolution: {integrity: sha512-OMzhxSbS0lwwrW40HHjRCeVIJTURdXFA8c3GU30MlHKuPCcvWNUIKVucVBtNpJySXmbkQMDJdJNrXzNDyvoqvQ==} 361 | engines: {node: '>=12'} 362 | cpu: [arm64] 363 | os: [darwin] 364 | requiresBuild: true 365 | dev: true 366 | optional: true 367 | 368 | /esbuild-freebsd-64/0.15.11: 369 | resolution: {integrity: sha512-8dKP26r0/Qyez8nTCwpq60QbuYKOeBygdgOAWGCRalunyeqWRoSZj9TQjPDnTTI9joxd3QYw3UhVZTKxO9QdRg==} 370 | engines: {node: '>=12'} 371 | cpu: [x64] 372 | os: [freebsd] 373 | requiresBuild: true 374 | dev: true 375 | optional: true 376 | 377 | /esbuild-freebsd-arm64/0.15.11: 378 | resolution: {integrity: sha512-aSGiODiukLGGnSg/O9+cGO2QxEacrdCtCawehkWYTt5VX1ni2b9KoxpHCT9h9Y6wGqNHmXFnB47RRJ8BIqZgmQ==} 379 | engines: {node: '>=12'} 380 | cpu: [arm64] 381 | os: [freebsd] 382 | requiresBuild: true 383 | dev: true 384 | optional: true 385 | 386 | /esbuild-linux-32/0.15.11: 387 | resolution: {integrity: sha512-lsrAfdyJBGx+6aHIQmgqUonEzKYeBnyfJPkT6N2dOf1RoXYYV1BkWB6G02tjsrz1d5wZzaTc3cF+TKmuTo/ZwA==} 388 | engines: {node: '>=12'} 389 | cpu: [ia32] 390 | os: [linux] 391 | requiresBuild: true 392 | dev: true 393 | optional: true 394 | 395 | /esbuild-linux-64/0.15.11: 396 | resolution: {integrity: sha512-Y2Rh+PcyVhQqXKBTacPCltINN3uIw2xC+dsvLANJ1SpK5NJUtxv8+rqWpjmBgaNWKQT1/uGpMmA9olALy9PLVA==} 397 | engines: {node: '>=12'} 398 | cpu: [x64] 399 | os: [linux] 400 | requiresBuild: true 401 | dev: true 402 | optional: true 403 | 404 | /esbuild-linux-arm/0.15.11: 405 | resolution: {integrity: sha512-TJllTVk5aSyqPFvvcHTvf6Wu1ZKhWpJ/qNmZO8LL/XeB+LXCclm7HQHNEIz6MT7IX8PmlC1BZYrOiw2sXSB95A==} 406 | engines: {node: '>=12'} 407 | cpu: [arm] 408 | os: [linux] 409 | requiresBuild: true 410 | dev: true 411 | optional: true 412 | 413 | /esbuild-linux-arm64/0.15.11: 414 | resolution: {integrity: sha512-uhcXiTwTmD4OpxJu3xC5TzAAw6Wzf9O1XGWL448EE9bqGjgV1j+oK3lIHAfsHnuIn8K4nDW8yjX0Sv5S++oRuw==} 415 | engines: {node: '>=12'} 416 | cpu: [arm64] 417 | os: [linux] 418 | requiresBuild: true 419 | dev: true 420 | optional: true 421 | 422 | /esbuild-linux-mips64le/0.15.11: 423 | resolution: {integrity: sha512-WD61y/R1M4BLe4gxXRypoQ0Ci+Vjf714QYzcPNkiYv5I8K8WDz2ZR8Bm6cqKxd6rD+e/rZgPDbhQ9PCf7TMHmA==} 424 | engines: {node: '>=12'} 425 | cpu: [mips64el] 426 | os: [linux] 427 | requiresBuild: true 428 | dev: true 429 | optional: true 430 | 431 | /esbuild-linux-ppc64le/0.15.11: 432 | resolution: {integrity: sha512-JVleZS9oPVLTlBhPTWgOwxFWU/wMUdlBwTbGA4GF8c38sLbS13cupj+C8bLq929jU7EMWry4SaL+tKGIaTlqKg==} 433 | engines: {node: '>=12'} 434 | cpu: [ppc64] 435 | os: [linux] 436 | requiresBuild: true 437 | dev: true 438 | optional: true 439 | 440 | /esbuild-linux-riscv64/0.15.11: 441 | resolution: {integrity: sha512-9aLIalZ2HFHIOZpmVU11sEAS9F8TnHw49daEjcgMpBXHFF57VuT9f9/9LKJhw781Gda0P9jDkuCWJ0tFbErvJw==} 442 | engines: {node: '>=12'} 443 | cpu: [riscv64] 444 | os: [linux] 445 | requiresBuild: true 446 | dev: true 447 | optional: true 448 | 449 | /esbuild-linux-s390x/0.15.11: 450 | resolution: {integrity: sha512-sZHtiXXOKsLI3XGBGoYO4qKBzJlb8xNsWmvFiwFMHFzA4AXgDP1KDp7Dawe9C2pavTRBDvl+Ok4n/DHQ59oaTg==} 451 | engines: {node: '>=12'} 452 | cpu: [s390x] 453 | os: [linux] 454 | requiresBuild: true 455 | dev: true 456 | optional: true 457 | 458 | /esbuild-netbsd-64/0.15.11: 459 | resolution: {integrity: sha512-hUC9yN06K9sg7ju4Vgu9ChAPdsEgtcrcLfyNT5IKwKyfpLvKUwCMZSdF+gRD3WpyZelgTQfJ+pDx5XFbXTlB0A==} 460 | engines: {node: '>=12'} 461 | cpu: [x64] 462 | os: [netbsd] 463 | requiresBuild: true 464 | dev: true 465 | optional: true 466 | 467 | /esbuild-openbsd-64/0.15.11: 468 | resolution: {integrity: sha512-0bBo9SQR4t66Wd91LGMAqmWorzO0TTzVjYiifwoFtel8luFeXuPThQnEm5ztN4g0fnvcp7AnUPPzS/Depf17wQ==} 469 | engines: {node: '>=12'} 470 | cpu: [x64] 471 | os: [openbsd] 472 | requiresBuild: true 473 | dev: true 474 | optional: true 475 | 476 | /esbuild-sunos-64/0.15.11: 477 | resolution: {integrity: sha512-EuBdTGlsMTjEl1sQnBX2jfygy7iR6CKfvOzi+gEOfhDqbHXsmY1dcpbVtcwHAg9/2yUZSfMJHMAgf1z8M4yyyw==} 478 | engines: {node: '>=12'} 479 | cpu: [x64] 480 | os: [sunos] 481 | requiresBuild: true 482 | dev: true 483 | optional: true 484 | 485 | /esbuild-windows-32/0.15.11: 486 | resolution: {integrity: sha512-O0/Wo1Wk6dc0rZSxkvGpmTNIycEznHmkObTFz2VHBhjPsO4ZpCgfGxNkCpz4AdAIeMczpTXt/8d5vdJNKEGC+Q==} 487 | engines: {node: '>=12'} 488 | cpu: [ia32] 489 | os: [win32] 490 | requiresBuild: true 491 | dev: true 492 | optional: true 493 | 494 | /esbuild-windows-64/0.15.11: 495 | resolution: {integrity: sha512-x977Q4HhNjnHx00b4XLAnTtj5vfbdEvkxaQwC1Zh5AN8g5EX+izgZ6e5QgqJgpzyRNJqh4hkgIJF1pyy1be0mQ==} 496 | engines: {node: '>=12'} 497 | cpu: [x64] 498 | os: [win32] 499 | requiresBuild: true 500 | dev: true 501 | optional: true 502 | 503 | /esbuild-windows-arm64/0.15.11: 504 | resolution: {integrity: sha512-VwUHFACuBahrvntdcMKZteUZ9HaYrBRODoKe4tIWxguQRvvYoYb7iu5LrcRS/FQx8KPZNaa72zuqwVtHeXsITw==} 505 | engines: {node: '>=12'} 506 | cpu: [arm64] 507 | os: [win32] 508 | requiresBuild: true 509 | dev: true 510 | optional: true 511 | 512 | /esbuild/0.15.11: 513 | resolution: {integrity: sha512-OgHGuhlfZ//mToxjte1D5iiiQgWfJ2GByVMwEC/IuoXsBGkuyK1+KrjYu0laSpnN/L1UmLUCv0s25vObdc1bVg==} 514 | engines: {node: '>=12'} 515 | hasBin: true 516 | requiresBuild: true 517 | optionalDependencies: 518 | '@esbuild/android-arm': 0.15.11 519 | '@esbuild/linux-loong64': 0.15.11 520 | esbuild-android-64: 0.15.11 521 | esbuild-android-arm64: 0.15.11 522 | esbuild-darwin-64: 0.15.11 523 | esbuild-darwin-arm64: 0.15.11 524 | esbuild-freebsd-64: 0.15.11 525 | esbuild-freebsd-arm64: 0.15.11 526 | esbuild-linux-32: 0.15.11 527 | esbuild-linux-64: 0.15.11 528 | esbuild-linux-arm: 0.15.11 529 | esbuild-linux-arm64: 0.15.11 530 | esbuild-linux-mips64le: 0.15.11 531 | esbuild-linux-ppc64le: 0.15.11 532 | esbuild-linux-riscv64: 0.15.11 533 | esbuild-linux-s390x: 0.15.11 534 | esbuild-netbsd-64: 0.15.11 535 | esbuild-openbsd-64: 0.15.11 536 | esbuild-sunos-64: 0.15.11 537 | esbuild-windows-32: 0.15.11 538 | esbuild-windows-64: 0.15.11 539 | esbuild-windows-arm64: 0.15.11 540 | dev: true 541 | 542 | /escape-html/1.0.3: 543 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 544 | dev: false 545 | 546 | /estree-walker/2.0.2: 547 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 548 | 549 | /fsevents/2.3.2: 550 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 551 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 552 | os: [darwin] 553 | requiresBuild: true 554 | dev: true 555 | optional: true 556 | 557 | /function-bind/1.1.1: 558 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 559 | dev: true 560 | 561 | /graceful-fs/4.2.10: 562 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 563 | requiresBuild: true 564 | optional: true 565 | 566 | /has/1.0.3: 567 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 568 | engines: {node: '>= 0.4.0'} 569 | dependencies: 570 | function-bind: 1.1.1 571 | dev: true 572 | 573 | /iconv-lite/0.6.3: 574 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 575 | engines: {node: '>=0.10.0'} 576 | dependencies: 577 | safer-buffer: 2.1.2 578 | optional: true 579 | 580 | /image-size/0.5.5: 581 | resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} 582 | engines: {node: '>=0.10.0'} 583 | hasBin: true 584 | requiresBuild: true 585 | optional: true 586 | 587 | /is-core-module/2.10.0: 588 | resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} 589 | dependencies: 590 | has: 1.0.3 591 | dev: true 592 | 593 | /is-what/3.14.1: 594 | resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} 595 | 596 | /less/4.1.3: 597 | resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} 598 | engines: {node: '>=6'} 599 | hasBin: true 600 | dependencies: 601 | copy-anything: 2.0.6 602 | parse-node-version: 1.0.1 603 | tslib: 2.4.0 604 | optionalDependencies: 605 | errno: 0.1.8 606 | graceful-fs: 4.2.10 607 | image-size: 0.5.5 608 | make-dir: 2.1.0 609 | mime: 1.6.0 610 | needle: 3.1.0 611 | source-map: 0.6.1 612 | transitivePeerDependencies: 613 | - supports-color 614 | 615 | /lodash-es/4.17.21: 616 | resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} 617 | dev: false 618 | 619 | /lodash-unified/1.0.2_3ib2ivapxullxkx3xftsimdk7u: 620 | resolution: {integrity: sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==} 621 | peerDependencies: 622 | '@types/lodash-es': '*' 623 | lodash: '*' 624 | lodash-es: '*' 625 | dependencies: 626 | '@types/lodash-es': 4.17.6 627 | lodash: 4.17.21 628 | lodash-es: 4.17.21 629 | dev: false 630 | 631 | /lodash/4.17.21: 632 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 633 | dev: false 634 | 635 | /lru-cache/6.0.0: 636 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 637 | engines: {node: '>=10'} 638 | dependencies: 639 | yallist: 4.0.0 640 | dev: true 641 | 642 | /magic-string/0.25.9: 643 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 644 | dependencies: 645 | sourcemap-codec: 1.4.8 646 | 647 | /make-dir/2.1.0: 648 | resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} 649 | engines: {node: '>=6'} 650 | requiresBuild: true 651 | dependencies: 652 | pify: 4.0.1 653 | semver: 5.7.1 654 | optional: true 655 | 656 | /memoize-one/6.0.0: 657 | resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} 658 | dev: false 659 | 660 | /mime/1.6.0: 661 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 662 | engines: {node: '>=4'} 663 | hasBin: true 664 | requiresBuild: true 665 | optional: true 666 | 667 | /ms/2.1.3: 668 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 669 | optional: true 670 | 671 | /nanoid/3.3.4: 672 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 673 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 674 | hasBin: true 675 | 676 | /needle/3.1.0: 677 | resolution: {integrity: sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==} 678 | engines: {node: '>= 4.4.x'} 679 | hasBin: true 680 | requiresBuild: true 681 | dependencies: 682 | debug: 3.2.7 683 | iconv-lite: 0.6.3 684 | sax: 1.2.4 685 | transitivePeerDependencies: 686 | - supports-color 687 | optional: true 688 | 689 | /normalize-wheel-es/1.2.0: 690 | resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} 691 | dev: false 692 | 693 | /parse-node-version/1.0.1: 694 | resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} 695 | engines: {node: '>= 0.10'} 696 | 697 | /path-parse/1.0.7: 698 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 699 | dev: true 700 | 701 | /picocolors/1.0.0: 702 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 703 | 704 | /pify/4.0.1: 705 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 706 | engines: {node: '>=6'} 707 | optional: true 708 | 709 | /postcss/8.4.18: 710 | resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==} 711 | engines: {node: ^10 || ^12 || >=14} 712 | dependencies: 713 | nanoid: 3.3.4 714 | picocolors: 1.0.0 715 | source-map-js: 1.0.2 716 | 717 | /prr/1.0.1: 718 | resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} 719 | optional: true 720 | 721 | /resolve/1.22.1: 722 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 723 | hasBin: true 724 | dependencies: 725 | is-core-module: 2.10.0 726 | path-parse: 1.0.7 727 | supports-preserve-symlinks-flag: 1.0.0 728 | dev: true 729 | 730 | /rollup/2.78.1: 731 | resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} 732 | engines: {node: '>=10.0.0'} 733 | hasBin: true 734 | optionalDependencies: 735 | fsevents: 2.3.2 736 | dev: true 737 | 738 | /safer-buffer/2.1.2: 739 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 740 | optional: true 741 | 742 | /sax/1.2.4: 743 | resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} 744 | optional: true 745 | 746 | /semver/5.7.1: 747 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 748 | hasBin: true 749 | optional: true 750 | 751 | /semver/7.3.8: 752 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 753 | engines: {node: '>=10'} 754 | hasBin: true 755 | dependencies: 756 | lru-cache: 6.0.0 757 | dev: true 758 | 759 | /source-map-js/1.0.2: 760 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 761 | engines: {node: '>=0.10.0'} 762 | 763 | /source-map/0.6.1: 764 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 765 | engines: {node: '>=0.10.0'} 766 | 767 | /sourcemap-codec/1.4.8: 768 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 769 | 770 | /supports-preserve-symlinks-flag/1.0.0: 771 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 772 | engines: {node: '>= 0.4'} 773 | dev: true 774 | 775 | /to-fast-properties/2.0.0: 776 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 777 | engines: {node: '>=4'} 778 | 779 | /tslib/2.4.0: 780 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 781 | 782 | /typescript/4.8.4: 783 | resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} 784 | engines: {node: '>=4.2.0'} 785 | hasBin: true 786 | dev: true 787 | 788 | /vite/3.1.8_less@4.1.3: 789 | resolution: {integrity: sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg==} 790 | engines: {node: ^14.18.0 || >=16.0.0} 791 | hasBin: true 792 | peerDependencies: 793 | less: '*' 794 | sass: '*' 795 | stylus: '*' 796 | terser: ^5.4.0 797 | peerDependenciesMeta: 798 | less: 799 | optional: true 800 | sass: 801 | optional: true 802 | stylus: 803 | optional: true 804 | terser: 805 | optional: true 806 | dependencies: 807 | esbuild: 0.15.11 808 | less: 4.1.3 809 | postcss: 8.4.18 810 | resolve: 1.22.1 811 | rollup: 2.78.1 812 | optionalDependencies: 813 | fsevents: 2.3.2 814 | dev: true 815 | 816 | /vue-demi/0.13.11_vue@3.2.41: 817 | resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} 818 | engines: {node: '>=12'} 819 | hasBin: true 820 | requiresBuild: true 821 | peerDependencies: 822 | '@vue/composition-api': ^1.0.0-rc.1 823 | vue: ^3.0.0-0 || ^2.6.0 824 | peerDependenciesMeta: 825 | '@vue/composition-api': 826 | optional: true 827 | dependencies: 828 | vue: 3.2.41 829 | dev: false 830 | 831 | /vue-tsc/0.40.13_typescript@4.8.4: 832 | resolution: {integrity: sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==} 833 | hasBin: true 834 | peerDependencies: 835 | typescript: '*' 836 | dependencies: 837 | '@volar/vue-language-core': 0.40.13 838 | '@volar/vue-typescript': 0.40.13 839 | typescript: 4.8.4 840 | dev: true 841 | 842 | /vue/3.2.41: 843 | resolution: {integrity: sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==} 844 | dependencies: 845 | '@vue/compiler-dom': 3.2.41 846 | '@vue/compiler-sfc': 3.2.41 847 | '@vue/runtime-dom': 3.2.41 848 | '@vue/server-renderer': 3.2.41_vue@3.2.41 849 | '@vue/shared': 3.2.41 850 | 851 | /yallist/4.0.0: 852 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 853 | dev: true 854 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 49 | 109 | 114 | -------------------------------------------------------------------------------- /src/assets/vue.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/Dialog.vue: -------------------------------------------------------------------------------- 1 | 37 | 95 | 96 | 124 | -------------------------------------------------------------------------------- /src/components/formDialog.vue: -------------------------------------------------------------------------------- 1 | 28 | 112 | 113 | -------------------------------------------------------------------------------- /src/components/types.ts: -------------------------------------------------------------------------------- 1 | export enum MODE { 2 | ADD='add', 3 | EDIT='edit', 4 | READONLY='readonly', 5 | } -------------------------------------------------------------------------------- /src/components/useDialog.ts: -------------------------------------------------------------------------------- 1 | import { ref } from "vue"; 2 | 3 | export default function useDialog() { 4 | const visible = ref(false); 5 | const loading = ref(false); 6 | const openDialog = () => (visible.value = true); 7 | const closeDialog = () => (visible.value = false); 8 | const openLoading = () => (loading.value = true); 9 | const closeLoading = () => (loading.value = false); 10 | return { 11 | visible, 12 | loading, 13 | openDialog, 14 | closeDialog, 15 | openLoading, 16 | closeLoading, 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /src/components/useDialogState.ts: -------------------------------------------------------------------------------- 1 | import { ref } from "vue"; 2 | import { MODE } from "./types"; 3 | 4 | export default function useDialogState() { 5 | const mode = ref(MODE.ADD); 6 | const visible = ref(false); 7 | const updateMode = (target: MODE|'add'|'edit'|'readonly') => { 8 | mode.value = target; 9 | }; 10 | return { mode, visible, updateMode }; 11 | } 12 | -------------------------------------------------------------------------------- /src/components/useDialogWithForm.ts: -------------------------------------------------------------------------------- 1 | import { FormInstance } from "element-plus"; 2 | import { computed, Ref, ref } from "vue"; 3 | import useDialogState from "./useDialogState"; 4 | 5 | export enum MODE { 6 | ADD='add', 7 | EDIT='edit', 8 | READONLY='readonly', 9 | } 10 | 11 | export default function useDialogFn( 12 | formInstance: Ref 13 | ) { 14 | const { visible, mode, updateMode } = useDialogState(); 15 | 16 | const closeDialog = () => { 17 | formInstance.value?.resetFields(); 18 | visible.value = false; 19 | }; 20 | const openDialog = (target: MODE|'add'|'edit'|'readonly') => { 21 | updateMode(target); 22 | visible.value = true; 23 | formInstance.value?.resetFields(); 24 | }; 25 | 26 | const modeText = computed(() => { 27 | if (mode.value === 'add') return '添加'; 28 | if (mode.value === 'edit') return '编辑'; 29 | if (mode.value === 'readonly') return '详情'; 30 | }); 31 | 32 | return { visible, mode, openDialog, closeDialog, modeText }; 33 | } 34 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import ElementPlus from "element-plus"; 3 | import "element-plus/dist/index.css"; 4 | import App from "./App.vue"; 5 | createApp(App).use(ElementPlus).mount('#app') 6 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | const component: DefineComponent<{}, {}, any> 6 | export default component 7 | } 8 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "moduleResolution": "Node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "isolatedModules": true, 12 | "esModuleInterop": true, 13 | "lib": ["ESNext", "DOM"], 14 | "skipLibCheck": true 15 | }, 16 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], 17 | "references": [{ "path": "./tsconfig.node.json" }] 18 | } 19 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import vue from "@vitejs/plugin-vue"; 3 | 4 | export default defineConfig({ 5 | plugins: [vue()], 6 | base: "/useDialog/", 7 | }); 8 | --------------------------------------------------------------------------------