├── .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 |
2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Vue Splide

10 | 11 |

12 | Vue Splide is the Vue component for the 13 | Splide slider/carousel. 14 |

15 | 16 |

17 | Getting Started 18 |
19 | Demo 20 |
21 | Discussions 22 |

23 |
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 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/src/App.vue: -------------------------------------------------------------------------------- 1 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/src/components/AutoplayExample.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 61 | -------------------------------------------------------------------------------- /examples/src/components/BasicExample.vue: -------------------------------------------------------------------------------- 1 | 22 | 23 | 66 | 67 | -------------------------------------------------------------------------------- /examples/src/components/DynamicSlideExample.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 69 | 70 | 75 | -------------------------------------------------------------------------------- /examples/src/components/ReactivityExample.vue: -------------------------------------------------------------------------------- 1 | 37 | 38 | 73 | 74 | 89 | 90 | -------------------------------------------------------------------------------- /examples/src/components/ThumbnailsExample.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 85 | -------------------------------------------------------------------------------- /examples/src/components/VideoExample.vue: -------------------------------------------------------------------------------- 1 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /images/vue-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 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 | 10 | 11 | 146 | -------------------------------------------------------------------------------- /src/js/components/SplideSlide/SplideSlide.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 20 | -------------------------------------------------------------------------------- /src/js/components/SplideTrack/SplideTrack.vue: -------------------------------------------------------------------------------- 1 | 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 | --------------------------------------------------------------------------------