├── .babelrc
├── .editorconfig
├── .eslintrc
├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── BUG_REPORT.yml
│ └── config.yml
└── pull_request_template.md
├── .gitignore
├── .npmignore
├── LICENSE
├── README.md
├── dist
├── css
│ ├── splide-core.min.css
│ ├── splide.min.css
│ └── themes
│ │ ├── splide-default.min.css
│ │ ├── splide-sea-green.min.css
│ │ └── splide-skyblue.min.css
└── js
│ ├── vue-splide.cjs.js
│ └── vue-splide.esm.js
├── examples
├── .gitignore
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
│ └── logo.svg
├── src
│ ├── App.vue
│ ├── assets
│ │ ├── favicon.png
│ │ └── logo.svg
│ ├── components
│ │ ├── AutoplayExample.vue
│ │ ├── BasicExample.vue
│ │ ├── DynamicSlideExample.vue
│ │ ├── ReactivityExample.vue
│ │ ├── ThumbnailsExample.vue
│ │ └── VideoExample.vue
│ ├── env.d.ts
│ ├── main.ts
│ └── utils
│ │ ├── generateSlides
│ │ └── generateSlides.ts
│ │ └── index.ts
├── tsconfig.json
└── vite.config.ts
├── images
├── logo.svg
└── vue-logo.svg
├── jest.config.js
├── package-lock.json
├── package.json
├── scripts
└── copy-css.js
├── src
└── js
│ ├── build
│ └── iife.ts
│ ├── components
│ ├── Splide
│ │ └── Splide.vue
│ ├── SplideSlide
│ │ └── SplideSlide.vue
│ ├── SplideTrack
│ │ └── SplideTrack.vue
│ └── index.ts
│ ├── constants
│ ├── events.ts
│ └── keys.ts
│ ├── env.d.ts
│ ├── index.ts
│ ├── plugin
│ └── plugin.ts
│ └── utils
│ ├── forOwn
│ ├── forOwn.ts
│ └── test
│ │ └── forOwn.test.ts
│ ├── index.ts
│ ├── isEqualShallow
│ ├── isEqualShallow.ts
│ └── test
│ │ └── isEqualShallow.test.ts
│ ├── isObject
│ ├── isObject.ts
│ └── test
│ │ └── isObject.test.ts
│ └── merge
│ ├── merge.test.ts
│ └── merge.ts
├── tsconfig.json
├── vite.config.ts
└── vite
└── vite.config.iife.ts
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "@babel/preset-env"
4 | ]
5 | }
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
6 | charset = utf-8
7 | end_of_line = lf
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "eslint:recommended",
4 | "plugin:@typescript-eslint/recommended",
5 | "plugin:vue/vue3-recommended"
6 | ],
7 | "plugins": [
8 | "@typescript-eslint"
9 | ],
10 | "parser": "@typescript-eslint/parser",
11 | "parserOptions": {
12 | "ecmaVersion": 2018,
13 | "sourceType": "module"
14 | },
15 | "env": {
16 | "browser": true
17 | },
18 | "ignorePatterns": [
19 | "*.esm.js"
20 | ],
21 | "rules": {
22 | "semi": [
23 | "error",
24 | "always",
25 | {
26 | "omitLastInOneLineBlock": true
27 | }
28 | ],
29 | "space-in-parens": [
30 | "error",
31 | "always"
32 | ],
33 | "array-bracket-spacing": [
34 | "error",
35 | "always"
36 | ],
37 | "object-curly-spacing": [
38 | "error",
39 | "always"
40 | ],
41 | "computed-property-spacing": [
42 | "error",
43 | "always"
44 | ],
45 | "camelcase": "error",
46 | "comma-dangle": [
47 | "error",
48 | {
49 | "arrays": "always-multiline",
50 | "objects": "always-multiline",
51 | "imports": "always-multiline",
52 | "exports": "always-multiline",
53 | "functions": "never"
54 | }
55 | ],
56 | "comma-spacing": [
57 | "error",
58 | {
59 | "before": false,
60 | "after": true
61 | }
62 | ],
63 | "eqeqeq": "error",
64 | "indent": [
65 | "error",
66 | 2,
67 | {
68 | "SwitchCase": 1,
69 | "VariableDeclarator": "first"
70 | }
71 | ],
72 | "no-console": [
73 | "error",
74 | {
75 | "allow": [
76 | "error"
77 | ]
78 | }
79 | ],
80 | "no-empty-function": [
81 | "error",
82 | {
83 | "allow": [
84 | "methods"
85 | ]
86 | }
87 | ],
88 | "@typescript-eslint/no-empty-function": [
89 | "error",
90 | {
91 | "allow": [
92 | "methods"
93 | ]
94 | }
95 | ],
96 | "@typescript-eslint/no-unused-vars": "error",
97 | "@typescript-eslint/no-explicit-any": "off",
98 | "@typescript-eslint/no-empty-interface": "off",
99 | "@typescript-eslint/explicit-module-boundary-types": [
100 | "error",
101 | {
102 | "allowArgumentsExplicitlyTypedAsAny": true
103 | }
104 | ],
105 | "@typescript-eslint/ban-types": [
106 | "error",
107 | {
108 | "types": {
109 | "object": false
110 | }
111 | }
112 | ]
113 | }
114 | }
115 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: NaotoshiFujita
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/BUG_REPORT.yml:
--------------------------------------------------------------------------------
1 | name: Bug Report
2 | description: Create a bug report.
3 | labels: [ "bug" ]
4 | body:
5 | - type: markdown
6 | attributes:
7 | value: |
8 | Thank you for taking your time to post a bug report!
9 | Please fill out the following form. I might need to close the issue without required fields or e.g. clear repro steps.
10 | - type: checkboxes
11 | attributes:
12 | label: Checks
13 | description: Before posting a report, please check following things.
14 | options:
15 | - label: "Not a duplicate."
16 | required: true
17 | - label: "Not a question, feature request, or anything other than a bug report directly related to Vue Splide. Use Discussions for these topics: https://github.com/Splidejs/splide/discussions"
18 | required: true
19 | - type: input
20 | id: version
21 | attributes:
22 | label: Version
23 | description: The version where the bug happens.
24 | placeholder: x.x.x
25 | validations:
26 | required: true
27 | - type: textarea
28 | attributes:
29 | label: Description
30 | description: Describe the bug.
31 | placeholder: Provide a clear and precise description. Feel free to paste your code, screenshort, etc.
32 | validations:
33 | required: true
34 | - type: input
35 | id: reproduction-link
36 | attributes:
37 | label: Reproduction Link
38 | description: A link to a reproduction (CodeSandbox, etc.). **Do not link to your project**, it has to be a minimal and fresh reproduction.
39 | placeholder: "https://codesandbox.io/"
40 | validations:
41 | required: false
42 | - type: textarea
43 | attributes:
44 | label: Steps to Reproduce
45 | description: Describe steps how to reproduce the bug.
46 | value: |
47 | 1.
48 | 2.
49 | ...
50 | validations:
51 | required: true
52 | - type: textarea
53 | attributes:
54 | label: Expected Behaviour
55 | description: Describe what you expected to happen.
56 | validations:
57 | required: true
58 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 |
4 |
5 | ## Related Issues
6 |
7 |
10 |
11 | ## Description
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | .idea/
3 | local/
4 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | images/
3 | examples/
4 | local/
5 | .idea/
6 | .github/
7 | .editorconfig
8 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2020 Naotoshi Fujita
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | 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, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
24 |
25 | ## Caveat
26 |
27 | The latest version only supports **Vue 3**.
28 | You have to use the old version (0.3.5) for Vue 2, but the Splide version is also outdated.
29 |
30 |
31 | ## Quick Start
32 | Get the latest version from NPM:
33 | ```
34 | $ npm install @splidejs/vue-splide
35 | ```
36 |
37 | Import CSS and components:
38 |
39 | ```vue
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
60 | ```
61 |
62 | Visit [here](https://splidejs.com/integration/vue-splide/) for more details.
63 |
64 |
65 | ## Support Splide
66 |
67 | Please support the project if you like it!
68 | - [GitHub Sponsors](https://github.com/sponsors/NaotoshiFujita)
69 |
70 |
71 | ## License
72 | Vue Splide and Splide are released under the MIT license.
73 | © 2022 Naotoshi Fujita
74 |
--------------------------------------------------------------------------------
/dist/css/splide-core.min.css:
--------------------------------------------------------------------------------
1 | @keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}
--------------------------------------------------------------------------------
/dist/css/splide.min.css:
--------------------------------------------------------------------------------
1 | .splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{-ms-flex-align:center;align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;height:2em;-ms-flex-pack:center;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports(outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports(outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0}
--------------------------------------------------------------------------------
/dist/css/themes/splide-default.min.css:
--------------------------------------------------------------------------------
1 | .splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{-ms-flex-align:center;align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;height:2em;-ms-flex-pack:center;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports(outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports(outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0}
--------------------------------------------------------------------------------
/dist/css/themes/splide-sea-green.min.css:
--------------------------------------------------------------------------------
1 | .splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;border-radius:4px;cursor:pointer;opacity:.7}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #20b2aa;opacity:1}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;left:auto;padding:1em 0;right:1em;top:0}.splide__pagination--ttb .splide__pagination__page{height:20px;width:5px}.splide__arrow{-ms-flex-align:center;align-items:center;background:transparent;border:0;border-radius:0;cursor:pointer;display:-ms-flexbox;display:flex;height:2.5em;-ms-flex-pack:center;justify-content:center;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2.5em;z-index:1}.splide__arrow svg{fill:#20b2aa;height:2.5em;transition:fill .2s linear;width:2.5em}.splide__arrow:hover:not(:disabled) svg{fill:#57e1d9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #20b2aa;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #20b2aa;outline-offset:3px}.splide__pagination{bottom:1em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:2.5px;display:inline-block;height:5px;margin:3px;padding:0;position:relative;transition:background-color .2s linear;width:20px}.splide__pagination__page.is-active{background:#20b2aa;z-index:1}.splide__pagination__page:hover{background:#57e1d9;cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #20b2aa;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #20b2aa;outline-offset:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0);border-radius:4px}.splide__slide:focus{outline:0}@supports(outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #20b2aa;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #20b2aa}}@supports(outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #20b2aa;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #20b2aa}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#20b2aa}}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #20b2aa;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__progress__bar{background:#ccc;height:3px}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #20b2aa;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #20b2aa;outline-offset:3px}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__slider>.splide__arrows .splide__arrow--prev{left:-2.5em}.splide__slider>.splide__arrows .splide__arrow--next{right:-2.5em}.splide{padding:3em}
--------------------------------------------------------------------------------
/dist/css/themes/splide-skyblue.min.css:
--------------------------------------------------------------------------------
1 | .splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer;opacity:.7}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #00bfff;opacity:1}.splide__arrow{-ms-flex-align:center;align-items:center;background:transparent;border:0;border-radius:0;cursor:pointer;display:-ms-flexbox;display:flex;height:2.5em;-ms-flex-pack:center;justify-content:center;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2.5em;z-index:1}.splide__arrow svg{fill:#00bfff;height:2.5em;transition:fill .2s linear;width:2.5em}.splide__arrow:hover:not(:disabled) svg{fill:#66d9ff}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #00bfff;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #00bfff;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:10px;margin:3px;padding:0;position:relative;transition:background-color .2s linear,transform .2s linear;width:10px}.splide__pagination__page.is-active{background:#00bfff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{background:#66d9ff;cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #00bfff;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #00bfff;outline-offset:3px}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #00bfff;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports(outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #00bfff;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #00bfff}}@supports(outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #00bfff;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #00bfff}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#00bfff}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #00bfff;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #00bfff;outline-offset:3px}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0}
--------------------------------------------------------------------------------
/examples/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | dist-ssr
5 | *.local
6 |
--------------------------------------------------------------------------------
/examples/README.md:
--------------------------------------------------------------------------------
1 | Examples for [Vue Splide](https://github.com/Splidejs/vue-splide).
2 |
--------------------------------------------------------------------------------
/examples/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | Vue Splide Example
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/examples/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-splide-example",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "vue-splide-example",
9 | "version": "1.0.0",
10 | "dependencies": {
11 | "@splidejs/splide-extension-video": "^0.7.1",
12 | "@splidejs/vue-splide": "file:..",
13 | "vue": "^3.2.38"
14 | },
15 | "devDependencies": {
16 | "@types/node": "^18.7.14",
17 | "@vitejs/plugin-vue": "^3.0.3",
18 | "typescript": "^4.8.2",
19 | "vite": "^3.0.9",
20 | "vue-tsc": "^0.40.5"
21 | }
22 | },
23 | "..": {
24 | "name": "@splidejs/vue-splide",
25 | "version": "0.6.7",
26 | "license": "MIT",
27 | "dependencies": {
28 | "@splidejs/splide": "^4.0.7"
29 | },
30 | "devDependencies": {
31 | "@types/jest": "^29.0.0",
32 | "@typescript-eslint/eslint-plugin": "^5.36.1",
33 | "@typescript-eslint/parser": "^5.36.1",
34 | "@vitejs/plugin-vue": "^3.0.3",
35 | "eslint": "^8.23.0",
36 | "eslint-plugin-vue": "^9.4.0",
37 | "fs-extra": "^10.1.0",
38 | "gh-pages": "^4.0.0",
39 | "jest": "^29.0.1",
40 | "ts-jest": "^28.0.8",
41 | "typescript": "^4.8.2",
42 | "vite": "^3.0.9",
43 | "vue": "^3.2.38",
44 | "vue-tsc": "^0.40.5"
45 | }
46 | },
47 | "node_modules/@babel/parser": {
48 | "version": "7.18.13",
49 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz",
50 | "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==",
51 | "bin": {
52 | "parser": "bin/babel-parser.js"
53 | },
54 | "engines": {
55 | "node": ">=6.0.0"
56 | }
57 | },
58 | "node_modules/@esbuild/linux-loong64": {
59 | "version": "0.14.54",
60 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz",
61 | "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==",
62 | "cpu": [
63 | "loong64"
64 | ],
65 | "dev": true,
66 | "optional": true,
67 | "os": [
68 | "linux"
69 | ],
70 | "engines": {
71 | "node": ">=12"
72 | }
73 | },
74 | "node_modules/@splidejs/splide-extension-video": {
75 | "version": "0.7.1",
76 | "resolved": "https://registry.npmjs.org/@splidejs/splide-extension-video/-/splide-extension-video-0.7.1.tgz",
77 | "integrity": "sha512-LrjgRCw+aW0AYohGssSLMrkUkFjX20Nuu94ymWothfP1Qj4NHiIPIk5XrntpK5DLG+5KNgSHMd8XON5jd1rwTA==",
78 | "dependencies": {
79 | "@vimeo/player": "^2.16.4"
80 | }
81 | },
82 | "node_modules/@splidejs/vue-splide": {
83 | "resolved": "..",
84 | "link": true
85 | },
86 | "node_modules/@types/node": {
87 | "version": "18.7.14",
88 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz",
89 | "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==",
90 | "dev": true
91 | },
92 | "node_modules/@vimeo/player": {
93 | "version": "2.17.1",
94 | "resolved": "https://registry.npmjs.org/@vimeo/player/-/player-2.17.1.tgz",
95 | "integrity": "sha512-M8uMYiOwFkqD070/pO/CuRmwKvnHBmEZKckt5C2tAaMhlldzui+lUC5zMFzO0RDPmIXwg1WdDxaJnzuic6ll/A==",
96 | "dependencies": {
97 | "native-promise-only": "0.8.1",
98 | "weakmap-polyfill": "2.0.4"
99 | }
100 | },
101 | "node_modules/@vitejs/plugin-vue": {
102 | "version": "3.0.3",
103 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz",
104 | "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==",
105 | "dev": true,
106 | "engines": {
107 | "node": "^14.18.0 || >=16.0.0"
108 | },
109 | "peerDependencies": {
110 | "vite": "^3.0.0",
111 | "vue": "^3.2.25"
112 | }
113 | },
114 | "node_modules/@volar/code-gen": {
115 | "version": "0.40.5",
116 | "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.40.5.tgz",
117 | "integrity": "sha512-M3D/2pmvjyGYalmldcyvTqVXhUnDxMYA2HtThmdQ8pVsTW4BVVzqrjnJAvHKNfM/zU0XA+fzIh1tfJ4Cssoe5w==",
118 | "dev": true,
119 | "dependencies": {
120 | "@volar/source-map": "0.40.5"
121 | }
122 | },
123 | "node_modules/@volar/source-map": {
124 | "version": "0.40.5",
125 | "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.40.5.tgz",
126 | "integrity": "sha512-HNO+svbNHXmJtDs82muusI1ErWnMpmNPDpz0Hmex5XDEa+q3NlWFXPMAxCflg294fkCfdOizyCxXYqh3UKz3VA==",
127 | "dev": true,
128 | "dependencies": {
129 | "@vue/reactivity": "3.2.37"
130 | }
131 | },
132 | "node_modules/@volar/source-map/node_modules/@vue/reactivity": {
133 | "version": "3.2.37",
134 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz",
135 | "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==",
136 | "dev": true,
137 | "dependencies": {
138 | "@vue/shared": "3.2.37"
139 | }
140 | },
141 | "node_modules/@volar/source-map/node_modules/@vue/shared": {
142 | "version": "3.2.37",
143 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz",
144 | "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==",
145 | "dev": true
146 | },
147 | "node_modules/@volar/typescript-faster": {
148 | "version": "0.40.5",
149 | "resolved": "https://registry.npmjs.org/@volar/typescript-faster/-/typescript-faster-0.40.5.tgz",
150 | "integrity": "sha512-DfIVkQawbesz+8ghbYS1NnlIQjfMIDsSJY/bumIJk98M/tM/2Fykhiil3GDfTr6ju/fAqDpfF8VF8XpYDWPc7w==",
151 | "dev": true,
152 | "dependencies": {
153 | "semver": "^7.3.7"
154 | }
155 | },
156 | "node_modules/@volar/vue-language-core": {
157 | "version": "0.40.5",
158 | "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-0.40.5.tgz",
159 | "integrity": "sha512-4EpMQdLaORWg3EBZtgqzgkNRm1+qvyvCyLbnWHT2SPkUuHObPcbyA3giXbOEnPB0pnQpr2nVTv+tRLWvksXdyA==",
160 | "dev": true,
161 | "dependencies": {
162 | "@volar/code-gen": "0.40.5",
163 | "@volar/source-map": "0.40.5",
164 | "@vue/compiler-core": "^3.2.37",
165 | "@vue/compiler-dom": "^3.2.37",
166 | "@vue/compiler-sfc": "^3.2.37",
167 | "@vue/reactivity": "^3.2.37",
168 | "@vue/shared": "^3.2.37"
169 | }
170 | },
171 | "node_modules/@volar/vue-typescript": {
172 | "version": "0.40.5",
173 | "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-0.40.5.tgz",
174 | "integrity": "sha512-6OHJ87e8A3Z0xuWmBg72X5aYbW/EatogB168827j/OL371eiy3dExqa5y2+eJuWYjDiRJOmlHzhUElN+OEQRZQ==",
175 | "dev": true,
176 | "dependencies": {
177 | "@volar/code-gen": "0.40.5",
178 | "@volar/typescript-faster": "0.40.5",
179 | "@volar/vue-language-core": "0.40.5"
180 | }
181 | },
182 | "node_modules/@vue/compiler-core": {
183 | "version": "3.2.38",
184 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.38.tgz",
185 | "integrity": "sha512-/FsvnSu7Z+lkd/8KXMa4yYNUiqQrI22135gfsQYVGuh5tqEgOB0XqrUdb/KnCLa5+TmQLPwvyUnKMyCpu+SX3Q==",
186 | "dependencies": {
187 | "@babel/parser": "^7.16.4",
188 | "@vue/shared": "3.2.38",
189 | "estree-walker": "^2.0.2",
190 | "source-map": "^0.6.1"
191 | }
192 | },
193 | "node_modules/@vue/compiler-dom": {
194 | "version": "3.2.38",
195 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.38.tgz",
196 | "integrity": "sha512-zqX4FgUbw56kzHlgYuEEJR8mefFiiyR3u96498+zWPsLeh1WKvgIReoNE+U7gG8bCUdvsrJ0JRmev0Ky6n2O0g==",
197 | "dependencies": {
198 | "@vue/compiler-core": "3.2.38",
199 | "@vue/shared": "3.2.38"
200 | }
201 | },
202 | "node_modules/@vue/compiler-sfc": {
203 | "version": "3.2.38",
204 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.38.tgz",
205 | "integrity": "sha512-KZjrW32KloMYtTcHAFuw3CqsyWc5X6seb8KbkANSWt3Cz9p2qA8c1GJpSkksFP9ABb6an0FLCFl46ZFXx3kKpg==",
206 | "dependencies": {
207 | "@babel/parser": "^7.16.4",
208 | "@vue/compiler-core": "3.2.38",
209 | "@vue/compiler-dom": "3.2.38",
210 | "@vue/compiler-ssr": "3.2.38",
211 | "@vue/reactivity-transform": "3.2.38",
212 | "@vue/shared": "3.2.38",
213 | "estree-walker": "^2.0.2",
214 | "magic-string": "^0.25.7",
215 | "postcss": "^8.1.10",
216 | "source-map": "^0.6.1"
217 | }
218 | },
219 | "node_modules/@vue/compiler-ssr": {
220 | "version": "3.2.38",
221 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.38.tgz",
222 | "integrity": "sha512-bm9jOeyv1H3UskNm4S6IfueKjUNFmi2kRweFIGnqaGkkRePjwEcfCVqyS3roe7HvF4ugsEkhf4+kIvDhip6XzQ==",
223 | "dependencies": {
224 | "@vue/compiler-dom": "3.2.38",
225 | "@vue/shared": "3.2.38"
226 | }
227 | },
228 | "node_modules/@vue/reactivity": {
229 | "version": "3.2.38",
230 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.38.tgz",
231 | "integrity": "sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==",
232 | "dependencies": {
233 | "@vue/shared": "3.2.38"
234 | }
235 | },
236 | "node_modules/@vue/reactivity-transform": {
237 | "version": "3.2.38",
238 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.38.tgz",
239 | "integrity": "sha512-3SD3Jmi1yXrDwiNJqQ6fs1x61WsDLqVk4NyKVz78mkaIRh6d3IqtRnptgRfXn+Fzf+m6B1KxBYWq1APj6h4qeA==",
240 | "dependencies": {
241 | "@babel/parser": "^7.16.4",
242 | "@vue/compiler-core": "3.2.38",
243 | "@vue/shared": "3.2.38",
244 | "estree-walker": "^2.0.2",
245 | "magic-string": "^0.25.7"
246 | }
247 | },
248 | "node_modules/@vue/runtime-core": {
249 | "version": "3.2.38",
250 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.38.tgz",
251 | "integrity": "sha512-kk0qiSiXUU/IKxZw31824rxmFzrLr3TL6ZcbrxWTKivadoKupdlzbQM4SlGo4MU6Zzrqv4fzyUasTU1jDoEnzg==",
252 | "dependencies": {
253 | "@vue/reactivity": "3.2.38",
254 | "@vue/shared": "3.2.38"
255 | }
256 | },
257 | "node_modules/@vue/runtime-dom": {
258 | "version": "3.2.38",
259 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.38.tgz",
260 | "integrity": "sha512-4PKAb/ck2TjxdMSzMsnHViOrrwpudk4/A56uZjhzvusoEU9xqa5dygksbzYepdZeB5NqtRw5fRhWIiQlRVK45A==",
261 | "dependencies": {
262 | "@vue/runtime-core": "3.2.38",
263 | "@vue/shared": "3.2.38",
264 | "csstype": "^2.6.8"
265 | }
266 | },
267 | "node_modules/@vue/server-renderer": {
268 | "version": "3.2.38",
269 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.38.tgz",
270 | "integrity": "sha512-pg+JanpbOZ5kEfOZzO2bt02YHd+ELhYP8zPeLU1H0e7lg079NtuuSB8fjLdn58c4Ou8UQ6C1/P+528nXnLPAhA==",
271 | "dependencies": {
272 | "@vue/compiler-ssr": "3.2.38",
273 | "@vue/shared": "3.2.38"
274 | },
275 | "peerDependencies": {
276 | "vue": "3.2.38"
277 | }
278 | },
279 | "node_modules/@vue/shared": {
280 | "version": "3.2.38",
281 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.38.tgz",
282 | "integrity": "sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg=="
283 | },
284 | "node_modules/csstype": {
285 | "version": "2.6.20",
286 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz",
287 | "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
288 | },
289 | "node_modules/esbuild": {
290 | "version": "0.14.54",
291 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz",
292 | "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==",
293 | "dev": true,
294 | "hasInstallScript": true,
295 | "bin": {
296 | "esbuild": "bin/esbuild"
297 | },
298 | "engines": {
299 | "node": ">=12"
300 | },
301 | "optionalDependencies": {
302 | "@esbuild/linux-loong64": "0.14.54",
303 | "esbuild-android-64": "0.14.54",
304 | "esbuild-android-arm64": "0.14.54",
305 | "esbuild-darwin-64": "0.14.54",
306 | "esbuild-darwin-arm64": "0.14.54",
307 | "esbuild-freebsd-64": "0.14.54",
308 | "esbuild-freebsd-arm64": "0.14.54",
309 | "esbuild-linux-32": "0.14.54",
310 | "esbuild-linux-64": "0.14.54",
311 | "esbuild-linux-arm": "0.14.54",
312 | "esbuild-linux-arm64": "0.14.54",
313 | "esbuild-linux-mips64le": "0.14.54",
314 | "esbuild-linux-ppc64le": "0.14.54",
315 | "esbuild-linux-riscv64": "0.14.54",
316 | "esbuild-linux-s390x": "0.14.54",
317 | "esbuild-netbsd-64": "0.14.54",
318 | "esbuild-openbsd-64": "0.14.54",
319 | "esbuild-sunos-64": "0.14.54",
320 | "esbuild-windows-32": "0.14.54",
321 | "esbuild-windows-64": "0.14.54",
322 | "esbuild-windows-arm64": "0.14.54"
323 | }
324 | },
325 | "node_modules/esbuild-android-64": {
326 | "version": "0.14.54",
327 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz",
328 | "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==",
329 | "cpu": [
330 | "x64"
331 | ],
332 | "dev": true,
333 | "optional": true,
334 | "os": [
335 | "android"
336 | ],
337 | "engines": {
338 | "node": ">=12"
339 | }
340 | },
341 | "node_modules/esbuild-android-arm64": {
342 | "version": "0.14.54",
343 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz",
344 | "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==",
345 | "cpu": [
346 | "arm64"
347 | ],
348 | "dev": true,
349 | "optional": true,
350 | "os": [
351 | "android"
352 | ],
353 | "engines": {
354 | "node": ">=12"
355 | }
356 | },
357 | "node_modules/esbuild-darwin-64": {
358 | "version": "0.14.54",
359 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz",
360 | "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==",
361 | "cpu": [
362 | "x64"
363 | ],
364 | "dev": true,
365 | "optional": true,
366 | "os": [
367 | "darwin"
368 | ],
369 | "engines": {
370 | "node": ">=12"
371 | }
372 | },
373 | "node_modules/esbuild-darwin-arm64": {
374 | "version": "0.14.54",
375 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz",
376 | "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==",
377 | "cpu": [
378 | "arm64"
379 | ],
380 | "dev": true,
381 | "optional": true,
382 | "os": [
383 | "darwin"
384 | ],
385 | "engines": {
386 | "node": ">=12"
387 | }
388 | },
389 | "node_modules/esbuild-freebsd-64": {
390 | "version": "0.14.54",
391 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz",
392 | "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==",
393 | "cpu": [
394 | "x64"
395 | ],
396 | "dev": true,
397 | "optional": true,
398 | "os": [
399 | "freebsd"
400 | ],
401 | "engines": {
402 | "node": ">=12"
403 | }
404 | },
405 | "node_modules/esbuild-freebsd-arm64": {
406 | "version": "0.14.54",
407 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz",
408 | "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==",
409 | "cpu": [
410 | "arm64"
411 | ],
412 | "dev": true,
413 | "optional": true,
414 | "os": [
415 | "freebsd"
416 | ],
417 | "engines": {
418 | "node": ">=12"
419 | }
420 | },
421 | "node_modules/esbuild-linux-32": {
422 | "version": "0.14.54",
423 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz",
424 | "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==",
425 | "cpu": [
426 | "ia32"
427 | ],
428 | "dev": true,
429 | "optional": true,
430 | "os": [
431 | "linux"
432 | ],
433 | "engines": {
434 | "node": ">=12"
435 | }
436 | },
437 | "node_modules/esbuild-linux-64": {
438 | "version": "0.14.54",
439 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz",
440 | "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==",
441 | "cpu": [
442 | "x64"
443 | ],
444 | "dev": true,
445 | "optional": true,
446 | "os": [
447 | "linux"
448 | ],
449 | "engines": {
450 | "node": ">=12"
451 | }
452 | },
453 | "node_modules/esbuild-linux-arm": {
454 | "version": "0.14.54",
455 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz",
456 | "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==",
457 | "cpu": [
458 | "arm"
459 | ],
460 | "dev": true,
461 | "optional": true,
462 | "os": [
463 | "linux"
464 | ],
465 | "engines": {
466 | "node": ">=12"
467 | }
468 | },
469 | "node_modules/esbuild-linux-arm64": {
470 | "version": "0.14.54",
471 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz",
472 | "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==",
473 | "cpu": [
474 | "arm64"
475 | ],
476 | "dev": true,
477 | "optional": true,
478 | "os": [
479 | "linux"
480 | ],
481 | "engines": {
482 | "node": ">=12"
483 | }
484 | },
485 | "node_modules/esbuild-linux-mips64le": {
486 | "version": "0.14.54",
487 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz",
488 | "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==",
489 | "cpu": [
490 | "mips64el"
491 | ],
492 | "dev": true,
493 | "optional": true,
494 | "os": [
495 | "linux"
496 | ],
497 | "engines": {
498 | "node": ">=12"
499 | }
500 | },
501 | "node_modules/esbuild-linux-ppc64le": {
502 | "version": "0.14.54",
503 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz",
504 | "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==",
505 | "cpu": [
506 | "ppc64"
507 | ],
508 | "dev": true,
509 | "optional": true,
510 | "os": [
511 | "linux"
512 | ],
513 | "engines": {
514 | "node": ">=12"
515 | }
516 | },
517 | "node_modules/esbuild-linux-riscv64": {
518 | "version": "0.14.54",
519 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz",
520 | "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==",
521 | "cpu": [
522 | "riscv64"
523 | ],
524 | "dev": true,
525 | "optional": true,
526 | "os": [
527 | "linux"
528 | ],
529 | "engines": {
530 | "node": ">=12"
531 | }
532 | },
533 | "node_modules/esbuild-linux-s390x": {
534 | "version": "0.14.54",
535 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz",
536 | "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==",
537 | "cpu": [
538 | "s390x"
539 | ],
540 | "dev": true,
541 | "optional": true,
542 | "os": [
543 | "linux"
544 | ],
545 | "engines": {
546 | "node": ">=12"
547 | }
548 | },
549 | "node_modules/esbuild-netbsd-64": {
550 | "version": "0.14.54",
551 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz",
552 | "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==",
553 | "cpu": [
554 | "x64"
555 | ],
556 | "dev": true,
557 | "optional": true,
558 | "os": [
559 | "netbsd"
560 | ],
561 | "engines": {
562 | "node": ">=12"
563 | }
564 | },
565 | "node_modules/esbuild-openbsd-64": {
566 | "version": "0.14.54",
567 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz",
568 | "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==",
569 | "cpu": [
570 | "x64"
571 | ],
572 | "dev": true,
573 | "optional": true,
574 | "os": [
575 | "openbsd"
576 | ],
577 | "engines": {
578 | "node": ">=12"
579 | }
580 | },
581 | "node_modules/esbuild-sunos-64": {
582 | "version": "0.14.54",
583 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz",
584 | "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==",
585 | "cpu": [
586 | "x64"
587 | ],
588 | "dev": true,
589 | "optional": true,
590 | "os": [
591 | "sunos"
592 | ],
593 | "engines": {
594 | "node": ">=12"
595 | }
596 | },
597 | "node_modules/esbuild-windows-32": {
598 | "version": "0.14.54",
599 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz",
600 | "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==",
601 | "cpu": [
602 | "ia32"
603 | ],
604 | "dev": true,
605 | "optional": true,
606 | "os": [
607 | "win32"
608 | ],
609 | "engines": {
610 | "node": ">=12"
611 | }
612 | },
613 | "node_modules/esbuild-windows-64": {
614 | "version": "0.14.54",
615 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz",
616 | "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==",
617 | "cpu": [
618 | "x64"
619 | ],
620 | "dev": true,
621 | "optional": true,
622 | "os": [
623 | "win32"
624 | ],
625 | "engines": {
626 | "node": ">=12"
627 | }
628 | },
629 | "node_modules/esbuild-windows-arm64": {
630 | "version": "0.14.54",
631 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz",
632 | "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==",
633 | "cpu": [
634 | "arm64"
635 | ],
636 | "dev": true,
637 | "optional": true,
638 | "os": [
639 | "win32"
640 | ],
641 | "engines": {
642 | "node": ">=12"
643 | }
644 | },
645 | "node_modules/estree-walker": {
646 | "version": "2.0.2",
647 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
648 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
649 | },
650 | "node_modules/fsevents": {
651 | "version": "2.3.2",
652 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
653 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
654 | "dev": true,
655 | "hasInstallScript": true,
656 | "optional": true,
657 | "os": [
658 | "darwin"
659 | ],
660 | "engines": {
661 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
662 | }
663 | },
664 | "node_modules/function-bind": {
665 | "version": "1.1.1",
666 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
667 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
668 | "dev": true
669 | },
670 | "node_modules/has": {
671 | "version": "1.0.3",
672 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
673 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
674 | "dev": true,
675 | "dependencies": {
676 | "function-bind": "^1.1.1"
677 | },
678 | "engines": {
679 | "node": ">= 0.4.0"
680 | }
681 | },
682 | "node_modules/is-core-module": {
683 | "version": "2.10.0",
684 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
685 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
686 | "dev": true,
687 | "dependencies": {
688 | "has": "^1.0.3"
689 | },
690 | "funding": {
691 | "url": "https://github.com/sponsors/ljharb"
692 | }
693 | },
694 | "node_modules/lru-cache": {
695 | "version": "6.0.0",
696 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
697 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
698 | "dev": true,
699 | "dependencies": {
700 | "yallist": "^4.0.0"
701 | },
702 | "engines": {
703 | "node": ">=10"
704 | }
705 | },
706 | "node_modules/magic-string": {
707 | "version": "0.25.9",
708 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
709 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
710 | "dependencies": {
711 | "sourcemap-codec": "^1.4.8"
712 | }
713 | },
714 | "node_modules/nanoid": {
715 | "version": "3.3.4",
716 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
717 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
718 | "bin": {
719 | "nanoid": "bin/nanoid.cjs"
720 | },
721 | "engines": {
722 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
723 | }
724 | },
725 | "node_modules/native-promise-only": {
726 | "version": "0.8.1",
727 | "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz",
728 | "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg=="
729 | },
730 | "node_modules/path-parse": {
731 | "version": "1.0.7",
732 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
733 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
734 | "dev": true
735 | },
736 | "node_modules/picocolors": {
737 | "version": "1.0.0",
738 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
739 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
740 | },
741 | "node_modules/postcss": {
742 | "version": "8.4.16",
743 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz",
744 | "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
745 | "funding": [
746 | {
747 | "type": "opencollective",
748 | "url": "https://opencollective.com/postcss/"
749 | },
750 | {
751 | "type": "tidelift",
752 | "url": "https://tidelift.com/funding/github/npm/postcss"
753 | }
754 | ],
755 | "dependencies": {
756 | "nanoid": "^3.3.4",
757 | "picocolors": "^1.0.0",
758 | "source-map-js": "^1.0.2"
759 | },
760 | "engines": {
761 | "node": "^10 || ^12 || >=14"
762 | }
763 | },
764 | "node_modules/resolve": {
765 | "version": "1.22.1",
766 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
767 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
768 | "dev": true,
769 | "dependencies": {
770 | "is-core-module": "^2.9.0",
771 | "path-parse": "^1.0.7",
772 | "supports-preserve-symlinks-flag": "^1.0.0"
773 | },
774 | "bin": {
775 | "resolve": "bin/resolve"
776 | },
777 | "funding": {
778 | "url": "https://github.com/sponsors/ljharb"
779 | }
780 | },
781 | "node_modules/rollup": {
782 | "version": "2.77.3",
783 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz",
784 | "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==",
785 | "dev": true,
786 | "bin": {
787 | "rollup": "dist/bin/rollup"
788 | },
789 | "engines": {
790 | "node": ">=10.0.0"
791 | },
792 | "optionalDependencies": {
793 | "fsevents": "~2.3.2"
794 | }
795 | },
796 | "node_modules/semver": {
797 | "version": "7.3.7",
798 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
799 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
800 | "dev": true,
801 | "dependencies": {
802 | "lru-cache": "^6.0.0"
803 | },
804 | "bin": {
805 | "semver": "bin/semver.js"
806 | },
807 | "engines": {
808 | "node": ">=10"
809 | }
810 | },
811 | "node_modules/source-map": {
812 | "version": "0.6.1",
813 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
814 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
815 | "engines": {
816 | "node": ">=0.10.0"
817 | }
818 | },
819 | "node_modules/source-map-js": {
820 | "version": "1.0.2",
821 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
822 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
823 | "engines": {
824 | "node": ">=0.10.0"
825 | }
826 | },
827 | "node_modules/sourcemap-codec": {
828 | "version": "1.4.8",
829 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
830 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
831 | },
832 | "node_modules/supports-preserve-symlinks-flag": {
833 | "version": "1.0.0",
834 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
835 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
836 | "dev": true,
837 | "engines": {
838 | "node": ">= 0.4"
839 | },
840 | "funding": {
841 | "url": "https://github.com/sponsors/ljharb"
842 | }
843 | },
844 | "node_modules/typescript": {
845 | "version": "4.8.2",
846 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
847 | "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
848 | "dev": true,
849 | "bin": {
850 | "tsc": "bin/tsc",
851 | "tsserver": "bin/tsserver"
852 | },
853 | "engines": {
854 | "node": ">=4.2.0"
855 | }
856 | },
857 | "node_modules/vite": {
858 | "version": "3.0.9",
859 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.9.tgz",
860 | "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==",
861 | "dev": true,
862 | "dependencies": {
863 | "esbuild": "^0.14.47",
864 | "postcss": "^8.4.16",
865 | "resolve": "^1.22.1",
866 | "rollup": ">=2.75.6 <2.77.0 || ~2.77.0"
867 | },
868 | "bin": {
869 | "vite": "bin/vite.js"
870 | },
871 | "engines": {
872 | "node": "^14.18.0 || >=16.0.0"
873 | },
874 | "optionalDependencies": {
875 | "fsevents": "~2.3.2"
876 | },
877 | "peerDependencies": {
878 | "less": "*",
879 | "sass": "*",
880 | "stylus": "*",
881 | "terser": "^5.4.0"
882 | },
883 | "peerDependenciesMeta": {
884 | "less": {
885 | "optional": true
886 | },
887 | "sass": {
888 | "optional": true
889 | },
890 | "stylus": {
891 | "optional": true
892 | },
893 | "terser": {
894 | "optional": true
895 | }
896 | }
897 | },
898 | "node_modules/vue": {
899 | "version": "3.2.38",
900 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.38.tgz",
901 | "integrity": "sha512-hHrScEFSmDAWL0cwO4B6WO7D3sALZPbfuThDsGBebthrNlDxdJZpGR3WB87VbjpPh96mep1+KzukYEhpHDFa8Q==",
902 | "dependencies": {
903 | "@vue/compiler-dom": "3.2.38",
904 | "@vue/compiler-sfc": "3.2.38",
905 | "@vue/runtime-dom": "3.2.38",
906 | "@vue/server-renderer": "3.2.38",
907 | "@vue/shared": "3.2.38"
908 | }
909 | },
910 | "node_modules/vue-tsc": {
911 | "version": "0.40.5",
912 | "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.40.5.tgz",
913 | "integrity": "sha512-rQPyyqrQiDzc8a3YpAYUb27VQbU+NDewOJ7GJBiEIEcaSugMjDc6dtJijTHK32t8IgGPl6ybsJ9LIU9sZvixLA==",
914 | "dev": true,
915 | "dependencies": {
916 | "@volar/vue-language-core": "0.40.5",
917 | "@volar/vue-typescript": "0.40.5"
918 | },
919 | "bin": {
920 | "vue-tsc": "bin/vue-tsc.js"
921 | },
922 | "peerDependencies": {
923 | "typescript": "*"
924 | }
925 | },
926 | "node_modules/weakmap-polyfill": {
927 | "version": "2.0.4",
928 | "resolved": "https://registry.npmjs.org/weakmap-polyfill/-/weakmap-polyfill-2.0.4.tgz",
929 | "integrity": "sha512-ZzxBf288iALJseijWelmECm/1x7ZwQn3sMYIkDr2VvZp7r6SEKuT8D0O9Wiq6L9Nl5mazrOMcmiZE/2NCenaxw==",
930 | "engines": {
931 | "node": ">=8.10.0"
932 | }
933 | },
934 | "node_modules/yallist": {
935 | "version": "4.0.0",
936 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
937 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
938 | "dev": true
939 | }
940 | },
941 | "dependencies": {
942 | "@babel/parser": {
943 | "version": "7.18.13",
944 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz",
945 | "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg=="
946 | },
947 | "@esbuild/linux-loong64": {
948 | "version": "0.14.54",
949 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz",
950 | "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==",
951 | "dev": true,
952 | "optional": true
953 | },
954 | "@splidejs/splide-extension-video": {
955 | "version": "0.7.1",
956 | "resolved": "https://registry.npmjs.org/@splidejs/splide-extension-video/-/splide-extension-video-0.7.1.tgz",
957 | "integrity": "sha512-LrjgRCw+aW0AYohGssSLMrkUkFjX20Nuu94ymWothfP1Qj4NHiIPIk5XrntpK5DLG+5KNgSHMd8XON5jd1rwTA==",
958 | "requires": {
959 | "@vimeo/player": "^2.16.4"
960 | }
961 | },
962 | "@splidejs/vue-splide": {
963 | "version": "file:..",
964 | "requires": {
965 | "@splidejs/splide": "^4.0.7",
966 | "@types/jest": "^29.0.0",
967 | "@typescript-eslint/eslint-plugin": "^5.36.1",
968 | "@typescript-eslint/parser": "^5.36.1",
969 | "@vitejs/plugin-vue": "^3.0.3",
970 | "eslint": "^8.23.0",
971 | "eslint-plugin-vue": "^9.4.0",
972 | "fs-extra": "^10.1.0",
973 | "gh-pages": "^4.0.0",
974 | "jest": "^29.0.1",
975 | "ts-jest": "^28.0.8",
976 | "typescript": "^4.8.2",
977 | "vite": "^3.0.9",
978 | "vue": "^3.2.38",
979 | "vue-tsc": "^0.40.5"
980 | }
981 | },
982 | "@types/node": {
983 | "version": "18.7.14",
984 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz",
985 | "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==",
986 | "dev": true
987 | },
988 | "@vimeo/player": {
989 | "version": "2.17.1",
990 | "resolved": "https://registry.npmjs.org/@vimeo/player/-/player-2.17.1.tgz",
991 | "integrity": "sha512-M8uMYiOwFkqD070/pO/CuRmwKvnHBmEZKckt5C2tAaMhlldzui+lUC5zMFzO0RDPmIXwg1WdDxaJnzuic6ll/A==",
992 | "requires": {
993 | "native-promise-only": "0.8.1",
994 | "weakmap-polyfill": "2.0.4"
995 | }
996 | },
997 | "@vitejs/plugin-vue": {
998 | "version": "3.0.3",
999 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz",
1000 | "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==",
1001 | "dev": true,
1002 | "requires": {}
1003 | },
1004 | "@volar/code-gen": {
1005 | "version": "0.40.5",
1006 | "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.40.5.tgz",
1007 | "integrity": "sha512-M3D/2pmvjyGYalmldcyvTqVXhUnDxMYA2HtThmdQ8pVsTW4BVVzqrjnJAvHKNfM/zU0XA+fzIh1tfJ4Cssoe5w==",
1008 | "dev": true,
1009 | "requires": {
1010 | "@volar/source-map": "0.40.5"
1011 | }
1012 | },
1013 | "@volar/source-map": {
1014 | "version": "0.40.5",
1015 | "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.40.5.tgz",
1016 | "integrity": "sha512-HNO+svbNHXmJtDs82muusI1ErWnMpmNPDpz0Hmex5XDEa+q3NlWFXPMAxCflg294fkCfdOizyCxXYqh3UKz3VA==",
1017 | "dev": true,
1018 | "requires": {
1019 | "@vue/reactivity": "3.2.37"
1020 | },
1021 | "dependencies": {
1022 | "@vue/reactivity": {
1023 | "version": "3.2.37",
1024 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz",
1025 | "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==",
1026 | "dev": true,
1027 | "requires": {
1028 | "@vue/shared": "3.2.37"
1029 | }
1030 | },
1031 | "@vue/shared": {
1032 | "version": "3.2.37",
1033 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz",
1034 | "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==",
1035 | "dev": true
1036 | }
1037 | }
1038 | },
1039 | "@volar/typescript-faster": {
1040 | "version": "0.40.5",
1041 | "resolved": "https://registry.npmjs.org/@volar/typescript-faster/-/typescript-faster-0.40.5.tgz",
1042 | "integrity": "sha512-DfIVkQawbesz+8ghbYS1NnlIQjfMIDsSJY/bumIJk98M/tM/2Fykhiil3GDfTr6ju/fAqDpfF8VF8XpYDWPc7w==",
1043 | "dev": true,
1044 | "requires": {
1045 | "semver": "^7.3.7"
1046 | }
1047 | },
1048 | "@volar/vue-language-core": {
1049 | "version": "0.40.5",
1050 | "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-0.40.5.tgz",
1051 | "integrity": "sha512-4EpMQdLaORWg3EBZtgqzgkNRm1+qvyvCyLbnWHT2SPkUuHObPcbyA3giXbOEnPB0pnQpr2nVTv+tRLWvksXdyA==",
1052 | "dev": true,
1053 | "requires": {
1054 | "@volar/code-gen": "0.40.5",
1055 | "@volar/source-map": "0.40.5",
1056 | "@vue/compiler-core": "^3.2.37",
1057 | "@vue/compiler-dom": "^3.2.37",
1058 | "@vue/compiler-sfc": "^3.2.37",
1059 | "@vue/reactivity": "^3.2.37",
1060 | "@vue/shared": "^3.2.37"
1061 | }
1062 | },
1063 | "@volar/vue-typescript": {
1064 | "version": "0.40.5",
1065 | "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-0.40.5.tgz",
1066 | "integrity": "sha512-6OHJ87e8A3Z0xuWmBg72X5aYbW/EatogB168827j/OL371eiy3dExqa5y2+eJuWYjDiRJOmlHzhUElN+OEQRZQ==",
1067 | "dev": true,
1068 | "requires": {
1069 | "@volar/code-gen": "0.40.5",
1070 | "@volar/typescript-faster": "0.40.5",
1071 | "@volar/vue-language-core": "0.40.5"
1072 | }
1073 | },
1074 | "@vue/compiler-core": {
1075 | "version": "3.2.38",
1076 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.38.tgz",
1077 | "integrity": "sha512-/FsvnSu7Z+lkd/8KXMa4yYNUiqQrI22135gfsQYVGuh5tqEgOB0XqrUdb/KnCLa5+TmQLPwvyUnKMyCpu+SX3Q==",
1078 | "requires": {
1079 | "@babel/parser": "^7.16.4",
1080 | "@vue/shared": "3.2.38",
1081 | "estree-walker": "^2.0.2",
1082 | "source-map": "^0.6.1"
1083 | }
1084 | },
1085 | "@vue/compiler-dom": {
1086 | "version": "3.2.38",
1087 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.38.tgz",
1088 | "integrity": "sha512-zqX4FgUbw56kzHlgYuEEJR8mefFiiyR3u96498+zWPsLeh1WKvgIReoNE+U7gG8bCUdvsrJ0JRmev0Ky6n2O0g==",
1089 | "requires": {
1090 | "@vue/compiler-core": "3.2.38",
1091 | "@vue/shared": "3.2.38"
1092 | }
1093 | },
1094 | "@vue/compiler-sfc": {
1095 | "version": "3.2.38",
1096 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.38.tgz",
1097 | "integrity": "sha512-KZjrW32KloMYtTcHAFuw3CqsyWc5X6seb8KbkANSWt3Cz9p2qA8c1GJpSkksFP9ABb6an0FLCFl46ZFXx3kKpg==",
1098 | "requires": {
1099 | "@babel/parser": "^7.16.4",
1100 | "@vue/compiler-core": "3.2.38",
1101 | "@vue/compiler-dom": "3.2.38",
1102 | "@vue/compiler-ssr": "3.2.38",
1103 | "@vue/reactivity-transform": "3.2.38",
1104 | "@vue/shared": "3.2.38",
1105 | "estree-walker": "^2.0.2",
1106 | "magic-string": "^0.25.7",
1107 | "postcss": "^8.1.10",
1108 | "source-map": "^0.6.1"
1109 | }
1110 | },
1111 | "@vue/compiler-ssr": {
1112 | "version": "3.2.38",
1113 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.38.tgz",
1114 | "integrity": "sha512-bm9jOeyv1H3UskNm4S6IfueKjUNFmi2kRweFIGnqaGkkRePjwEcfCVqyS3roe7HvF4ugsEkhf4+kIvDhip6XzQ==",
1115 | "requires": {
1116 | "@vue/compiler-dom": "3.2.38",
1117 | "@vue/shared": "3.2.38"
1118 | }
1119 | },
1120 | "@vue/reactivity": {
1121 | "version": "3.2.38",
1122 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.38.tgz",
1123 | "integrity": "sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==",
1124 | "requires": {
1125 | "@vue/shared": "3.2.38"
1126 | }
1127 | },
1128 | "@vue/reactivity-transform": {
1129 | "version": "3.2.38",
1130 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.38.tgz",
1131 | "integrity": "sha512-3SD3Jmi1yXrDwiNJqQ6fs1x61WsDLqVk4NyKVz78mkaIRh6d3IqtRnptgRfXn+Fzf+m6B1KxBYWq1APj6h4qeA==",
1132 | "requires": {
1133 | "@babel/parser": "^7.16.4",
1134 | "@vue/compiler-core": "3.2.38",
1135 | "@vue/shared": "3.2.38",
1136 | "estree-walker": "^2.0.2",
1137 | "magic-string": "^0.25.7"
1138 | }
1139 | },
1140 | "@vue/runtime-core": {
1141 | "version": "3.2.38",
1142 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.38.tgz",
1143 | "integrity": "sha512-kk0qiSiXUU/IKxZw31824rxmFzrLr3TL6ZcbrxWTKivadoKupdlzbQM4SlGo4MU6Zzrqv4fzyUasTU1jDoEnzg==",
1144 | "requires": {
1145 | "@vue/reactivity": "3.2.38",
1146 | "@vue/shared": "3.2.38"
1147 | }
1148 | },
1149 | "@vue/runtime-dom": {
1150 | "version": "3.2.38",
1151 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.38.tgz",
1152 | "integrity": "sha512-4PKAb/ck2TjxdMSzMsnHViOrrwpudk4/A56uZjhzvusoEU9xqa5dygksbzYepdZeB5NqtRw5fRhWIiQlRVK45A==",
1153 | "requires": {
1154 | "@vue/runtime-core": "3.2.38",
1155 | "@vue/shared": "3.2.38",
1156 | "csstype": "^2.6.8"
1157 | }
1158 | },
1159 | "@vue/server-renderer": {
1160 | "version": "3.2.38",
1161 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.38.tgz",
1162 | "integrity": "sha512-pg+JanpbOZ5kEfOZzO2bt02YHd+ELhYP8zPeLU1H0e7lg079NtuuSB8fjLdn58c4Ou8UQ6C1/P+528nXnLPAhA==",
1163 | "requires": {
1164 | "@vue/compiler-ssr": "3.2.38",
1165 | "@vue/shared": "3.2.38"
1166 | }
1167 | },
1168 | "@vue/shared": {
1169 | "version": "3.2.38",
1170 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.38.tgz",
1171 | "integrity": "sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg=="
1172 | },
1173 | "csstype": {
1174 | "version": "2.6.20",
1175 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz",
1176 | "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
1177 | },
1178 | "esbuild": {
1179 | "version": "0.14.54",
1180 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz",
1181 | "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==",
1182 | "dev": true,
1183 | "requires": {
1184 | "@esbuild/linux-loong64": "0.14.54",
1185 | "esbuild-android-64": "0.14.54",
1186 | "esbuild-android-arm64": "0.14.54",
1187 | "esbuild-darwin-64": "0.14.54",
1188 | "esbuild-darwin-arm64": "0.14.54",
1189 | "esbuild-freebsd-64": "0.14.54",
1190 | "esbuild-freebsd-arm64": "0.14.54",
1191 | "esbuild-linux-32": "0.14.54",
1192 | "esbuild-linux-64": "0.14.54",
1193 | "esbuild-linux-arm": "0.14.54",
1194 | "esbuild-linux-arm64": "0.14.54",
1195 | "esbuild-linux-mips64le": "0.14.54",
1196 | "esbuild-linux-ppc64le": "0.14.54",
1197 | "esbuild-linux-riscv64": "0.14.54",
1198 | "esbuild-linux-s390x": "0.14.54",
1199 | "esbuild-netbsd-64": "0.14.54",
1200 | "esbuild-openbsd-64": "0.14.54",
1201 | "esbuild-sunos-64": "0.14.54",
1202 | "esbuild-windows-32": "0.14.54",
1203 | "esbuild-windows-64": "0.14.54",
1204 | "esbuild-windows-arm64": "0.14.54"
1205 | }
1206 | },
1207 | "esbuild-android-64": {
1208 | "version": "0.14.54",
1209 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz",
1210 | "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==",
1211 | "dev": true,
1212 | "optional": true
1213 | },
1214 | "esbuild-android-arm64": {
1215 | "version": "0.14.54",
1216 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz",
1217 | "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==",
1218 | "dev": true,
1219 | "optional": true
1220 | },
1221 | "esbuild-darwin-64": {
1222 | "version": "0.14.54",
1223 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz",
1224 | "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==",
1225 | "dev": true,
1226 | "optional": true
1227 | },
1228 | "esbuild-darwin-arm64": {
1229 | "version": "0.14.54",
1230 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz",
1231 | "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==",
1232 | "dev": true,
1233 | "optional": true
1234 | },
1235 | "esbuild-freebsd-64": {
1236 | "version": "0.14.54",
1237 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz",
1238 | "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==",
1239 | "dev": true,
1240 | "optional": true
1241 | },
1242 | "esbuild-freebsd-arm64": {
1243 | "version": "0.14.54",
1244 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz",
1245 | "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==",
1246 | "dev": true,
1247 | "optional": true
1248 | },
1249 | "esbuild-linux-32": {
1250 | "version": "0.14.54",
1251 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz",
1252 | "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==",
1253 | "dev": true,
1254 | "optional": true
1255 | },
1256 | "esbuild-linux-64": {
1257 | "version": "0.14.54",
1258 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz",
1259 | "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==",
1260 | "dev": true,
1261 | "optional": true
1262 | },
1263 | "esbuild-linux-arm": {
1264 | "version": "0.14.54",
1265 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz",
1266 | "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==",
1267 | "dev": true,
1268 | "optional": true
1269 | },
1270 | "esbuild-linux-arm64": {
1271 | "version": "0.14.54",
1272 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz",
1273 | "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==",
1274 | "dev": true,
1275 | "optional": true
1276 | },
1277 | "esbuild-linux-mips64le": {
1278 | "version": "0.14.54",
1279 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz",
1280 | "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==",
1281 | "dev": true,
1282 | "optional": true
1283 | },
1284 | "esbuild-linux-ppc64le": {
1285 | "version": "0.14.54",
1286 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz",
1287 | "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==",
1288 | "dev": true,
1289 | "optional": true
1290 | },
1291 | "esbuild-linux-riscv64": {
1292 | "version": "0.14.54",
1293 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz",
1294 | "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==",
1295 | "dev": true,
1296 | "optional": true
1297 | },
1298 | "esbuild-linux-s390x": {
1299 | "version": "0.14.54",
1300 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz",
1301 | "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==",
1302 | "dev": true,
1303 | "optional": true
1304 | },
1305 | "esbuild-netbsd-64": {
1306 | "version": "0.14.54",
1307 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz",
1308 | "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==",
1309 | "dev": true,
1310 | "optional": true
1311 | },
1312 | "esbuild-openbsd-64": {
1313 | "version": "0.14.54",
1314 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz",
1315 | "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==",
1316 | "dev": true,
1317 | "optional": true
1318 | },
1319 | "esbuild-sunos-64": {
1320 | "version": "0.14.54",
1321 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz",
1322 | "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==",
1323 | "dev": true,
1324 | "optional": true
1325 | },
1326 | "esbuild-windows-32": {
1327 | "version": "0.14.54",
1328 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz",
1329 | "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==",
1330 | "dev": true,
1331 | "optional": true
1332 | },
1333 | "esbuild-windows-64": {
1334 | "version": "0.14.54",
1335 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz",
1336 | "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==",
1337 | "dev": true,
1338 | "optional": true
1339 | },
1340 | "esbuild-windows-arm64": {
1341 | "version": "0.14.54",
1342 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz",
1343 | "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==",
1344 | "dev": true,
1345 | "optional": true
1346 | },
1347 | "estree-walker": {
1348 | "version": "2.0.2",
1349 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1350 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
1351 | },
1352 | "fsevents": {
1353 | "version": "2.3.2",
1354 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1355 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1356 | "dev": true,
1357 | "optional": true
1358 | },
1359 | "function-bind": {
1360 | "version": "1.1.1",
1361 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1362 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1363 | "dev": true
1364 | },
1365 | "has": {
1366 | "version": "1.0.3",
1367 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1368 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1369 | "dev": true,
1370 | "requires": {
1371 | "function-bind": "^1.1.1"
1372 | }
1373 | },
1374 | "is-core-module": {
1375 | "version": "2.10.0",
1376 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
1377 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
1378 | "dev": true,
1379 | "requires": {
1380 | "has": "^1.0.3"
1381 | }
1382 | },
1383 | "lru-cache": {
1384 | "version": "6.0.0",
1385 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1386 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1387 | "dev": true,
1388 | "requires": {
1389 | "yallist": "^4.0.0"
1390 | }
1391 | },
1392 | "magic-string": {
1393 | "version": "0.25.9",
1394 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
1395 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
1396 | "requires": {
1397 | "sourcemap-codec": "^1.4.8"
1398 | }
1399 | },
1400 | "nanoid": {
1401 | "version": "3.3.4",
1402 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
1403 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
1404 | },
1405 | "native-promise-only": {
1406 | "version": "0.8.1",
1407 | "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz",
1408 | "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg=="
1409 | },
1410 | "path-parse": {
1411 | "version": "1.0.7",
1412 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1413 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1414 | "dev": true
1415 | },
1416 | "picocolors": {
1417 | "version": "1.0.0",
1418 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1419 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
1420 | },
1421 | "postcss": {
1422 | "version": "8.4.16",
1423 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz",
1424 | "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
1425 | "requires": {
1426 | "nanoid": "^3.3.4",
1427 | "picocolors": "^1.0.0",
1428 | "source-map-js": "^1.0.2"
1429 | }
1430 | },
1431 | "resolve": {
1432 | "version": "1.22.1",
1433 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
1434 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
1435 | "dev": true,
1436 | "requires": {
1437 | "is-core-module": "^2.9.0",
1438 | "path-parse": "^1.0.7",
1439 | "supports-preserve-symlinks-flag": "^1.0.0"
1440 | }
1441 | },
1442 | "rollup": {
1443 | "version": "2.77.3",
1444 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz",
1445 | "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==",
1446 | "dev": true,
1447 | "requires": {
1448 | "fsevents": "~2.3.2"
1449 | }
1450 | },
1451 | "semver": {
1452 | "version": "7.3.7",
1453 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
1454 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
1455 | "dev": true,
1456 | "requires": {
1457 | "lru-cache": "^6.0.0"
1458 | }
1459 | },
1460 | "source-map": {
1461 | "version": "0.6.1",
1462 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1463 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
1464 | },
1465 | "source-map-js": {
1466 | "version": "1.0.2",
1467 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1468 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
1469 | },
1470 | "sourcemap-codec": {
1471 | "version": "1.4.8",
1472 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
1473 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
1474 | },
1475 | "supports-preserve-symlinks-flag": {
1476 | "version": "1.0.0",
1477 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1478 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1479 | "dev": true
1480 | },
1481 | "typescript": {
1482 | "version": "4.8.2",
1483 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
1484 | "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
1485 | "dev": true
1486 | },
1487 | "vite": {
1488 | "version": "3.0.9",
1489 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.9.tgz",
1490 | "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==",
1491 | "dev": true,
1492 | "requires": {
1493 | "esbuild": "^0.14.47",
1494 | "fsevents": "~2.3.2",
1495 | "postcss": "^8.4.16",
1496 | "resolve": "^1.22.1",
1497 | "rollup": ">=2.75.6 <2.77.0 || ~2.77.0"
1498 | }
1499 | },
1500 | "vue": {
1501 | "version": "3.2.38",
1502 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.38.tgz",
1503 | "integrity": "sha512-hHrScEFSmDAWL0cwO4B6WO7D3sALZPbfuThDsGBebthrNlDxdJZpGR3WB87VbjpPh96mep1+KzukYEhpHDFa8Q==",
1504 | "requires": {
1505 | "@vue/compiler-dom": "3.2.38",
1506 | "@vue/compiler-sfc": "3.2.38",
1507 | "@vue/runtime-dom": "3.2.38",
1508 | "@vue/server-renderer": "3.2.38",
1509 | "@vue/shared": "3.2.38"
1510 | }
1511 | },
1512 | "vue-tsc": {
1513 | "version": "0.40.5",
1514 | "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.40.5.tgz",
1515 | "integrity": "sha512-rQPyyqrQiDzc8a3YpAYUb27VQbU+NDewOJ7GJBiEIEcaSugMjDc6dtJijTHK32t8IgGPl6ybsJ9LIU9sZvixLA==",
1516 | "dev": true,
1517 | "requires": {
1518 | "@volar/vue-language-core": "0.40.5",
1519 | "@volar/vue-typescript": "0.40.5"
1520 | }
1521 | },
1522 | "weakmap-polyfill": {
1523 | "version": "2.0.4",
1524 | "resolved": "https://registry.npmjs.org/weakmap-polyfill/-/weakmap-polyfill-2.0.4.tgz",
1525 | "integrity": "sha512-ZzxBf288iALJseijWelmECm/1x7ZwQn3sMYIkDr2VvZp7r6SEKuT8D0O9Wiq6L9Nl5mazrOMcmiZE/2NCenaxw=="
1526 | },
1527 | "yallist": {
1528 | "version": "4.0.0",
1529 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1530 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1531 | "dev": true
1532 | }
1533 | }
1534 | }
1535 |
--------------------------------------------------------------------------------
/examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-splide-example",
3 | "version": "1.0.0",
4 | "private": true,
5 | "dependencies": {
6 | "@splidejs/splide-extension-video": "^0.7.1",
7 | "@splidejs/vue-splide": "file:..",
8 | "vue": "^3.2.38"
9 | },
10 | "devDependencies": {
11 | "@types/node": "^18.7.14",
12 | "@vitejs/plugin-vue": "^3.0.3",
13 | "typescript": "^4.8.2",
14 | "vite": "^3.0.9",
15 | "vue-tsc": "^0.40.5"
16 | },
17 | "scripts": {
18 | "develop": "vite",
19 | "build": "vite build",
20 | "build:all": "vue-tsc --noEmit && vite build",
21 | "serve": "vite preview"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/examples/public/logo.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/examples/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
24 |
25 |
64 |
--------------------------------------------------------------------------------
/examples/src/assets/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Splidejs/vue-splide/a3657c7b63aa851ea163bde5774e3e776f504f4e/examples/src/assets/favicon.png
--------------------------------------------------------------------------------
/examples/src/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/examples/src/components/AutoplayExample.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Autoplay
4 |
5 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
22 |
23 |
27 |
28 |
29 |
30 |
31 |
61 |
--------------------------------------------------------------------------------
/examples/src/components/BasicExample.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Basic
4 |
5 |
12 |
13 |
14 |
15 |
16 |
17 |
20 |
21 |
22 |
23 |
66 |
67 |
--------------------------------------------------------------------------------
/examples/src/components/DynamicSlideExample.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Dynamic Slides
4 |
5 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
69 |
70 |
75 |
--------------------------------------------------------------------------------
/examples/src/components/ReactivityExample.vue:
--------------------------------------------------------------------------------
1 |
2 |
36 |
37 |
38 |
73 |
74 |
89 |
90 |
--------------------------------------------------------------------------------
/examples/src/components/ThumbnailsExample.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Thumbnails
4 |
5 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
85 |
--------------------------------------------------------------------------------
/examples/src/components/VideoExample.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Video
4 |
5 |
10 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
51 |
--------------------------------------------------------------------------------
/examples/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | declare module '*.vue' {
4 | import { DefineComponent } from 'vue'
5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
6 | const component: DefineComponent<{}, {}, any>
7 | export default component
8 | }
9 |
--------------------------------------------------------------------------------
/examples/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | // import VueSplide from '@splidejs/vue-splide';
4 |
5 |
6 | const app = createApp( App );
7 | // For global install
8 | // app.use( VueSplide );
9 | app.mount( '#app' );
10 |
--------------------------------------------------------------------------------
/examples/src/utils/generateSlides/generateSlides.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Return an array with objects containing data of sample images.
3 | *
4 | * @param length - Optional. A number of slides.
5 | * @param sig - Optional. The signature for getting a different image.
6 | *
7 | * @return An array with objects for sample images.
8 | */
9 | export function generateSlides( length = 10, sig = 0 ): Array<{ src: string, alt: string }> {
10 | return Array.from( { length } ).map( ( value, index ) => {
11 | index = sig || index;
12 |
13 | return {
14 | src: `https://source.unsplash.com/random/800x450?sig=${ index }`,
15 | alt: `Image ${ index }`,
16 | };
17 | } );
18 | }
19 |
--------------------------------------------------------------------------------
/examples/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | export { generateSlides } from './generateSlides/generateSlides';
2 |
--------------------------------------------------------------------------------
/examples/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "esnext",
4 | "useDefineForClassFields": true,
5 | "module": "esnext",
6 | "moduleResolution": "node",
7 | "strict": true,
8 | "jsx": "preserve",
9 | "skipLibCheck": true,
10 | "sourceMap": true,
11 | "resolveJsonModule": true,
12 | "esModuleInterop": true,
13 | "allowJs": true,
14 | "lib": [
15 | "esnext",
16 | "dom"
17 | ]
18 | },
19 | "include": [
20 | "src/**/*.ts",
21 | "src/**/*.d.ts",
22 | "src/**/*.tsx",
23 | "src/**/*.vue"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/examples/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite';
2 | import vue from '@vitejs/plugin-vue';
3 | import path from 'path';
4 |
5 |
6 | export default defineConfig( {
7 | base: './',
8 | plugins: [ vue() ],
9 | resolve: {
10 | alias: [
11 | { find: 'vue', replacement: path.resolve( './node_modules/vue' ) },
12 | ],
13 | }
14 | } );
15 |
--------------------------------------------------------------------------------
/images/logo.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/images/vue-logo.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | rootDir: './src',
3 | transform: {
4 | '^.+\\.[tj]s$': 'ts-jest',
5 | },
6 | testEnvironment: 'jsdom',
7 | };
8 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@splidejs/vue-splide",
3 | "version": "0.6.12",
4 | "description": "The Splide component for Vue.",
5 | "author": "Naotoshi Fujita",
6 | "license": "MIT",
7 | "main": "dist/js/vue-splide.cjs.js",
8 | "module": "dist/js/vue-splide.esm.js",
9 | "types": "src/js/index.ts",
10 | "keywords": [
11 | "splide",
12 | "slider",
13 | "carousel",
14 | "slideshow",
15 | "lightweight",
16 | "touch",
17 | "responsive",
18 | "vue"
19 | ],
20 | "repository": {
21 | "type": "git",
22 | "url": "https://github.com/Splidejs/vue-splide.git"
23 | },
24 | "bugs": {
25 | "url": "https://github.com/Splidejs/vue-splide/issues"
26 | },
27 | "devDependencies": {
28 | "@types/jest": "^29.0.0",
29 | "@typescript-eslint/eslint-plugin": "^5.36.2",
30 | "@typescript-eslint/parser": "^5.36.2",
31 | "@vitejs/plugin-vue": "^3.1.0",
32 | "eslint": "^8.23.0",
33 | "eslint-plugin-vue": "^9.4.0",
34 | "fs-extra": "^10.1.0",
35 | "gh-pages": "^4.0.0",
36 | "jest": "^29.0.2",
37 | "ts-jest": "next",
38 | "typescript": "^4.8.2",
39 | "vite": "^3.1.0",
40 | "vue": "^3.2.38",
41 | "vue-tsc": "^0.40.9"
42 | },
43 | "scripts": {
44 | "develop": "vite build",
45 | "check:type": "vue-tsc --noEmit",
46 | "build": "vite build --watch false",
47 | "build:all": "npm run check:type && npm run build && node scripts/copy-css.js",
48 | "test": "jest",
49 | "eslint": "eslint src",
50 | "deploy": "gh-pages -d examples/dist"
51 | },
52 | "exports": {
53 | ".": {
54 | "require": "./dist/js/vue-splide.cjs.js",
55 | "import": "./dist/js/vue-splide.esm.js",
56 | "default": "./dist/js/vue-splide.esm.js"
57 | },
58 | "./css": "./dist/css/splide.min.css",
59 | "./css/core": "./dist/css/splide-core.min.css",
60 | "./css/*": "./dist/css/themes/splide-*.min.css"
61 | },
62 | "dependencies": {
63 | "@splidejs/splide": "^4.1.3"
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/scripts/copy-css.js:
--------------------------------------------------------------------------------
1 | const fs = require( 'fs-extra' );
2 |
3 | async function copy() {
4 | await fs.copy( './node_modules/@splidejs/splide/dist/css', './dist/css', { overwrite: true } );
5 | }
6 |
7 | copy().catch( console.error )
8 |
--------------------------------------------------------------------------------
/src/js/build/iife.ts:
--------------------------------------------------------------------------------
1 | export { VueSplide as default } from '../plugin/plugin';
2 |
--------------------------------------------------------------------------------
/src/js/components/Splide/Splide.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
146 |
--------------------------------------------------------------------------------
/src/js/components/SplideSlide/SplideSlide.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
20 |
--------------------------------------------------------------------------------
/src/js/components/SplideTrack/SplideTrack.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
30 |
--------------------------------------------------------------------------------
/src/js/components/index.ts:
--------------------------------------------------------------------------------
1 | export { default as Splide } from './Splide/Splide.vue';
2 | export { default as SplideTrack } from './SplideTrack/SplideTrack.vue';
3 | export { default as SplideSlide } from './SplideSlide/SplideSlide.vue';
4 |
--------------------------------------------------------------------------------
/src/js/constants/events.ts:
--------------------------------------------------------------------------------
1 | import {
2 | EVENT_ACTIVE,
3 | EVENT_ARROWS_MOUNTED,
4 | EVENT_ARROWS_UPDATED,
5 | EVENT_AUTOPLAY_PAUSE,
6 | EVENT_AUTOPLAY_PLAY,
7 | EVENT_AUTOPLAY_PLAYING,
8 | EVENT_CLICK,
9 | EVENT_DESTROY,
10 | EVENT_DRAG,
11 | EVENT_DRAGGED,
12 | EVENT_DRAGGING,
13 | EVENT_HIDDEN,
14 | EVENT_INACTIVE,
15 | EVENT_LAZYLOAD_LOADED,
16 | EVENT_MOUNTED,
17 | EVENT_MOVE,
18 | EVENT_MOVED,
19 | EVENT_NAVIGATION_MOUNTED,
20 | EVENT_PAGINATION_MOUNTED,
21 | EVENT_PAGINATION_UPDATED,
22 | EVENT_REFRESH,
23 | EVENT_RESIZE,
24 | EVENT_RESIZED,
25 | EVENT_SCROLL,
26 | EVENT_SCROLLED,
27 | EVENT_UPDATED,
28 | EVENT_VISIBLE,
29 | EventMap,
30 | } from '@splidejs/splide';
31 |
32 |
33 | export const EVENTS: Array = [
34 | EVENT_ACTIVE,
35 | EVENT_ARROWS_MOUNTED,
36 | EVENT_ARROWS_UPDATED,
37 | EVENT_AUTOPLAY_PAUSE,
38 | EVENT_AUTOPLAY_PLAY,
39 | EVENT_AUTOPLAY_PLAYING,
40 | EVENT_CLICK,
41 | EVENT_DESTROY,
42 | EVENT_DRAG,
43 | EVENT_DRAGGED,
44 | EVENT_DRAGGING,
45 | EVENT_HIDDEN,
46 | EVENT_INACTIVE,
47 | EVENT_LAZYLOAD_LOADED,
48 | EVENT_MOUNTED,
49 | EVENT_MOVE,
50 | EVENT_MOVED,
51 | EVENT_NAVIGATION_MOUNTED,
52 | EVENT_PAGINATION_MOUNTED,
53 | EVENT_PAGINATION_UPDATED,
54 | EVENT_REFRESH,
55 | EVENT_RESIZE,
56 | EVENT_RESIZED,
57 | EVENT_SCROLL,
58 | EVENT_SCROLLED,
59 | EVENT_UPDATED,
60 | EVENT_VISIBLE,
61 | ];
62 |
--------------------------------------------------------------------------------
/src/js/constants/keys.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * The injection key for a splide instance.
3 | *
4 | * @since 0.6.0
5 | */
6 | export const SPLIDE_INJECTION_KEY = 'splide';
7 |
--------------------------------------------------------------------------------
/src/js/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | declare module '*.vue' {
4 | import { DefineComponent } from 'vue';
5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
6 | const component: DefineComponent<{}, {}, any>;
7 | export default component;
8 | }
9 |
--------------------------------------------------------------------------------
/src/js/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 | export { VueSplide as default } from './plugin/plugin';
3 | export type { Options } from '@splidejs/splide';
4 |
--------------------------------------------------------------------------------
/src/js/plugin/plugin.ts:
--------------------------------------------------------------------------------
1 | import { App } from 'vue';
2 | import { Splide, SplideSlide } from '../components';
3 |
4 |
5 | export const VueSplide = {
6 | install( app: App ): void {
7 | app.component( Splide.name, Splide );
8 | app.component( SplideSlide.name, SplideSlide );
9 | },
10 | };
11 |
--------------------------------------------------------------------------------
/src/js/utils/forOwn/forOwn.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Iterates over the provided object by own enumerable keys with calling the iteratee function.
3 | *
4 | * @param object - An object to iterate over.
5 | * @param iteratee - An iteratee function that takes the value and key as arguments.
6 | *
7 | * @return A provided object itself.
8 | */
9 | export function forOwn(
10 | object: T,
11 | iteratee: ( value: T[ keyof T ], key: keyof T ) => boolean | void
12 | ): T {
13 | if ( object ) {
14 | const keys = Object.keys( object ) as Array;
15 |
16 | for ( let i = 0; i < keys.length; i++ ) {
17 | const key = keys[ i ];
18 |
19 | if ( key !== '__proto__' ) {
20 | if ( iteratee( object[ key ], key ) === false ) {
21 | break;
22 | }
23 | }
24 | }
25 | }
26 |
27 | return object;
28 | }
29 |
--------------------------------------------------------------------------------
/src/js/utils/forOwn/test/forOwn.test.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Splidejs/vue-splide/a3657c7b63aa851ea163bde5774e3e776f504f4e/src/js/utils/forOwn/test/forOwn.test.ts
--------------------------------------------------------------------------------
/src/js/utils/index.ts:
--------------------------------------------------------------------------------
1 | export { isEqualShallow } from './isEqualShallow/isEqualShallow';
2 | export { isObject } from './isObject/isObject';
3 | export { merge } from './merge/merge';
4 | export { forOwn } from './forOwn/forOwn';
5 |
--------------------------------------------------------------------------------
/src/js/utils/isEqualShallow/isEqualShallow.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Checks if provided two arrays are shallowly equal or not.
3 | *
4 | * @param array1 - An array to test.
5 | * @param array2 - Anther array to test.
6 | *
7 | * @return `true` if they are considered as equal, or otherwise `false`.
8 | */
9 | export function isEqualShallow( array1: unknown[], array2: unknown[] ): boolean {
10 | return array1.length === array2.length
11 | && ! array1.some( ( elm, index ) => elm !== array2[ index ] );
12 | }
13 |
--------------------------------------------------------------------------------
/src/js/utils/isEqualShallow/test/isEqualShallow.test.ts:
--------------------------------------------------------------------------------
1 | import { isEqualShallow } from '../isEqualShallow';
2 |
3 |
4 | describe( 'isEqualShallow', () => {
5 | test( 'can check if 2 arrays with primitives are shallowly equal or not.', () => {
6 | const array1 = [ 1, true, '1' ];
7 | const array2 = [ 1, true, '1' ];
8 | const array3 = [ 1, true, '3' ];
9 |
10 | expect( isEqualShallow( array1, array2 ) ).toBe( true );
11 | expect( isEqualShallow( array1, array3 ) ).toBe( false );
12 | } );
13 |
14 | test( 'can check if 2 arrays with objects are shallowly equal or not.', () => {
15 | const object1 = {};
16 | const object2 = {};
17 |
18 | const array1 = [ object1, object2 ];
19 | const array2 = [ object1, object2 ];
20 | const array3 = [ object2, object2 ];
21 |
22 | expect( isEqualShallow( array1, array2 ) ).toBe( true );
23 | expect( isEqualShallow( array1, array3 ) ).toBe( false );
24 | } );
25 |
26 | test( 'should return false if length of testing arrays are different.', () => {
27 | const array1 = [ 1, 1 ];
28 | const array2 = [ 1, 1, 1 ];
29 |
30 | expect( isEqualShallow( array1, array2 ) ).toBe( false );
31 | } );
32 | } );
33 |
--------------------------------------------------------------------------------
/src/js/utils/isObject/isObject.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Checks if the given subject is an object or not.
3 | *
4 | * @param subject - A subject to check.
5 | *
6 | * @return `true` if the subject is an object, or otherwise `false`.
7 | */
8 | export function isObject( subject: unknown ): subject is object {
9 | return subject !== null && typeof subject === 'object';
10 | }
11 |
--------------------------------------------------------------------------------
/src/js/utils/isObject/test/isObject.test.ts:
--------------------------------------------------------------------------------
1 | import { isObject } from '../isObject';
2 |
3 |
4 | describe( 'isObject', () => {
5 | test( 'can return `true` if the subject is an object.', () => {
6 | [ {}, { a: 1 }, new Map(), [] ].forEach( subject => {
7 | expect( isObject( subject ) ).toBe( true );
8 | } );
9 | } );
10 |
11 | test( 'can return `false` if the subject is not an object.', () => {
12 | [ 1, true, '1', () => 1, null, undefined, NaN, BigInt( 1 ) ].forEach( subject => {
13 | expect( isObject( subject ) ).toBe( false );
14 | } );
15 | } );
16 | } );
17 |
--------------------------------------------------------------------------------
/src/js/utils/merge/merge.test.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Splidejs/vue-splide/a3657c7b63aa851ea163bde5774e3e776f504f4e/src/js/utils/merge/merge.test.ts
--------------------------------------------------------------------------------
/src/js/utils/merge/merge.ts:
--------------------------------------------------------------------------------
1 | import { forOwn } from '../forOwn/forOwn';
2 | import { isObject } from '../isObject/isObject';
3 |
4 |
5 | /**
6 | * Merges U to T.
7 | *
8 | * @typeParam T - An object to merge U into.
9 | * @typeParam U - An object to merge properties from.
10 | *
11 | * @return An merged object type.
12 | */
13 | export type Merge = Omit & {
14 | [ K in ( keyof T & keyof U ) ]: U[ K ] extends object
15 | ? U[ K ] extends any[]
16 | ? U[ K ]
17 | : T[ K ] extends object
18 | ? Merge extends infer A ? Cast : never
19 | : U[ K ]
20 | : U[ K ];
21 | } & Omit;
22 |
23 | type Cast = T extends U ? T : U;
24 |
25 | /**
26 | * Recursively merges source properties to the object.
27 | * Be aware that this method does not merge arrays. They are just duplicated by `slice()`.
28 | *
29 | * @param object - An object to merge properties to.
30 | * @param source - A source object to merge properties from.
31 | *
32 | * @return A new object with merged properties.
33 | */
34 | export function merge( object: T, source: U ): Merge {
35 | const merged = object as any;
36 |
37 | forOwn( source, ( value, key ) => {
38 | if ( Array.isArray( value ) ) {
39 | merged[ key ] = value.slice();
40 | } else if ( isObject( value ) ) {
41 | merged[ key ] = merge( isObject( merged[ key ] ) ? merged[ key ] : {}, value );
42 | } else {
43 | merged[ key ] = value;
44 | }
45 | } );
46 |
47 | return merged as Merge;
48 | }
49 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "esnext",
4 | "useDefineForClassFields": true,
5 | "strict": true,
6 | "jsx": "preserve",
7 | "esModuleInterop": true,
8 | "module": "esnext",
9 | "moduleResolution": "node",
10 | "declarationDir": "./dist/types",
11 | "declaration": true,
12 | "declarationMap": true,
13 | "mapRoot": "./",
14 | "skipLibCheck": true,
15 | "lib": [
16 | "esnext",
17 | "dom"
18 | ]
19 | },
20 | "include": [
21 | "src/js/**/*.ts",
22 | "src/**/*.d.ts",
23 | "src/**/*.vue"
24 | ],
25 | "exclude": [
26 | "node_modules",
27 | "src/js/**/*.test.ts"
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite';
2 | import vue from '@vitejs/plugin-vue';
3 |
4 |
5 | export default defineConfig( {
6 | build: {
7 | lib: {
8 | name : 'VueSplide',
9 | entry : './src/js/index.ts',
10 | formats : [ 'es', 'cjs' ],
11 | fileName: format => {
12 | let suffix: string = format;
13 |
14 | if ( format === 'es' ) {
15 | suffix = 'esm';
16 | }
17 |
18 | return `js/vue-splide.${ suffix }.js`;
19 | },
20 | },
21 | emptyOutDir: false,
22 | watch: {
23 | include: 'src/**'
24 | },
25 | rollupOptions: {
26 | external: [ 'vue' ],
27 | output: {
28 | globals: {
29 | vue: 'Vue',
30 | },
31 | exports: 'named',
32 | },
33 | },
34 | minify: false,
35 | },
36 | plugins: [ vue() ],
37 | } );
38 |
--------------------------------------------------------------------------------
/vite/vite.config.iife.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite';
2 | import vue from '@vitejs/plugin-vue';
3 | import babel from '@rollup/plugin-babel';
4 |
5 |
6 | export default defineConfig( {
7 | build: {
8 | lib: {
9 | name : 'VueSplide',
10 | entry : './src/js/build/iife.ts',
11 | formats : [ 'iife' ],
12 | fileName: format => `js/vue-splide.min.js`,
13 | },
14 | rollupOptions: {
15 | external: [ 'vue' ],
16 | output: {
17 | globals: {
18 | vue: 'Vue',
19 | },
20 | },
21 | plugins: [
22 | babel( {
23 | configFile : './.babelrc',
24 | include: [ './src/**'],
25 | } ),
26 | ],
27 | },
28 | // Preserves the global variable name.
29 | minify: 'terser',
30 | emptyOutDir: false,
31 | },
32 | plugins: [
33 | vue(),
34 | ],
35 | } );
36 |
--------------------------------------------------------------------------------