├── .babelrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .github
└── workflows
│ ├── bump-version-v1.yml
│ ├── bump-version.yml
│ ├── gh-pages.yml
│ └── lint.yml
├── .gitignore
├── .postcssrc.js
├── .prettierrc
├── LICENSE
├── README.md
├── README.zh_CN.md
├── build
├── build.js
├── check-versions.js
├── dev-client.js
├── dev-server.js
├── utils.js
├── webpack.base.conf.js
├── webpack.dev.conf.js
└── webpack.prod.conf.js
├── config
├── dev.env.js
├── index.js
├── prod.env.js
└── test.env.js
├── cypress.json
├── cypress
├── fixtures
│ └── example.json
├── integration
│ ├── examples
│ │ ├── actions.spec.js
│ │ ├── aliasing.spec.js
│ │ ├── assertions.spec.js
│ │ ├── connectors.spec.js
│ │ ├── cookies.spec.js
│ │ ├── cypress_api.spec.js
│ │ ├── files.spec.js
│ │ ├── local_storage.spec.js
│ │ ├── location.spec.js
│ │ ├── misc.spec.js
│ │ ├── navigation.spec.js
│ │ ├── network_requests.spec.js
│ │ ├── querying.spec.js
│ │ ├── spies_stubs_clocks.spec.js
│ │ ├── traversal.spec.js
│ │ ├── utilities.spec.js
│ │ ├── viewport.spec.js
│ │ ├── waiting.spec.js
│ │ └── window.spec.js
│ └── test.spec.js
├── plugins
│ └── index.js
└── support
│ ├── commands.js
│ └── index.js
├── example
├── App.tsx
├── Basic.vue
├── Editable.vue
├── Icons.tsx
├── SelectControl.vue
├── Tsx.tsx
├── VirtualList.vue
├── index.html
├── main.js
├── styles.less
└── useDarkMode.ts
├── package-lock.json
├── package.json
├── shims-vue.d.ts
├── src
├── components
│ ├── Brackets
│ │ ├── index.tsx
│ │ └── styles.less
│ ├── Carets
│ │ ├── index.tsx
│ │ └── styles.less
│ ├── CheckController
│ │ ├── index.tsx
│ │ └── styles.less
│ ├── Tree
│ │ ├── index.tsx
│ │ └── styles.less
│ └── TreeNode
│ │ ├── index.tsx
│ │ └── styles.less
├── hooks
│ ├── useClipboard.ts
│ └── useError.ts
├── index.ts
├── themes.less
└── utils
│ └── index.ts
├── static
├── .gitkeep
├── logo.sketch
├── logo.svg
└── screenshot.png
├── tsconfig.dts.json
└── tsconfig.json
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["@babel/preset-env", {
4 | "modules": false,
5 | "targets": {
6 | "browsers": ["> 1%", "last 10 versions", "not ie <= 11"]
7 | }
8 | }],
9 | ["@babel/preset-typescript", {
10 | "allExtensions": true,
11 | "isTSX": true
12 | }]
13 | ],
14 | "plugins": ["@babel/plugin-transform-runtime", "@vue/babel-plugin-jsx"],
15 | "env": {
16 | "test": {
17 | "presets": ["@babel/preset-env"],
18 | "plugins": ["istanbul"]
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | config/*.js
3 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | env: {
4 | node: true,
5 | },
6 | extends: [
7 | 'plugin:vue/vue3-essential',
8 | 'eslint:recommended',
9 | '@vue/typescript/recommended',
10 | // '@vue/prettier',
11 | // '@vue/prettier/@typescript-eslint',
12 | ],
13 | parserOptions: {
14 | ecmaVersion: 2020,
15 | },
16 | rules: {
17 | 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
18 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
19 | // 'prettier/prettier': [1, { arrowParens: 'avoid' }],
20 | },
21 | };
22 |
--------------------------------------------------------------------------------
/.github/workflows/bump-version-v1.yml:
--------------------------------------------------------------------------------
1 | name: Create Release for v1
2 |
3 | on:
4 | workflow_dispatch:
5 |
6 | jobs:
7 | bump-version:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - name: Checkout Code
11 | uses: actions/checkout@v3
12 |
13 | - name: Automated Version Bump
14 | uses: phips28/gh-action-bump-version@v9.1.0
15 | env:
16 | GITHUB_USER: ${{ secrets.CI_NAME }}
17 | GITHUB_EMAIL: ${{ secrets.CI_EMAIL }}
18 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19 | with:
20 | tag-prefix: 'v'
21 |
22 | - name: Set up Node.js
23 | uses: actions/setup-node@v3
24 | with:
25 | node-version: 16
26 | registry-url: https://registry.npmjs.org/
27 |
28 | - name: Publish NPM
29 | run: |
30 | npm ci
31 | npm run build
32 | npm publish --tag v1-latest
33 | env:
34 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
35 |
--------------------------------------------------------------------------------
/.github/workflows/bump-version.yml:
--------------------------------------------------------------------------------
1 | name: Create Release
2 |
3 | on:
4 | push:
5 | branches:
6 | - 'master'
7 |
8 | jobs:
9 | bump-version:
10 | runs-on: ubuntu-latest
11 | steps:
12 | - name: Checkout Code
13 | uses: actions/checkout@v3
14 |
15 | - name: Automated Version Bump
16 | uses: phips28/gh-action-bump-version@v9.1.0
17 | env:
18 | GITHUB_USER: ${{ secrets.CI_NAME }}
19 | GITHUB_EMAIL: ${{ secrets.CI_EMAIL }}
20 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21 | with:
22 | tag-prefix: 'v'
23 |
24 | - name: Set up Node.js
25 | uses: actions/setup-node@v3
26 | with:
27 | node-version: 16
28 | registry-url: https://registry.npmjs.org/
29 |
30 | - name: Publish NPM
31 | run: |
32 | npm ci
33 | npm run build
34 | npm publish
35 | env:
36 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
37 |
--------------------------------------------------------------------------------
/.github/workflows/gh-pages.yml:
--------------------------------------------------------------------------------
1 | name: Gh Pages
2 |
3 | on:
4 | push:
5 | branches:
6 | - 'master'
7 |
8 | jobs:
9 | build-and-deploy:
10 | runs-on: ubuntu-latest
11 | steps:
12 | - name: Checkout Code
13 | uses: actions/checkout@v3
14 |
15 | - name: Install
16 | run: npm install
17 |
18 | - name: Build
19 | run: npm run build:example
20 |
21 | - name: Deploy
22 | uses: peaceiris/actions-gh-pages@v3
23 | with:
24 | github_token: ${{ secrets.GITHUB_TOKEN }}
25 | publish_dir: ./example-dist
26 | user_name: ${{ secrets.CI_NAME }}
27 | user_email: ${{ secrets.CI_EMAIL }}
28 |
--------------------------------------------------------------------------------
/.github/workflows/lint.yml:
--------------------------------------------------------------------------------
1 | name: Lint
2 |
3 | on: [push, pull_request]
4 |
5 | jobs:
6 | run-linters:
7 | name: Run Linters
8 | runs-on: ubuntu-latest
9 |
10 | steps:
11 | - name: Checkout code
12 | uses: actions/checkout@v3
13 |
14 | - name: Set up Node.js
15 | uses: actions/setup-node@v3
16 | with:
17 | node-version: 16
18 |
19 | - name: Lint
20 | run: |
21 | npm install
22 | npm run lint
23 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | example-dist/
4 | dist/
5 | lib/
6 | esm/
7 | types/
8 | npm-debug.log*
9 | yarn-debug.log*
10 | yarn-error.log*
11 | test/e2e/reports
12 | selenium-debug.log
13 |
14 | # Editor directories and files
15 | .idea
16 | *.suo
17 | *.ntvs*
18 | *.njsproj
19 | *.sln
20 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | plugins: {
5 | // to edit target browsers: use "browserslist" field in package.json
6 | autoprefixer: {},
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "indent": 2,
3 | "tabWidth": 2,
4 | "semi": true,
5 | "singleQuote": true,
6 | "trailingComma": "all",
7 | "printWidth": 100,
8 | "bracketSpacing": true,
9 | "jsxBracketSameLine": false,
10 | "arrowParens": "avoid",
11 | "endOfLine": "lf",
12 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |