├── .babelrc ├── .gitignore ├── demo └── ajax.html ├── .editorconfig ├── src ├── main.js ├── interface.js └── Modal.vue ├── LICENSE ├── package.json ├── webpack.config.js ├── README.md ├── index.html └── dist └── build.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { "modules": false }] 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | npm-debug.log 4 | yarn-error.log 5 | notes 6 | 7 | # Editor directories and files 8 | .idea 9 | *.suo 10 | *.ntvs* 11 | *.njsproj 12 | *.sln 13 | -------------------------------------------------------------------------------- /demo/ajax.html: -------------------------------------------------------------------------------- 1 |
2 |

This content was fetched via an AJAX request.

3 | 4 |

5 | Nice, right? :) 6 |

7 |
-------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Modal from './Modal.vue'; 2 | import VoerroModal from './interface'; 3 | 4 | if (document.querySelector('#voerro-vue-modal-demo-vqk6etkfjrcpsjg5')) { 5 | window.Modal = Modal; 6 | window.VoerroModal = VoerroModal; 7 | } 8 | 9 | export { Modal, VoerroModal }; -------------------------------------------------------------------------------- /src/interface.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | 3 | window.VoerroModalEvent = new Vue(); 4 | 5 | class VoerroModal { 6 | constructor () {} 7 | 8 | static show(optionsOrId, options) { 9 | window.VoerroModalEvent.$emit('show', optionsOrId, options); 10 | } 11 | 12 | static hide (id = null) { 13 | window.VoerroModalEvent.$emit('hide', id); 14 | } 15 | } 16 | 17 | export default VoerroModal; -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Alexander Zavyalov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@voerro/vue-modal", 3 | "description": "A flexible & responsive modal component for Vue.js 2", 4 | "version": "1.4.0", 5 | "author": "Alexander Zavyalov (http://voerro.com)", 6 | "license": "MIT", 7 | "main": "src/main.js", 8 | "keywords": [ 9 | "vue", 10 | "vuejs", 11 | "modal", 12 | "component", 13 | "plugin", 14 | "responsive", 15 | "flexible" 16 | ], 17 | "scripts": { 18 | "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot", 19 | "build": "cross-env NODE_ENV=production webpack --progress --hide-modules" 20 | }, 21 | "dependencies": { 22 | "vue": "^2.5.0" 23 | }, 24 | "browserslist": [ 25 | "> 1%", 26 | "last 2 versions", 27 | "not ie <= 8" 28 | ], 29 | "devDependencies": { 30 | "babel-core": "^6.26.0", 31 | "babel-loader": "^7.1.2", 32 | "babel-preset-env": "^1.6.0", 33 | "babel-preset-stage-3": "^6.24.1", 34 | "cross-env": "^5.0.5", 35 | "css-loader": "^0.28.7", 36 | "file-loader": "^1.1.4", 37 | "node-sass": "^4.5.3", 38 | "sass-loader": "^6.0.6", 39 | "vue-loader": "^13.0.5", 40 | "vue-template-compiler": "^2.4.4", 41 | "webpack": "^3.6.0", 42 | "webpack-dev-server": "^2.9.1" 43 | }, 44 | "repository": "https://github.com/voerro/vue-modal" 45 | } 46 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var webpack = require('webpack') 3 | 4 | module.exports = { 5 | entry: './src/main.js', 6 | output: { 7 | path: path.resolve(__dirname, './dist'), 8 | publicPath: '/dist/', 9 | filename: 'build.js' 10 | }, 11 | module: { 12 | rules: [ 13 | { 14 | test: /\.css$/, 15 | use: [ 16 | 'vue-style-loader', 17 | 'css-loader' 18 | ], 19 | }, 20 | { 21 | test: /\.scss$/, 22 | use: [ 23 | 'vue-style-loader', 24 | 'css-loader', 25 | 'sass-loader' 26 | ], 27 | }, 28 | { 29 | test: /\.sass$/, 30 | use: [ 31 | 'vue-style-loader', 32 | 'css-loader', 33 | 'sass-loader?indentedSyntax' 34 | ], 35 | }, 36 | { 37 | test: /\.vue$/, 38 | loader: 'vue-loader', 39 | options: { 40 | loaders: { 41 | // Since sass-loader (weirdly) has SCSS as its default parse mode, we map 42 | // the "scss" and "sass" values for the lang attribute to the right configs here. 43 | // other preprocessors should work out of the box, no loader config like this necessary. 44 | 'scss': [ 45 | 'vue-style-loader', 46 | 'css-loader', 47 | 'sass-loader' 48 | ], 49 | 'sass': [ 50 | 'vue-style-loader', 51 | 'css-loader', 52 | 'sass-loader?indentedSyntax' 53 | ] 54 | } 55 | // other vue-loader options go here 56 | } 57 | }, 58 | { 59 | test: /\.js$/, 60 | loader: 'babel-loader', 61 | exclude: /node_modules/ 62 | }, 63 | { 64 | test: /\.(png|jpg|gif|svg)$/, 65 | loader: 'file-loader', 66 | options: { 67 | name: '[name].[ext]?[hash]' 68 | } 69 | } 70 | ] 71 | }, 72 | resolve: { 73 | alias: { 74 | 'vue$': 'vue/dist/vue.esm.js' 75 | }, 76 | extensions: ['*', '.js', '.vue', '.json'] 77 | }, 78 | devServer: { 79 | historyApiFallback: true, 80 | noInfo: true, 81 | overlay: true 82 | }, 83 | performance: { 84 | hints: false 85 | }, 86 | devtool: '#eval-source-map' 87 | } 88 | 89 | if (process.env.NODE_ENV === 'production') { 90 | module.exports.devtool = '#source-map' 91 | // http://vue-loader.vuejs.org/en/workflow/production.html 92 | module.exports.plugins = (module.exports.plugins || []).concat([ 93 | new webpack.DefinePlugin({ 94 | 'process.env': { 95 | NODE_ENV: '"production"' 96 | } 97 | }), 98 | new webpack.optimize.UglifyJsPlugin({ 99 | sourceMap: true, 100 | compress: { 101 | warnings: false 102 | } 103 | }), 104 | new webpack.LoaderOptionsPlugin({ 105 | minimize: true 106 | }) 107 | ]) 108 | } 109 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue Modal 2 | 3 | [![npm (scoped)](https://img.shields.io/npm/v/@voerro/vue-modal.svg?style=flat-square)](https://www.npmjs.com/package/@voerro/vue-modal) 4 | [![npm](https://img.shields.io/npm/dm/@voerro/vue-modal.svg?style=flat-square)](https://www.npmjs.com/package/@voerro/vue-modal) 5 | [![MIT](https://img.shields.io/github/license/AlexMordred/vue-modal.svg?style=flat-square)](https://opensource.org/licenses/MIT) 6 | 7 | A flexible & responsive modal component for Vue.js 2. Looks nice and clean on all devices. 8 | 9 | [Live Demo](https://voerro.github.io/vue-modal/) 10 | 11 | ## Installation via NPM 12 | 13 | ``` 14 | npm i @voerro/vue-modal --save-dev 15 | ``` 16 | or 17 | ``` 18 | npm i @voerro/vue-modal --save 19 | ``` 20 | 21 | Then import the component: 22 | 23 | ```javascript 24 | import { Modal, VoerroModal } from '@voerro/vue-modal'; 25 | 26 | Vue.component('modal', Modal); 27 | window.VoerroModal = VoerroModal; 28 | ``` 29 | 30 | ## Usage 31 | 32 | Add an empty component somewhere inside your template. 33 | 34 | ```html 35 | 36 | ``` 37 | 38 | ### Generating Modals Dynamically 39 | 40 | Call `VoerroModal.show()` from anywhere in your script/Vue code. Example call: 41 | 42 | ``` 43 | VoerroModal.show({ 44 | title: 'Modal Title', 45 | body: 'Modal Body (HTML is supported here)', 46 | buttons: [ 47 | { 48 | text: 'Ok', 49 | handler: () => { 50 | alert('You pressed Ok'); 51 | } 52 | }, 53 | { 54 | text: 'Cancel' 55 | } 56 | ] 57 | }); 58 | ``` 59 | 60 | You can add as many buttons as you need. When you press a button, the button's `handler` gets called and then the modal closes. If there's no handler, the modal will close immediately without any additional actions taking place. 61 | 62 | #### Buttons - Options 63 | 64 | To add buttons to a modal include an array of button objects. Each object can have the following properties (options): 65 | 66 | Property | Type | Default | Required | Description 67 | --- | --- | --- | --- | --- 68 | text | String | '' | yes | The text of the button 69 | handler | function | undefined | no | The function which will be called on button press. The default action is to hide the modal, so you don't have to include anything if the button click should only close the modal. 70 | preventDefault | Boolean | undefined (false) | no | Even if you provide a handler, the modal will be closed after the action is done. To prevent that set this property to true. 71 | class | String | '' | no | Additional CSS class(es) to add to the button. 72 | type | String | 'button' | no | Button type: 'submit', 'reset', or 'button'. 73 | 74 | #### Ajax 75 | 76 | You can fetch the modal's body via Ajax. To do so provide a `bodyUrl` URL instead of a `body`. Example: 77 | 78 | ``` 79 | VoerroModal.show({ 80 | title: 'Modal Title', 81 | bodyUrl: 'http://example.com/add-user-modal', 82 | buttons: [ 83 | { 84 | text: 'Submit', 85 | handler: () => { 86 | alert('Submitting the form...'); 87 | } 88 | }, 89 | { 90 | text: 'Cancel' 91 | } 92 | ] 93 | }); 94 | ``` 95 | 96 | ### Inline Modals 97 | 98 | You can have multiple inline modals. "Inline" means a modal's content is stored within the HTML code of a page. Each modal should have a unique id. See an example below. 99 | 100 | HTML: 101 | 102 | ```html 103 | 104 | 105 | 106 |
107 | This body, as well as the title, are stored directly within the HTML of your page. 108 |
109 | 110 |
111 | You'll have to implement the buttons completely yourself, in case you need them of course. 112 |
113 |
114 | 115 | 116 | 117 | 118 |
This is a different inline modal with a different id.
119 |
120 | ``` 121 | 122 | JS/ES: 123 | 124 | ```javascript 125 | // Show the modal with the id = 'inline-modal' 126 | VoerroModal.show('inline-modal'); 127 | 128 | // Show the modal with the id = 'inline-modal-two' 129 | VoerroModal.show('inline-modal-two'); 130 | ``` 131 | 132 | You can still include an object with options (including dynamically generated buttons) in the method call. 133 | 134 | ```javascript 135 | VoerroModal.show('inline-modal', { 136 | buttons: [ 137 | { 138 | text: 'Ok', 139 | handler: () => { 140 | alert('You pressed ok'); 141 | } 142 | }, 143 | { text: 'CLose' } 144 | ] 145 | }); 146 | ``` 147 | 148 | *Note: don't delete the empty `` component from your page if you also want to use dynamically generated modals.* 149 | 150 | ### `` Properties 151 | 152 | Property | Type | Default | Required | Description 153 | --- | --- | --- | --- | --- 154 | id | String | undefined | no | Id of the modal 155 | dismissible | Boolean | true | no | Whether a modal can be closed by clicking on the close button or on the overlay outside the modal.
When applied to the global `` component becomes the default for all the dynamically generated modals. Can be overridden for individual modals. 156 | header | Boolean | true | no | Whether to show the header.
When applied to the global `` component becomes the default for all the dynamically generated modals. Can be overridden for individual modals. 157 | 158 | ### VoerroModal Methods 159 | 160 | Method | Description | Arguments 161 | ---| --- | --- 162 | show (options) | Generate and show a modal | *options* - an object with options

**Available Options:**
*title* - String - modal's title
*body* - String - modal's body (HTML is supported)
*bodyUrl* - String - URL to fetch modal's body from (AJAX)
*buttons* - Array - an array of objects describing buttons
*dismissible* - Boolean - Whether the modal can be closed by clicking on the close button or on the overlay outside the modal.
*header* - Boolean - Whether to show the header. 163 | show (id) | Show an inline modal by id | *id* - the id of a modal to be shown 164 | hide (id) | Hide a modal by id | *id* - the id of a modal to be hidden. 165 | hide () | Hide the currently open dynamically generated modal | - 166 | 167 | ## License 168 | 169 | This is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT). -------------------------------------------------------------------------------- /src/Modal.vue: -------------------------------------------------------------------------------- 1 | 60 | 61 | 195 | 196 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | @voerro/vue-modal 8 | 9 | 10 | 11 | 16 | 17 | 18 |
19 |
20 |
21 |

@voerro/vue-modal

22 | 23 |

24 | A flexible & responsive modal component for Vue.js 2 by 25 | Voerro 26 |

27 | 28 |

29 | 30 | View on Github 31 | 32 |

33 |
34 |
35 |
36 | 37 |
38 | 40 | 41 |

Dynamic Modals

42 | 43 |
44 | 45 | 46 |
47 | 48 |
49 |
50 | 51 |
52 | 53 |
54 | 55 |
56 |
57 | 58 |
59 |
60 | 63 |
64 |
65 | 66 |
67 |
68 | 71 |
72 |
73 | 74 |

75 | 76 |

77 | 78 | 79 | 80 |

Customize Buttons

81 | 82 |

Modals can have as many buttons as you need, each with a unique handler/action. A button without a handler simply closes the modal.

83 | 84 |

85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 |

93 | 94 | 95 | 96 |
97 | 98 |

99 | Loading Modal's Body via AJAX 100 |

101 | 102 |

This works as a regular modal, except you need to provide a URL to fetch the content instead of a body.

103 | 104 |
105 | 106 | 107 |
108 | 109 |
110 |
111 | 112 |

113 | 114 |

115 | 116 | 117 | 118 |
119 | 120 |

Inline Modals

121 | 122 | 123 | 124 | 125 |
This body, as well as the title, are stored directly within the HTML of your page.
126 | 127 |
You can put something else in the footer if you don't need the buttons (or provide the buttons via options like with dynamically generated modals)
128 |
129 | 130 | 131 | 132 | 133 |
This is a different inline modal with a different id. Don't include the footer slot if you don't need it.
134 |
135 | 136 | 137 | 138 | 139 |
The buttons for this modal are generated dynamically.
140 |
141 | 142 |

You can also define multiple modals inline with Vue slots. Each modal should have a unique id. Open this page's source code and find the two <modal> blocks defining these modals if you want to see how it works.

143 | 144 |

145 | 146 | 147 | 148 | 149 | 150 |

151 | 152 | 153 | 154 |
155 | 156 |

157 | Hiding Modals Programmatically 158 |

159 | 160 |

161 | 162 | 163 | 164 |

165 | 166 | 167 | 168 |
169 | 170 |

171 | Options 172 |

173 | 174 |

Undismissible Modals. An undismissible modal can not be dismissed by pressing on the close button or on the overlay outside the modal. An action (a button click) is required to close the modal.

175 | 176 |

177 | 178 |

179 | 180 |

181 | No Header 182 |

183 | 184 |

185 | 186 |

187 | 188 |

189 | Prevent Default Button's Action. By default the active modal will be closed after you press on any of the buttons (even if that button has a handler). Luckily, you can prevent that. 190 |

191 | 192 |

193 | 194 |

195 |
196 | 197 | 198 | 199 | 200 | 403 | 404 | 405 | -------------------------------------------------------------------------------- /dist/build.js: -------------------------------------------------------------------------------- 1 | !function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=2)}([function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.a={props:{id:{type:String,default:""},dismissible:{type:Boolean,default:!0},header:{type:Boolean,default:!0}},data:function(){return{title:"",body:"",buttons:[],show:!1,fetchingBody:!1,canClose:this.dismissible,headerVisible:this.header}},created:function(){var e=this;window.VoerroModalEvent.$on("show",function(t,n){e.showModal(t,n)}),window.VoerroModalEvent.$on("hide",function(t){e.hideModalById(t)})},methods:{showModal:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!this.id&&"object"===(void 0===e?"undefined":r(e))||this.id===e){if("object"===(void 0===e?"undefined":r(e))&&(t=e),t){if(!this.id&&(this.title=t.title?t.title:"",this.body=t.body?t.body:"",t.bodyUrl)){this.fetchingBody=!0;var n=new XMLHttpRequest;n.addEventListener("load",this.onAjaxResponse),n.open("GET",t.bodyUrl),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send()}this.buttons=t.buttons?t.buttons:[],this.canClose="boolean"==typeof t.dismissible?t.dismissible:this.dismissible,this.headerVisible="boolean"==typeof t.header?t.header:this.header}this.$nextTick(function(){this.show=!0})}},hideModal:function(){this.show=!1},tryHidingModal:function(){!0===this.canClose&&this.hideModal()},hideModalById:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&this.id&&e===this.id?this.show=!1:e||""!==this.id||(this.show=!1)},handleButtonClick:function(e){e.handler&&e.handler(),e.preventDefault||this.hideModal()},onAjaxResponse:function(e){var t=e.target;200===t.status?this.body=t.response:(console.error("AJAX request to fetch the modal content returned an error: "+t.status+" - "+t.statusText),this.showModal({title:"Error",body:"Could not fetch the content of the modal.",buttons:[{text:"Ok"}]})),this.fetchingBody=!1}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3),i=n(11);n.d(t,"Modal",function(){return r.a}),n.d(t,"VoerroModal",function(){return i.a}),document.querySelector("#voerro-vue-modal-demo-vqk6etkfjrcpsjg5")&&(window.Modal=r.a,window.VoerroModal=i.a)},function(e,t,n){"use strict";function r(e){n(4)}var i=n(1),o=n(10),a=n(9),s=r,c=a(i.a,o.a,!1,s,null,null);t.a=c.exports},function(e,t,n){var r=n(5);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);n(7)("f8ea48a4",r,!0,{})},function(e,t,n){t=e.exports=n(6)(!1),t.push([e.i,".modal-box,.modal-overlay{z-index:900}.modal-overlay{display:flex;flex-direction:column;justify-content:center;background:rgba(0,0,0,.5)}.modal-overlay,.modal-sandbox{position:fixed;width:100%;height:100%;left:0;top:0}.modal-sandbox{background:transparent}.modal-box{display:flex;flex-direction:column;position:relative;max-width:95%;max-height:95%;margin:0 auto;background:#fff;border-radius:.2rem;box-shadow:0 0 2rem 0 rgba(0,0,0,.25)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter,.fade-leave-to{opacity:0}.modal-header{display:flex;padding:1rem 1rem 0}.modal-title{font-weight:700;flex:1}.modal-body{position:relative;overflow:auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;text-align:right;border-top:1px solid #f0f0f0;padding:0!important}.modal-footer>button{flex-grow:1;cursor:pointer;border:none;text-decoration:none;border-radius:0 0 .2rem .2rem;background:transparent;font-weight:700}.modal-footer>button:hover{background:#f0f0f0}.close-modal{display:flex;justify-content:center;align-items:center;margin:-.5rem;margin-left:.5rem;border-radius:50%;width:2.5rem;height:2.5rem;cursor:pointer;color:#505050}.close-modal>svg{fill:#000;width:1.5rem;height:1.5rem}.close-modal:hover{background:#505050}.close-modal:hover>svg{fill:#fff}.modal-loader{display:flex;justify-content:center;width:100%}.modal-loader>svg{width:3rem;height:3rem;fill:#000}@media only screen and (max-width:768px){.modal-box{min-width:95%}.modal-footer>button{padding:1rem}}@media only screen and (min-width:769px){.modal-box{min-width:70%}.modal-footer>button{padding:.8rem 1rem}}@media only screen and (min-width:1024px){.modal-box{min-width:50%}.modal-footer>button{padding:.8rem 1rem}}",""])},function(e,t){function n(e,t){var n=e[1]||"",i=e[3];if(!i)return n;if(t&&"function"==typeof btoa){var o=r(i);return[n].concat(i.sources.map(function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"})).concat([o]).join("\n")}return[n].join("\n")}function r(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var r=n(t,e);return t[2]?"@media "+t[2]+"{"+r+"}":r}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},i=0;in.parts.length&&(r.parts.length=n.parts.length)}else{for(var a=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:null;window.VoerroModalEvent.$emit("hide",e)}}]),e}();t.a=a},function(e,t,n){"use strict";(function(e,n){function r(e){return void 0===e||null===e}function i(e){return void 0!==e&&null!==e}function o(e){return!0===e}function a(e){return!1===e}function s(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function c(e){return null!==e&&"object"==typeof e}function l(e){return"[object Object]"===no.call(e)}function u(e){return"[object RegExp]"===no.call(e)}function f(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function d(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function p(e){var t=parseFloat(e);return isNaN(t)?e:t}function v(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i-1)return e.splice(n,1)}}function m(e,t){return oo.call(e,t)}function y(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}function g(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n}function _(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function b(e,t){for(var n in t)e[n]=t[n];return e}function w(e){for(var t={},n=0;n0&&(a=ye(a,(t||"")+"_"+n),me(a[0])&&me(l)&&(u[c]=M(l.text+a[0].text),a.shift()),u.push.apply(u,a)):s(a)?me(l)?u[c]=M(l.text+a):""!==a&&u.push(M(a)):me(a)&&me(l)?u[c]=M(l.text+a.text):(o(e._isVList)&&i(a.tag)&&r(a.key)&&i(t)&&(a.key="__vlist"+t+"_"+n+"__"),u.push(a)));return u}function ge(e,t){return(e.__esModule||Po&&"Module"===e[Symbol.toStringTag])&&(e=e.default),c(e)?t.extend(e):e}function _e(e,t,n,r,i){var o=Vo();return o.asyncFactory=e,o.asyncMeta={data:t,context:n,children:r,tag:i},o}function be(e,t,n){if(o(e.error)&&i(e.errorComp))return e.errorComp;if(i(e.resolved))return e.resolved;if(o(e.loading)&&i(e.loadingComp))return e.loadingComp;if(!i(e.contexts)){var a=e.contexts=[n],s=!0,l=function(){for(var e=0,t=a.length;eva&&la[n].id>e.id;)n--;la.splice(n+1,0,e)}else la.push(e);da||(da=!0,ae(Re))}}function Ve(e,t,n){ya.get=function(){return this[t][n]},ya.set=function(e){this[t][n]=e},Object.defineProperty(e,n,ya)}function ze(e){e._watchers=[];var t=e.$options;t.props&&qe(e,t.props),t.methods&&Ze(e,t.methods),t.data?Ke(e):D(e._data={},!0),t.computed&&We(e,t.computed),t.watch&&t.watch!==So&&Ye(e,t.watch)}function qe(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[],o=!e.$parent;Jo.shouldConvert=o;for(var a in t)!function(o){i.push(o);var a=Z(o,t,n,e);R(r,o,a),o in e||Ve(e,"_props",o)}(a);Jo.shouldConvert=!0}function Ke(e){var t=e.$options.data;t=e._data="function"==typeof t?Je(t,e):t||{},l(t)||(t={});for(var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);i--;){var o=n[i];r&&m(r,o)||A(o)||Ve(e,"_data",o)}D(t,!0)}function Je(e,t){try{return e.call(t,t)}catch(e){return te(e,t,"data()"),{}}}function We(e,t){var n=e._computedWatchers=Object.create(null),r=No();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new ma(e,a||x,x,ga)),i in e||Xe(e,i,o)}}function Xe(e,t,n){var r=!No();"function"==typeof n?(ya.get=r?Ge(t):n,ya.set=x):(ya.get=n.get?r&&!1!==n.cache?Ge(t):n.get:x,ya.set=n.set?n.set:x),Object.defineProperty(e,t,ya)}function Ge(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),Fo.target&&t.depend(),t.value}}function Ze(e,t){e.$options.props;for(var n in t)e[n]=null==t[n]?x:g(t[n],e)}function Ye(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i=0||n.indexOf(e[i])<0)&&r.push(e[i]);return r}return e}function Et(e){this._init(e)}function jt(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=_(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}function Mt(e){e.mixin=function(e){return this.options=X(this.options,e),this}}function It(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,i=e._Ctor||(e._Ctor={});if(i[r])return i[r];var o=e.name||n.options.name,a=function(e){this._init(e)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=t++,a.options=X(n.options,e),a.super=n,a.options.props&&Nt(a),a.options.computed&&Lt(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,ho.forEach(function(e){a[e]=n[e]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=e,a.sealedOptions=b({},a.options),i[r]=a,a}}function Nt(e){var t=e.options.props;for(var n in t)Ve(e.prototype,"_props",n)}function Lt(e){var t=e.options.computed;for(var n in t)Xe(e.prototype,n,t[n])}function Pt(e){ho.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&l(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}function Dt(e){return e&&(e.Ctor.options.name||e.tag)}function Rt(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!u(e)&&e.test(t)}function Ft(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=Dt(a.componentOptions);s&&!t(s)&&Bt(n,o,r,i)}}}function Bt(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,h(n,t)}function Ht(e){for(var t=e.data,n=e,r=e;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=Ut(r.data,t));for(;i(n=n.parent);)n&&n.data&&(t=Ut(t,n.data));return Vt(t.staticClass,t.class)}function Ut(e,t){return{staticClass:zt(e.staticClass,t.staticClass),class:i(e.class)?[e.class,t.class]:t.class}}function Vt(e,t){return i(e)||i(t)?zt(e,qt(t)):""}function zt(e,t){return e?t?e+" "+t:e:t||""}function qt(e){return Array.isArray(e)?Kt(e):c(e)?Jt(e):"string"==typeof e?e:""}function Kt(e){for(var t,n="",r=0,o=e.length;r-1?Ga[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Ga[e]=/HTMLUnknownElement/.test(t.toString())}function Gt(e){if("string"==typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}function Zt(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function Yt(e,t){return document.createElementNS(qa[e],t)}function Qt(e){return document.createTextNode(e)}function en(e){return document.createComment(e)}function tn(e,t,n){e.insertBefore(t,n)}function nn(e,t){e.removeChild(t)}function rn(e,t){e.appendChild(t)}function on(e){return e.parentNode}function an(e){return e.nextSibling}function sn(e){return e.tagName}function cn(e,t){e.textContent=t}function ln(e,t,n){e.setAttribute(t,n)}function un(e,t){var n=e.data.ref;if(n){var r=e.context,i=e.componentInstance||e.elm,o=r.$refs;t?Array.isArray(o[n])?h(o[n],i):o[n]===i&&(o[n]=void 0):e.data.refInFor?Array.isArray(o[n])?o[n].indexOf(i)<0&&o[n].push(i):o[n]=[i]:o[n]=i}}function fn(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&i(e.data)===i(t.data)&&dn(e,t)||o(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&r(t.asyncFactory.error))}function dn(e,t){if("input"!==e.tag)return!0;var n,r=i(n=e.data)&&i(n=n.attrs)&&n.type,o=i(n=t.data)&&i(n=n.attrs)&&n.type;return r===o||Za(r)&&Za(o)}function pn(e,t,n){var r,o,a={};for(r=t;r<=n;++r)o=e[r].key,i(o)&&(a[o]=r);return a}function vn(e,t){(e.data.directives||t.data.directives)&&hn(e,t)}function hn(e,t){var n,r,i,o=e===es,a=t===es,s=mn(e.data.directives,e.context),c=mn(t.data.directives,t.context),l=[],u=[];for(n in c)r=s[n],i=c[n],r?(i.oldValue=r.value,gn(i,"update",t,e),i.def&&i.def.componentUpdated&&u.push(i)):(gn(i,"bind",t,e),i.def&&i.def.inserted&&l.push(i));if(l.length){var f=function(){for(var n=0;n=0&&" "===(m=e.charAt(h));h--);m&&ss.test(m)||(u=!0)}}else void 0===o?(v=i+1,o=e.slice(0,i).trim()):t();if(void 0===o?o=e.slice(0,i).trim():0!==v&&t(),a)for(i=0;i-1?{exp:e.slice(0,Ea),key:'"'+e.slice(Ea+1)+'"'}:{exp:e,key:null};for(Ta=e,Ea=ja=Ma=0;!Dn();)Sa=Pn(),Rn(Sa)?Bn(Sa):91===Sa&&Fn(Sa);return{exp:e.slice(0,ja),key:e.slice(ja+1,Ma)}}function Pn(){return Ta.charCodeAt(++Ea)}function Dn(){return Ea>=Oa}function Rn(e){return 34===e||39===e}function Fn(e){var t=1;for(ja=Ea;!Dn();)if(e=Pn(),Rn(e))Bn(e);else if(91===e&&t++,93===e&&t--,0===t){Ma=Ea;break}}function Bn(e){for(var t=e;!Dn()&&(e=Pn())!==t;);}function Hn(e,t,n){Ia=n;var r=t.value,i=t.modifiers,o=e.tag,a=e.attrsMap.type;if(e.component)return In(e,r,i),!1;if("select"===o)zn(e,r,i);else if("input"===o&&"checkbox"===a)Un(e,r,i);else if("input"===o&&"radio"===a)Vn(e,r,i);else if("input"===o||"textarea"===o)qn(e,r,i);else if(!yo.isReservedTag(o))return In(e,r,i),!1;return!0}function Un(e,t,n){var r=n&&n.number,i=jn(e,"value")||"null",o=jn(e,"true-value")||"true",a=jn(e,"false-value")||"false";An(e,"checked","Array.isArray("+t+")?_i("+t+","+i+")>-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),En(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+t+"=$$a.concat([$$v]))}else{$$i>-1&&("+t+"=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{"+Nn(t,"$$c")+"}",null,!0)}function Vn(e,t,n){var r=n&&n.number,i=jn(e,"value")||"null";i=r?"_n("+i+")":i,An(e,"checked","_q("+t+","+i+")"),En(e,"change",Nn(t,i),null,!0)}function zn(e,t,n){var r=n&&n.number,i='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(r?"_n(val)":"val")+"})",o="var $$selectedVal = "+i+";";o=o+" "+Nn(t,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),En(e,"change",o,null,!0)}function qn(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,l=o?"change":"range"===r?cs:"input",u="$event.target.value";s&&(u="$event.target.value.trim()"),a&&(u="_n("+u+")");var f=Nn(t,u);c&&(f="if($event.target.composing)return;"+f),An(e,"value","("+t+")"),En(e,l,f,null,!0),(s||a)&&En(e,"blur","$forceUpdate()")}function Kn(e){if(i(e[cs])){var t=Co?"change":"input";e[t]=[].concat(e[cs],e[t]||[]),delete e[cs]}i(e[ls])&&(e.change=[].concat(e[ls],e.change||[]),delete e[ls])}function Jn(e,t,n){var r=Na;return function i(){null!==e.apply(null,arguments)&&Xn(t,i,n,r)}}function Wn(e,t,n,r,i){t=oe(t),n&&(t=Jn(t,e,r)),Na.addEventListener(e,t,Eo?{capture:r,passive:i}:r)}function Xn(e,t,n,r){(r||Na).removeEventListener(e,t._withTask||t,n)}function Gn(e,t){if(!r(e.data.on)||!r(t.data.on)){var n=t.data.on||{},i=e.data.on||{};Na=t.elm,Kn(n),ue(n,i,Wn,Xn,t.context),Na=void 0}}function Zn(e,t){if(!r(e.data.domProps)||!r(t.data.domProps)){var n,o,a=t.elm,s=e.data.domProps||{},c=t.data.domProps||{};i(c.__ob__)&&(c=t.data.domProps=b({},c));for(n in s)r(c[n])&&(a[n]="");for(n in c){if(o=c[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),o===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n){a._value=o;var l=r(o)?"":String(o);Yn(a,l)&&(a.value=l)}else a[n]=o}}}function Yn(e,t){return!e.composing&&("OPTION"===e.tagName||Qn(e,t)||er(e,t))}function Qn(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}function er(e,t){var n=e.value,r=e._vModifiers;if(i(r)){if(r.lazy)return!1;if(r.number)return p(n)!==p(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}function tr(e){var t=nr(e.style);return e.staticStyle?b(e.staticStyle,t):t}function nr(e){return Array.isArray(e)?w(e):"string"==typeof e?ds(e):e}function rr(e,t){var n,r={};if(t)for(var i=e;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=tr(i.data))&&b(r,n);(n=tr(e.data))&&b(r,n);for(var o=e;o=o.parent;)o.data&&(n=tr(o.data))&&b(r,n);return r}function ir(e,t){var n=t.data,o=e.data;if(!(r(n.staticStyle)&&r(n.style)&&r(o.staticStyle)&&r(o.style))){var a,s,c=t.elm,l=o.staticStyle,u=o.normalizedStyle||o.style||{},f=l||u,d=nr(t.data.style)||{};t.data.normalizedStyle=i(d.__ob__)?b({},d):d;var p=rr(t,!0);for(s in f)r(p[s])&&hs(c,s,"");for(s in p)(a=p[s])!==f[s]&&hs(c,s,null==a?"":a)}}function or(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function ar(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");n=n.trim(),n?e.setAttribute("class",n):e.removeAttribute("class")}}function sr(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&b(t,_s(e.name||"v")),b(t,e),t}return"string"==typeof e?_s(e):void 0}}function cr(e){Os(function(){Os(e)})}function lr(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),or(e,t))}function ur(e,t){e._transitionClasses&&h(e._transitionClasses,t),ar(e,t)}function fr(e,t,n){var r=dr(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===ws?Cs:As,c=0,l=function(){e.removeEventListener(s,u),n()},u=function(t){t.target===e&&++c>=a&&l()};setTimeout(function(){c0&&(n=ws,u=a,f=o.length):t===xs?l>0&&(n=xs,u=l,f=c.length):(u=Math.max(a,l),n=u>0?a>l?ws:xs:null,f=n?n===ws?o.length:c.length:0),{type:n,timeout:u,propCount:f,hasTransform:n===ws&&Ts.test(r[$s+"Property"])}}function pr(e,t){for(;e.length1}function _r(e,t){!0!==t.data.show&&hr(t)}function br(e,t,n){wr(e,t,n),(Co||Ao)&&setTimeout(function(){wr(e,t,n)},0)}function wr(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=e.options.length;s-1,a.selected!==o&&(a.selected=o);else if($($r(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function xr(e,t){return t.every(function(t){return!$(t,e)})}function $r(e){return"_value"in e?e._value:e.value}function Cr(e){e.target.composing=!0}function kr(e){e.target.composing&&(e.target.composing=!1,Ar(e.target,"input"))}function Ar(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Or(e){return!e.componentInstance||e.data&&e.data.transition?e:Or(e.componentInstance._vnode)}function Tr(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Tr(xe(t.children)):e}function Sr(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[so(o)]=i[o];return t}function Er(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}function jr(e){for(;e=e.parent;)if(e.data.transition)return!0}function Mr(e,t){return t.key===e.key&&t.tag===e.tag}function Ir(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Nr(e){e.data.newPos=e.elm.getBoundingClientRect()}function Lr(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}function Pr(e,t){var n=t?zs(t):Us;if(n.test(e)){for(var r,i,o,a=[],s=[],c=n.lastIndex=0;r=n.exec(e);){i=r.index,i>c&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var l=xn(r[1].trim());a.push("_s("+l+")"),s.push({"@binding":l}),c=i+r[0].length}return c=0&&a[i].lowerCasedTag!==s;i--);else i=0;if(i>=0){for(var c=a.length-1;c>=i;c--)t.end&&t.end(a[c].tag,n,r);a.length=i,o=i&&a[i-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,r):"p"===s&&(t.start&&t.start(e,[],!1,n,r),t.end&&t.end(e,n,r))}for(var i,o,a=[],s=t.expectHTML,c=t.isUnaryTag||fo,l=t.canBeLeftOpenTag||fo,u=0;e;){if(i=e,o&&gc(o)){var f=0,d=o.toLowerCase(),p=_c[d]||(_c[d]=new RegExp("([\\s\\S]*?)(]*>)","i")),v=e.replace(p,function(e,n,r){return f=r.length,gc(d)||"noscript"===d||(n=n.replace(//g,"$1").replace(//g,"$1")),Cc(d,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""});u+=e.length-v.length,e=v,r(d,u-f,u)}else{var h=e.indexOf("<");if(0===h){if(ic.test(e)){var m=e.indexOf("--\x3e");if(m>=0){t.shouldKeepComment&&t.comment(e.substring(4,m)),n(m+3);continue}}if(oc.test(e)){var y=e.indexOf("]>");if(y>=0){n(y+2);continue}}var g=e.match(rc);if(g){n(g[0].length);continue}var _=e.match(nc);if(_){var b=u;n(_[0].length),r(_[1],b,u);continue}var w=function(){var t=e.match(ec);if(t){var r={tagName:t[1],attrs:[],start:u};n(t[0].length);for(var i,o;!(i=e.match(tc))&&(o=e.match(Zs));)n(o[0].length),r.attrs.push(o);if(i)return r.unarySlash=i[1],n(i[0].length),r.end=u,r}}();if(w){!function(e){var n=e.tagName,i=e.unarySlash;s&&("p"===o&&Gs(n)&&r(o),l(n)&&o===n&&r(n));for(var u=c(n)||!!i,f=e.attrs.length,d=new Array(f),p=0;p=0){for($=e.slice(h);!(nc.test($)||ec.test($)||ic.test($)||oc.test($)||(C=$.indexOf("<",1))<0);)h+=C,$=e.slice(h);x=e.substring(0,h),n(h)}h<0&&(x=e,e=""),t.chars&&x&&t.chars(x)}if(e===i){t.chars&&t.chars(e);break}}r()}function Vr(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:ci(t),parent:n,children:[]}}function zr(e,t){function n(e){e.pre&&(s=!1),dc(e.tag)&&(c=!1);for(var n=0;n':'
',yc.innerHTML.indexOf(" ")>0}function eo(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}/*! 2 | * Vue.js v2.5.13 3 | * (c) 2014-2017 Evan You 4 | * Released under the MIT License. 5 | */ 6 | var to=Object.freeze({}),no=Object.prototype.toString,ro=v("slot,component",!0),io=v("key,ref,slot,slot-scope,is"),oo=Object.prototype.hasOwnProperty,ao=/-(\w)/g,so=y(function(e){return e.replace(ao,function(e,t){return t?t.toUpperCase():""})}),co=y(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),lo=/\B([A-Z])/g,uo=y(function(e){return e.replace(lo,"-$1").toLowerCase()}),fo=function(e,t,n){return!1},po=function(e){return e},vo="data-server-rendered",ho=["component","directive","filter"],mo=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured"],yo={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:fo,isReservedAttr:fo,isUnknownElement:fo,getTagNamespace:x,parsePlatformTagName:po,mustUseProp:fo,_lifecycleHooks:mo},go=/[^\w.$]/,_o="__proto__"in{},bo="undefined"!=typeof window,wo="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,xo=wo&&WXEnvironment.platform.toLowerCase(),$o=bo&&window.navigator.userAgent.toLowerCase(),Co=$o&&/msie|trident/.test($o),ko=$o&&$o.indexOf("msie 9.0")>0,Ao=$o&&$o.indexOf("edge/")>0,Oo=$o&&$o.indexOf("android")>0||"android"===xo,To=$o&&/iphone|ipad|ipod|ios/.test($o)||"ios"===xo,So=($o&&/chrome\/\d+/.test($o),{}.watch),Eo=!1;if(bo)try{var jo={};Object.defineProperty(jo,"passive",{get:function(){Eo=!0}}),window.addEventListener("test-passive",null,jo)}catch(e){}var Mo,Io,No=function(){return void 0===Mo&&(Mo=!bo&&void 0!==e&&"server"===e.process.env.VUE_ENV),Mo},Lo=bo&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,Po="undefined"!=typeof Symbol&&S(Symbol)&&"undefined"!=typeof Reflect&&S(Reflect.ownKeys);Io="undefined"!=typeof Set&&S(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var Do=x,Ro=0,Fo=function(){this.id=Ro++,this.subs=[]};Fo.prototype.addSub=function(e){this.subs.push(e)},Fo.prototype.removeSub=function(e){h(this.subs,e)},Fo.prototype.depend=function(){Fo.target&&Fo.target.addDep(this)},Fo.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t1?_(n):n;for(var r=_(arguments,1),i=0,o=n.length;iparseInt(this.max)&&Bt(c,l[0],l,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}},Aa={KeepAlive:ka};!function(e){var t={};t.get=function(){return yo},Object.defineProperty(e,"config",t),e.util={warn:Do,extend:b,mergeOptions:X,defineReactive:R},e.set=F,e.delete=B,e.nextTick=ae,e.options=Object.create(null),ho.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,b(e.options.components,Aa),jt(e),Mt(e),It(e),Pt(e)}(Et),Object.defineProperty(Et.prototype,"$isServer",{get:No}),Object.defineProperty(Et.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Et.version="2.5.13";var Oa,Ta,Sa,Ea,ja,Ma,Ia,Na,La,Pa=v("style,class"),Da=v("input,textarea,option,select,progress"),Ra=function(e,t,n){return"value"===n&&Da(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Fa=v("contenteditable,draggable,spellcheck"),Ba=v("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Ha="http://www.w3.org/1999/xlink",Ua=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Va=function(e){return Ua(e)?e.slice(6,e.length):""},za=function(e){return null==e||!1===e},qa={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Ka=v("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Ja=v("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Wa=function(e){return"pre"===e},Xa=function(e){return Ka(e)||Ja(e)},Ga=Object.create(null),Za=v("text,number,password,search,email,tel,url"),Ya=Object.freeze({createElement:Zt,createElementNS:Yt,createTextNode:Qt,createComment:en,insertBefore:tn,removeChild:nn,appendChild:rn,parentNode:on,nextSibling:an,tagName:sn,setTextContent:cn,setAttribute:ln}),Qa={create:function(e,t){un(t)},update:function(e,t){e.data.ref!==t.data.ref&&(un(e,!0),un(t))},destroy:function(e){un(e,!0)}},es=new Ho("",{},[]),ts=["create","activate","update","remove","destroy"],ns={create:vn,update:vn,destroy:function(e){vn(e,es)}},rs=Object.create(null),is=[Qa,ns],os={create:_n,update:_n},as={create:wn,update:wn},ss=/[\w).+\-_$\]]/,cs="__r",ls="__c",us={create:Gn,update:Gn},fs={create:Zn,update:Zn},ds=y(function(e){var t={},n=/;(?![^(]*\))/g,r=/:(.+)/;return e.split(n).forEach(function(e){if(e){var n=e.split(r);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}),ps=/^--/,vs=/\s*!important$/,hs=function(e,t,n){if(ps.test(t))e.style.setProperty(t,n);else if(vs.test(n))e.style.setProperty(t,n.replace(vs,""),"important");else{var r=ys(t);if(Array.isArray(n))for(var i=0,o=n.length;iv?(f=r(n[y+1])?null:n[y+1].elm,g(e,f,n,p,y,o)):p>y&&b(e,t,d,v)}function $(e,t,n,r){for(var o=n;o\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Ys="[a-zA-Z_][\\w\\-\\.]*",Qs="((?:"+Ys+"\\:)?"+Ys+")",ec=new RegExp("^<"+Qs),tc=/^\s*(\/?)>/,nc=new RegExp("^<\\/"+Qs+"[^>]*>"),rc=/^]+>/i,ic=/^