├── README.md ├── example ├── .gitignore ├── .stackblitzrc ├── README.md ├── assets │ └── 1.png ├── index.html ├── package.json ├── src │ ├── App.tsx │ ├── hooks │ │ └── useAddress │ │ │ ├── address.ts │ │ │ └── index.tsx │ ├── index.css │ ├── main.tsx │ ├── pages │ │ ├── demo │ │ │ ├── index.css │ │ │ └── index.tsx │ │ └── index.d.ts │ └── vite-env.d.ts ├── tsconfig.json ├── vite.config.ts └── yarn.lock ├── lib └── multiple-citys.js ├── package.json ├── packages ├── images.d.ts ├── index.d.ts ├── index.tsx └── multipleCitysReact │ ├── components │ ├── badge │ │ ├── index.scss │ │ └── index.tsx │ └── pop │ │ ├── images.d.ts │ │ ├── index.scss │ │ └── index.tsx │ ├── images │ ├── arrowDown.png │ ├── checkBoxIcon.png │ ├── checkBoxIconActived.png │ ├── checkBoxIconPart.png │ └── closeBadge.png │ ├── index.scss │ ├── index.tsx │ └── model │ ├── badge.ts │ ├── index.ts │ └── pop.ts ├── react-app-env.d.ts ├── rollup.config.js ├── tsconfig.json └── yarn.lock /README.md: -------------------------------------------------------------------------------- 1 | # multiple-citys-react 2 | 3 | This is multiple-citys-react components,Support multiple selection components of provinces and cities(支持省市区多选组件) 4 | ## node version 5 | ``` 6 | had better > 16 7 | 8 | ``` 9 | ## how to use 10 | 11 | ``` 12 | yarn add @banyinbanying/multiple-citys-react or npm i @banyinbanying/multiple-citys-react 13 | 14 | ``` 15 | 16 | ### then you add this line in your component or page 17 | 18 | ``` 19 | import MultipleCitysReact from "@banyinbanying/multiple-citys-react"; 20 | 21 | ``` 22 | 23 | ### after you can use it in component like this,for more message you can refer to demo code 24 | 25 | ``` 26 | 32 | 33 | ``` 34 | 35 | ### 示例图片 36 | 37 | ![image](https://github.com/zhaochengxian/multiple-citys-react/blob/72b1774fdd64c1496b0f50d53f6940508f5c8090/example/assets/1.png) 38 | 39 | ### Props 40 | 41 | The component provides the following variables 42 | 43 | | Name | Type | Default Value | Description | 44 | | ------------------ | ------------------------------------- | -------------- | ------------------------------------ | 45 | | data | Array | - | 省市区 json | 46 | | checkList | Array | - | 选中的列表 | 47 | | top | boolean | bottom | pop 的位置展示上面还是下面,默认下面 | 48 | | checkBoxIconActive | String | - | 全部选中的 icon ,png | 49 | | checkBoxIcon | String | - | 没有选中的 icon,png | 50 | | checkBoxIconPart | String | - | 部分选中的 icon,png | 51 | | color | String | #232323 | 字体颜色 | 52 | | placeholder | String | '请选择省市区' | 输入框提示 | 53 | | badgesWidth | number | 500 | 输入框的宽度 | 54 | | badgeStyle | enum 'primary' , 'danger' , 'default' | 'default' | - | 55 | | loadNextLevelData | function | - | 获取下一级数据,2 和 3 级 | 56 | | onChange | function | - | 选择变化时候触发 | 57 | 58 | ### data json format 59 | 60 | ``` 61 | { 62 | value: 110000, 63 | parentId: 0, 64 | label: '北京市', 65 | lay: 1, 66 | isLeaf: false, 67 | children: [ 68 | { 69 | value: 110100, 70 | parentId: 110000, 71 | label: '市辖区', 72 | lay: 2, 73 | isLeaf: false, 74 | children: [ 75 | { 76 | value: 110119, 77 | parentId: 110100, 78 | label: '延庆区', 79 | lay: 3, 80 | isLeaf: true 81 | } 82 | ] 83 | } 84 | ] 85 | } 86 | 87 | ``` 88 | 89 | ### Matching selection components(city-tables)示范图片 90 | 91 | ![image](https://github.com/zhaochengxian/cityTable/blob/16250a33d0dec558739b20ebf475d53008e33f93/examples/assets/demo-img.jpeg) 92 | 93 | ### the code and the demo of city-tables 94 | 95 | [github](https://github.com/zhaochengxian/cityTable). 96 | -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /example/.stackblitzrc: -------------------------------------------------------------------------------- 1 | { 2 | "installDependencies": true, 3 | "startCommand": "npm run dev" 4 | } 5 | -------------------------------------------------------------------------------- /example/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Lazy Loading 3 | toc: false 4 | --- 5 | 6 | # Lazy Loading Example 7 | 8 | This example demonstrates how to lazily load both 9 | 10 | - individual route elements 11 | - entire portions of your route hierarchy 12 | 13 | on demand using `React.lazy()` and dynamic `import()`. Using this technique, 14 | pages that are not required on the home page can be split out into separate 15 | bundles, thereby decreasing load time on the initial page and improving 16 | performance. 17 | 18 | ## Preview 19 | 20 | Open this example on [StackBlitz](https://stackblitz.com): 21 | 22 | [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/remix-run/react-router/tree/main/examples/lazy-loading?file=src/App.tsx) 23 | -------------------------------------------------------------------------------- /example/assets/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaochengxian/multiple-citys-react/ec289ca47a79bc90eee3befebffa3e21738078f9/example/assets/1.png -------------------------------------------------------------------------------- /example/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | React Router - Lazy Loading Example 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lazy-loading", 3 | "private": true, 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "tsc && vite build", 7 | "serve": "vite preview" 8 | }, 9 | "dependencies": { 10 | "@banyinbanying/multiple-citys-react": "^2.1.9", 11 | "history": "^5.2.0", 12 | "react": "^17.0.2", 13 | "react-dom": "^17.0.2", 14 | "react-router": "6.2.2", 15 | "react-router-dom": "6.2.2" 16 | }, 17 | "devDependencies": { 18 | "@rollup/plugin-replace": "^2.2.1", 19 | "@types/node": "14.x", 20 | "@types/react": "^17.0.19", 21 | "@types/react-dom": "^17.0.9", 22 | "@vitejs/plugin-react": "^1.0.1", 23 | "typescript": "^4.3.5", 24 | "vite": "^2.5.0" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /example/src/App.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | import { Routes, Route, Outlet, Link } from "react-router-dom"; 3 | 4 | const Demo = React.lazy(() => import("./pages/demo")); 5 | 6 | export default function App() { 7 | return ( 8 |
9 |

以下是省市区对选组件基本使用demo

10 | 11 | 12 | }> 13 | } /> 14 | ...}> 18 | 19 | 20 | } 21 | /> 22 | } /> 23 | 24 | 25 |
26 | ); 27 | } 28 | 29 | function Layout() { 30 | return ( 31 |
32 | 42 | 43 |
44 | 45 | 46 |
47 | ); 48 | } 49 | function Home() { 50 | return ( 51 |
52 |

53 | 具体详细的其他更高级的属性配置,请参考 54 | 55 | github说明 56 | 57 |

58 |
59 | ); 60 | } 61 | function NoMatch() { 62 | return ( 63 |
64 |

Nothing to see here!

65 |

66 | Go to the home page 67 |

68 |
69 | ); 70 | } 71 | -------------------------------------------------------------------------------- /example/src/hooks/useAddress/index.tsx: -------------------------------------------------------------------------------- 1 | import { useCallback, useState } from "react"; 2 | import AddressJson from "./address"; 3 | 4 | const useAddress = (limit?: number) => { 5 | const addressList = AddressJson; 6 | const [refresh, setRefresh] = useState(false); 7 | const loadNextLevelData = useCallback( 8 | (selectedOptions, callback?: (list: any[]) => void) => { 9 | const targetOption = selectedOptions[selectedOptions.length - 1]; 10 | setRefresh(true); 11 | callback && callback(targetOption.children); 12 | setRefresh(false); 13 | }, 14 | [refresh, addressList, limit] 15 | ); 16 | const concatWholeNation = useCallback(() => { 17 | let list = [...addressList]; 18 | list.unshift({ 19 | value: 0, 20 | label: "全国", 21 | isLeaf: true, 22 | parentId: 0, 23 | lay: 1, 24 | children: [], 25 | }); 26 | return list; 27 | }, [addressList]); 28 | return { addressList, loadNextLevelData, concatWholeNation }; 29 | }; 30 | 31 | export default useAddress; 32 | -------------------------------------------------------------------------------- /example/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 3 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 4 | sans-serif; 5 | -webkit-font-smoothing: antialiased; 6 | -moz-osx-font-smoothing: grayscale; 7 | } 8 | 9 | code { 10 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 11 | monospace; 12 | } 13 | -------------------------------------------------------------------------------- /example/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom"; 3 | import { BrowserRouter } from "react-router-dom"; 4 | 5 | import "./index.css"; 6 | import App from "./App"; 7 | 8 | ReactDOM.render( 9 | 10 | 11 | 12 | 13 | , 14 | document.getElementById("root") 15 | ); 16 | -------------------------------------------------------------------------------- /example/src/pages/demo/index.css: -------------------------------------------------------------------------------- 1 | .multiple-citys-react-demo { 2 | margin-top: 400px; 3 | } 4 | -------------------------------------------------------------------------------- /example/src/pages/demo/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { useCallback, useState } from "react"; 2 | import MultipleCitysReact from "@banyinbanying/multiple-citys-react"; 3 | 4 | import useAddress from "../../hooks/useAddress"; 5 | import "./index.css"; 6 | 7 | const SystemOrderModify = () => { 8 | const { addressList, loadNextLevelData } = useAddress(); 9 | const [checkList, setCheckList] = useState([]); 10 | 11 | const multipleChange = useCallback((event) => { 12 | setCheckList(event); 13 | }, []); 14 | 15 | return ( 16 |
17 | 23 |
24 | ); 25 | }; 26 | 27 | export default SystemOrderModify; 28 | -------------------------------------------------------------------------------- /example/src/pages/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "@banyinbanying/multiple-citys-react" -------------------------------------------------------------------------------- /example/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /example/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "target": "ESNext", 5 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 6 | "allowJs": false, 7 | "skipLibCheck": true, 8 | "esModuleInterop": false, 9 | "allowSyntheticDefaultImports": true, 10 | "strict": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "module": "ESNext", 13 | "moduleResolution": "Node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react", 18 | "importsNotUsedAsValues": "error" 19 | }, 20 | "include": ["./src"] 21 | } 22 | -------------------------------------------------------------------------------- /example/vite.config.ts: -------------------------------------------------------------------------------- 1 | import * as path from "path"; 2 | import { defineConfig } from "vite"; 3 | import react from "@vitejs/plugin-react"; 4 | import rollupReplace from "@rollup/plugin-replace"; 5 | 6 | 7 | export default defineConfig({ 8 | plugins: [ 9 | rollupReplace({ 10 | preventAssignment: true, 11 | values: { 12 | __DEV__: JSON.stringify(true), 13 | "process.env.NODE_ENV": JSON.stringify("development"), 14 | }, 15 | }), 16 | react(), 17 | ], 18 | resolve: process.env.USE_SOURCE 19 | ? { 20 | alias: { 21 | "react-router": path.resolve( 22 | __dirname, 23 | "../../packages/react-router/index.tsx" 24 | ), 25 | "react-router-dom": path.resolve( 26 | __dirname, 27 | "../../packages/react-router-dom/index.tsx" 28 | ), 29 | }, 30 | } 31 | : {}, 32 | }); 33 | -------------------------------------------------------------------------------- /example/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.1.0": 6 | version "2.1.2" 7 | resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" 8 | integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== 9 | dependencies: 10 | "@jridgewell/trace-mapping" "^0.3.0" 11 | 12 | "@babel/code-frame@^7.16.7": 13 | version "7.16.7" 14 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" 15 | integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== 16 | dependencies: 17 | "@babel/highlight" "^7.16.7" 18 | 19 | "@babel/compat-data@^7.17.7": 20 | version "7.17.7" 21 | resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" 22 | integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== 23 | 24 | "@babel/core@^7.17.8": 25 | version "7.17.8" 26 | resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" 27 | integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== 28 | dependencies: 29 | "@ampproject/remapping" "^2.1.0" 30 | "@babel/code-frame" "^7.16.7" 31 | "@babel/generator" "^7.17.7" 32 | "@babel/helper-compilation-targets" "^7.17.7" 33 | "@babel/helper-module-transforms" "^7.17.7" 34 | "@babel/helpers" "^7.17.8" 35 | "@babel/parser" "^7.17.8" 36 | "@babel/template" "^7.16.7" 37 | "@babel/traverse" "^7.17.3" 38 | "@babel/types" "^7.17.0" 39 | convert-source-map "^1.7.0" 40 | debug "^4.1.0" 41 | gensync "^1.0.0-beta.2" 42 | json5 "^2.1.2" 43 | semver "^6.3.0" 44 | 45 | "@babel/generator@^7.17.3", "@babel/generator@^7.17.7": 46 | version "7.17.7" 47 | resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" 48 | integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== 49 | dependencies: 50 | "@babel/types" "^7.17.0" 51 | jsesc "^2.5.1" 52 | source-map "^0.5.0" 53 | 54 | "@babel/helper-annotate-as-pure@^7.16.7": 55 | version "7.16.7" 56 | resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" 57 | integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== 58 | dependencies: 59 | "@babel/types" "^7.16.7" 60 | 61 | "@babel/helper-compilation-targets@^7.17.7": 62 | version "7.17.7" 63 | resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" 64 | integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== 65 | dependencies: 66 | "@babel/compat-data" "^7.17.7" 67 | "@babel/helper-validator-option" "^7.16.7" 68 | browserslist "^4.17.5" 69 | semver "^6.3.0" 70 | 71 | "@babel/helper-environment-visitor@^7.16.7": 72 | version "7.16.7" 73 | resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" 74 | integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== 75 | dependencies: 76 | "@babel/types" "^7.16.7" 77 | 78 | "@babel/helper-function-name@^7.16.7": 79 | version "7.16.7" 80 | resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" 81 | integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== 82 | dependencies: 83 | "@babel/helper-get-function-arity" "^7.16.7" 84 | "@babel/template" "^7.16.7" 85 | "@babel/types" "^7.16.7" 86 | 87 | "@babel/helper-get-function-arity@^7.16.7": 88 | version "7.16.7" 89 | resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" 90 | integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== 91 | dependencies: 92 | "@babel/types" "^7.16.7" 93 | 94 | "@babel/helper-hoist-variables@^7.16.7": 95 | version "7.16.7" 96 | resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" 97 | integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== 98 | dependencies: 99 | "@babel/types" "^7.16.7" 100 | 101 | "@babel/helper-module-imports@^7.16.7": 102 | version "7.16.7" 103 | resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" 104 | integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== 105 | dependencies: 106 | "@babel/types" "^7.16.7" 107 | 108 | "@babel/helper-module-transforms@^7.17.7": 109 | version "7.17.7" 110 | resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" 111 | integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== 112 | dependencies: 113 | "@babel/helper-environment-visitor" "^7.16.7" 114 | "@babel/helper-module-imports" "^7.16.7" 115 | "@babel/helper-simple-access" "^7.17.7" 116 | "@babel/helper-split-export-declaration" "^7.16.7" 117 | "@babel/helper-validator-identifier" "^7.16.7" 118 | "@babel/template" "^7.16.7" 119 | "@babel/traverse" "^7.17.3" 120 | "@babel/types" "^7.17.0" 121 | 122 | "@babel/helper-plugin-utils@^7.16.7": 123 | version "7.16.7" 124 | resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" 125 | integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== 126 | 127 | "@babel/helper-simple-access@^7.17.7": 128 | version "7.17.7" 129 | resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" 130 | integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== 131 | dependencies: 132 | "@babel/types" "^7.17.0" 133 | 134 | "@babel/helper-split-export-declaration@^7.16.7": 135 | version "7.16.7" 136 | resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" 137 | integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== 138 | dependencies: 139 | "@babel/types" "^7.16.7" 140 | 141 | "@babel/helper-validator-identifier@^7.16.7": 142 | version "7.16.7" 143 | resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" 144 | integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== 145 | 146 | "@babel/helper-validator-option@^7.16.7": 147 | version "7.16.7" 148 | resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" 149 | integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== 150 | 151 | "@babel/helpers@^7.17.8": 152 | version "7.17.8" 153 | resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz#288450be8c6ac7e4e44df37bcc53d345e07bc106" 154 | integrity sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw== 155 | dependencies: 156 | "@babel/template" "^7.16.7" 157 | "@babel/traverse" "^7.17.3" 158 | "@babel/types" "^7.17.0" 159 | 160 | "@babel/highlight@^7.16.7": 161 | version "7.16.10" 162 | resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" 163 | integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== 164 | dependencies: 165 | "@babel/helper-validator-identifier" "^7.16.7" 166 | chalk "^2.0.0" 167 | js-tokens "^4.0.0" 168 | 169 | "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8": 170 | version "7.17.8" 171 | resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" 172 | integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== 173 | 174 | "@babel/plugin-syntax-jsx@^7.16.7": 175 | version "7.16.7" 176 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" 177 | integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== 178 | dependencies: 179 | "@babel/helper-plugin-utils" "^7.16.7" 180 | 181 | "@babel/plugin-transform-react-jsx-development@^7.16.7": 182 | version "7.16.7" 183 | resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8" 184 | integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== 185 | dependencies: 186 | "@babel/plugin-transform-react-jsx" "^7.16.7" 187 | 188 | "@babel/plugin-transform-react-jsx-self@^7.16.7": 189 | version "7.16.7" 190 | resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.16.7.tgz#f432ad0cba14c4a1faf44f0076c69e42a4d4479e" 191 | integrity sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA== 192 | dependencies: 193 | "@babel/helper-plugin-utils" "^7.16.7" 194 | 195 | "@babel/plugin-transform-react-jsx-source@^7.16.7": 196 | version "7.16.7" 197 | resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz#1879c3f23629d287cc6186a6c683154509ec70c0" 198 | integrity sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw== 199 | dependencies: 200 | "@babel/helper-plugin-utils" "^7.16.7" 201 | 202 | "@babel/plugin-transform-react-jsx@^7.16.7", "@babel/plugin-transform-react-jsx@^7.17.3": 203 | version "7.17.3" 204 | resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz#eac1565da176ccb1a715dae0b4609858808008c1" 205 | integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ== 206 | dependencies: 207 | "@babel/helper-annotate-as-pure" "^7.16.7" 208 | "@babel/helper-module-imports" "^7.16.7" 209 | "@babel/helper-plugin-utils" "^7.16.7" 210 | "@babel/plugin-syntax-jsx" "^7.16.7" 211 | "@babel/types" "^7.17.0" 212 | 213 | "@babel/runtime@^7.7.6": 214 | version "7.17.8" 215 | resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz#3e56e4aff81befa55ac3ac6a0967349fd1c5bca2" 216 | integrity sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA== 217 | dependencies: 218 | regenerator-runtime "^0.13.4" 219 | 220 | "@babel/template@^7.16.7": 221 | version "7.16.7" 222 | resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" 223 | integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== 224 | dependencies: 225 | "@babel/code-frame" "^7.16.7" 226 | "@babel/parser" "^7.16.7" 227 | "@babel/types" "^7.16.7" 228 | 229 | "@babel/traverse@^7.17.3": 230 | version "7.17.3" 231 | resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" 232 | integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== 233 | dependencies: 234 | "@babel/code-frame" "^7.16.7" 235 | "@babel/generator" "^7.17.3" 236 | "@babel/helper-environment-visitor" "^7.16.7" 237 | "@babel/helper-function-name" "^7.16.7" 238 | "@babel/helper-hoist-variables" "^7.16.7" 239 | "@babel/helper-split-export-declaration" "^7.16.7" 240 | "@babel/parser" "^7.17.3" 241 | "@babel/types" "^7.17.0" 242 | debug "^4.1.0" 243 | globals "^11.1.0" 244 | 245 | "@babel/types@^7.16.7", "@babel/types@^7.17.0": 246 | version "7.17.0" 247 | resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" 248 | integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== 249 | dependencies: 250 | "@babel/helper-validator-identifier" "^7.16.7" 251 | to-fast-properties "^2.0.0" 252 | 253 | "@banyinbanying/multiple-citys-react@^2.1.9": 254 | version "2.1.9" 255 | resolved "https://registry.npmjs.org/@banyinbanying/multiple-citys-react/-/multiple-citys-react-2.1.9.tgz#e053c5f1573d582cd28c5957dfe1ee652c44760f" 256 | integrity sha512-v24d7Vo1ZooxyrxZz+E6oDbfJCHNIpFwEqCWhAigZgJRqR3EdMUI5AWM1LxLyh6fpdLKhda0B1FsAsLlOQRq8g== 257 | 258 | "@jridgewell/resolve-uri@^3.0.3": 259 | version "3.0.5" 260 | resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" 261 | integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== 262 | 263 | "@jridgewell/sourcemap-codec@^1.4.10": 264 | version "1.4.11" 265 | resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" 266 | integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== 267 | 268 | "@jridgewell/trace-mapping@^0.3.0": 269 | version "0.3.4" 270 | resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" 271 | integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== 272 | dependencies: 273 | "@jridgewell/resolve-uri" "^3.0.3" 274 | "@jridgewell/sourcemap-codec" "^1.4.10" 275 | 276 | "@rollup/plugin-replace@^2.2.1": 277 | version "2.4.2" 278 | resolved "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" 279 | integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== 280 | dependencies: 281 | "@rollup/pluginutils" "^3.1.0" 282 | magic-string "^0.25.7" 283 | 284 | "@rollup/pluginutils@^3.1.0": 285 | version "3.1.0" 286 | resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" 287 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 288 | dependencies: 289 | "@types/estree" "0.0.39" 290 | estree-walker "^1.0.1" 291 | picomatch "^2.2.2" 292 | 293 | "@rollup/pluginutils@^4.2.0": 294 | version "4.2.0" 295 | resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.0.tgz#a14bbd058fdbba0a5647143b16ed0d86fb60bd08" 296 | integrity sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA== 297 | dependencies: 298 | estree-walker "^2.0.1" 299 | picomatch "^2.2.2" 300 | 301 | "@types/estree@0.0.39": 302 | version "0.0.39" 303 | resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 304 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 305 | 306 | "@types/node@14.x": 307 | version "14.18.12" 308 | resolved "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz#0d4557fd3b94497d793efd4e7d92df2f83b4ef24" 309 | integrity sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A== 310 | 311 | "@types/prop-types@*": 312 | version "15.7.4" 313 | resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" 314 | integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== 315 | 316 | "@types/react-dom@^17.0.9": 317 | version "17.0.14" 318 | resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.14.tgz#c8f917156b652ddf807711f5becbd2ab018dea9f" 319 | integrity sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ== 320 | dependencies: 321 | "@types/react" "*" 322 | 323 | "@types/react@*", "@types/react@^17.0.19": 324 | version "17.0.43" 325 | resolved "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz#4adc142887dd4a2601ce730bc56c3436fdb07a55" 326 | integrity sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A== 327 | dependencies: 328 | "@types/prop-types" "*" 329 | "@types/scheduler" "*" 330 | csstype "^3.0.2" 331 | 332 | "@types/scheduler@*": 333 | version "0.16.2" 334 | resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" 335 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== 336 | 337 | "@vitejs/plugin-react@^1.0.1": 338 | version "1.3.0" 339 | resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.3.0.tgz#efd4b4383edc12780cd8d230c2daa9d266690bb9" 340 | integrity sha512-H+yIupjUE4a+E4oeWUv4xUJIMR0DWBIMUG/DYgvj0J9Vu1rdHAlJ5JdbI+N1KDUD7Ee2fZ1DMPZ/NBg6mXtoCw== 341 | dependencies: 342 | "@babel/core" "^7.17.8" 343 | "@babel/plugin-transform-react-jsx" "^7.17.3" 344 | "@babel/plugin-transform-react-jsx-development" "^7.16.7" 345 | "@babel/plugin-transform-react-jsx-self" "^7.16.7" 346 | "@babel/plugin-transform-react-jsx-source" "^7.16.7" 347 | "@rollup/pluginutils" "^4.2.0" 348 | react-refresh "^0.11.0" 349 | resolve "^1.22.0" 350 | 351 | ansi-styles@^3.2.1: 352 | version "3.2.1" 353 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 354 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 355 | dependencies: 356 | color-convert "^1.9.0" 357 | 358 | browserslist@^4.17.5: 359 | version "4.20.2" 360 | resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" 361 | integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== 362 | dependencies: 363 | caniuse-lite "^1.0.30001317" 364 | electron-to-chromium "^1.4.84" 365 | escalade "^3.1.1" 366 | node-releases "^2.0.2" 367 | picocolors "^1.0.0" 368 | 369 | caniuse-lite@^1.0.30001317: 370 | version "1.0.30001325" 371 | resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001325.tgz#2b4ad19b77aa36f61f2eaf72e636d7481d55e606" 372 | integrity sha512-sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ== 373 | 374 | chalk@^2.0.0: 375 | version "2.4.2" 376 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 377 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 378 | dependencies: 379 | ansi-styles "^3.2.1" 380 | escape-string-regexp "^1.0.5" 381 | supports-color "^5.3.0" 382 | 383 | color-convert@^1.9.0: 384 | version "1.9.3" 385 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 386 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 387 | dependencies: 388 | color-name "1.1.3" 389 | 390 | color-name@1.1.3: 391 | version "1.1.3" 392 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 393 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 394 | 395 | convert-source-map@^1.7.0: 396 | version "1.8.0" 397 | resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" 398 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== 399 | dependencies: 400 | safe-buffer "~5.1.1" 401 | 402 | csstype@^3.0.2: 403 | version "3.0.11" 404 | resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33" 405 | integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw== 406 | 407 | debug@^4.1.0: 408 | version "4.3.4" 409 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 410 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 411 | dependencies: 412 | ms "2.1.2" 413 | 414 | electron-to-chromium@^1.4.84: 415 | version "1.4.103" 416 | resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz#abfe376a4d70fa1e1b4b353b95df5d6dfd05da3a" 417 | integrity sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg== 418 | 419 | esbuild-android-64@0.14.31: 420 | version "0.14.31" 421 | resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.31.tgz#4b7dfbbeee62b3495ba78220b85fb590eb68d5bf" 422 | integrity sha512-MYkuJ91w07nGmr4EouejOZK2j/f5TCnsKxY8vRr2+wpKKfHD1LTJK28VbZa+y1+AL7v1V9G98ezTUwsV3CmXNw== 423 | 424 | esbuild-android-arm64@0.14.31: 425 | version "0.14.31" 426 | resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.31.tgz#24c3d693924e044fb0d23206c3e627502b10b930" 427 | integrity sha512-0rkH/35s7ZVcsw6nS0IAkR0dekSbjZGWdlOAf3jV0lGoPqqw0x6/TmaV9w7DQgUERTH1ApmPlpAMU4kVkCq9Jg== 428 | 429 | esbuild-darwin-64@0.14.31: 430 | version "0.14.31" 431 | resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.31.tgz#285fbdb6dc74d4410f43dee59e6a14ebff82a9d7" 432 | integrity sha512-kP6xPZHxtJa36Hb0jC05L3VzQSZBW2f3bpnQS20czXTRGEmM2GDiYpGdI5g2QYaw6vC4PYXjnigq8usd9g9jnQ== 433 | 434 | esbuild-darwin-arm64@0.14.31: 435 | version "0.14.31" 436 | resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.31.tgz#b39c471a8134ce2c7811eb96fab9c500b256261c" 437 | integrity sha512-1ZMog4hkNsdBGtDDtsftUqX6S9N52gEx4vX5aVehsSptgoBFIar1XrPiBTQty7YNH+bJasTpSVaZQgElCVvPKQ== 438 | 439 | esbuild-freebsd-64@0.14.31: 440 | version "0.14.31" 441 | resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.31.tgz#7ca700ef60ae12154bae63094ad41b21c6ae1a23" 442 | integrity sha512-Zo0BYj7QpVFWoUpkv6Ng0RO2eJ4zk/WDaHMO88+jr5HuYmxsOre0imgwaZVPquTuJnCvL1G48BFucJ3tFflSeQ== 443 | 444 | esbuild-freebsd-arm64@0.14.31: 445 | version "0.14.31" 446 | resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.31.tgz#f793085c7184fcd08649b8d185edc5c2ce112e82" 447 | integrity sha512-t85bS6jbRpmdjr4pdr/FY/fpx8lo1vv9S7BAs2EsXKJQhRDMIiC3QW+k2acYJoRuqirlvJcJVFQGCq/PfyC1kA== 448 | 449 | esbuild-linux-32@0.14.31: 450 | version "0.14.31" 451 | resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.31.tgz#cac97ec7da6fbde0c21dbe08babd0d2a034f317d" 452 | integrity sha512-XYtOk/GodSkv+UOYVwryGpGPuFnszsMvRMKq6cIUfFfdssHuKDsU9IZveyCG44J106J39ABenQ5EetbYtVJHUw== 453 | 454 | esbuild-linux-64@0.14.31: 455 | version "0.14.31" 456 | resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.31.tgz#ec94cd5228e6777d2feb3c24a1fe1cbf8817d6da" 457 | integrity sha512-Zf9CZxAxaXWHLqCg/QZ/hs0RU0XV3IBxV+ENQzy00S4QOTnZAvSLgPciILHHrVJ0lPIlb4XzAqlLM5y6iI2LIw== 458 | 459 | esbuild-linux-arm64@0.14.31: 460 | version "0.14.31" 461 | resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.31.tgz#d119188fccd6384db5c703de24c46dacaee3e9e8" 462 | integrity sha512-V/H0tv+xpQ9IOHM+o85oCKNNidIEc5CcnDWl0V+hPd2F03dqdbFkWPBGphx8rD4JSQn6UefUQ1iH7y1qIzO8Fw== 463 | 464 | esbuild-linux-arm@0.14.31: 465 | version "0.14.31" 466 | resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.31.tgz#63e10846886901e5632a591d44160f95c5d12ba7" 467 | integrity sha512-RpiaeHPRlgCCDskxoyIsI49BhcDtZ4cl8+SLffizDm0yMNWP538SUg0ezQ2TTOPj3/svaGIbkRDwYtAon0Sjkg== 468 | 469 | esbuild-linux-mips64le@0.14.31: 470 | version "0.14.31" 471 | resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.31.tgz#1cd44f72cde6489a5d6deea7c54efa6f3d6590ee" 472 | integrity sha512-9/oBfAckInRuUg6AEgdCLLn6KJ6UOJDOLmUinTsReVSg6AfV6wxYQJq9iQM2idRogP7GUpomJ+bvCdWXpotQRQ== 473 | 474 | esbuild-linux-ppc64le@0.14.31: 475 | version "0.14.31" 476 | resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.31.tgz#3b5ccc05e5b8ef5c494f30a61fdd27811d2bbeeb" 477 | integrity sha512-NMcb14Pg+8q8raGkzor9/R3vQwKzgxE3694BtO2SDLBwJuL2C1dQ1ZtM1t7ZvArQBgT8RiZVxb0/3fD+qGNk7g== 478 | 479 | esbuild-linux-riscv64@0.14.31: 480 | version "0.14.31" 481 | resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.31.tgz#d74ca78c8ed1d9b40bc907a9e3ef6e83fc06189c" 482 | integrity sha512-l13yvmsVfawAnoYfcpuvml+nTlrOmtdceXYufSkXl2DOb0JKcuR6ARlAzuQCDcpo49SOJy1cCxpwlOIsUQBfzA== 483 | 484 | esbuild-linux-s390x@0.14.31: 485 | version "0.14.31" 486 | resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.31.tgz#1bd547b8b027e323b77a838d265cb56ece2543af" 487 | integrity sha512-GIwV9mY3koYja9MCSkKLk1P7rj+MkPV0UsGsZ575hEcIBrXeKN9jBi6X/bxDDPEN/SUAH35cJhBNrZU4x9lEfg== 488 | 489 | esbuild-netbsd-64@0.14.31: 490 | version "0.14.31" 491 | resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.31.tgz#964a45dbad4fac92aa0a15056e38a182735bd6c6" 492 | integrity sha512-bJ+pyLvKQm+Obp5k7/Wk8e9Gdkls56F1aiI3uptoIfOIUqsZImH7pDyTrSufwqsFp62kO9LRuwXnjDwQtPyhFQ== 493 | 494 | esbuild-openbsd-64@0.14.31: 495 | version "0.14.31" 496 | resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.31.tgz#7d2a1d46450321b0459263d3e7072e6d3924ce46" 497 | integrity sha512-NRAAPPca05H9j9Xab0kVXK0V6/pyZGGy8d2Y8KS0BMwWEydlD4KCJDmH8/7bWCKYLRGOOCE9/GPBJyPWHFW3sg== 498 | 499 | esbuild-sunos-64@0.14.31: 500 | version "0.14.31" 501 | resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.31.tgz#3b3e4363951cd1dda14a14fee6d94ca426108e0c" 502 | integrity sha512-9uA+V8w9Eehu4ldb95lPWdgCMcMO5HH6pXmfkk5usn3JsSZxKdLKsXB4hYgP80wscZvVYXJl2G+KNxsUTfPhZw== 503 | 504 | esbuild-windows-32@0.14.31: 505 | version "0.14.31" 506 | resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.31.tgz#997026a41c04535bfb7c014a0458940b49145820" 507 | integrity sha512-VGdncQTqoxD9q3v/dk0Yugbmx2FzOkcs0OemBYc1X9KXOLQYH0uQbLJIckZdZOC3J+JKSExbYFrzYCOwWPuNyA== 508 | 509 | esbuild-windows-64@0.14.31: 510 | version "0.14.31" 511 | resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.31.tgz#5d4b0ea686c9b60036303b3415c472f2761bdafc" 512 | integrity sha512-v/2ye5zBqpmCzi3bLCagStbNQlnOsY7WtMrD2Q0xZxeSIXONxji15KYtVee5o7nw4lXWbQSS1BL8G6BBMvtq4A== 513 | 514 | esbuild-windows-arm64@0.14.31: 515 | version "0.14.31" 516 | resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.31.tgz#4f3b9fc34c4a33abbd0171df6cbb657ccbdbfc67" 517 | integrity sha512-RXeU42FJoG1sriNHg73h4S+5B7L/gw+8T7U9u8IWqSSEbY6fZvBh4uofugiU1szUDqqP00GHwZ09WgYe3lGZiw== 518 | 519 | esbuild@^0.14.27: 520 | version "0.14.31" 521 | resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.31.tgz#f7d0db114edc615f66d84972ee9fbd2b267f4029" 522 | integrity sha512-QA0fUM13+JZzcvg1bdrhi7wo8Lr5IRHA9ypNn2znqxGqb66dSK6pAh01TjyBOhzZGazPQJZ1K26VrCAQJ715qA== 523 | optionalDependencies: 524 | esbuild-android-64 "0.14.31" 525 | esbuild-android-arm64 "0.14.31" 526 | esbuild-darwin-64 "0.14.31" 527 | esbuild-darwin-arm64 "0.14.31" 528 | esbuild-freebsd-64 "0.14.31" 529 | esbuild-freebsd-arm64 "0.14.31" 530 | esbuild-linux-32 "0.14.31" 531 | esbuild-linux-64 "0.14.31" 532 | esbuild-linux-arm "0.14.31" 533 | esbuild-linux-arm64 "0.14.31" 534 | esbuild-linux-mips64le "0.14.31" 535 | esbuild-linux-ppc64le "0.14.31" 536 | esbuild-linux-riscv64 "0.14.31" 537 | esbuild-linux-s390x "0.14.31" 538 | esbuild-netbsd-64 "0.14.31" 539 | esbuild-openbsd-64 "0.14.31" 540 | esbuild-sunos-64 "0.14.31" 541 | esbuild-windows-32 "0.14.31" 542 | esbuild-windows-64 "0.14.31" 543 | esbuild-windows-arm64 "0.14.31" 544 | 545 | escalade@^3.1.1: 546 | version "3.1.1" 547 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 548 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 549 | 550 | escape-string-regexp@^1.0.5: 551 | version "1.0.5" 552 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 553 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 554 | 555 | estree-walker@^1.0.1: 556 | version "1.0.1" 557 | resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" 558 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== 559 | 560 | estree-walker@^2.0.1: 561 | version "2.0.2" 562 | resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 563 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 564 | 565 | fsevents@~2.3.2: 566 | version "2.3.2" 567 | resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 568 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 569 | 570 | function-bind@^1.1.1: 571 | version "1.1.1" 572 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 573 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 574 | 575 | gensync@^1.0.0-beta.2: 576 | version "1.0.0-beta.2" 577 | resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 578 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 579 | 580 | globals@^11.1.0: 581 | version "11.12.0" 582 | resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 583 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 584 | 585 | has-flag@^3.0.0: 586 | version "3.0.0" 587 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 588 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 589 | 590 | has@^1.0.3: 591 | version "1.0.3" 592 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 593 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 594 | dependencies: 595 | function-bind "^1.1.1" 596 | 597 | history@^5.2.0: 598 | version "5.3.0" 599 | resolved "https://registry.npmjs.org/history/-/history-5.3.0.tgz#1548abaa245ba47992f063a0783db91ef201c73b" 600 | integrity sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ== 601 | dependencies: 602 | "@babel/runtime" "^7.7.6" 603 | 604 | is-core-module@^2.8.1: 605 | version "2.8.1" 606 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" 607 | integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== 608 | dependencies: 609 | has "^1.0.3" 610 | 611 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 612 | version "4.0.0" 613 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 614 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 615 | 616 | jsesc@^2.5.1: 617 | version "2.5.2" 618 | resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 619 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 620 | 621 | json5@^2.1.2: 622 | version "2.2.1" 623 | resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" 624 | integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== 625 | 626 | loose-envify@^1.1.0: 627 | version "1.4.0" 628 | resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 629 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 630 | dependencies: 631 | js-tokens "^3.0.0 || ^4.0.0" 632 | 633 | magic-string@^0.25.7: 634 | version "0.25.9" 635 | resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" 636 | integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== 637 | dependencies: 638 | sourcemap-codec "^1.4.8" 639 | 640 | ms@2.1.2: 641 | version "2.1.2" 642 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 643 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 644 | 645 | nanoid@^3.3.1: 646 | version "3.3.2" 647 | resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557" 648 | integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA== 649 | 650 | node-releases@^2.0.2: 651 | version "2.0.2" 652 | resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" 653 | integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== 654 | 655 | object-assign@^4.1.1: 656 | version "4.1.1" 657 | resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 658 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 659 | 660 | path-parse@^1.0.7: 661 | version "1.0.7" 662 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 663 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 664 | 665 | picocolors@^1.0.0: 666 | version "1.0.0" 667 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 668 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 669 | 670 | picomatch@^2.2.2: 671 | version "2.3.1" 672 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 673 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 674 | 675 | postcss@^8.4.12: 676 | version "8.4.12" 677 | resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905" 678 | integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg== 679 | dependencies: 680 | nanoid "^3.3.1" 681 | picocolors "^1.0.0" 682 | source-map-js "^1.0.2" 683 | 684 | react-dom@^17.0.2: 685 | version "17.0.2" 686 | resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" 687 | integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== 688 | dependencies: 689 | loose-envify "^1.1.0" 690 | object-assign "^4.1.1" 691 | scheduler "^0.20.2" 692 | 693 | react-refresh@^0.11.0: 694 | version "0.11.0" 695 | resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" 696 | integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== 697 | 698 | react-router-dom@6.2.2: 699 | version "6.2.2" 700 | resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.2.2.tgz#f1a2c88365593c76b9612ae80154a13fcb72e442" 701 | integrity sha512-AtYEsAST7bDD4dLSQHDnk/qxWLJdad5t1HFa1qJyUrCeGgEuCSw0VB/27ARbF9Fi/W5598ujvJOm3ujUCVzuYQ== 702 | dependencies: 703 | history "^5.2.0" 704 | react-router "6.2.2" 705 | 706 | react-router@6.2.2: 707 | version "6.2.2" 708 | resolved "https://registry.npmjs.org/react-router/-/react-router-6.2.2.tgz#495e683a0c04461eeb3d705fe445d6cf42f0c249" 709 | integrity sha512-/MbxyLzd7Q7amp4gDOGaYvXwhEojkJD5BtExkuKmj39VEE0m3l/zipf6h2WIB2jyAO0lI6NGETh4RDcktRm4AQ== 710 | dependencies: 711 | history "^5.2.0" 712 | 713 | react@^17.0.2: 714 | version "17.0.2" 715 | resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" 716 | integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== 717 | dependencies: 718 | loose-envify "^1.1.0" 719 | object-assign "^4.1.1" 720 | 721 | regenerator-runtime@^0.13.4: 722 | version "0.13.9" 723 | resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" 724 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== 725 | 726 | resolve@^1.22.0: 727 | version "1.22.0" 728 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" 729 | integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== 730 | dependencies: 731 | is-core-module "^2.8.1" 732 | path-parse "^1.0.7" 733 | supports-preserve-symlinks-flag "^1.0.0" 734 | 735 | rollup@^2.59.0: 736 | version "2.70.1" 737 | resolved "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz#824b1f1f879ea396db30b0fc3ae8d2fead93523e" 738 | integrity sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA== 739 | optionalDependencies: 740 | fsevents "~2.3.2" 741 | 742 | safe-buffer@~5.1.1: 743 | version "5.1.2" 744 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 745 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 746 | 747 | scheduler@^0.20.2: 748 | version "0.20.2" 749 | resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" 750 | integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== 751 | dependencies: 752 | loose-envify "^1.1.0" 753 | object-assign "^4.1.1" 754 | 755 | semver@^6.3.0: 756 | version "6.3.0" 757 | resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 758 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 759 | 760 | source-map-js@^1.0.2: 761 | version "1.0.2" 762 | resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 763 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 764 | 765 | source-map@^0.5.0: 766 | version "0.5.7" 767 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 768 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 769 | 770 | sourcemap-codec@^1.4.8: 771 | version "1.4.8" 772 | resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 773 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 774 | 775 | supports-color@^5.3.0: 776 | version "5.5.0" 777 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 778 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 779 | dependencies: 780 | has-flag "^3.0.0" 781 | 782 | supports-preserve-symlinks-flag@^1.0.0: 783 | version "1.0.0" 784 | resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 785 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 786 | 787 | to-fast-properties@^2.0.0: 788 | version "2.0.0" 789 | resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 790 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 791 | 792 | typescript@^4.3.5: 793 | version "4.6.3" 794 | resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" 795 | integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== 796 | 797 | vite@^2.5.0: 798 | version "2.9.1" 799 | resolved "https://registry.npmjs.org/vite/-/vite-2.9.1.tgz#84bce95fae210a7beb566a0af06246748066b48f" 800 | integrity sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ== 801 | dependencies: 802 | esbuild "^0.14.27" 803 | postcss "^8.4.12" 804 | resolve "^1.22.0" 805 | rollup "^2.59.0" 806 | optionalDependencies: 807 | fsevents "~2.3.2" 808 | -------------------------------------------------------------------------------- /lib/multiple-citys.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var React = require('react'); 4 | 5 | function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } 6 | 7 | var React__default = /*#__PURE__*/_interopDefaultLegacy(React); 8 | 9 | /*! ***************************************************************************** 10 | Copyright (c) Microsoft Corporation. 11 | 12 | Permission to use, copy, modify, and/or distribute this software for any 13 | purpose with or without fee is hereby granted. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 16 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 17 | AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 18 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 19 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 20 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 21 | PERFORMANCE OF THIS SOFTWARE. 22 | ***************************************************************************** */ 23 | 24 | var __assign = function() { 25 | __assign = Object.assign || function __assign(t) { 26 | for (var s, i = 1, n = arguments.length; i < n; i++) { 27 | s = arguments[i]; 28 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; 29 | } 30 | return t; 31 | }; 32 | return __assign.apply(this, arguments); 33 | }; 34 | 35 | var img$4 = "data:image/png;base64,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"; 36 | 37 | var img$3 = "data:image/png;base64,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"; 38 | 39 | var img$2 = "data:image/png;base64,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"; 40 | 41 | var img$1 = "data:image/png;base64,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"; 42 | 43 | function styleInject(css, ref) { 44 | if (ref === void 0) ref = {}; 45 | var insertAt = ref.insertAt; 46 | 47 | if (!css || typeof document === 'undefined') { 48 | return; 49 | } 50 | 51 | var head = document.head || document.getElementsByTagName('head')[0]; 52 | var style = document.createElement('style'); 53 | style.type = 'text/css'; 54 | 55 | if (insertAt === 'top') { 56 | if (head.firstChild) { 57 | head.insertBefore(style, head.firstChild); 58 | } else { 59 | head.appendChild(style); 60 | } 61 | } else { 62 | head.appendChild(style); 63 | } 64 | 65 | if (style.styleSheet) { 66 | style.styleSheet.cssText = css; 67 | } else { 68 | style.appendChild(document.createTextNode(css)); 69 | } 70 | } 71 | 72 | var css_248z$2 = ".pop{background-color:#fff;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px #00000014,0 9px 28px 8px #0000000d;height:326px;left:0;padding-top:6px;position:absolute;z-index:1}.pop-fixed{bottom:0;left:0;position:fixed;right:0;top:0}.pop-content{column-gap:0;columns:var(--column);height:100%;overflow:hidden;position:relative;z-index:2}.pop-scroll{height:100%;overflow-y:scroll;width:150px}.pop-scroll .flex{align-items:center;display:flex;flex:1}.pop-scroll .line-1{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:50px}.pop-scroll-item{align-items:center;display:flex;padding:5px 15px}.pop-scroll-item-box{height:20px;margin-right:10px;width:20px}.pop-scroll-item-title{cursor:pointer}.pop-scroll-item-more{height:14px;transform:rotate(270deg);width:14px}.pop-scroll+.pop-scroll{border-left:thin solid #f1f1f1}"; 73 | styleInject(css_248z$2); 74 | 75 | var MultipleCitysReactPop = function (_a) { 76 | var _b = _a.data, data = _b === void 0 ? [] : _b, _c = _a.checkList, checkList = _c === void 0 ? [] : _c, _d = _a.visible, visible = _d === void 0 ? false : _d, top = _a.top, _e = _a.checkBoxIconActived, checkBoxIconActived = _e === void 0 ? img$4 : _e, _f = _a.checkBoxIcon, checkBoxIcon = _f === void 0 ? img$3 : _f, _g = _a.checkBoxIconPart, checkBoxIconPart = _g === void 0 ? img$2 : _g, _h = _a.color, color = _h === void 0 ? "#232323" : _h, loadNextLevelData = _a.loadNextLevelData, onClose = _a.onClose, onChange = _a.onChange; 77 | var _j = React.useState(false), temp = _j[0], setTemp = _j[1]; 78 | var _k = React.useState({ 79 | firstId: 0, 80 | first: "", 81 | }), levelInfo = _k[0], setLevelInfo = _k[1]; 82 | var _l = React.useState({ secondList: [], thirdList: [] }), listInfo = _l[0], setListInfo = _l[1]; 83 | var _m = React.useState({ 84 | lay: 1, 85 | id: 0, 86 | }), currentInfo = _m[0], setCurrentInfo = _m[1]; 87 | var _o = React.useState([]), selectIdList = _o[0], setSelectIdList = _o[1]; 88 | var _p = React.useState([]), someSelectIdList = _p[0], setSomeSelectIdList = _p[1]; 89 | var style = React.useMemo(function () { 90 | return { 91 | color: color, 92 | top: top ? "-336px" : "auto", 93 | }; 94 | }, [color, top]); 95 | React.useEffect(function () { 96 | if (!visible) 97 | setTimeout(function () { return setTemp(false); }, 500); 98 | }, [visible]); 99 | React.useEffect(function () { 100 | if (!visible) 101 | return; 102 | var treeEle = document.getElementById("treeBadgeWrapper"); 103 | var popEle = document.getElementById("treePop"); 104 | var offsetTop = treeEle.offsetTop, offsetHeight = treeEle.offsetHeight; 105 | popEle.style.setProperty("--top", "".concat(offsetTop + offsetHeight + 10, "px")); 106 | setTemp(true); 107 | }, [visible]); 108 | React.useEffect(function () { 109 | var aotherList = []; 110 | var selfList = []; 111 | switch (currentInfo.lay) { 112 | case 1: 113 | aotherList = checkList.filter(function (item) { return item.firstId !== currentInfo.id; }); 114 | selfList = checkList.filter(function (item) { 115 | return item.firstId === currentInfo.id && !item.secondId && !item.thirdId; 116 | }); 117 | break; 118 | case 2: 119 | aotherList = checkList.filter(function (item) { return item.secondId !== currentInfo.id; }); 120 | selfList = checkList.filter(function (item) { 121 | return item.secondId === currentInfo.id && !item.thirdId; 122 | }); 123 | break; 124 | case 3: 125 | aotherList = checkList.filter(function (item) { return item.thirdId !== currentInfo.id; }); 126 | selfList = checkList.filter(function (item) { return item.thirdId === currentInfo.id; }); 127 | break; 128 | } 129 | var result = aotherList.concat(selfList); 130 | var selects = result.map(function (item) { 131 | switch (true) { 132 | case !!item.thirdId: 133 | return item.thirdId; 134 | case !!item.secondId: 135 | return item.secondId; 136 | default: 137 | return item.firstId; 138 | } 139 | }); 140 | var aothers = []; 141 | result.forEach(function (item) { 142 | if (!selects.includes(item.firstId)) { 143 | aothers.push(item.firstId); 144 | } 145 | if (!selects.includes(item.secondId)) { 146 | aothers.push(item.secondId); 147 | } 148 | if (!selects.includes(item.thirdId)) { 149 | aothers.push(item.thirdId); 150 | } 151 | }); 152 | setSelectIdList(selects); 153 | setSomeSelectIdList(aothers); 154 | }, [currentInfo, checkList]); 155 | var popMoreCheck = React.useCallback(function (type, scope) { return function () { 156 | var list = []; 157 | var firstCheckItem; 158 | var level; 159 | switch (scope.lay) { 160 | case 1: 161 | list = [scope]; 162 | level = { 163 | firstId: scope.value, 164 | first: scope.label, 165 | secondId: "", 166 | second: "", 167 | thirdId: "", 168 | third: "", 169 | }; 170 | break; 171 | case 2: 172 | firstCheckItem = data.find(function (item) { return item.value === levelInfo.firstId; }); 173 | list = [firstCheckItem, scope]; 174 | level = { 175 | firstId: levelInfo.firstId, 176 | first: levelInfo.first, 177 | secondId: scope.value, 178 | second: scope.label, 179 | thirdId: "", 180 | third: "", 181 | }; 182 | break; 183 | case 3: 184 | level = { 185 | firstId: levelInfo.firstId, 186 | first: levelInfo.first, 187 | secondId: levelInfo.secondId, 188 | second: levelInfo.second, 189 | thirdId: scope.value, 190 | third: scope.label, 191 | }; 192 | break; 193 | } 194 | if (type === "check") { 195 | var checked = !checkList.some(function (item) { 196 | return (item.firstId === scope.value && !item.secondId && !item.thirdId) || 197 | (item.secondId === scope.value && !item.thirdId) || 198 | item.thirdId === scope.value; 199 | }); 200 | popCheck(scope, checked, level, scope.children); 201 | } 202 | else { 203 | !scope.isLeaf && 204 | loadNextLevelData(list, function (result) { 205 | if (scope.lay === 1) { 206 | setListInfo({ secondList: result, thirdList: [] }); 207 | } 208 | else { 209 | setListInfo(function (pre) { return (__assign(__assign({}, pre), { thirdList: result })); }); 210 | } 211 | }); 212 | !scope.isLeaf && changePopColumn(scope.lay + 1); 213 | } 214 | setLevelInfo(level); 215 | }; }, [levelInfo, checkList, data]); 216 | var popCheck = React.useCallback(function (scope, checked, level, children) { 217 | var tempList = checkList; 218 | var value = scope.value, lay = scope.lay; 219 | setCurrentInfo({ lay: lay, id: value }); 220 | switch (true) { 221 | case !checked && lay === 1: 222 | tempList = tempList.filter(function (item) { return item.firstId !== value; }); 223 | changePopColumn(1); 224 | break; 225 | case !checked && lay === 2: 226 | tempList = tempList.filter(function (item) { return item.secondId !== value; }); 227 | changePopColumn(2); 228 | break; 229 | case !checked && lay === 3: 230 | tempList = tempList.filter(function (item) { return item.thirdId !== value; }); 231 | break; 232 | case checked && lay === 1: 233 | tempList = tempList.filter(function (item) { 234 | return !(item.firstId === scope.value && item.secondId); 235 | }); 236 | tempList.push({ firstId: scope.value, first: scope.label }); 237 | setListInfo({ secondList: [], thirdList: [] }); 238 | changePopColumn(1); 239 | break; 240 | case checked && lay === 2: 241 | tempList = tempList.filter(function (item) { 242 | return !(item.firstId === level.firstId && !item.secondId); 243 | }); 244 | tempList = tempList.filter(function (item) { 245 | return !(item.secondId === scope.value && item.thirdId); 246 | }); 247 | tempList.push({ 248 | firstId: level.firstId, 249 | first: level.first, 250 | secondId: scope.value, 251 | second: scope.label, 252 | }); 253 | changePopColumn(2); 254 | break; 255 | case checked && lay === 3: 256 | tempList = tempList.filter(function (item) { 257 | return !(item.firstId === level.firstId && !item.secondId); 258 | }); 259 | tempList = tempList.filter(function (item) { 260 | return !(item.secondId === level.secondId && !item.thirdId); 261 | }); 262 | tempList = tempList.filter(function (item) { return !(item.thirdId === scope.value); }); 263 | tempList.push({ 264 | firstId: level.firstId, 265 | first: level.first, 266 | secondId: level.secondId, 267 | second: level.second, 268 | thirdId: scope.value, 269 | third: scope.label, 270 | }); 271 | changePopColumn(3); 272 | break; 273 | } 274 | onChange(tempList); 275 | }, [checkList]); 276 | var changePopColumn = React.useCallback(function (lay) { 277 | var popContentEle = document.getElementById("tree-pop-content"); 278 | popContentEle.style.setProperty("--column", "".concat(lay)); 279 | }, []); 280 | var popEvent = React.useCallback(function (event) { 281 | stopEvent(event); 282 | onClose(); 283 | }, []); 284 | var stopEvent = React.useCallback(function (event) { 285 | event.stopPropagation(); 286 | }, []); 287 | var imgUrlJump = React.useCallback(function (value) { 288 | if (selectIdList.includes(value)) { 289 | return checkBoxIconActived; 290 | } 291 | else if (someSelectIdList.includes(value)) { 292 | return checkBoxIconPart; 293 | } 294 | else { 295 | return checkBoxIcon; 296 | } 297 | }, [selectIdList, someSelectIdList]); 298 | return (React__default["default"].createElement(React__default["default"].Fragment, null, visible && (React__default["default"].createElement("div", { className: "pop pop-".concat(temp ? "in" : "out"), id: "treePop", style: style }, 299 | React__default["default"].createElement("div", { className: "pop-fixed", onClick: popEvent }), 300 | React__default["default"].createElement("div", { className: "pop-content", id: "tree-pop-content" }, 301 | React__default["default"].createElement("div", { className: "pop-scroll" }, data.map(function (item) { return (React__default["default"].createElement("div", { className: "pop-scroll-item", key: item.value }, 302 | React__default["default"].createElement("img", { className: "pop-scroll-item-box", onClick: popMoreCheck("check", item), src: imgUrlJump(item.value), alt: "" }), 303 | React__default["default"].createElement("div", { className: "flex", onClick: popMoreCheck("more", item) }, 304 | React__default["default"].createElement("div", { className: "pop-scroll-item-title flex webkit-box-wrap line-1" }, item.label), 305 | React__default["default"].createElement("img", { className: "pop-scroll-item-more", src: img$1, alt: "" })))); })), 306 | React__default["default"].createElement("div", { className: "pop-scroll" }, listInfo.secondList.map(function (item) { return (React__default["default"].createElement("div", { className: "pop-scroll-item", key: item.value }, 307 | React__default["default"].createElement("img", { className: "pop-scroll-item-box", onClick: popMoreCheck("check", item), src: imgUrlJump(item.value), alt: "" }), 308 | React__default["default"].createElement("div", { className: "flex", onClick: popMoreCheck("more", item) }, 309 | React__default["default"].createElement("div", { className: "pop-scroll-item-title flex webkit-box-wrap line-1" }, item.label), 310 | !item.isLeaf && (React__default["default"].createElement("img", { className: "pop-scroll-item-more", src: img$1, alt: "" }))))); })), 311 | React__default["default"].createElement("div", { className: "pop-scroll" }, listInfo.thirdList.map(function (item) { return (React__default["default"].createElement("div", { className: "pop-scroll-item", key: item.value }, 312 | React__default["default"].createElement("img", { className: "pop-scroll-item-box", onClick: popMoreCheck("check", item), src: imgUrlJump(item.value), alt: "" }), 313 | React__default["default"].createElement("div", { className: "pop-scroll-item-title flex webkit-box-wrap line-1", onClick: popMoreCheck("more", item) }, item.label))); }))))))); 314 | }; 315 | 316 | var img = "data:image/png;base64,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"; 317 | 318 | var css_248z$1 = ".badge{display:flex;flex-wrap:wrap;padding:5px 0}.badge-item-wrapper{color:#fff;cursor:pointer;font-size:15px;line-height:26px;position:relative}.badge-item{display:inline-block;margin:2px 10px 2px 0;padding:0 10px}.badge-item-primary{background-color:#e6f7ff;border:thin solid #e6f7ff;color:#1890ff}.badge-item-danger{background-color:#eebdbe;border:thin solid #eeaeaf;color:#bc1414}.badge-item-default{background-color:#f5f5f5;border:thin solid #ccc;color:#333}.badge-item-close{display:none;height:20px;position:absolute;right:5px;top:-5px;width:20px}.badge-item-wrapper:hover>.badge-item-close{display:block}"; 319 | styleInject(css_248z$1); 320 | 321 | var Badge = function (_a) { 322 | var list = _a.list, _b = _a.edit, edit = _b === void 0 ? true : _b, _c = _a.badgeStyle, badgeStyle = _c === void 0 ? "default" : _c, onClose = _a.onClose; 323 | var stopEvent = React.useCallback(function (event) { 324 | event.stopPropagation(); 325 | }, []); 326 | return (React__default["default"].createElement("div", { className: "badge" }, list.map(function (item, index) { return (React__default["default"].createElement("div", { className: "badge-item-wrapper", key: index, onClick: stopEvent }, 327 | React__default["default"].createElement("span", { className: ["badge-item ", "badge-item-" + badgeStyle].join("") }, "\n ".concat(item.first).concat(item.secondId ? "-".concat(item.second) : "").concat(item.thirdId ? "-".concat(item.third) : "", "\n ")), 328 | edit && (React__default["default"].createElement("img", { className: "badge-item-close", src: img, alt: "", onClick: function () { return onClose(index); } })))); }))); 329 | }; 330 | 331 | var css_248z = ".multiple-citys-react{position:relative}.multiple-citys-react-badge-wrapper{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;display:inline-block;font-size:14px;line-height:40px;padding:0 10px;position:relative}.multiple-citys-react-badge-show-placeholder{color:#ccc;display:inline-block;width:200px}"; 332 | styleInject(css_248z); 333 | 334 | var MultipleCitysReact = function (props) { 335 | var top = props.top, _a = props.data, data = _a === void 0 ? [] : _a, _b = props.checkList, checkList = _b === void 0 ? [] : _b, _c = props.edit, edit = _c === void 0 ? true : _c, _d = props.placeholder, placeholder = _d === void 0 ? "" : _d, _e = props.badgesWidth, badgesWidth = _e === void 0 ? 500 : _e, checkBoxIcon = props.checkBoxIcon, checkBoxIconActived = props.checkBoxIconActived, checkBoxIconPart = props.checkBoxIconPart, color = props.color, badgeStyle = props.badgeStyle, loadNextLevelData = props.loadNextLevelData, onChange = props.onChange; 336 | var _f = React.useState(false), visible = _f[0], setVisible = _f[1]; 337 | var treeClick = React.useCallback(function (type) { return function () { 338 | if (!edit) 339 | return; 340 | setVisible(type === "close" ? false : true); 341 | }; }, [edit]); 342 | var style = React.useMemo(function () { 343 | return { 344 | width: badgesWidth + "px", 345 | }; 346 | }, [badgesWidth]); 347 | var TreeChange = React.useCallback(function (list) { 348 | onChange(list); 349 | }, []); 350 | var checkDelete = React.useCallback(function (value) { 351 | var list = checkList.filter(function (item, index) { return index !== value; }); 352 | onChange(list); 353 | }, [checkList]); 354 | return (React__default["default"].createElement("div", { className: "multiple-citys-react" }, 355 | React__default["default"].createElement("div", { className: "multiple-citys-react-badge-wrapper", id: "treeBadgeWrapper", onClick: treeClick("open"), style: style }, checkList.length > 0 ? (React__default["default"].createElement(Badge, { list: checkList, edit: edit, badgeStyle: badgeStyle, onClose: checkDelete })) : (React__default["default"].createElement("span", { className: "multiple-citys-react-badge-show-placeholder" }, placeholder))), 356 | React__default["default"].createElement(MultipleCitysReactPop, { data: data, visible: visible, checkList: checkList, top: top, checkBoxIconActived: checkBoxIconActived, checkBoxIcon: checkBoxIcon, checkBoxIconPart: checkBoxIconPart, color: color, loadNextLevelData: loadNextLevelData, onClose: treeClick("close"), onChange: TreeChange }))); 357 | }; 358 | 359 | module.exports = MultipleCitysReact; 360 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@banyinbanying/multiple-citys-react", 3 | "version": "2.2.0", 4 | "license": "ISC", 5 | "main": "lib/multiple-citys.js", 6 | "private": false, 7 | "keywords": [ 8 | "multiple-citys-react" 9 | ], 10 | "descrption": "multiple-citys-choose", 11 | "scripts": { 12 | "build": "yarn run rollup -c" 13 | }, 14 | "repository": { 15 | "url": "zhaochengxian/multiple-citys-react", 16 | "directory": "packages/image" 17 | }, 18 | "author": "zhaochengxian", 19 | "homepage": "https://github.com/zhaochengxian/multiple-citys-react", 20 | "types": "lib/index.d.ts", 21 | "devDependencies": { 22 | "@babel/core": "^7.17.8", 23 | "@babel/preset-env": "^7.16.11", 24 | "@babel/preset-react": "^7.16.7", 25 | "@emotion/babel-preset-css-prop": "^11.2.0", 26 | "@rollup/plugin-image": "^2.1.1", 27 | "@types/node": "^17.0.23", 28 | "@types/react": "^17.0.43", 29 | "@types/react-dom": "^17.0.14", 30 | "node-sass": "^7.0.1", 31 | "postcss": "^8.4.12", 32 | "postcss-cli": "^9.1.0", 33 | "rollup": "^2.70.1", 34 | "rollup-plugin-babel": "^4.4.0", 35 | "rollup-plugin-postcss": "^4.0.2", 36 | "rollup-plugin-typescript2": "^0.31.2", 37 | "typescript": "^4.6.3" 38 | } 39 | } -------------------------------------------------------------------------------- /packages/images.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.svg'; 2 | declare module '*.png'; -------------------------------------------------------------------------------- /packages/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "@banyinbanying/multiple-citys-react" 2 | -------------------------------------------------------------------------------- /packages/index.tsx: -------------------------------------------------------------------------------- 1 | import MultipleCitysReact from "./multipleCitysReact"; 2 | 3 | export default MultipleCitysReact; 4 | -------------------------------------------------------------------------------- /packages/multipleCitysReact/components/badge/index.scss: -------------------------------------------------------------------------------- 1 | .badge { 2 | padding: 5px 0; 3 | flex-wrap: wrap; 4 | display: flex; 5 | &-item-wrapper { 6 | position: relative; 7 | cursor: pointer; 8 | font-size: 15px; 9 | line-height: 26px; 10 | color: white; 11 | } 12 | &-item { 13 | display: inline-block; 14 | margin: 2px 10px 2px 0; 15 | padding: 0 10px; 16 | 17 | &-primary { 18 | color: #1890ff; 19 | border: solid thin #e6f7ff; 20 | background-color: #e6f7ff; 21 | } 22 | &-danger { 23 | color: #bc1414; 24 | border: solid thin #eeaeaf; 25 | background-color: #eebdbe; 26 | } 27 | &-default { 28 | color: #333; 29 | border: solid thin #ccc; 30 | background-color: #f5f5f5; 31 | } 32 | &-close { 33 | display: none; 34 | position: absolute; 35 | width: 20px; 36 | height: 20px; 37 | top: -5px; 38 | right: 5px; 39 | } 40 | } 41 | &-item-wrapper:hover > &-item-close { 42 | display: block; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /packages/multipleCitysReact/components/badge/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { useCallback } from "react"; 2 | 3 | import { MultipleItem } from "../../model"; 4 | import { BadgeStyle } from "../../model/badge"; 5 | 6 | import TREE_CLOSE from "../../images/closeBadge.png"; 7 | import "./index.scss"; 8 | 9 | const Badge = ({ 10 | list, 11 | edit = true, 12 | badgeStyle = "default", 13 | onClose, 14 | }: { 15 | list: MultipleItem[]; 16 | edit?: boolean; 17 | badgeStyle: BadgeStyle; 18 | onClose: (value: number) => void; 19 | }) => { 20 | const stopEvent = useCallback((event: any) => { 21 | event.stopPropagation(); 22 | }, []); 23 | 24 | return ( 25 |
26 | {list.map((item: MultipleItem, index: number) => ( 27 |
28 | {` 31 | ${item.first}${item.secondId ? `-${item.second}` : ""}${ 32 | item.thirdId ? `-${item.third}` : "" 33 | } 34 | `} 35 | {edit && ( 36 | onClose(index)} 41 | /> 42 | )} 43 |
44 | ))} 45 |
46 | ); 47 | }; 48 | 49 | export default Badge; 50 | -------------------------------------------------------------------------------- /packages/multipleCitysReact/components/pop/images.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.svg' 2 | -------------------------------------------------------------------------------- /packages/multipleCitysReact/components/pop/index.scss: -------------------------------------------------------------------------------- 1 | .pop { 2 | position: absolute; 3 | height: 326px; 4 | padding-top: 6px; 5 | background-color: white; 6 | left: 0; 7 | box-shadow: 0 3px 6px -4px #0000001f, 0 6px 16px #00000014, 8 | 0 9px 28px 8px #0000000d; 9 | z-index: 1; 10 | 11 | &-fixed { 12 | position: fixed; 13 | top: 0; 14 | left: 0; 15 | bottom: 0; 16 | right: 0; 17 | } 18 | &-content { 19 | position: relative; 20 | height: 100%; 21 | z-index: 2; 22 | columns: var(--column); 23 | column-gap: 0; 24 | overflow: hidden; 25 | } 26 | &-scroll { 27 | width: 150px; 28 | height: 100%; 29 | overflow-y: scroll; 30 | .flex { 31 | flex: 1; 32 | align-items: center; 33 | display: flex; 34 | } 35 | .line-1 { 36 | white-space: nowrap; 37 | overflow: hidden; 38 | text-overflow: ellipsis; 39 | width: 50px; 40 | display: inline-block; 41 | } 42 | &-item { 43 | padding: 5px 15px; 44 | align-items: center; 45 | display: flex; 46 | &-box { 47 | width: 20px; 48 | height: 20px; 49 | margin-right: 10px; 50 | } 51 | &-title { 52 | cursor: pointer; 53 | } 54 | &-more { 55 | width: 14px; 56 | height: 14px; 57 | transform: rotate(270deg); 58 | } 59 | } 60 | } 61 | &-scroll + &-scroll { 62 | border-left: solid thin #f1f1f1; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /packages/multipleCitysReact/components/pop/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { 2 | CSSProperties, 3 | useCallback, 4 | useEffect, 5 | useState, 6 | useMemo, 7 | } from "react"; 8 | 9 | import { MultipleCitysReactPopModel, AddressType } from "../../model/pop"; 10 | import { MultipleItem } from "../../model"; 11 | 12 | import CHECKBOX_ICON_ACTIVED from "../../images/checkBoxIconActived.png"; 13 | import CHECKBOX_ICON from "../../images/checkBoxIcon.png"; 14 | import CHECKBOX_ICON_PART from "../../images/checkBoxIconPart.png"; 15 | import arrowDown from "../../images/arrowDown.png"; 16 | 17 | import "./index.scss"; 18 | 19 | const MultipleCitysReactPop = ({ 20 | data = [], 21 | checkList = [], 22 | visible = false, 23 | top, 24 | checkBoxIconActived = CHECKBOX_ICON_ACTIVED, 25 | checkBoxIcon = CHECKBOX_ICON, 26 | checkBoxIconPart = CHECKBOX_ICON_PART, 27 | color = "#232323", 28 | loadNextLevelData, 29 | onClose, 30 | onChange, 31 | }: MultipleCitysReactPopModel) => { 32 | const [temp, setTemp] = useState(false); 33 | const [levelInfo, setLevelInfo] = useState({ 34 | firstId: 0, 35 | first: "", 36 | }); 37 | const [listInfo, setListInfo] = useState<{ 38 | secondList: AddressType[]; 39 | thirdList: AddressType[]; 40 | }>({ secondList: [], thirdList: [] }); 41 | const [currentInfo, setCurrentInfo] = useState<{ lay: number; id: number }>({ 42 | lay: 1, 43 | id: 0, 44 | }); 45 | const [selectIdList, setSelectIdList] = useState([]); 46 | const [someSelectIdList, setSomeSelectIdList] = useState([]); 47 | const style = useMemo((): CSSProperties => { 48 | return { 49 | color, 50 | top: top ? "-336px" : "auto", 51 | }; 52 | }, [color, top]); 53 | useEffect(() => { 54 | if (!visible) setTimeout(() => setTemp(false), 500); 55 | }, [visible]); 56 | 57 | useEffect(() => { 58 | if (!visible) return; 59 | const treeEle = document.getElementById("treeBadgeWrapper"); 60 | const popEle = document.getElementById("treePop"); 61 | const { offsetTop, offsetHeight } = treeEle; 62 | popEle.style.setProperty("--top", `${offsetTop + offsetHeight + 10}px`); 63 | setTemp(true); 64 | }, [visible]); 65 | 66 | useEffect(() => { 67 | let aotherList = []; 68 | let selfList = []; 69 | switch (currentInfo.lay) { 70 | case 1: 71 | aotherList = checkList.filter( 72 | (item: MultipleItem) => item.firstId !== currentInfo.id 73 | ); 74 | selfList = checkList.filter( 75 | (item: MultipleItem) => 76 | item.firstId === currentInfo.id && !item.secondId && !item.thirdId 77 | ); 78 | break; 79 | case 2: 80 | aotherList = checkList.filter( 81 | (item: MultipleItem) => item.secondId !== currentInfo.id 82 | ); 83 | selfList = checkList.filter( 84 | (item: MultipleItem) => 85 | item.secondId === currentInfo.id && !item.thirdId 86 | ); 87 | break; 88 | case 3: 89 | aotherList = checkList.filter( 90 | (item: MultipleItem) => item.thirdId !== currentInfo.id 91 | ); 92 | selfList = checkList.filter( 93 | (item: MultipleItem) => item.thirdId === currentInfo.id 94 | ); 95 | break; 96 | } 97 | const result = aotherList.concat(selfList); 98 | 99 | const selects = result.map((item: MultipleItem) => { 100 | switch (true) { 101 | case !!item.thirdId: 102 | return item.thirdId; 103 | case !!item.secondId: 104 | return item.secondId; 105 | default: 106 | return item.firstId; 107 | } 108 | }); 109 | let aothers: number[] = []; 110 | result.forEach((item: MultipleItem) => { 111 | if (!selects.includes(item.firstId)) { 112 | aothers.push(item.firstId); 113 | } 114 | if (!selects.includes(item.secondId)) { 115 | aothers.push(item.secondId); 116 | } 117 | if (!selects.includes(item.thirdId)) { 118 | aothers.push(item.thirdId); 119 | } 120 | }); 121 | setSelectIdList(selects); 122 | setSomeSelectIdList(aothers); 123 | }, [currentInfo, checkList]); 124 | 125 | const popMoreCheck = useCallback( 126 | (type: "check" | "more", scope: AddressType) => () => { 127 | let list = []; 128 | let firstCheckItem; 129 | let level; 130 | switch (scope.lay) { 131 | case 1: 132 | list = [scope]; 133 | level = { 134 | firstId: scope.value, 135 | first: scope.label, 136 | secondId: "", 137 | second: "", 138 | thirdId: "", 139 | third: "", 140 | }; 141 | break; 142 | case 2: 143 | firstCheckItem = data.find( 144 | (item: AddressType) => item.value === levelInfo.firstId 145 | ); 146 | list = [firstCheckItem, scope]; 147 | level = { 148 | firstId: levelInfo.firstId, 149 | first: levelInfo.first, 150 | secondId: scope.value, 151 | second: scope.label, 152 | thirdId: "", 153 | third: "", 154 | }; 155 | break; 156 | case 3: 157 | level = { 158 | firstId: levelInfo.firstId, 159 | first: levelInfo.first, 160 | secondId: levelInfo.secondId, 161 | second: levelInfo.second, 162 | thirdId: scope.value, 163 | third: scope.label, 164 | }; 165 | break; 166 | } 167 | if (type === "check") { 168 | const checked = !checkList.some( 169 | (item: MultipleItem) => 170 | (item.firstId === scope.value && !item.secondId && !item.thirdId) || 171 | (item.secondId === scope.value && !item.thirdId) || 172 | item.thirdId === scope.value 173 | ); 174 | popCheck(scope, checked, level, scope.children); 175 | } else { 176 | !scope.isLeaf && 177 | loadNextLevelData(list, (result: AddressType[]) => { 178 | if (scope.lay === 1) { 179 | setListInfo({ secondList: result, thirdList: [] }); 180 | } else { 181 | setListInfo((pre) => ({ ...pre, thirdList: result })); 182 | } 183 | }); 184 | !scope.isLeaf && changePopColumn(scope.lay + 1); 185 | } 186 | setLevelInfo(level); 187 | }, 188 | [levelInfo, checkList, data] 189 | ); 190 | 191 | const popCheck = useCallback( 192 | ( 193 | scope: AddressType, 194 | checked: boolean, 195 | level: MultipleItem, 196 | children: AddressType[] 197 | ) => { 198 | let tempList = checkList; 199 | const { value, lay } = scope; 200 | setCurrentInfo({ lay, id: value }); 201 | switch (true) { 202 | case !checked && lay === 1: 203 | tempList = tempList.filter( 204 | (item: MultipleItem) => item.firstId !== value 205 | ); 206 | changePopColumn(1); 207 | break; 208 | 209 | case !checked && lay === 2: 210 | tempList = tempList.filter( 211 | (item: MultipleItem) => item.secondId !== value 212 | ); 213 | changePopColumn(2); 214 | break; 215 | 216 | case !checked && lay === 3: 217 | tempList = tempList.filter( 218 | (item: MultipleItem) => item.thirdId !== value 219 | ); 220 | break; 221 | 222 | case checked && lay === 1: 223 | tempList = tempList.filter( 224 | (item: MultipleItem) => 225 | !(item.firstId === scope.value && item.secondId) 226 | ); 227 | tempList.push({ firstId: scope.value, first: scope.label }); 228 | setListInfo({ secondList: [], thirdList: [] }); 229 | changePopColumn(1); 230 | break; 231 | 232 | case checked && lay === 2: 233 | tempList = tempList.filter( 234 | (item: MultipleItem) => 235 | !(item.firstId === level.firstId && !item.secondId) 236 | ); 237 | tempList = tempList.filter( 238 | (item: MultipleItem) => 239 | !(item.secondId === scope.value && item.thirdId) 240 | ); 241 | tempList.push({ 242 | firstId: level.firstId, 243 | first: level.first, 244 | secondId: scope.value, 245 | second: scope.label, 246 | }); 247 | changePopColumn(2); 248 | break; 249 | 250 | case checked && lay === 3: 251 | tempList = tempList.filter( 252 | (item: MultipleItem) => 253 | !(item.firstId === level.firstId && !item.secondId) 254 | ); 255 | tempList = tempList.filter( 256 | (item: MultipleItem) => 257 | !(item.secondId === level.secondId && !item.thirdId) 258 | ); 259 | tempList = tempList.filter( 260 | (item: MultipleItem) => !(item.thirdId === scope.value) 261 | ); 262 | tempList.push({ 263 | firstId: level.firstId, 264 | first: level.first, 265 | secondId: level.secondId, 266 | second: level.second, 267 | thirdId: scope.value, 268 | third: scope.label, 269 | }); 270 | changePopColumn(3); 271 | break; 272 | } 273 | onChange(tempList); 274 | }, 275 | [checkList] 276 | ); 277 | 278 | const changePopColumn = useCallback((lay: number) => { 279 | const popContentEle = document.getElementById("tree-pop-content"); 280 | popContentEle.style.setProperty("--column", `${lay}`); 281 | }, []); 282 | 283 | const popEvent = useCallback((event) => { 284 | stopEvent(event); 285 | onClose(); 286 | }, []); 287 | 288 | const stopEvent = useCallback((event: Event) => { 289 | event.stopPropagation(); 290 | }, []); 291 | 292 | const imgUrlJump = useCallback( 293 | (value: number) => { 294 | if (selectIdList.includes(value)) { 295 | return checkBoxIconActived; 296 | } else if (someSelectIdList.includes(value)) { 297 | return checkBoxIconPart; 298 | } else { 299 | return checkBoxIcon; 300 | } 301 | }, 302 | [selectIdList, someSelectIdList] 303 | ); 304 | 305 | return ( 306 | 307 | {visible && ( 308 |
313 |
314 |
315 |
316 | {data.map((item: AddressType) => ( 317 |
318 | 324 |
325 |
326 | {item.label} 327 |
328 | 333 |
334 |
335 | ))} 336 |
337 | 338 |
339 | {listInfo.secondList.map((item: AddressType) => ( 340 |
341 | 347 |
348 |
349 | {item.label} 350 |
351 | {!item.isLeaf && ( 352 | 357 | )} 358 |
359 |
360 | ))} 361 |
362 | 363 |
364 | {listInfo.thirdList.map((item: AddressType) => ( 365 |
366 | 372 |
376 | {item.label} 377 |
378 |
379 | ))} 380 |
381 |
382 |
383 | )} 384 | 385 | ); 386 | }; 387 | 388 | export default MultipleCitysReactPop; 389 | -------------------------------------------------------------------------------- /packages/multipleCitysReact/images/arrowDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaochengxian/multiple-citys-react/ec289ca47a79bc90eee3befebffa3e21738078f9/packages/multipleCitysReact/images/arrowDown.png -------------------------------------------------------------------------------- /packages/multipleCitysReact/images/checkBoxIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaochengxian/multiple-citys-react/ec289ca47a79bc90eee3befebffa3e21738078f9/packages/multipleCitysReact/images/checkBoxIcon.png -------------------------------------------------------------------------------- /packages/multipleCitysReact/images/checkBoxIconActived.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaochengxian/multiple-citys-react/ec289ca47a79bc90eee3befebffa3e21738078f9/packages/multipleCitysReact/images/checkBoxIconActived.png -------------------------------------------------------------------------------- /packages/multipleCitysReact/images/checkBoxIconPart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaochengxian/multiple-citys-react/ec289ca47a79bc90eee3befebffa3e21738078f9/packages/multipleCitysReact/images/checkBoxIconPart.png -------------------------------------------------------------------------------- /packages/multipleCitysReact/images/closeBadge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaochengxian/multiple-citys-react/ec289ca47a79bc90eee3befebffa3e21738078f9/packages/multipleCitysReact/images/closeBadge.png -------------------------------------------------------------------------------- /packages/multipleCitysReact/index.scss: -------------------------------------------------------------------------------- 1 | .multiple-citys-react { 2 | position: relative; 3 | &-badge-wrapper { 4 | position: relative; 5 | display: inline-block; 6 | font-size: 14px; 7 | line-height: 40px; 8 | padding: 0 10px; 9 | background-color: white; 10 | border: 1px solid #d9d9d9; 11 | border-radius: 2px; 12 | } 13 | &-badge-show-placeholder { 14 | color: #ccc; 15 | display: inline-block; 16 | width: 200px; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/multipleCitysReact/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { CSSProperties, useCallback, useState, useMemo } from "react"; 2 | 3 | import MultipleCitysReactPop from "./components/pop"; 4 | import Badge from "./components/badge"; 5 | 6 | import { MultipleCitysReactModel, MultipleItem } from "./model"; 7 | 8 | import "./index.scss"; 9 | 10 | const MultipleCitysReact: React.FC = (props) => { 11 | const { 12 | top, 13 | data = [], 14 | checkList = [], 15 | edit = true, 16 | placeholder = "", 17 | badgesWidth = 500, 18 | checkBoxIcon, 19 | checkBoxIconActived, 20 | checkBoxIconPart, 21 | color, 22 | badgeStyle, 23 | loadNextLevelData, 24 | onChange, 25 | } = props; 26 | const [visible, setVisible] = useState(false); 27 | const treeClick = useCallback( 28 | (type: string) => () => { 29 | if (!edit) return; 30 | setVisible(type === "close" ? false : true); 31 | }, 32 | [edit] 33 | ); 34 | const style = useMemo((): CSSProperties => { 35 | return { 36 | width: badgesWidth + "px", 37 | }; 38 | }, [badgesWidth]); 39 | 40 | const TreeChange = useCallback((list) => { 41 | onChange(list); 42 | }, []); 43 | 44 | const checkDelete = useCallback( 45 | (value: number) => { 46 | const list = checkList.filter( 47 | (item: MultipleItem, index: number) => index !== value 48 | ); 49 | onChange(list); 50 | }, 51 | [checkList] 52 | ); 53 | 54 | return ( 55 |
56 |
62 | {checkList.length > 0 ? ( 63 | 69 | ) : ( 70 | 71 | {placeholder} 72 | 73 | )} 74 |
75 | 76 | 89 |
90 | ); 91 | }; 92 | 93 | export default MultipleCitysReact; 94 | -------------------------------------------------------------------------------- /packages/multipleCitysReact/model/badge.ts: -------------------------------------------------------------------------------- 1 | export type BadgeStyle = 'primary' | 'danger' | 'default' -------------------------------------------------------------------------------- /packages/multipleCitysReact/model/index.ts: -------------------------------------------------------------------------------- 1 | import { AddressType } from "./pop" 2 | import { BadgeStyle } from "./badge" 3 | 4 | export interface MultipleItem { 5 | firstId: number 6 | first: string 7 | secondId?: number 8 | second?: string 9 | thirdId?: number 10 | third?: string 11 | } 12 | interface MultipleCitysReactCom { 13 | data: AddressType[] 14 | checkList: MultipleItem[] 15 | top?: boolean 16 | checkBoxIconActived?: string 17 | checkBoxIcon?: string 18 | checkBoxIconPart?: string 19 | color?: string 20 | onChange: (list: MultipleItem[]) => void 21 | } 22 | 23 | export interface MultipleCitysReactPopModel extends MultipleCitysReactCom { 24 | visible: boolean 25 | loadNextLevelData: Function 26 | onClose: () => void 27 | 28 | } 29 | 30 | export interface MultipleCitysReactModel extends MultipleCitysReactCom { 31 | edit?: boolean 32 | placeholder: string 33 | badgesWidth?: number 34 | badgeStyle?: BadgeStyle 35 | loadNextLevelData: Function 36 | 37 | } -------------------------------------------------------------------------------- /packages/multipleCitysReact/model/pop.ts: -------------------------------------------------------------------------------- 1 | import { MultipleItem } from "./index" 2 | 3 | export interface AddressType { 4 | value: number 5 | label: string 6 | title?: string 7 | key?: string 8 | parentId: number 9 | lay: number 10 | isLeaf: boolean 11 | loading?: boolean 12 | children?: AddressType[] 13 | } 14 | export interface MultipleCitysReactPopModel { 15 | data: AddressType[] 16 | checkList: MultipleItem[] 17 | visible: boolean 18 | top: boolean 19 | checkBoxIconActived: string 20 | checkBoxIcon: string 21 | checkBoxIconPart: string 22 | color: string 23 | loadNextLevelData: Function 24 | onClose: () => void 25 | onChange: (list: MultipleItem[]) => void 26 | } -------------------------------------------------------------------------------- /react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | declare module "react/jsx-runtime" { 2 | export default any; 3 | } -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import babel from 'rollup-plugin-babel' 2 | import Postcss from 'rollup-plugin-postcss' 3 | import typescript from 'rollup-plugin-typescript2'; 4 | import image from '@rollup/plugin-image'; 5 | export default { 6 | 7 | input: './packages/index.tsx', 8 | output: { 9 | file: './lib/multiple-citys.js', 10 | format: 'cjs', 11 | }, 12 | plugins: [ 13 | babel(), 14 | typescript(), 15 | image(), 16 | Postcss({ 17 | extract: false, 18 | minimize: true, 19 | extensions: ['.css'] 20 | }),] 21 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "strict": false, 14 | "forceConsistentCasingInFileNames": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "isolatedModules": true, 19 | "noEmit": true, 20 | "jsx": "react", 21 | "paths": { 22 | "@/*": [ 23 | "./packages/*" 24 | ] 25 | } 26 | }, 27 | "include": [ 28 | "packages", 29 | "**/*.ts", 30 | "**/*.tsx" 31 | ] 32 | } --------------------------------------------------------------------------------