diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 2aa352e..0000000 --- a/.babelrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "presets": ["es2015", "stage-2"], - "comments": false -} diff --git a/.gitignore b/.gitignore deleted file mode 100644 index e7417a6..0000000 --- a/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -.DS_Store -node_modules/ -npm-debug.log -package-lock.json -yarn-error.log -demo/dist -*.map diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 1549b67..0000000 --- a/.npmignore +++ /dev/null @@ -1 +0,0 @@ -demo diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 845bb44..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Yev Vlasenko - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 4f0b873..0000000 --- a/README.md +++ /dev/null @@ -1,114 +0,0 @@ -## Vue.js Grid ( Experiment ) - -## ⚠️ This an experement and not a production-ready plugin - -[](https://badge.fury.io/js/vue-js-grid) -[](https://www.npmjs.com/package/vue-js-grid) - -#### Fixed size grid for Vue.js - -This is very a first version of the plugin. If you find any bugs and/or want to contribute, feel free to create issues, PRs, or reach me out on twitter! 👍 🚀 - -Thanks! - -<p style="text-align:center"> - <img src="https://user-images.githubusercontent.com/1577802/30805846-45ccd718-a1eb-11e7-9963-7aee8e76c9b0.gif"> -</p> - -### Install -``` -npm install --save vue-js-grid -``` - -```js -import Vue from 'vue' -import Grid from 'vue-js-grid' - -Vue.use(Grid) -``` - -### Usage - -```js -data () { - return { - items: [ - 'a', - 'b', - 'c' - ] -} -``` - -```vue -<grid - :draggable="true" - :sortable="true" - :items="items" - :height="100" - :width="100"> - <template slot="cell" scope="props"> - <div>{{props.item}}</div> - </template> -</grid> -``` -#### [Codesandbox Demo](https://codesandbox.io/s/j23p2opkk3) - -Plugin does **NOT** modify the source data array. - -1. Every time permutation is performed you will get a new sorted array in event (`items`). -2. The same works for removing elements, you will get a new "cleaned" array in your `@remove` event handler. -3. Currently there is no way to extend data array after event handling. But hopefully I'll come up with a clean way to do it in nearest future. - -### Props - -| Name | Type | Default | Description | -| --- | --- | --- | --- | -| `items` | Array | `[]` | Initial array of items | -| `cellWidth` | Number | `80` | Cell width | -| `cellHeight` | Number | `80` | Cell height | -| `draggable` | Boolean | `false` | Flag that will let you drag grid's cells | -| `dragDelay` | Number | `0` | @TODO | -| `sortable` | Boolean | `false` | Flag that will let you reorder grid's cells; requires `draggable` to be `true` | -| `center` | Boolean | `false` | @TODO | - -### Events - -| Name | Description | -| --- | --- | -| `@change` | Occurs on every action that involves reordering array or changing its length | -| `@remove` | Occurs when an element is deleted through template | -| `@click` | Occurs when cell is clicked | -| `@sort` | Occurs when array item order is changed manually | - -### Cell template - -Cell template is used to get access to list data, indexing, and sorting params generated by plugin. - -Template's scope contains: - -* `props.item`: list item value -* `props.index`: initial index of the item -* `props.sort`: current index of the item after sorting -* `props.remove()`: method that removes the item from the array and resort list. - -Example: - -```vue -<template slot="cell" scope="props"> - <div @click="() => { props.remove() }"> - <div>Data: {{props.item}}</div> - <div>{{props.index}} / {{props.sort}}</div> -</template> -``` - -### Why do I need this? - -A good example of using a plugin would be rending macOS' `Launchpad` or `Dock`. Check out a demo for a solid example of how the plugin behaves & feels. - -Demo: https://euvl.github.io/vue-js-grid/ - -### Roadmap - -1. Add element insertion -2. Add tests diff --git a/build.js b/build.js new file mode 100644 index 0000000..2fad7b5 --- /dev/null +++ b/build.js @@ -0,0 +1,7 @@ +!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=".",e(e.s=8)}([function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e<this.length;e++){var n=this[e];n[2]?t.push("@media "+n[2]+"{"+n[1]+"}"):t.push(n[1])}return t.join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},i=0;i<this.length;i++){var o=this[i][0];"number"==typeof o&&(r[o]=!0)}for(i=0;i<e.length;i++){var a=e[i];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),t.push(a))}},t}},function(t,e){t.exports=function(t,e,n,r){var i,o=t=t||{},a=typeof t.default;"object"!==a&&"function"!==a||(i=t,o=t.default);var s="function"==typeof o?o.options:o;if(e&&(s.render=e.render,s.staticRenderFns=e.staticRenderFns),n&&(s._scopeId=n),r){var c=Object.create(s.computed||null);Object.keys(r).forEach(function(t){var e=r[t];c[t]=function(){return e}}),s.computed=c}return{esModule:i,exports:o,options:s}}},function(t,e,n){function r(t){for(var e=0;e<t.length;e++){var n=t[e],r=l[n.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](n.parts[i]);for(;i<n.parts.length;i++)r.parts.push(o(n.parts[i]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{for(var a=[],i=0;i<n.parts.length;i++)a.push(o(n.parts[i]));l[n.id]={id:n.id,refs:1,parts:a}}}}function i(){var t=document.createElement("style");return t.type="text/css",f.appendChild(t),t}function o(t){var e,n,r=document.querySelector('style[data-vue-ssr-id~="'+t.id+'"]');if(r){if(v)return h;r.parentNode.removeChild(r)}if(m){var o=p++;r=d||(d=i()),e=a.bind(null,r,o,!1),n=a.bind(null,r,o,!0)}else r=i(),e=s.bind(null,r),n=function(){r.parentNode.removeChild(r)};return e(t),function(r){if(r){if(r.css===t.css&&r.media===t.media&&r.sourceMap===t.sourceMap)return;e(t=r)}else n()}}function a(t,e,n,r){var i=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=g(e,i);else{var o=document.createTextNode(i),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(o,a[e]):t.appendChild(o)}}function s(t,e){var n=e.css,r=e.media,i=e.sourceMap;if(r&&t.setAttribute("media",r),i&&(n+="\n/*# sourceURL="+i.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}var c="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!c)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var u=n(17),l={},f=c&&(document.head||document.getElementsByTagName("head")[0]),d=null,p=0,v=!1,h=function(){},m="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());t.exports=function(t,e,n){v=n;var i=u(t,e);return r(i),function(e){for(var n=[],o=0;o<i.length;o++){var a=i[o],s=l[a.id];s.refs--,n.push(s)}e?(i=u(t,e),r(i)):i=[];for(var o=0;o<n.length;o++){var s=n[o];if(0===s.refs){for(var c=0;c<s.parts.length;c++)s.parts[c]();delete l[s.id]}}}};var g=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},function(t,e,n){"use strict";(function(t){var n,r,i,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(a,s){"object"==o(e)&&"object"==o(t)?t.exports=s():(r=[],n=s,void 0!==(i="function"==typeof n?n.apply(e,r):n)&&(t.exports=i))}(0,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=6)}([function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e<this.length;e++){var n=this[e];n[2]?t.push("@media "+n[2]+"{"+n[1]+"}"):t.push(n[1])}return t.join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},i=0;i<this.length;i++){var o=this[i][0];"number"==typeof o&&(r[o]=!0)}for(i=0;i<e.length;i++){var a=e[i];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),t.push(a))}},t}},function(t,e){t.exports=function(t,e,n,r){var i,a=t=t||{},s=o(t.default);"object"!==s&&"function"!==s||(i=t,a=t.default);var c="function"==typeof a?a.options:a;if(e&&(c.render=e.render,c.staticRenderFns=e.staticRenderFns),n&&(c._scopeId=n),r){var u=Object.create(c.computed||null);Object.keys(r).forEach(function(t){var e=r[t];u[t]=function(){return e}}),c.computed=u}return{esModule:i,exports:a,options:c}}},function(t,e,n){function r(t){for(var e=0;e<t.length;e++){var n=t[e],r=l[n.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](n.parts[i]);for(;i<n.parts.length;i++)r.parts.push(o(n.parts[i]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{for(var a=[],i=0;i<n.parts.length;i++)a.push(o(n.parts[i]));l[n.id]={id:n.id,refs:1,parts:a}}}}function i(){var t=document.createElement("style");return t.type="text/css",f.appendChild(t),t}function o(t){var e,n,r=document.querySelector('style[data-vue-ssr-id~="'+t.id+'"]');if(r){if(v)return h;r.parentNode.removeChild(r)}if(m){var o=p++;r=d||(d=i()),e=a.bind(null,r,o,!1),n=a.bind(null,r,o,!0)}else r=i(),e=s.bind(null,r),n=function(){r.parentNode.removeChild(r)};return e(t),function(r){if(r){if(r.css===t.css&&r.media===t.media&&r.sourceMap===t.sourceMap)return;e(t=r)}else n()}}function a(t,e,n,r){var i=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=g(e,i);else{var o=document.createTextNode(i),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(o,a[e]):t.appendChild(o)}}function s(t,e){var n=e.css,r=e.media,i=e.sourceMap;if(r&&t.setAttribute("media",r),i&&(n+="\n/*# sourceURL="+i.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}var c="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!c)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var u=n(15),l={},f=c&&(document.head||document.getElementsByTagName("head")[0]),d=null,p=0,v=!1,h=function(){},m="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());t.exports=function(t,e,n){v=n;var i=u(t,e);return r(i),function(e){for(var n=[],o=0;o<i.length;o++){var a=i[o],s=l[a.id];s.refs--,n.push(s)}e?(i=u(t,e),r(i)):i=[];for(var o=0;o<n.length;o++){var s=n[o];if(0===s.refs){for(var c=0;c<s.parts.length;c++)s.parts[c]();delete l[s.id]}}}};var g=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},function(t,e,n){n(13);var r=n(1)(n(4),n(11),null,null);t.exports=r.exports},function(t,e,n){function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},o=n(7),a=r(o),s=n(10),c=r(s);e.default={name:"Grid",mixins:[a.default],components:{GridItem:c.default},props:{items:{type:Array,default:function(){return[]}},cellWidth:{type:Number,default:80},cellHeight:{type:Number,default:80},draggable:{type:Boolean,default:!1},dragDelay:{type:Number,default:0},sortable:{type:Boolean,default:!1},center:{type:Boolean,default:!1}},data:function(){return{list:[]}},watch:{items:{handler:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.list=t.map(function(t,e){return{item:t,index:e,sort:e}})},immediate:!0}},computed:{height:function(){return Math.ceil(this.items.length/this.rowCount)*this.cellHeight},style:function(){return{height:this.height+"px"}},rowCount:function(){return Math.floor(this.windowWidth/this.cellWidth)},rowShift:function(){if(this.center){var t=this.items.length*this.cellWidth,e=t<this.windowWidth?(this.windowWidth-t)/2:this.windowWidth%this.cellWidth/2;return Math.floor(e)}return 0}},methods:{wrapEvent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return i({datetime:Date.now(),items:this.getListClone()},t)},getListClone:function(){return this.list.slice(0).sort(function(t,e){return t.sort-e.sort})},removeItem:function(t){var e=t.index,n=this.list.find(function(t){return t.index===e}),r=n.sort;this.list=this.list.filter(function(t){return t.index!==e}).map(function(t){var e=t.sort>r?t.sort-1:t.sort;return i({},t,{sort:e})}),this.$emit("remove",this.wrapEvent({index:e}))},onDragStart:function(t){this.$emit("dragstart",this.wrapEvent(t))},onDragEnd:function(t){this.$emit("dragend",this.wrapEvent(t))},click:function(t){this.$emit("click",this.wrapEvent(t))},onDrag:function(t){this.sortable&&this.sortList(t.index,t.gridPosition),this.$emit("drag",this.wrapEvent({event:t}))},sortList:function(t,e){var n=this.list.find(function(e){return e.index===t}),r=n.sort;e=Math.max(e,0),e=Math.min(e,this.list.length-1),r!==e&&(this.list=this.list.map(function(t){if(t.index===n.index)return i({},t,{sort:e});var o=t.sort;return r>e&&o<=r&&o>=e?i({},t,{sort:o+1}):r<e&&o>=r&&o<=e?i({},t,{sort:o-1}):t}),this.$emit("sort",this.wrapEvent()))}}}},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"GridItem",props:{index:{type:Number},sort:{type:Number},cellWidth:{type:Number},cellHeight:{type:Number},rowCount:{type:Number},rowShift:{type:Number,default:0},draggable:{type:Boolean},dragDelay:{type:Number,default:0}},data:function(){return{animate:!0,dragging:!1,shiftStartX:0,shiftStartY:0,mouseMoveStartX:0,mouseMoveStartY:0,shiftX:0,shiftY:0,timer:null,zIndex:1}},mounted:function(){var t=this;this.$refs.self.addEventListener("transitionend",function(e){t.dragging||(t.zIndex=1)},!1)},computed:{className:function(){return["v-grid-item-wrapper",{"v-grid-item-animate":this.animate,"v-grid-item-dragging":this.dragging}]},style:function(){var t=this.zIndex,e=this.cellWidth,n=this.cellHeight,r=this.top;return{zIndex:t,width:e+"px",height:n+"px",transform:"translate3d("+this.left+"px, "+r+"px, 0)"}},left:function(){return this.dragging?this.shiftX:this.rowShift+this.sort%this.rowCount*this.cellWidth},top:function(){return this.dragging?this.shiftY:Math.floor(this.sort/this.rowCount)*this.cellHeight}},methods:{wrapEvent:function(t){return{event:t,index:this.index,sort:this.sort}},dragStart:function(t){var e=t.touches?t.touches[0]:t;this.zIndex=2,this.shiftX=this.shiftStartX=this.left,this.shiftY=this.shiftStartY=this.top,this.mouseMoveStartX=e.pageX,this.mouseMoveStartY=e.pageY,this.animate=!1,this.dragging=!0,document.addEventListener("mousemove",this.documentMouseMove),document.addEventListener("touchmove",this.documentMouseMove),this.$emit("dragstart",this.wrapEvent(t))},drag:function(t){var e=t.touches?t.touches[0]:t,n=e.pageX-this.mouseMoveStartX,r=e.pageY-this.mouseMoveStartY;this.shiftX=n+this.shiftStartX,this.shiftY=r+this.shiftStartY;var i=Math.round(this.shiftX/this.cellWidth),o=Math.round(this.shiftY/this.cellHeight);i=Math.min(i,this.rowCount-1),o=Math.max(o,0);var a=i+o*this.rowCount,s={event:t,distanceX:n,distanceY:r,positionX:this.shiftX,positionY:this.shiftY,index:this.index,gridX:i,gridY:o,gridPosition:a};this.$emit("drag",s)},mousedown:function(t){var e=this;this.draggable&&(this.timer=setTimeout(function(){e.dragStart(t)},this.dragDelay),document.addEventListener("mouseup",this.documentMouseUp),document.addEventListener("touchend",this.documentMouseUp))},documentMouseMove:function(t){this.draggable&&this.dragging&&this.drag(t)},documentMouseUp:function(t){this.timer&&(clearTimeout(this.timer),this.timer=null);var e=this.shiftStartX-this.shiftX,n=this.shiftStartY-this.shiftY,r=Math.sqrt(e*e+n*n);this.animate=!0,this.dragging=!1,this.mouseMoveStartX=0,this.mouseMoveStartY=0,this.shiftStartX=0,this.shiftStartY=0,document.removeEventListener("mousemove",this.documentMouseMove),document.removeEventListener("touchmove",this.documentMouseMove),document.removeEventListener("mouseup",this.documentMouseUp),document.removeEventListener("touchend",this.documentMouseUp);var i=this.wrapEvent(t);r<4&&this.$emit("click",i),this.$emit("dragend",i)}}}},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),i=function(t){return t&&t.__esModule?t:{default:t}}(r);e.default={install:function(t){t.component("Grid",i.default)}}},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default={data:function(){return{windowHeight:0,windowWidth:0}},created:function(){window.addEventListener("resize",this.getWindowSize),this.getWindowSize()},beforeDestroy:function(){window.removeEventListener("resize",this.getWindowSize)},methods:{getWindowSize:function(){this.windowHeight=window.innerHeight,this.windowWidth=window.innerWidth}}}},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\nbody {\n margin: 0;\n padding: 0;\n}\n.v-grid {\n display: block;\n position: relative;\n width: 100%;\n}\n",""])},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n.v-grid-item-wrapper {\n display: block;\n position: absolute;\n box-sizing: border-box;\n left: 0;\n top: 0;\n user-select: none;\n transform: translate3d(0px, 0px, 0px);\n z-index: 1;\n}\n.v-grid-item-wrapper.v-grid-item-animate {\n transition: transform 800ms ease;\n}\n",""])},function(t,e,n){n(14);var r=n(1)(n(5),n(12),null,null);t.exports=r.exports},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"v-grid",style:t.style},t._l(t.list,function(e){return n("GridItem",{key:e.index,attrs:{index:e.index,sort:e.sort,draggable:t.draggable,"drag-delay":t.dragDelay,"row-count":t.rowCount,"cell-width":t.cellWidth,"cell-height":t.cellHeight,"window-width":t.windowWidth,"row-shift":t.rowShift},on:{dragstart:t.onDragStart,dragend:t.onDragEnd,drag:t.onDrag,click:t.click}},[t._t("cell",null,{item:e.item,index:e.index,sort:e.sort,remove:function(){t.removeItem(e)}})],2)}))},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",{ref:"self",class:t.className,style:t.style,on:{mousedown:t.mousedown,touchstart:function(e){e.stopPropagation(),t.mousedown(e)}}},[t._t("default")],2)},staticRenderFns:[]}},function(t,e,n){var r=n(8);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals),n(2)("0a97df14",r,!0)},function(t,e,n){var r=n(9);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals),n(2)("4be927ea",r,!0)},function(t,e){t.exports=function(t,e){for(var n=[],r={},i=0;i<e.length;i++){var o=e[i],a=o[0],s=o[1],c=o[2],u=o[3],l={id:t+":"+i,css:s,media:c,sourceMap:u};r[a]?r[a].parts.push(l):n.push(r[a]={id:a,parts:[l]})}return n}}])})}).call(e,n(19)(t))},function(t,e,n){n(16);var r=n(1)(n(6),n(14),null,null);t.exports=r.exports},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){/*! + * Vue.js v2.4.4 + * (c) 2014-2017 Evan You + * Released under the MIT License. + */ +function n(t){return void 0===t||null===t}function r(t){return void 0!==t&&null!==t}function i(t){return!0===t}function o(t){return!1===t}function a(t){return"string"==typeof t||"number"==typeof t||"boolean"==typeof t}function s(t){return null!==t&&"object"==typeof t}function c(t){return"[object Object]"===Bi.call(t)}function u(t){return"[object RegExp]"===Bi.call(t)}function l(t){var e=parseFloat(t);return e>=0&&Math.floor(e)===e&&isFinite(t)}function f(t){return null==t?"":"object"==typeof t?JSON.stringify(t,null,2):String(t)}function d(t){var e=parseFloat(t);return isNaN(e)?t:e}function p(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i<r.length;i++)n[r[i]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}function v(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(n,1)}}function h(t,e){return zi.call(t,e)}function m(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}function g(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function y(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function _(t,e){for(var n in e)t[n]=e[n];return t}function b(t){for(var e={},n=0;n<t.length;n++)t[n]&&_(e,t[n]);return e}function x(t,e,n){}function w(t,e){if(t===e)return!0;var n=s(t),r=s(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{var i=Array.isArray(t),o=Array.isArray(e);if(i&&o)return t.length===e.length&&t.every(function(t,n){return w(t,e[n])});if(i||o)return!1;var a=Object.keys(t),c=Object.keys(e);return a.length===c.length&&a.every(function(n){return w(t[n],e[n])})}catch(t){return!1}}function $(t,e){for(var n=0;n<t.length;n++)if(w(t[n],e))return n;return-1}function C(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}function k(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}function A(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,writable:!0,configurable:!0})}function O(t){if(!no.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}function S(t,e,n){if(to.errorHandler)to.errorHandler.call(null,t,e,n);else{if(!oo||"undefined"==typeof console)throw t;console.error(t)}}function E(t){return"function"==typeof t&&/native code/.test(t.toString())}function M(t){Co.target&&ko.push(Co.target),Co.target=t}function T(){Co.target=ko.pop()}function j(t,e,n){t.__proto__=e}function N(t,e,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];A(t,o,e[o])}}function L(t,e){if(s(t)){var n;return h(t,"__ob__")&&t.__ob__ instanceof Mo?n=t.__ob__:Eo.shouldConvert&&!_o()&&(Array.isArray(t)||c(t))&&Object.isExtensible(t)&&!t._isVue&&(n=new Mo(t)),e&&n&&n.vmCount++,n}}function I(t,e,n,r,i){var o=new Co,a=Object.getOwnPropertyDescriptor(t,e);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set,u=!i&&L(n);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(t):n;return Co.target&&(o.depend(),u&&(u.dep.depend(),Array.isArray(e)&&R(e))),e},set:function(e){var r=s?s.call(t):n;e===r||e!==e&&r!==r||(c?c.call(t,e):n=e,u=!i&&L(e),o.notify())}})}}function P(t,e,n){if(Array.isArray(t)&&l(e))return t.length=Math.max(t.length,e),t.splice(e,1,n),n;if(h(t,e))return t[e]=n,n;var r=t.__ob__;return t._isVue||r&&r.vmCount?n:r?(I(r.value,e,n),r.dep.notify(),n):(t[e]=n,n)}function D(t,e){if(Array.isArray(t)&&l(e))return void t.splice(e,1);var n=t.__ob__;t._isVue||n&&n.vmCount||h(t,e)&&(delete t[e],n&&n.dep.notify())}function R(t){for(var e=void 0,n=0,r=t.length;n<r;n++)e=t[n],e&&e.__ob__&&e.__ob__.dep.depend(),Array.isArray(e)&&R(e)}function F(t,e){if(!e)return t;for(var n,r,i,o=Object.keys(e),a=0;a<o.length;a++)n=o[a],r=t[n],i=e[n],h(t,n)?c(r)&&c(i)&&F(r,i):P(t,n,i);return t}function B(t,e,n){return n?t||e?function(){var r="function"==typeof e?e.call(n):e,i="function"==typeof t?t.call(n):t;return r?F(r,i):i}:void 0:e?t?function(){return F("function"==typeof e?e.call(this):e,"function"==typeof t?t.call(this):t)}:e:t}function U(t,e){return e?t?t.concat(e):Array.isArray(e)?e:[e]:t}function H(t,e){var n=Object.create(t||null);return e?_(n,e):n}function z(t){var e=t.props;if(e){var n,r,i,o={};if(Array.isArray(e))for(n=e.length;n--;)"string"==typeof(r=e[n])&&(i=Vi(r),o[i]={type:null});else if(c(e))for(var a in e)r=e[a],i=Vi(a),o[i]=c(r)?r:{type:r};t.props=o}}function W(t){var e=t.inject;if(Array.isArray(e))for(var n=t.inject={},r=0;r<e.length;r++)n[e[r]]=e[r]}function V(t){var e=t.directives;if(e)for(var n in e){var r=e[n];"function"==typeof r&&(e[n]={bind:r,update:r})}}function Y(t,e,n){function r(r){var i=To[r]||jo;c[r]=i(t[r],e[r],n,r)}"function"==typeof e&&(e=e.options),z(e),W(e),V(e);var i=e.extends;if(i&&(t=Y(t,i,n)),e.mixins)for(var o=0,a=e.mixins.length;o<a;o++)t=Y(t,e.mixins[o],n);var s,c={};for(s in t)r(s);for(s in e)h(t,s)||r(s);return c}function X(t,e,n,r){if("string"==typeof n){var i=t[e];if(h(i,n))return i[n];var o=Vi(n);if(h(i,o))return i[o];var a=Yi(o);if(h(i,a))return i[a];return i[n]||i[o]||i[a]}}function G(t,e,n,r){var i=e[t],o=!h(n,t),a=n[t];if(J(Boolean,i.type)&&(o&&!h(i,"default")?a=!1:J(String,i.type)||""!==a&&a!==Gi(t)||(a=!0)),void 0===a){a=K(r,i,t);var s=Eo.shouldConvert;Eo.shouldConvert=!0,L(a),Eo.shouldConvert=s}return a}function K(t,e,n){if(h(e,"default")){var r=e.default;return t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n]?t._props[n]:"function"==typeof r&&"Function"!==q(e.type)?r.call(t):r}}function q(t){var e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function J(t,e){if(!Array.isArray(e))return q(e)===q(t);for(var n=0,r=e.length;n<r;n++)if(q(e[n])===q(t))return!0;return!1}function Z(t){return new No(void 0,void 0,void 0,String(t))}function Q(t,e){var n=new No(t.tag,t.data,t.children,t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return n.ns=t.ns,n.isStatic=t.isStatic,n.key=t.key,n.isComment=t.isComment,n.isCloned=!0,e&&t.children&&(n.children=tt(t.children)),n}function tt(t,e){for(var n=t.length,r=new Array(n),i=0;i<n;i++)r[i]=Q(t[i],e);return r}function et(t){function e(){var t=arguments,n=e.fns;if(!Array.isArray(n))return n.apply(null,arguments);for(var r=n.slice(),i=0;i<r.length;i++)r[i].apply(null,t)}return e.fns=t,e}function nt(t,e){return t.plain?-1:e.plain?1:0}function rt(t,e,r,i,o){var a,s,c,u,l=[],f=!1;for(a in t)s=t[a],c=e[a],u=Do(a),u.plain||(f=!0),n(s)||(n(c)?(n(s.fns)&&(s=t[a]=et(s)),u.handler=s,l.push(u)):s!==c&&(c.fns=s,t[a]=c));if(l.length){f&&l.sort(nt);for(var d=0;d<l.length;d++){var p=l[d];r(p.name,p.handler,p.once,p.capture,p.passive)}}for(a in e)n(t[a])&&(u=Do(a),i(u.name,e[a],u.capture))}function it(t,e,o){function a(){o.apply(this,arguments),v(s.fns,a)}var s,c=t[e];n(c)?s=et([a]):r(c.fns)&&i(c.merged)?(s=c,s.fns.push(a)):s=et([c,a]),s.merged=!0,t[e]=s}function ot(t,e,i){var o=e.options.props;if(!n(o)){var a={},s=t.attrs,c=t.props;if(r(s)||r(c))for(var u in o){var l=Gi(u);at(a,c,u,l,!0)||at(a,s,u,l,!1)}return a}}function at(t,e,n,i,o){if(r(e)){if(h(e,n))return t[n]=e[n],o||delete e[n],!0;if(h(e,i))return t[n]=e[i],o||delete e[i],!0}return!1}function st(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return Array.prototype.concat.apply([],t);return t}function ct(t){return a(t)?[Z(t)]:Array.isArray(t)?lt(t):void 0}function ut(t){return r(t)&&r(t.text)&&o(t.isComment)}function lt(t,e){var o,s,c,u=[];for(o=0;o<t.length;o++)s=t[o],n(s)||"boolean"==typeof s||(c=u[u.length-1],Array.isArray(s)?u.push.apply(u,lt(s,(e||"")+"_"+o)):a(s)?ut(c)?c.text+=String(s):""!==s&&u.push(Z(s)):ut(s)&&ut(c)?u[u.length-1]=Z(c.text+s.text):(i(t._isVList)&&r(s.tag)&&n(s.key)&&r(e)&&(s.key="__vlist"+e+"_"+o+"__"),u.push(s)));return u}function ft(t,e){return t.__esModule&&t.default&&(t=t.default),s(t)?e.extend(t):t}function dt(t,e,n,r,i){var o=Po();return o.asyncFactory=t,o.asyncMeta={data:e,context:n,children:r,tag:i},o}function pt(t,e,o){if(i(t.error)&&r(t.errorComp))return t.errorComp;if(r(t.resolved))return t.resolved;if(i(t.loading)&&r(t.loadingComp))return t.loadingComp;if(!r(t.contexts)){var a=t.contexts=[o],c=!0,u=function(){for(var t=0,e=a.length;t<e;t++)a[t].$forceUpdate()},l=C(function(n){t.resolved=ft(n,e),c||u()}),f=C(function(e){r(t.errorComp)&&(t.error=!0,u())}),d=t(l,f);return s(d)&&("function"==typeof d.then?n(t.resolved)&&d.then(l,f):r(d.component)&&"function"==typeof d.component.then&&(d.component.then(l,f),r(d.error)&&(t.errorComp=ft(d.error,e)),r(d.loading)&&(t.loadingComp=ft(d.loading,e),0===d.delay?t.loading=!0:setTimeout(function(){n(t.resolved)&&n(t.error)&&(t.loading=!0,u())},d.delay||200)),r(d.timeout)&&setTimeout(function(){n(t.resolved)&&f(null)},d.timeout))),c=!1,t.loading?t.loadingComp:t.resolved}t.contexts.push(o)}function vt(t){return t.isComment&&t.asyncFactory}function ht(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];if(r(n)&&(r(n.componentOptions)||vt(n)))return n}}function mt(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&_t(t,e)}function gt(t,e,n){n?Io.$once(t,e):Io.$on(t,e)}function yt(t,e){Io.$off(t,e)}function _t(t,e,n){Io=t,rt(e,n||{},gt,yt,t)}function bt(t,e){var n={};if(!t)return n;for(var r=[],i=0,o=t.length;i<o;i++){var a=t[i],s=a.data;if(s&&s.attrs&&s.attrs.slot&&delete s.attrs.slot,a.context!==e&&a.functionalContext!==e||!s||null==s.slot)r.push(a);else{var c=a.data.slot,u=n[c]||(n[c]=[]);"template"===a.tag?u.push.apply(u,a.children):u.push(a)}}return r.every(xt)||(n.default=r),n}function xt(t){return t.isComment||" "===t.text}function wt(t,e){e=e||{};for(var n=0;n<t.length;n++)Array.isArray(t[n])?wt(t[n],e):e[t[n].key]=t[n].fn;return e}function $t(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}function Ct(t,e,n){t.$el=e,t.$options.render||(t.$options.render=Po),Et(t,"beforeMount");var r;return r=function(){t._update(t._render(),n)},t._watcher=new Yo(t,r,x),n=!1,null==t.$vnode&&(t._isMounted=!0,Et(t,"mounted")),t}function kt(t,e,n,r,i){var o=!!(i||t.$options._renderChildren||r.data.scopedSlots||t.$scopedSlots!==eo);if(t.$options._parentVnode=r,t.$vnode=r,t._vnode&&(t._vnode.parent=r),t.$options._renderChildren=i,t.$attrs=r.data&&r.data.attrs||eo,t.$listeners=n||eo,e&&t.$options.props){Eo.shouldConvert=!1;for(var a=t._props,s=t.$options._propKeys||[],c=0;c<s.length;c++){var u=s[c];a[u]=G(u,t.$options.props,e,t)}Eo.shouldConvert=!0,t.$options.propsData=e}if(n){var l=t.$options._parentListeners;t.$options._parentListeners=n,_t(t,n,l)}o&&(t.$slots=bt(i,r.context),t.$forceUpdate())}function At(t){for(;t&&(t=t.$parent);)if(t._inactive)return!0;return!1}function Ot(t,e){if(e){if(t._directInactive=!1,At(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)Ot(t.$children[n]);Et(t,"activated")}}function St(t,e){if(!(e&&(t._directInactive=!0,At(t))||t._inactive)){t._inactive=!0;for(var n=0;n<t.$children.length;n++)St(t.$children[n]);Et(t,"deactivated")}}function Et(t,e){var n=t.$options[e];if(n)for(var r=0,i=n.length;r<i;r++)try{n[r].call(t)}catch(n){S(n,t,e+" hook")}t._hasHookEvent&&t.$emit("hook:"+e)}function Mt(){Wo=Fo.length=Bo.length=0,Uo={},Ho=zo=!1}function Tt(){zo=!0;var t,e;for(Fo.sort(function(t,e){return t.id-e.id}),Wo=0;Wo<Fo.length;Wo++)t=Fo[Wo],e=t.id,Uo[e]=null,t.run();var n=Bo.slice(),r=Fo.slice();Mt(),Lt(n),jt(r),bo&&to.devtools&&bo.emit("flush")}function jt(t){for(var e=t.length;e--;){var n=t[e],r=n.vm;r._watcher===n&&r._isMounted&&Et(r,"updated")}}function Nt(t){t._inactive=!1,Bo.push(t)}function Lt(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,Ot(t[e],!0)}function It(t){var e=t.id;if(null==Uo[e]){if(Uo[e]=!0,zo){for(var n=Fo.length-1;n>Wo&&Fo[n].id>t.id;)n--;Fo.splice(n+1,0,t)}else Fo.push(t);Ho||(Ho=!0,wo(Tt))}}function Pt(t){Xo.clear(),Dt(t,Xo)}function Dt(t,e){var n,r,i=Array.isArray(t);if((i||s(t))&&Object.isExtensible(t)){if(t.__ob__){var o=t.__ob__.dep.id;if(e.has(o))return;e.add(o)}if(i)for(n=t.length;n--;)Dt(t[n],e);else for(r=Object.keys(t),n=r.length;n--;)Dt(t[r[n]],e)}}function Rt(t,e,n){Go.get=function(){return this[e][n]},Go.set=function(t){this[e][n]=t},Object.defineProperty(t,n,Go)}function Ft(t){t._watchers=[];var e=t.$options;e.props&&Bt(t,e.props),e.methods&&Yt(t,e.methods),e.data?Ut(t):L(t._data={},!0),e.computed&&zt(t,e.computed),e.watch&&e.watch!==vo&&Xt(t,e.watch)}function Bt(t,e){var n=t.$options.propsData||{},r=t._props={},i=t.$options._propKeys=[],o=!t.$parent;Eo.shouldConvert=o;for(var a in e)!function(o){i.push(o);var a=G(o,e,n,t);I(r,o,a),o in t||Rt(t,"_props",o)}(a);Eo.shouldConvert=!0}function Ut(t){var e=t.$options.data;e=t._data="function"==typeof e?Ht(e,t):e||{},c(e)||(e={});for(var n=Object.keys(e),r=t.$options.props,i=(t.$options.methods,n.length);i--;){var o=n[i];r&&h(r,o)||k(o)||Rt(t,"_data",o)}L(e,!0)}function Ht(t,e){try{return t.call(e)}catch(t){return S(t,e,"data()"),{}}}function zt(t,e){var n=t._computedWatchers=Object.create(null),r=_o();for(var i in e){var o=e[i],a="function"==typeof o?o:o.get;r||(n[i]=new Yo(t,a||x,x,Ko)),i in t||Wt(t,i,o)}}function Wt(t,e,n){var r=!_o();"function"==typeof n?(Go.get=r?Vt(e):n,Go.set=x):(Go.get=n.get?r&&!1!==n.cache?Vt(e):n.get:x,Go.set=n.set?n.set:x),Object.defineProperty(t,e,Go)}function Vt(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),Co.target&&e.depend(),e.value}}function Yt(t,e){t.$options.props;for(var n in e)t[n]=null==e[n]?x:g(e[n],t)}function Xt(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)Gt(t,n,r[i]);else Gt(t,n,r)}}function Gt(t,e,n,r){return c(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=t[n]),t.$watch(e,n,r)}function Kt(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}function qt(t){var e=Jt(t.$options.inject,t);e&&(Eo.shouldConvert=!1,Object.keys(e).forEach(function(n){I(t,n,e[n])}),Eo.shouldConvert=!0)}function Jt(t,e){if(t){for(var n=Object.create(null),r=xo?Reflect.ownKeys(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}):Object.keys(t),i=0;i<r.length;i++)for(var o=r[i],a=t[o],s=e;s;){if(s._provided&&a in s._provided){n[o]=s._provided[a];break}s=s.$parent}return n}}function Zt(t,e,n,i,o){var a={},s=t.options.props;if(r(s))for(var c in s)a[c]=G(c,s,e||eo);else r(n.attrs)&&Qt(a,n.attrs),r(n.props)&&Qt(a,n.props);var u=Object.create(i),l=function(t,e,n,r){return oe(u,t,e,n,r,!0)},f=t.options.render.call(null,l,{data:n,props:a,children:o,parent:i,listeners:n.on||eo,injections:Jt(t.options.inject,i),slots:function(){return bt(o,i)}});return f instanceof No&&(f.functionalContext=i,f.functionalOptions=t.options,n.slot&&((f.data||(f.data={})).slot=n.slot)),f}function Qt(t,e){for(var n in e)t[Vi(n)]=e[n]}function te(t,e,o,a,c){if(!n(t)){var u=o.$options._base;if(s(t)&&(t=u.extend(t)),"function"==typeof t){var l;if(n(t.cid)&&(l=t,void 0===(t=pt(l,u,o))))return dt(l,e,o,a,c);e=e||{},be(t),r(e.model)&&ie(t.options,e);var f=ot(e,t,c);if(i(t.options.functional))return Zt(t,f,e,o,a);var d=e.on;if(e.on=e.nativeOn,i(t.options.abstract)){var p=e.slot;e={},p&&(e.slot=p)}ne(e);var v=t.options.name||c;return new No("vue-component-"+t.cid+(v?"-"+v:""),e,void 0,void 0,void 0,o,{Ctor:t,propsData:f,listeners:d,tag:c,children:a},l)}}}function ee(t,e,n,i){var o=t.componentOptions,a={_isComponent:!0,parent:e,propsData:o.propsData,_componentTag:o.tag,_parentVnode:t,_parentListeners:o.listeners,_renderChildren:o.children,_parentElm:n||null,_refElm:i||null},s=t.data.inlineTemplate;return r(s)&&(a.render=s.render,a.staticRenderFns=s.staticRenderFns),new o.Ctor(a)}function ne(t){t.hook||(t.hook={});for(var e=0;e<Jo.length;e++){var n=Jo[e],r=t.hook[n],i=qo[n];t.hook[n]=r?re(i,r):i}}function re(t,e){return function(n,r,i,o){t(n,r,i,o),e(n,r,i,o)}}function ie(t,e){var n=t.model&&t.model.prop||"value",i=t.model&&t.model.event||"input";(e.props||(e.props={}))[n]=e.model.value;var o=e.on||(e.on={});r(o[i])?o[i]=[e.model.callback].concat(o[i]):o[i]=e.model.callback}function oe(t,e,n,r,o,s){return(Array.isArray(n)||a(n))&&(o=r,r=n,n=void 0),i(s)&&(o=Qo),ae(t,e,n,r,o)}function ae(t,e,n,i,o){if(r(n)&&r(n.__ob__))return Po();if(r(n)&&r(n.is)&&(e=n.is),!e)return Po();Array.isArray(i)&&"function"==typeof i[0]&&(n=n||{},n.scopedSlots={default:i[0]},i.length=0),o===Qo?i=ct(i):o===Zo&&(i=st(i));var a,s;if("string"==typeof e){var c;s=t.$vnode&&t.$vnode.ns||to.getTagNamespace(e),a=to.isReservedTag(e)?new No(to.parsePlatformTagName(e),n,i,void 0,void 0,t):r(c=X(t.$options,"components",e))?te(c,n,t,i,e):new No(e,n,i,void 0,void 0,t)}else a=te(e,n,t,i);return r(a)?(s&&se(a,s),a):Po()}function se(t,e){if(t.ns=e,"foreignObject"!==t.tag&&r(t.children))for(var i=0,o=t.children.length;i<o;i++){var a=t.children[i];r(a.tag)&&n(a.ns)&&se(a,e)}}function ce(t,e){var n,i,o,a,c;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),i=0,o=t.length;i<o;i++)n[i]=e(t[i],i);else if("number"==typeof t)for(n=new Array(t),i=0;i<t;i++)n[i]=e(i+1,i);else if(s(t))for(a=Object.keys(t),n=new Array(a.length),i=0,o=a.length;i<o;i++)c=a[i],n[i]=e(t[c],c,i);return r(n)&&(n._isVList=!0),n}function ue(t,e,n,r){var i=this.$scopedSlots[t];if(i)return n=n||{},r&&(n=_(_({},r),n)),i(n)||e;var o=this.$slots[t];return o||e}function le(t){return X(this.$options,"filters",t,!0)||qi}function fe(t,e,n){var r=to.keyCodes[e]||n;return Array.isArray(r)?-1===r.indexOf(t):r!==t}function de(t,e,n,r,i){if(n)if(s(n)){Array.isArray(n)&&(n=b(n));var o;for(var a in n)!function(a){if("class"===a||"style"===a||Hi(a))o=t;else{var s=t.attrs&&t.attrs.type;o=r||to.mustUseProp(e,s,a)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}if(!(a in o)&&(o[a]=n[a],i)){(t.on||(t.on={}))["update:"+a]=function(t){n[a]=t}}}(a)}else;return t}function pe(t,e){var n=this._staticTrees[t];return n&&!e?Array.isArray(n)?tt(n):Q(n):(n=this._staticTrees[t]=this.$options.staticRenderFns[t].call(this._renderProxy),he(n,"__static__"+t,!1),n)}function ve(t,e,n){return he(t,"__once__"+e+(n?"_"+n:""),!0),t}function he(t,e,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&"string"!=typeof t[r]&&me(t[r],e+"_"+r,n);else me(t,e,n)}function me(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function ge(t,e){if(e)if(c(e)){var n=t.on=t.on?_({},t.on):{};for(var r in e){var i=n[r],o=e[r];n[r]=i?[].concat(o,i):o}}else;return t}function ye(t){t._vnode=null,t._staticTrees=null;var e=t.$vnode=t.$options._parentVnode,n=e&&e.context;t.$slots=bt(t.$options._renderChildren,n),t.$scopedSlots=eo,t._c=function(e,n,r,i){return oe(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return oe(t,e,n,r,i,!0)};var r=e&&e.data;I(t,"$attrs",r&&r.attrs||eo,null,!0),I(t,"$listeners",t.$options._parentListeners||eo,null,!0)}function _e(t,e){var n=t.$options=Object.create(t.constructor.options);n.parent=e.parent,n.propsData=e.propsData,n._parentVnode=e._parentVnode,n._parentListeners=e._parentListeners,n._renderChildren=e._renderChildren,n._componentTag=e._componentTag,n._parentElm=e._parentElm,n._refElm=e._refElm,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}function be(t){var e=t.options;if(t.super){var n=be(t.super);if(n!==t.superOptions){t.superOptions=n;var r=xe(t);r&&_(t.extendOptions,r),e=t.options=Y(n,t.extendOptions),e.name&&(e.components[e.name]=t)}}return e}function xe(t){var e,n=t.options,r=t.extendOptions,i=t.sealedOptions;for(var o in n)n[o]!==i[o]&&(e||(e={}),e[o]=we(n[o],r[o],i[o]));return e}function we(t,e,n){if(Array.isArray(t)){var r=[];n=Array.isArray(n)?n:[n],e=Array.isArray(e)?e:[e];for(var i=0;i<t.length;i++)(e.indexOf(t[i])>=0||n.indexOf(t[i])<0)&&r.push(t[i]);return r}return t}function $e(t){this._init(t)}function Ce(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=y(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}function ke(t){t.mixin=function(t){return this.options=Y(this.options,t),this}}function Ae(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,i=t._Ctor||(t._Ctor={});if(i[r])return i[r];var o=t.name||n.options.name,a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=Y(n.options,t),a.super=n,a.options.props&&Oe(a),a.options.computed&&Se(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,Zi.forEach(function(t){a[t]=n[t]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=_({},a.options),i[r]=a,a}}function Oe(t){var e=t.options.props;for(var n in e)Rt(t.prototype,"_props",n)}function Se(t){var e=t.options.computed;for(var n in e)Wt(t.prototype,n,e[n])}function Ee(t){Zi.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&c(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}function Me(t){return t&&(t.Ctor.options.name||t.tag)}function Te(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!u(t)&&t.test(e)}function je(t,e,n){for(var r in t){var i=t[r];if(i){var o=Me(i.componentOptions);o&&!n(o)&&(i!==e&&Ne(i),t[r]=null)}}}function Ne(t){t&&t.componentInstance.$destroy()}function Le(t){for(var e=t.data,n=t,i=t;r(i.componentInstance);)i=i.componentInstance._vnode,i.data&&(e=Ie(i.data,e));for(;r(n=n.parent);)n.data&&(e=Ie(e,n.data));return Pe(e.staticClass,e.class)}function Ie(t,e){return{staticClass:De(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function Pe(t,e){return r(t)||r(e)?De(t,Re(e)):""}function De(t,e){return t?e?t+" "+e:t:e||""}function Re(t){return Array.isArray(t)?Fe(t):s(t)?Be(t):"string"==typeof t?t:""}function Fe(t){for(var e,n="",i=0,o=t.length;i<o;i++)r(e=Re(t[i]))&&""!==e&&(n&&(n+=" "),n+=e);return n}function Be(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}function Ue(t){return Ca(t)?"svg":"math"===t?"math":void 0}function He(t){if(!oo)return!0;if(Aa(t))return!1;if(t=t.toLowerCase(),null!=Oa[t])return Oa[t];var e=document.createElement(t);return t.indexOf("-")>-1?Oa[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Oa[t]=/HTMLUnknownElement/.test(e.toString())}function ze(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function We(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function Ve(t,e){return document.createElementNS(wa[t],e)}function Ye(t){return document.createTextNode(t)}function Xe(t){return document.createComment(t)}function Ge(t,e,n){t.insertBefore(e,n)}function Ke(t,e){t.removeChild(e)}function qe(t,e){t.appendChild(e)}function Je(t){return t.parentNode}function Ze(t){return t.nextSibling}function Qe(t){return t.tagName}function tn(t,e){t.textContent=e}function en(t,e,n){t.setAttribute(e,n)}function nn(t,e){var n=t.data.ref;if(n){var r=t.context,i=t.componentInstance||t.elm,o=r.$refs;e?Array.isArray(o[n])?v(o[n],i):o[n]===i&&(o[n]=void 0):t.data.refInFor?Array.isArray(o[n])?o[n].indexOf(i)<0&&o[n].push(i):o[n]=[i]:o[n]=i}}function rn(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&r(t.data)===r(e.data)&&on(t,e)||i(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&n(e.asyncFactory.error))}function on(t,e){if("input"!==t.tag)return!0;var n,i=r(n=t.data)&&r(n=n.attrs)&&n.type,o=r(n=e.data)&&r(n=n.attrs)&&n.type;return i===o||Sa(i)&&Sa(o)}function an(t,e,n){var i,o,a={};for(i=e;i<=n;++i)o=t[i].key,r(o)&&(a[o]=i);return a}function sn(t,e){(t.data.directives||e.data.directives)&&cn(t,e)}function cn(t,e){var n,r,i,o=t===Ta,a=e===Ta,s=un(t.data.directives,t.context),c=un(e.data.directives,e.context),u=[],l=[];for(n in c)r=s[n],i=c[n],r?(i.oldValue=r.value,fn(i,"update",e,t),i.def&&i.def.componentUpdated&&l.push(i)):(fn(i,"bind",e,t),i.def&&i.def.inserted&&u.push(i));if(u.length){var f=function(){for(var n=0;n<u.length;n++)fn(u[n],"inserted",e,t)};o?it(e.data.hook||(e.data.hook={}),"insert",f):f()}if(l.length&&it(e.data.hook||(e.data.hook={}),"postpatch",function(){for(var n=0;n<l.length;n++)fn(l[n],"componentUpdated",e,t)}),!o)for(n in s)c[n]||fn(s[n],"unbind",t,t,a)}function un(t,e){var n=Object.create(null);if(!t)return n;var r,i;for(r=0;r<t.length;r++)i=t[r],i.modifiers||(i.modifiers=La),n[ln(i)]=i,i.def=X(e.$options,"directives",i.name,!0);return n}function ln(t){return t.rawName||t.name+"."+Object.keys(t.modifiers||{}).join(".")}function fn(t,e,n,r,i){var o=t.def&&t.def[e];if(o)try{o(n.elm,t,n,r,i)}catch(r){S(r,n.context,"directive "+t.name+" "+e+" hook")}}function dn(t,e){var i=e.componentOptions;if(!(r(i)&&!1===i.Ctor.options.inheritAttrs||n(t.data.attrs)&&n(e.data.attrs))){var o,a,s=e.elm,c=t.data.attrs||{},u=e.data.attrs||{};r(u.__ob__)&&(u=e.data.attrs=_({},u));for(o in u)a=u[o],c[o]!==a&&pn(s,o,a);co&&u.value!==c.value&&pn(s,"value",u.value);for(o in c)n(u[o])&&(_a(o)?s.removeAttributeNS(ya,ba(o)):ma(o)||s.removeAttribute(o))}}function pn(t,e,n){ga(e)?xa(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):ma(e)?t.setAttribute(e,xa(n)||"false"===n?"false":"true"):_a(e)?xa(n)?t.removeAttributeNS(ya,ba(e)):t.setAttributeNS(ya,e,n):xa(n)?t.removeAttribute(e):t.setAttribute(e,n)}function vn(t,e){var i=e.elm,o=e.data,a=t.data;if(!(n(o.staticClass)&&n(o.class)&&(n(a)||n(a.staticClass)&&n(a.class)))){var s=Le(e),c=i._transitionClasses;r(c)&&(s=De(s,Re(c))),s!==i._prevClass&&(i.setAttribute("class",s),i._prevClass=s)}}function hn(t){function e(){(a||(a=[])).push(t.slice(v,i).trim()),v=i+1}var n,r,i,o,a,s=!1,c=!1,u=!1,l=!1,f=0,d=0,p=0,v=0;for(i=0;i<t.length;i++)if(r=n,n=t.charCodeAt(i),s)39===n&&92!==r&&(s=!1);else if(c)34===n&&92!==r&&(c=!1);else if(u)96===n&&92!==r&&(u=!1);else if(l)47===n&&92!==r&&(l=!1);else if(124!==n||124===t.charCodeAt(i+1)||124===t.charCodeAt(i-1)||f||d||p){switch(n){case 34:c=!0;break;case 39:s=!0;break;case 96:u=!0;break;case 40:p++;break;case 41:p--;break;case 91:d++;break;case 93:d--;break;case 123:f++;break;case 125:f--}if(47===n){for(var h=i-1,m=void 0;h>=0&&" "===(m=t.charAt(h));h--);m&&Ra.test(m)||(l=!0)}}else void 0===o?(v=i+1,o=t.slice(0,i).trim()):e();if(void 0===o?o=t.slice(0,i).trim():0!==v&&e(),a)for(i=0;i<a.length;i++)o=mn(o,a[i]);return o}function mn(t,e){var n=e.indexOf("(");return n<0?'_f("'+e+'")('+t+")":'_f("'+e.slice(0,n)+'")('+t+","+e.slice(n+1)}function gn(t){console.error("[Vue compiler]: "+t)}function yn(t,e){return t?t.map(function(t){return t[e]}).filter(function(t){return t}):[]}function _n(t,e,n){(t.props||(t.props=[])).push({name:e,value:n})}function bn(t,e,n){(t.attrs||(t.attrs=[])).push({name:e,value:n})}function xn(t,e,n,r,i,o){(t.directives||(t.directives=[])).push({name:e,rawName:n,value:r,arg:i,modifiers:o})}function wn(t,e,n,r,i,o){r&&r.capture&&(delete r.capture,e="!"+e),r&&r.once&&(delete r.once,e="~"+e),r&&r.passive&&(delete r.passive,e="&"+e);var a;r&&r.native?(delete r.native,a=t.nativeEvents||(t.nativeEvents={})):a=t.events||(t.events={});var s={value:n,modifiers:r},c=a[e];Array.isArray(c)?i?c.unshift(s):c.push(s):a[e]=c?i?[s,c]:[c,s]:s}function $n(t,e,n){var r=Cn(t,":"+e)||Cn(t,"v-bind:"+e);if(null!=r)return hn(r);if(!1!==n){var i=Cn(t,e);if(null!=i)return JSON.stringify(i)}}function Cn(t,e){var n;if(null!=(n=t.attrsMap[e]))for(var r=t.attrsList,i=0,o=r.length;i<o;i++)if(r[i].name===e){r.splice(i,1);break}return n}function kn(t,e,n){var r=n||{},i=r.number,o=r.trim,a="$$v";o&&(a="(typeof $$v === 'string'? $$v.trim(): $$v)"),i&&(a="_n("+a+")");var s=An(e,a);t.model={value:"("+e+")",expression:'"'+e+'"',callback:"function ($$v) {"+s+"}"}}function An(t,e){var n=On(t);return null===n.idx?t+"="+e:"$set("+n.exp+", "+n.idx+", "+e+")"}function On(t){if(oa=t,ia=oa.length,sa=ca=ua=0,t.indexOf("[")<0||t.lastIndexOf("]")<ia-1)return{exp:t,idx:null};for(;!En();)aa=Sn(),Mn(aa)?jn(aa):91===aa&&Tn(aa);return{exp:t.substring(0,ca),idx:t.substring(ca+1,ua)}}function Sn(){return oa.charCodeAt(++sa)}function En(){return sa>=ia}function Mn(t){return 34===t||39===t}function Tn(t){var e=1;for(ca=sa;!En();)if(t=Sn(),Mn(t))jn(t);else if(91===t&&e++,93===t&&e--,0===e){ua=sa;break}}function jn(t){for(var e=t;!En()&&(t=Sn())!==e;);}function Nn(t,e,n){la=n;var r=e.value,i=e.modifiers,o=t.tag,a=t.attrsMap.type;if(t.component)return kn(t,r,i),!1;if("select"===o)Pn(t,r,i);else if("input"===o&&"checkbox"===a)Ln(t,r,i);else if("input"===o&&"radio"===a)In(t,r,i);else if("input"===o||"textarea"===o)Dn(t,r,i);else if(!to.isReservedTag(o))return kn(t,r,i),!1;return!0}function Ln(t,e,n){var r=n&&n.number,i=$n(t,"value")||"null",o=$n(t,"true-value")||"true",a=$n(t,"false-value")||"false";_n(t,"checked","Array.isArray("+e+")?_i("+e+","+i+")>-1"+("true"===o?":("+e+")":":_q("+e+","+o+")")),wn(t,Ba,"var $$a="+e+",$$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&&("+e+"=$$a.concat([$$v]))}else{$$i>-1&&("+e+"=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{"+An(e,"$$c")+"}",null,!0)}function In(t,e,n){var r=n&&n.number,i=$n(t,"value")||"null";i=r?"_n("+i+")":i,_n(t,"checked","_q("+e+","+i+")"),wn(t,Ba,An(e,i),null,!0)}function Pn(t,e,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+" "+An(e,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),wn(t,"change",o,null,!0)}function Dn(t,e,n){var r=t.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,u=o?"change":"range"===r?Fa:"input",l="$event.target.value";s&&(l="$event.target.value.trim()"),a&&(l="_n("+l+")");var f=An(e,l);c&&(f="if($event.target.composing)return;"+f),_n(t,"value","("+e+")"),wn(t,u,f,null,!0),(s||a)&&wn(t,"blur","$forceUpdate()")}function Rn(t){var e;r(t[Fa])&&(e=so?"change":"input",t[e]=[].concat(t[Fa],t[e]||[]),delete t[Fa]),r(t[Ba])&&(e=po?"click":"change",t[e]=[].concat(t[Ba],t[e]||[]),delete t[Ba])}function Fn(t,e,n,r,i){if(n){var o=e,a=fa;e=function(n){null!==(1===arguments.length?o(n):o.apply(null,arguments))&&Bn(t,e,r,a)}}fa.addEventListener(t,e,ho?{capture:r,passive:i}:r)}function Bn(t,e,n,r){(r||fa).removeEventListener(t,e,n)}function Un(t,e){if(!n(t.data.on)||!n(e.data.on)){var r=e.data.on||{},i=t.data.on||{};fa=e.elm,Rn(r),rt(r,i,Fn,Bn,e.context)}}function Hn(t,e){if(!n(t.data.domProps)||!n(e.data.domProps)){var i,o,a=e.elm,s=t.data.domProps||{},c=e.data.domProps||{};r(c.__ob__)&&(c=e.data.domProps=_({},c));for(i in s)n(c[i])&&(a[i]="");for(i in c)if(o=c[i],"textContent"!==i&&"innerHTML"!==i||(e.children&&(e.children.length=0),o!==s[i]))if("value"===i){a._value=o;var u=n(o)?"":String(o);zn(a,e,u)&&(a.value=u)}else a[i]=o}}function zn(t,e,n){return!t.composing&&("option"===e.tag||Wn(t,n)||Vn(t,n))}function Wn(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}function Vn(t,e){var n=t.value,i=t._vModifiers;return r(i)&&i.number?d(n)!==d(e):r(i)&&i.trim?n.trim()!==e.trim():n!==e}function Yn(t){var e=Xn(t.style);return t.staticStyle?_(t.staticStyle,e):e}function Xn(t){return Array.isArray(t)?b(t):"string"==typeof t?za(t):t}function Gn(t,e){var n,r={};if(e)for(var i=t;i.componentInstance;)i=i.componentInstance._vnode,i.data&&(n=Yn(i.data))&&_(r,n);(n=Yn(t.data))&&_(r,n);for(var o=t;o=o.parent;)o.data&&(n=Yn(o.data))&&_(r,n);return r}function Kn(t,e){var i=e.data,o=t.data;if(!(n(i.staticStyle)&&n(i.style)&&n(o.staticStyle)&&n(o.style))){var a,s,c=e.elm,u=o.staticStyle,l=o.normalizedStyle||o.style||{},f=u||l,d=Xn(e.data.style)||{};e.data.normalizedStyle=r(d.__ob__)?_({},d):d;var p=Gn(e,!0);for(s in f)n(p[s])&&Ya(c,s,"");for(s in p)(a=p[s])!==f[s]&&Ya(c,s,null==a?"":a)}}function qn(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Jn(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function Zn(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&_(e,qa(t.name||"v")),_(e,t),e}return"string"==typeof t?qa(t):void 0}}function Qn(t){is(function(){is(t)})}function tr(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),qn(t,e))}function er(t,e){t._transitionClasses&&v(t._transitionClasses,e),Jn(t,e)}function nr(t,e,n){var r=rr(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Za?es:rs,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c<a&&u()},o+1),t.addEventListener(s,l)}function rr(t,e){var n,r=window.getComputedStyle(t),i=r[ts+"Delay"].split(", "),o=r[ts+"Duration"].split(", "),a=ir(i,o),s=r[ns+"Delay"].split(", "),c=r[ns+"Duration"].split(", "),u=ir(s,c),l=0,f=0;return e===Za?a>0&&(n=Za,l=a,f=o.length):e===Qa?u>0&&(n=Qa,l=u,f=c.length):(l=Math.max(a,u),n=l>0?a>u?Za:Qa:null,f=n?n===Za?o.length:c.length:0),{type:n,timeout:l,propCount:f,hasTransform:n===Za&&os.test(r[ts+"Property"])}}function ir(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max.apply(null,e.map(function(e,n){return or(e)+or(t[n])}))}function or(t){return 1e3*Number(t.slice(0,-1))}function ar(t,e){var i=t.elm;r(i._leaveCb)&&(i._leaveCb.cancelled=!0,i._leaveCb());var o=Zn(t.data.transition);if(!n(o)&&!r(i._enterCb)&&1===i.nodeType){for(var a=o.css,c=o.type,u=o.enterClass,l=o.enterToClass,f=o.enterActiveClass,p=o.appearClass,v=o.appearToClass,h=o.appearActiveClass,m=o.beforeEnter,g=o.enter,y=o.afterEnter,_=o.enterCancelled,b=o.beforeAppear,x=o.appear,w=o.afterAppear,$=o.appearCancelled,k=o.duration,A=Ro,O=Ro.$vnode;O&&O.parent;)O=O.parent,A=O.context;var S=!A._isMounted||!t.isRootInsert;if(!S||x||""===x){var E=S&&p?p:u,M=S&&h?h:f,T=S&&v?v:l,j=S?b||m:m,N=S&&"function"==typeof x?x:g,L=S?w||y:y,I=S?$||_:_,P=d(s(k)?k.enter:k),D=!1!==a&&!co,R=ur(N),F=i._enterCb=C(function(){D&&(er(i,T),er(i,M)),F.cancelled?(D&&er(i,E),I&&I(i)):L&&L(i),i._enterCb=null});t.data.show||it(t.data.hook||(t.data.hook={}),"insert",function(){var e=i.parentNode,n=e&&e._pending&&e._pending[t.key];n&&n.tag===t.tag&&n.elm._leaveCb&&n.elm._leaveCb(),N&&N(i,F)}),j&&j(i),D&&(tr(i,E),tr(i,M),Qn(function(){tr(i,T),er(i,E),F.cancelled||R||(cr(P)?setTimeout(F,P):nr(i,c,F))})),t.data.show&&(e&&e(),N&&N(i,F)),D||R||F()}}}function sr(t,e){function i(){$.cancelled||(t.data.show||((o.parentNode._pending||(o.parentNode._pending={}))[t.key]=t),v&&v(o),b&&(tr(o,l),tr(o,p),Qn(function(){tr(o,f),er(o,l),$.cancelled||x||(cr(w)?setTimeout($,w):nr(o,u,$))})),h&&h(o,$),b||x||$())}var o=t.elm;r(o._enterCb)&&(o._enterCb.cancelled=!0,o._enterCb());var a=Zn(t.data.transition);if(n(a))return e();if(!r(o._leaveCb)&&1===o.nodeType){var c=a.css,u=a.type,l=a.leaveClass,f=a.leaveToClass,p=a.leaveActiveClass,v=a.beforeLeave,h=a.leave,m=a.afterLeave,g=a.leaveCancelled,y=a.delayLeave,_=a.duration,b=!1!==c&&!co,x=ur(h),w=d(s(_)?_.leave:_),$=o._leaveCb=C(function(){o.parentNode&&o.parentNode._pending&&(o.parentNode._pending[t.key]=null),b&&(er(o,f),er(o,p)),$.cancelled?(b&&er(o,l),g&&g(o)):(e(),m&&m(o)),o._leaveCb=null});y?y(i):i()}}function cr(t){return"number"==typeof t&&!isNaN(t)}function ur(t){if(n(t))return!1;var e=t.fns;return r(e)?ur(Array.isArray(e)?e[0]:e):(t._length||t.length)>1}function lr(t,e){!0!==e.data.show&&ar(e)}function fr(t,e,n){dr(t,e,n),(so||uo)&&setTimeout(function(){dr(t,e,n)},0)}function dr(t,e,n){var r=e.value,i=t.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=t.options.length;s<c;s++)if(a=t.options[s],i)o=$(r,vr(a))>-1,a.selected!==o&&(a.selected=o);else if(w(vr(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}}function pr(t,e){return e.every(function(e){return!w(e,t)})}function vr(t){return"_value"in t?t._value:t.value}function hr(t){t.target.composing=!0}function mr(t){t.target.composing&&(t.target.composing=!1,gr(t.target,"input"))}function gr(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function yr(t){return!t.componentInstance||t.data&&t.data.transition?t:yr(t.componentInstance._vnode)}function _r(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?_r(ht(e.children)):t}function br(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var i=n._parentListeners;for(var o in i)e[Vi(o)]=i[o];return e}function xr(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function wr(t){for(;t=t.parent;)if(t.data.transition)return!0}function $r(t,e){return e.key===t.key&&e.tag===t.tag}function Cr(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function kr(t){t.data.newPos=t.elm.getBoundingClientRect()}function Ar(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,i=e.top-n.top;if(r||i){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}function Or(t,e){var n=e?ws(e):bs;if(n.test(t)){for(var r,i,o=[],a=n.lastIndex=0;r=n.exec(t);){i=r.index,i>a&&o.push(JSON.stringify(t.slice(a,i)));var s=hn(r[1].trim());o.push("_s("+s+")"),a=i+r[0].length}return a<t.length&&o.push(JSON.stringify(t.slice(a))),o.join("+")}}function Sr(t,e){var n=(e.warn,Cn(t,"class"));n&&(t.staticClass=JSON.stringify(n));var r=$n(t,"class",!1);r&&(t.classBinding=r)}function Er(t){var e="";return t.staticClass&&(e+="staticClass:"+t.staticClass+","),t.classBinding&&(e+="class:"+t.classBinding+","),e}function Mr(t,e){var n=(e.warn,Cn(t,"style"));if(n){t.staticStyle=JSON.stringify(za(n))}var r=$n(t,"style",!1);r&&(t.styleBinding=r)}function Tr(t){var e="";return t.staticStyle&&(e+="staticStyle:"+t.staticStyle+","),t.styleBinding&&(e+="style:("+t.styleBinding+"),"),e}function jr(t,e){e.value&&_n(t,"textContent","_s("+e.value+")")}function Nr(t,e){e.value&&_n(t,"innerHTML","_s("+e.value+")")}function Lr(t,e){var n=e?nc:ec;return t.replace(n,function(t){return tc[t]})}function Ir(t,e){function n(e){l+=e,t=t.substring(e)}function r(t,n,r){var i,s;if(null==n&&(n=l),null==r&&(r=l),t&&(s=t.toLowerCase()),t)for(i=a.length-1;i>=0&&a[i].lowerCasedTag!==s;i--);else i=0;if(i>=0){for(var c=a.length-1;c>=i;c--)e.end&&e.end(a[c].tag,n,r);a.length=i,o=i&&a[i-1].tag}else"br"===s?e.start&&e.start(t,[],!0,n,r):"p"===s&&(e.start&&e.start(t,[],!1,n,r),e.end&&e.end(t,n,r))}for(var i,o,a=[],s=e.expectHTML,c=e.isUnaryTag||Ki,u=e.canBeLeftOpenTag||Ki,l=0;t;){if(i=t,o&&Zs(o)){var f=0,d=o.toLowerCase(),p=Qs[d]||(Qs[d]=new RegExp("([\\s\\S]*?)(</"+d+"[^>]*>)","i")),v=t.replace(p,function(t,n,r){return f=r.length,Zs(d)||"noscript"===d||(n=n.replace(/<!--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),ic(d,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""});l+=t.length-v.length,t=v,r(d,l-f,l)}else{var h=t.indexOf("<");if(0===h){if(Fs.test(t)){var m=t.indexOf("--\x3e");if(m>=0){e.shouldKeepComment&&e.comment(t.substring(4,m)),n(m+3);continue}}if(Bs.test(t)){var g=t.indexOf("]>");if(g>=0){n(g+2);continue}}var y=t.match(Rs);if(y){n(y[0].length);continue}var _=t.match(Ds);if(_){var b=l;n(_[0].length),r(_[1],b,l);continue}var x=function(){var e=t.match(Is);if(e){var r={tagName:e[1],attrs:[],start:l};n(e[0].length);for(var i,o;!(i=t.match(Ps))&&(o=t.match(js));)n(o[0].length),r.attrs.push(o);if(i)return r.unarySlash=i[1],n(i[0].length),r.end=l,r}}();if(x){!function(t){var n=t.tagName,i=t.unarySlash;s&&("p"===o&&Es(n)&&r(o),u(n)&&o===n&&r(n));for(var l=c(n)||!!i,f=t.attrs.length,d=new Array(f),p=0;p<f;p++){var v=t.attrs[p];Us&&-1===v[0].indexOf('""')&&(""===v[3]&&delete v[3],""===v[4]&&delete v[4],""===v[5]&&delete v[5]);var h=v[3]||v[4]||v[5]||"";d[p]={name:v[1],value:Lr(h,e.shouldDecodeNewlines)}}l||(a.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:d}),o=n),e.start&&e.start(n,d,l,t.start,t.end)}(x),ic(o,t)&&n(1);continue}}var w=void 0,$=void 0,C=void 0;if(h>=0){for($=t.slice(h);!(Ds.test($)||Is.test($)||Fs.test($)||Bs.test($)||(C=$.indexOf("<",1))<0);)h+=C,$=t.slice(h);w=t.substring(0,h),n(h)}h<0&&(w=t,t=""),e.chars&&w&&e.chars(w)}if(t===i){e.chars&&e.chars(t);break}}r()}function Pr(t,e){function n(t){t.pre&&(s=!1),Xs(t.tag)&&(c=!1)}Hs=e.warn||gn,Xs=e.isPreTag||Ki,Gs=e.mustUseProp||Ki,Ks=e.getTagNamespace||Ki,Ws=yn(e.modules,"transformNode"),Vs=yn(e.modules,"preTransformNode"),Ys=yn(e.modules,"postTransformNode"),zs=e.delimiters;var r,i,o=[],a=!1!==e.preserveWhitespace,s=!1,c=!1;return Ir(t,{warn:Hs,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldKeepComment:e.comments,start:function(t,a,u){var l=i&&i.ns||Ks(t);so&&"svg"===l&&(a=ei(a));var f={type:1,tag:t,attrsList:a,attrsMap:Zr(a),parent:i,children:[]};l&&(f.ns=l),ti(f)&&!_o()&&(f.forbidden=!0);for(var d=0;d<Vs.length;d++)Vs[d](f,e);if(s||(Dr(f),f.pre&&(s=!0)),Xs(f.tag)&&(c=!0),s)Rr(f);else{Ur(f),Hr(f),Yr(f),Fr(f),f.plain=!f.key&&!a.length,Br(f),Xr(f),Gr(f);for(var p=0;p<Ws.length;p++)Ws[p](f,e);Kr(f)}if(r?o.length||r.if&&(f.elseif||f.else)&&Vr(r,{exp:f.elseif,block:f}):r=f,i&&!f.forbidden)if(f.elseif||f.else)zr(f,i);else if(f.slotScope){i.plain=!1;var v=f.slotTarget||'"default"';(i.scopedSlots||(i.scopedSlots={}))[v]=f}else i.children.push(f),f.parent=i;u?n(f):(i=f,o.push(f));for(var h=0;h<Ys.length;h++)Ys[h](f,e)},end:function(){var t=o[o.length-1],e=t.children[t.children.length-1];e&&3===e.type&&" "===e.text&&!c&&t.children.pop(),o.length-=1,i=o[o.length-1],n(t)},chars:function(t){if(i&&(!so||"textarea"!==i.tag||i.attrsMap.placeholder!==t)){var e=i.children;if(t=c||t.trim()?Qr(i)?t:dc(t):a&&e.length?" ":""){var n;!s&&" "!==t&&(n=Or(t,zs))?e.push({type:2,expression:n,text:t}):" "===t&&e.length&&" "===e[e.length-1].text||e.push({type:3,text:t})}}},comment:function(t){i.children.push({type:3,text:t,isComment:!0})}}),r}function Dr(t){null!=Cn(t,"v-pre")&&(t.pre=!0)}function Rr(t){var e=t.attrsList.length;if(e)for(var n=t.attrs=new Array(e),r=0;r<e;r++)n[r]={name:t.attrsList[r].name,value:JSON.stringify(t.attrsList[r].value)};else t.pre||(t.plain=!0)}function Fr(t){var e=$n(t,"key");e&&(t.key=e)}function Br(t){var e=$n(t,"ref");e&&(t.ref=e,t.refInFor=qr(t))}function Ur(t){var e;if(e=Cn(t,"v-for")){var n=e.match(sc);if(!n)return;t.for=n[2].trim();var r=n[1].trim(),i=r.match(cc);i?(t.alias=i[1].trim(),t.iterator1=i[2].trim(),i[3]&&(t.iterator2=i[3].trim())):t.alias=r}}function Hr(t){var e=Cn(t,"v-if");if(e)t.if=e,Vr(t,{exp:e,block:t});else{null!=Cn(t,"v-else")&&(t.else=!0);var n=Cn(t,"v-else-if");n&&(t.elseif=n)}}function zr(t,e){var n=Wr(e.children);n&&n.if&&Vr(n,{exp:t.elseif,block:t})}function Wr(t){for(var e=t.length;e--;){if(1===t[e].type)return t[e];t.pop()}}function Vr(t,e){t.ifConditions||(t.ifConditions=[]),t.ifConditions.push(e)}function Yr(t){null!=Cn(t,"v-once")&&(t.once=!0)}function Xr(t){if("slot"===t.tag)t.slotName=$n(t,"name");else{var e=$n(t,"slot");e&&(t.slotTarget='""'===e?'"default"':e,bn(t,"slot",e)),"template"===t.tag&&(t.slotScope=Cn(t,"scope"))}}function Gr(t){var e;(e=$n(t,"is"))&&(t.component=e),null!=Cn(t,"inline-template")&&(t.inlineTemplate=!0)}function Kr(t){var e,n,r,i,o,a,s,c=t.attrsList;for(e=0,n=c.length;e<n;e++)if(r=i=c[e].name,o=c[e].value,ac.test(r))if(t.hasBindings=!0,a=Jr(r),a&&(r=r.replace(fc,"")),lc.test(r))r=r.replace(lc,""),o=hn(o),s=!1,a&&(a.prop&&(s=!0,"innerHtml"===(r=Vi(r))&&(r="innerHTML")),a.camel&&(r=Vi(r)),a.sync&&wn(t,"update:"+Vi(r),An(o,"$event"))),s||!t.component&&Gs(t.tag,t.attrsMap.type,r)?_n(t,r,o):bn(t,r,o);else if(oc.test(r))r=r.replace(oc,""),wn(t,r,o,a,!1,Hs);else{r=r.replace(ac,"");var u=r.match(uc),l=u&&u[1];l&&(r=r.slice(0,-(l.length+1))),xn(t,r,i,o,l,a)}else{bn(t,r,JSON.stringify(o))}}function qr(t){for(var e=t;e;){if(void 0!==e.for)return!0;e=e.parent}return!1}function Jr(t){var e=t.match(fc);if(e){var n={};return e.forEach(function(t){n[t.slice(1)]=!0}),n}}function Zr(t){for(var e={},n=0,r=t.length;n<r;n++)e[t[n].name]=t[n].value;return e}function Qr(t){return"script"===t.tag||"style"===t.tag}function ti(t){return"style"===t.tag||"script"===t.tag&&(!t.attrsMap.type||"text/javascript"===t.attrsMap.type)}function ei(t){for(var e=[],n=0;n<t.length;n++){var r=t[n];pc.test(r.name)||(r.name=r.name.replace(vc,""),e.push(r))}return e}function ni(t,e){t&&(qs=hc(e.staticKeys||""),Js=e.isReservedTag||Ki,ii(t),oi(t,!1))}function ri(t){return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs"+(t?","+t:""))}function ii(t){if(t.static=ai(t),1===t.type){if(!Js(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var e=0,n=t.children.length;e<n;e++){var r=t.children[e];ii(r),r.static||(t.static=!1)}if(t.ifConditions)for(var i=1,o=t.ifConditions.length;i<o;i++){var a=t.ifConditions[i].block;ii(a),a.static||(t.static=!1)}}}function oi(t,e){if(1===t.type){if((t.static||t.once)&&(t.staticInFor=e),t.static&&t.children.length&&(1!==t.children.length||3!==t.children[0].type))return void(t.staticRoot=!0);if(t.staticRoot=!1,t.children)for(var n=0,r=t.children.length;n<r;n++)oi(t.children[n],e||!!t.for);if(t.ifConditions)for(var i=1,o=t.ifConditions.length;i<o;i++)oi(t.ifConditions[i].block,e)}}function ai(t){return 2!==t.type&&(3===t.type||!(!t.pre&&(t.hasBindings||t.if||t.for||Ui(t.tag)||!Js(t.tag)||si(t)||!Object.keys(t).every(qs))))}function si(t){for(;t.parent;){if(t=t.parent,"template"!==t.tag)return!1;if(t.for)return!0}return!1}function ci(t,e,n){var r=e?"nativeOn:{":"on:{";for(var i in t){r+='"'+i+'":'+ui(i,t[i])+","}return r.slice(0,-1)+"}"}function ui(t,e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return ui(t,e)}).join(",")+"]";var n=gc.test(e.value),r=mc.test(e.value);if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)bc[s]?(o+=bc[s],yc[s]&&a.push(s)):a.push(s);a.length&&(i+=li(a)),o&&(i+=o);return"function($event){"+i+(n?e.value+"($event)":r?"("+e.value+")($event)":e.value)+"}"}return n||r?e.value:"function($event){"+e.value+"}"}function li(t){return"if(!('button' in $event)&&"+t.map(fi).join("&&")+")return null;"}function fi(t){var e=parseInt(t,10);if(e)return"$event.keyCode!=="+e;var n=yc[t];return"_k($event.keyCode,"+JSON.stringify(t)+(n?","+JSON.stringify(n):"")+")"}function di(t,e){t.wrapListeners=function(t){return"_g("+t+","+e.value+")"}}function pi(t,e){t.wrapData=function(n){return"_b("+n+",'"+t.tag+"',"+e.value+","+(e.modifiers&&e.modifiers.prop?"true":"false")+(e.modifiers&&e.modifiers.sync?",true":"")+")"}}function vi(t,e){var n=new wc(e);return{render:"with(this){return "+(t?hi(t,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function hi(t,e){if(t.staticRoot&&!t.staticProcessed)return mi(t,e);if(t.once&&!t.onceProcessed)return gi(t,e);if(t.for&&!t.forProcessed)return bi(t,e);if(t.if&&!t.ifProcessed)return yi(t,e);if("template"!==t.tag||t.slotTarget){if("slot"===t.tag)return Ni(t,e);var n;if(t.component)n=Li(t.component,t,e);else{var r=t.plain?void 0:xi(t,e),i=t.inlineTemplate?null:Oi(t,e,!0);n="_c('"+t.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o<e.transforms.length;o++)n=e.transforms[o](t,n);return n}return Oi(t,e)||"void 0"}function mi(t,e){return t.staticProcessed=!0,e.staticRenderFns.push("with(this){return "+hi(t,e)+"}"),"_m("+(e.staticRenderFns.length-1)+(t.staticInFor?",true":"")+")"}function gi(t,e){if(t.onceProcessed=!0,t.if&&!t.ifProcessed)return yi(t,e);if(t.staticInFor){for(var n="",r=t.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o("+hi(t,e)+","+e.onceId+++","+n+")":hi(t,e)}return mi(t,e)}function yi(t,e,n,r){return t.ifProcessed=!0,_i(t.ifConditions.slice(),e,n,r)}function _i(t,e,n,r){function i(t){return n?n(t,e):t.once?gi(t,e):hi(t,e)}if(!t.length)return r||"_e()";var o=t.shift();return o.exp?"("+o.exp+")?"+i(o.block)+":"+_i(t,e,n,r):""+i(o.block)}function bi(t,e,n,r){var i=t.for,o=t.alias,a=t.iterator1?","+t.iterator1:"",s=t.iterator2?","+t.iterator2:"";return t.forProcessed=!0,(r||"_l")+"(("+i+"),function("+o+a+s+"){return "+(n||hi)(t,e)+"})"}function xi(t,e){var n="{",r=wi(t,e);r&&(n+=r+","),t.key&&(n+="key:"+t.key+","),t.ref&&(n+="ref:"+t.ref+","),t.refInFor&&(n+="refInFor:true,"),t.pre&&(n+="pre:true,"),t.component&&(n+='tag:"'+t.tag+'",');for(var i=0;i<e.dataGenFns.length;i++)n+=e.dataGenFns[i](t);if(t.attrs&&(n+="attrs:{"+Ii(t.attrs)+"},"),t.props&&(n+="domProps:{"+Ii(t.props)+"},"),t.events&&(n+=ci(t.events,!1,e.warn)+","),t.nativeEvents&&(n+=ci(t.nativeEvents,!0,e.warn)+","),t.slotTarget&&(n+="slot:"+t.slotTarget+","),t.scopedSlots&&(n+=Ci(t.scopedSlots,e)+","),t.model&&(n+="model:{value:"+t.model.value+",callback:"+t.model.callback+",expression:"+t.model.expression+"},"),t.inlineTemplate){var o=$i(t,e);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function wi(t,e){var n=t.directives;if(n){var r,i,o,a,s="directives:[",c=!1;for(r=0,i=n.length;r<i;r++){o=n[r],a=!0;var u=e.directives[o.name];u&&(a=!!u(t,o,e.warn)),a&&(c=!0,s+='{name:"'+o.name+'",rawName:"'+o.rawName+'"'+(o.value?",value:("+o.value+"),expression:"+JSON.stringify(o.value):"")+(o.arg?',arg:"'+o.arg+'"':"")+(o.modifiers?",modifiers:"+JSON.stringify(o.modifiers):"")+"},")}return c?s.slice(0,-1)+"]":void 0}}function $i(t,e){var n=t.children[0];if(1===n.type){var r=vi(n,e.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map(function(t){return"function(){"+t+"}"}).join(",")+"]}"}}function Ci(t,e){return"scopedSlots:_u(["+Object.keys(t).map(function(n){return ki(n,t[n],e)}).join(",")+"])"}function ki(t,e,n){return e.for&&!e.forProcessed?Ai(t,e,n):"{key:"+t+",fn:function("+String(e.attrsMap.scope)+"){return "+("template"===e.tag?Oi(e,n)||"void 0":hi(e,n))+"}}"}function Ai(t,e,n){var r=e.for,i=e.alias,o=e.iterator1?","+e.iterator1:"",a=e.iterator2?","+e.iterator2:"";return e.forProcessed=!0,"_l(("+r+"),function("+i+o+a+"){return "+ki(t,e,n)+"})"}function Oi(t,e,n,r,i){var o=t.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag)return(r||hi)(a,e);var s=n?Si(o,e.maybeComponent):0,c=i||Mi;return"["+o.map(function(t){return c(t,e)}).join(",")+"]"+(s?","+s:"")}}function Si(t,e){for(var n=0,r=0;r<t.length;r++){var i=t[r];if(1===i.type){if(Ei(i)||i.ifConditions&&i.ifConditions.some(function(t){return Ei(t.block)})){n=2;break}(e(i)||i.ifConditions&&i.ifConditions.some(function(t){return e(t.block)}))&&(n=1)}}return n}function Ei(t){return void 0!==t.for||"template"===t.tag||"slot"===t.tag}function Mi(t,e){return 1===t.type?hi(t,e):3===t.type&&t.isComment?ji(t):Ti(t)}function Ti(t){return"_v("+(2===t.type?t.expression:Pi(JSON.stringify(t.text)))+")"}function ji(t){return"_e("+JSON.stringify(t.text)+")"}function Ni(t,e){var n=t.slotName||'"default"',r=Oi(t,e),i="_t("+n+(r?","+r:""),o=t.attrs&&"{"+t.attrs.map(function(t){return Vi(t.name)+":"+t.value}).join(",")+"}",a=t.attrsMap["v-bind"];return!o&&!a||r||(i+=",null"),o&&(i+=","+o),a&&(i+=(o?"":",null")+","+a),i+")"}function Li(t,e,n){var r=e.inlineTemplate?null:Oi(e,n,!0);return"_c("+t+","+xi(e,n)+(r?","+r:"")+")"}function Ii(t){for(var e="",n=0;n<t.length;n++){var r=t[n];e+='"'+r.name+'":'+Pi(r.value)+","}return e.slice(0,-1)}function Pi(t){return t.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function Di(t,e){try{return new Function(t)}catch(n){return e.push({err:n,code:t}),x}}function Ri(t){var e=Object.create(null);return function(n,r,i){r=r||{};var o=r.delimiters?String(r.delimiters)+n:n;if(e[o])return e[o];var a=t(n,r),s={},c=[];return s.render=Di(a.render,c),s.staticRenderFns=a.staticRenderFns.map(function(t){return Di(t,c)}),e[o]=s}}function Fi(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}var Bi=Object.prototype.toString,Ui=p("slot,component",!0),Hi=p("key,ref,slot,is"),zi=Object.prototype.hasOwnProperty,Wi=/-(\w)/g,Vi=m(function(t){return t.replace(Wi,function(t,e){return e?e.toUpperCase():""})}),Yi=m(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),Xi=/\B([A-Z])/g,Gi=m(function(t){return t.replace(Xi,"-$1").toLowerCase()}),Ki=function(t,e,n){return!1},qi=function(t){return t},Ji="data-server-rendered",Zi=["component","directive","filter"],Qi=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated"],to={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:Ki,isReservedAttr:Ki,isUnknownElement:Ki,getTagNamespace:x,parsePlatformTagName:qi,mustUseProp:Ki,_lifecycleHooks:Qi},eo=Object.freeze({}),no=/[^\w.$]/,ro=x,io="__proto__"in{},oo="undefined"!=typeof window,ao=oo&&window.navigator.userAgent.toLowerCase(),so=ao&&/msie|trident/.test(ao),co=ao&&ao.indexOf("msie 9.0")>0,uo=ao&&ao.indexOf("edge/")>0,lo=ao&&ao.indexOf("android")>0,fo=ao&&/iphone|ipad|ipod|ios/.test(ao),po=ao&&/chrome\/\d+/.test(ao)&&!uo,vo={}.watch,ho=!1;if(oo)try{var mo={};Object.defineProperty(mo,"passive",{get:function(){ho=!0}}),window.addEventListener("test-passive",null,mo)}catch(t){}var go,yo,_o=function(){return void 0===go&&(go=!oo&&void 0!==t&&"server"===t.process.env.VUE_ENV),go},bo=oo&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,xo="undefined"!=typeof Symbol&&E(Symbol)&&"undefined"!=typeof Reflect&&E(Reflect.ownKeys),wo=function(){function t(){r=!1;var t=n.slice(0);n.length=0;for(var e=0;e<t.length;e++)t[e]()}var e,n=[],r=!1;if("undefined"!=typeof Promise&&E(Promise)){var i=Promise.resolve(),o=function(t){console.error(t)};e=function(){i.then(t).catch(o),fo&&setTimeout(x)}}else if(so||"undefined"==typeof MutationObserver||!E(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())e=function(){setTimeout(t,0)};else{var a=1,s=new MutationObserver(t),c=document.createTextNode(String(a));s.observe(c,{characterData:!0}),e=function(){a=(a+1)%2,c.data=String(a)}}return function(t,i){var o;if(n.push(function(){if(t)try{t.call(i)}catch(t){S(t,i,"nextTick")}else o&&o(i)}),r||(r=!0,e()),!t&&"undefined"!=typeof Promise)return new Promise(function(t,e){o=t})}}();yo="undefined"!=typeof Set&&E(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var $o=0,Co=function(){this.id=$o++,this.subs=[]};Co.prototype.addSub=function(t){this.subs.push(t)},Co.prototype.removeSub=function(t){v(this.subs,t)},Co.prototype.depend=function(){Co.target&&Co.target.addDep(this)},Co.prototype.notify=function(){for(var t=this.subs.slice(),e=0,n=t.length;e<n;e++)t[e].update()},Co.target=null;var ko=[],Ao=Array.prototype,Oo=Object.create(Ao);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=Ao[t];A(Oo,t,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var i,o=e.apply(this,n),a=this.__ob__;switch(t){case"push":case"unshift":i=n;break;case"splice":i=n.slice(2)}return i&&a.observeArray(i),a.dep.notify(),o})});var So=Object.getOwnPropertyNames(Oo),Eo={shouldConvert:!0},Mo=function(t){if(this.value=t,this.dep=new Co,this.vmCount=0,A(t,"__ob__",this),Array.isArray(t)){(io?j:N)(t,Oo,So),this.observeArray(t)}else this.walk(t)};Mo.prototype.walk=function(t){for(var e=Object.keys(t),n=0;n<e.length;n++)I(t,e[n],t[e[n]])},Mo.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)L(t[e])};var To=to.optionMergeStrategies;To.data=function(t,e,n){return n?B(t,e,n):e&&"function"!=typeof e?t:B.call(this,t,e)},Qi.forEach(function(t){To[t]=U}),Zi.forEach(function(t){To[t+"s"]=H}),To.watch=function(t,e){if(t===vo&&(t=void 0),e===vo&&(e=void 0),!e)return Object.create(t||null);if(!t)return e;var n={};_(n,t);for(var r in e){var i=n[r],o=e[r];i&&!Array.isArray(i)&&(i=[i]),n[r]=i?i.concat(o):Array.isArray(o)?o:[o]}return n},To.props=To.methods=To.inject=To.computed=function(t,e){if(!t)return e;var n=Object.create(null);return _(n,t),e&&_(n,e),n},To.provide=B;var jo=function(t,e){return void 0===e?t:e},No=function(t,e,n,r,i,o,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.functionalContext=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},Lo={child:{}};Lo.child.get=function(){return this.componentInstance},Object.defineProperties(No.prototype,Lo);var Io,Po=function(t){void 0===t&&(t="");var e=new No;return e.text=t,e.isComment=!0,e},Do=m(function(t){var e="&"===t.charAt(0);t=e?t.slice(1):t;var n="~"===t.charAt(0);t=n?t.slice(1):t;var r="!"===t.charAt(0);return t=r?t.slice(1):t,{name:t,plain:!(e||n||r),once:n,capture:r,passive:e}}),Ro=null,Fo=[],Bo=[],Uo={},Ho=!1,zo=!1,Wo=0,Vo=0,Yo=function(t,e,n,r){this.vm=t,t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++Vo,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new yo,this.newDepIds=new yo,this.expression="","function"==typeof e?this.getter=e:(this.getter=O(e),this.getter||(this.getter=function(){})),this.value=this.lazy?void 0:this.get()};Yo.prototype.get=function(){M(this);var t,e=this.vm;try{t=this.getter.call(e,e)}catch(t){if(!this.user)throw t;S(t,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&Pt(t),T(),this.cleanupDeps()}return t},Yo.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},Yo.prototype.cleanupDeps=function(){for(var t=this,e=this.deps.length;e--;){var n=t.deps[e];t.newDepIds.has(n.id)||n.removeSub(t)}var r=this.depIds;this.depIds=this.newDepIds,this.newDepIds=r,this.newDepIds.clear(),r=this.deps,this.deps=this.newDeps,this.newDeps=r,this.newDeps.length=0},Yo.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():It(this)},Yo.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||s(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){S(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},Yo.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},Yo.prototype.depend=function(){for(var t=this,e=this.deps.length;e--;)t.deps[e].depend()},Yo.prototype.teardown=function(){var t=this;if(this.active){this.vm._isBeingDestroyed||v(this.vm._watchers,this);for(var e=this.deps.length;e--;)t.deps[e].removeSub(t);this.active=!1}};var Xo=new yo,Go={enumerable:!0,configurable:!0,get:x,set:x},Ko={lazy:!0},qo={init:function(t,e,n,r){if(!t.componentInstance||t.componentInstance._isDestroyed){(t.componentInstance=ee(t,Ro,n,r)).$mount(e?t.elm:void 0,e)}else if(t.data.keepAlive){var i=t;qo.prepatch(i,i)}},prepatch:function(t,e){var n=e.componentOptions;kt(e.componentInstance=t.componentInstance,n.propsData,n.listeners,e,n.children)},insert:function(t){var e=t.context,n=t.componentInstance;n._isMounted||(n._isMounted=!0,Et(n,"mounted")),t.data.keepAlive&&(e._isMounted?Nt(n):Ot(n,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?St(e,!0):e.$destroy())}},Jo=Object.keys(qo),Zo=1,Qo=2,ta=0;!function(t){t.prototype._init=function(t){var e=this;e._uid=ta++,e._isVue=!0,t&&t._isComponent?_e(e,t):e.$options=Y(be(e.constructor),t||{},e),e._renderProxy=e,e._self=e,$t(e),mt(e),ye(e),Et(e,"beforeCreate"),qt(e),Ft(e),Kt(e),Et(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}($e),function(t){var e={};e.get=function(){return this._data};var n={};n.get=function(){return this._props},Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=P,t.prototype.$delete=D,t.prototype.$watch=function(t,e,n){var r=this;if(c(e))return Gt(r,t,e,n);n=n||{},n.user=!0;var i=new Yo(r,t,e,n);return n.immediate&&e.call(r,i.value),function(){i.teardown()}}}($e),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this,i=this;if(Array.isArray(t))for(var o=0,a=t.length;o<a;o++)r.$on(t[o],n);else(i._events[t]||(i._events[t]=[])).push(n),e.test(t)&&(i._hasHookEvent=!0);return i},t.prototype.$once=function(t,e){function n(){r.$off(t,n),e.apply(r,arguments)}var r=this;return n.fn=e,r.$on(t,n),r},t.prototype.$off=function(t,e){var n=this,r=this;if(!arguments.length)return r._events=Object.create(null),r;if(Array.isArray(t)){for(var i=0,o=t.length;i<o;i++)n.$off(t[i],e);return r}var a=r._events[t];if(!a)return r;if(1===arguments.length)return r._events[t]=null,r;if(e)for(var s,c=a.length;c--;)if((s=a[c])===e||s.fn===e){a.splice(c,1);break}return r},t.prototype.$emit=function(t){var e=this,n=e._events[t];if(n){n=n.length>1?y(n):n;for(var r=y(arguments,1),i=0,o=n.length;i<o;i++)try{n[i].apply(e,r)}catch(n){S(n,e,'event handler for "'+t+'"')}}return e}}($e),function(t){t.prototype._update=function(t,e){var n=this;n._isMounted&&Et(n,"beforeUpdate");var r=n.$el,i=n._vnode,o=Ro;Ro=n,n._vnode=t,i?n.$el=n.__patch__(i,t):(n.$el=n.__patch__(n.$el,t,e,!1,n.$options._parentElm,n.$options._refElm),n.$options._parentElm=n.$options._refElm=null),Ro=o,r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},t.prototype.$forceUpdate=function(){var t=this;t._watcher&&t._watcher.update()},t.prototype.$destroy=function(){var t=this;if(!t._isBeingDestroyed){Et(t,"beforeDestroy"),t._isBeingDestroyed=!0;var e=t.$parent;!e||e._isBeingDestroyed||t.$options.abstract||v(e.$children,t),t._watcher&&t._watcher.teardown();for(var n=t._watchers.length;n--;)t._watchers[n].teardown();t._data.__ob__&&t._data.__ob__.vmCount--,t._isDestroyed=!0,t.__patch__(t._vnode,null),Et(t,"destroyed"),t.$off(),t.$el&&(t.$el.__vue__=null)}}}($e),function(t){t.prototype.$nextTick=function(t){return wo(t,this)},t.prototype._render=function(){var t=this,e=t.$options,n=e.render,r=e.staticRenderFns,i=e._parentVnode;if(t._isMounted)for(var o in t.$slots){var a=t.$slots[o];a._rendered&&(t.$slots[o]=tt(a,!0))}t.$scopedSlots=i&&i.data.scopedSlots||eo,r&&!t._staticTrees&&(t._staticTrees=[]),t.$vnode=i;var s;try{s=n.call(t._renderProxy,t.$createElement)}catch(e){S(e,t,"render function"),s=t._vnode}return s instanceof No||(s=Po()),s.parent=i,s},t.prototype._o=ve,t.prototype._n=d,t.prototype._s=f,t.prototype._l=ce,t.prototype._t=ue,t.prototype._q=w,t.prototype._i=$,t.prototype._m=pe,t.prototype._f=le,t.prototype._k=fe,t.prototype._b=de,t.prototype._v=Z,t.prototype._e=Po,t.prototype._u=wt,t.prototype._g=ge}($e);var ea=[String,RegExp,Array],na={name:"keep-alive",abstract:!0,props:{include:ea,exclude:ea},created:function(){this.cache=Object.create(null)},destroyed:function(){var t=this;for(var e in t.cache)Ne(t.cache[e])},watch:{include:function(t){je(this.cache,this._vnode,function(e){return Te(t,e)})},exclude:function(t){je(this.cache,this._vnode,function(e){return!Te(t,e)})}},render:function(){var t=ht(this.$slots.default),e=t&&t.componentOptions;if(e){var n=Me(e);if(n&&(this.include&&!Te(this.include,n)||this.exclude&&Te(this.exclude,n)))return t;var r=null==t.key?e.Ctor.cid+(e.tag?"::"+e.tag:""):t.key;this.cache[r]?t.componentInstance=this.cache[r].componentInstance:this.cache[r]=t,t.data.keepAlive=!0}return t}},ra={KeepAlive:na};!function(t){var e={};e.get=function(){return to},Object.defineProperty(t,"config",e),t.util={warn:ro,extend:_,mergeOptions:Y,defineReactive:I},t.set=P,t.delete=D,t.nextTick=wo,t.options=Object.create(null),Zi.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,_(t.options.components,ra),Ce(t),ke(t),Ae(t),Ee(t)}($e),Object.defineProperty($e.prototype,"$isServer",{get:_o}),Object.defineProperty($e.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),$e.version="2.4.4";var ia,oa,aa,sa,ca,ua,la,fa,da,pa=p("style,class"),va=p("input,textarea,option,select,progress"),ha=function(t,e,n){return"value"===n&&va(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},ma=p("contenteditable,draggable,spellcheck"),ga=p("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"),ya="http://www.w3.org/1999/xlink",_a=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},ba=function(t){return _a(t)?t.slice(6,t.length):""},xa=function(t){return null==t||!1===t},wa={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},$a=p("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"),Ca=p("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),ka=function(t){return"pre"===t},Aa=function(t){return $a(t)||Ca(t)},Oa=Object.create(null),Sa=p("text,number,password,search,email,tel,url"),Ea=Object.freeze({createElement:We,createElementNS:Ve,createTextNode:Ye,createComment:Xe,insertBefore:Ge,removeChild:Ke,appendChild:qe,parentNode:Je,nextSibling:Ze,tagName:Qe,setTextContent:tn,setAttribute:en}),Ma={create:function(t,e){nn(e)},update:function(t,e){t.data.ref!==e.data.ref&&(nn(t,!0),nn(e))},destroy:function(t){nn(t,!0)}},Ta=new No("",{},[]),ja=["create","activate","update","remove","destroy"],Na={create:sn,update:sn,destroy:function(t){sn(t,Ta)}},La=Object.create(null),Ia=[Ma,Na],Pa={create:dn,update:dn},Da={create:vn,update:vn},Ra=/[\w).+\-_$\]]/,Fa="__r",Ba="__c",Ua={create:Un,update:Un},Ha={create:Hn,update:Hn},za=m(function(t){var e={},n=/;(?![^(]*\))/g,r=/:(.+)/;return t.split(n).forEach(function(t){if(t){var n=t.split(r);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}),Wa=/^--/,Va=/\s*!important$/,Ya=function(t,e,n){if(Wa.test(e))t.style.setProperty(e,n);else if(Va.test(n))t.style.setProperty(e,n.replace(Va,""),"important");else{var r=Ga(e);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)t.style[r]=n[i];else t.style[r]=n}},Xa=["Webkit","Moz","ms"],Ga=m(function(t){if(da=da||document.createElement("div").style,"filter"!==(t=Vi(t))&&t in da)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<Xa.length;n++){var r=Xa[n]+e;if(r in da)return r}}),Ka={create:Kn,update:Kn},qa=m(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),Ja=oo&&!co,Za="transition",Qa="animation",ts="transition",es="transitionend",ns="animation",rs="animationend";Ja&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(ts="WebkitTransition",es="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(ns="WebkitAnimation",rs="webkitAnimationEnd"));var is=oo&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout,os=/\b(transform|all)(,|$)/,as=oo?{create:lr,activate:lr,remove:function(t,e){!0!==t.data.show?sr(t,e):e()}}:{},ss=[Pa,Da,Ua,Ha,Ka,as],cs=ss.concat(Ia),us=function(t){function e(t){return new No(T.tagName(t).toLowerCase(),{},[],void 0,t)}function o(t,e){function n(){0==--n.listeners&&s(t)}return n.listeners=e,n}function s(t){var e=T.parentNode(t);r(e)&&T.removeChild(e,t)}function c(t,e,n,o,a){if(t.isRootInsert=!a,!u(t,e,n,o)){var s=t.data,c=t.children,l=t.tag;r(l)?(t.elm=t.ns?T.createElementNS(t.ns,l):T.createElement(l,t),g(t),v(t,c,e),r(s)&&m(t,e),d(n,t.elm,o)):i(t.isComment)?(t.elm=T.createComment(t.text),d(n,t.elm,o)):(t.elm=T.createTextNode(t.text),d(n,t.elm,o))}}function u(t,e,n,o){var a=t.data;if(r(a)){var s=r(t.componentInstance)&&a.keepAlive;if(r(a=a.hook)&&r(a=a.init)&&a(t,!1,n,o),r(t.componentInstance))return l(t,e),i(s)&&f(t,e,n,o),!0}}function l(t,e){r(t.data.pendingInsert)&&(e.push.apply(e,t.data.pendingInsert),t.data.pendingInsert=null),t.elm=t.componentInstance.$el,h(t)?(m(t,e),g(t)):(nn(t),e.push(t))}function f(t,e,n,i){for(var o,a=t;a.componentInstance;)if(a=a.componentInstance._vnode,r(o=a.data)&&r(o=o.transition)){for(o=0;o<E.activate.length;++o)E.activate[o](Ta,a);e.push(a);break}d(n,t.elm,i)}function d(t,e,n){r(t)&&(r(n)?n.parentNode===t&&T.insertBefore(t,e,n):T.appendChild(t,e))}function v(t,e,n){if(Array.isArray(e))for(var r=0;r<e.length;++r)c(e[r],n,t.elm,null,!0);else a(t.text)&&T.appendChild(t.elm,T.createTextNode(t.text))}function h(t){for(;t.componentInstance;)t=t.componentInstance._vnode;return r(t.tag)}function m(t,e){for(var n=0;n<E.create.length;++n)E.create[n](Ta,t);O=t.data.hook,r(O)&&(r(O.create)&&O.create(Ta,t),r(O.insert)&&e.push(t))}function g(t){for(var e,n=t;n;)r(e=n.context)&&r(e=e.$options._scopeId)&&T.setAttribute(t.elm,e,""),n=n.parent;r(e=Ro)&&e!==t.context&&r(e=e.$options._scopeId)&&T.setAttribute(t.elm,e,"")}function y(t,e,n,r,i,o){for(;r<=i;++r)c(n[r],o,t,e)}function _(t){var e,n,i=t.data;if(r(i))for(r(e=i.hook)&&r(e=e.destroy)&&e(t),e=0;e<E.destroy.length;++e)E.destroy[e](t);if(r(e=t.children))for(n=0;n<t.children.length;++n)_(t.children[n])}function b(t,e,n,i){for(;n<=i;++n){var o=e[n];r(o)&&(r(o.tag)?(x(o),_(o)):s(o.elm))}}function x(t,e){if(r(e)||r(t.data)){var n,i=E.remove.length+1;for(r(e)?e.listeners+=i:e=o(t.elm,i),r(n=t.componentInstance)&&r(n=n._vnode)&&r(n.data)&&x(n,e),n=0;n<E.remove.length;++n)E.remove[n](t,e);r(n=t.data.hook)&&r(n=n.remove)?n(t,e):e()}else s(t.elm)}function w(t,e,i,o,a){for(var s,u,l,f,d=0,p=0,v=e.length-1,h=e[0],m=e[v],g=i.length-1,_=i[0],x=i[g],w=!a;d<=v&&p<=g;)n(h)?h=e[++d]:n(m)?m=e[--v]:rn(h,_)?(C(h,_,o),h=e[++d],_=i[++p]):rn(m,x)?(C(m,x,o),m=e[--v],x=i[--g]):rn(h,x)?(C(h,x,o),w&&T.insertBefore(t,h.elm,T.nextSibling(m.elm)),h=e[++d],x=i[--g]):rn(m,_)?(C(m,_,o),w&&T.insertBefore(t,m.elm,h.elm),m=e[--v],_=i[++p]):(n(s)&&(s=an(e,d,v)),u=r(_.key)?s[_.key]:$(_,e,d,v),n(u)?c(_,o,t,h.elm):(l=e[u],rn(l,_)?(C(l,_,o),e[u]=void 0,w&&T.insertBefore(t,l.elm,h.elm)):c(_,o,t,h.elm)),_=i[++p]);d>v?(f=n(i[g+1])?null:i[g+1].elm,y(t,f,i,p,g,o)):p>g&&b(t,e,d,v)}function $(t,e,n,i){for(var o=n;o<i;o++){var a=e[o];if(r(a)&&rn(t,a))return o}}function C(t,e,o,a){if(t!==e){var s=e.elm=t.elm;if(i(t.isAsyncPlaceholder))return void(r(e.asyncFactory.resolved)?A(t.elm,e,o):e.isAsyncPlaceholder=!0);if(i(e.isStatic)&&i(t.isStatic)&&e.key===t.key&&(i(e.isCloned)||i(e.isOnce)))return void(e.componentInstance=t.componentInstance);var c,u=e.data;r(u)&&r(c=u.hook)&&r(c=c.prepatch)&&c(t,e);var l=t.children,f=e.children;if(r(u)&&h(e)){for(c=0;c<E.update.length;++c)E.update[c](t,e);r(c=u.hook)&&r(c=c.update)&&c(t,e)}n(e.text)?r(l)&&r(f)?l!==f&&w(s,l,f,o,a):r(f)?(r(t.text)&&T.setTextContent(s,""),y(s,null,f,0,f.length-1,o)):r(l)?b(s,l,0,l.length-1):r(t.text)&&T.setTextContent(s,""):t.text!==e.text&&T.setTextContent(s,e.text),r(u)&&r(c=u.hook)&&r(c=c.postpatch)&&c(t,e)}}function k(t,e,n){if(i(n)&&r(t.parent))t.parent.data.pendingInsert=e;else for(var o=0;o<e.length;++o)e[o].data.hook.insert(e[o])}function A(t,e,n){if(i(e.isComment)&&r(e.asyncFactory))return e.elm=t,e.isAsyncPlaceholder=!0,!0;e.elm=t;var o=e.tag,a=e.data,s=e.children;if(r(a)&&(r(O=a.hook)&&r(O=O.init)&&O(e,!0),r(O=e.componentInstance)))return l(e,n),!0;if(r(o)){if(r(s))if(t.hasChildNodes())if(r(O=a)&&r(O=O.domProps)&&r(O=O.innerHTML)){if(O!==t.innerHTML)return!1}else{for(var c=!0,u=t.firstChild,f=0;f<s.length;f++){if(!u||!A(u,s[f],n)){c=!1;break}u=u.nextSibling}if(!c||u)return!1}else v(e,s,n);if(r(a))for(var d in a)if(!j(d)){m(e,n);break}}else t.data!==e.text&&(t.data=e.text);return!0}var O,S,E={},M=t.modules,T=t.nodeOps;for(O=0;O<ja.length;++O)for(E[ja[O]]=[],S=0;S<M.length;++S)r(M[S][ja[O]])&&E[ja[O]].push(M[S][ja[O]]);var j=p("attrs,style,class,staticClass,staticStyle,key");return function(t,o,a,s,u,l){if(n(o))return void(r(t)&&_(t));var f=!1,d=[];if(n(t))f=!0,c(o,d,u,l);else{var p=r(t.nodeType);if(!p&&rn(t,o))C(t,o,d,s);else{if(p){if(1===t.nodeType&&t.hasAttribute(Ji)&&(t.removeAttribute(Ji),a=!0),i(a)&&A(t,o,d))return k(o,d,!0),t;t=e(t)}var v=t.elm,m=T.parentNode(v);if(c(o,d,v._leaveCb?null:m,T.nextSibling(v)),r(o.parent))for(var g=o.parent,y=h(o);g;){for(var x=0;x<E.destroy.length;++x)E.destroy[x](g);if(g.elm=o.elm,y){for(var w=0;w<E.create.length;++w)E.create[w](Ta,g);var $=g.data.hook.insert;if($.merged)for(var O=1;O<$.fns.length;O++)$.fns[O]()}g=g.parent}r(m)?b(m,[t],0,0):r(t.tag)&&_(t)}}return k(o,d,f),o.elm}}({nodeOps:Ea,modules:cs});co&&document.addEventListener("selectionchange",function(){var t=document.activeElement;t&&t.vmodel&&gr(t,"input")});var ls={inserted:function(t,e,n){"select"===n.tag?(fr(t,e,n.context),t._vOptions=[].map.call(t.options,vr)):("textarea"===n.tag||Sa(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("change",mr),lo||(t.addEventListener("compositionstart",hr),t.addEventListener("compositionend",mr)),co&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){fr(t,e,n.context);var r=t._vOptions,i=t._vOptions=[].map.call(t.options,vr);if(i.some(function(t,e){return!w(t,r[e])})){(t.multiple?e.value.some(function(t){return pr(t,i)}):e.value!==e.oldValue&&pr(e.value,i))&&gr(t,"change")}}}},fs={bind:function(t,e,n){var r=e.value;n=yr(n);var i=n.data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&i?(n.data.show=!0,ar(n,function(){t.style.display=o})):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value;r!==e.oldValue&&(n=yr(n),n.data&&n.data.transition?(n.data.show=!0,r?ar(n,function(){t.style.display=t.__vOriginalDisplay}):sr(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,i){i||(t.style.display=t.__vOriginalDisplay)}},ds={model:ls,show:fs},ps={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]},vs={name:"transition",props:ps,abstract:!0,render:function(t){var e=this,n=this.$options._renderChildren;if(n&&(n=n.filter(function(t){return t.tag||vt(t)}),n.length)){var r=this.mode,i=n[0];if(wr(this.$vnode))return i;var o=_r(i);if(!o)return i;if(this._leaving)return xr(t,i);var s="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?s+"comment":s+o.tag:a(o.key)?0===String(o.key).indexOf(s)?o.key:s+o.key:o.key;var c=(o.data||(o.data={})).transition=br(this),u=this._vnode,l=_r(u);if(o.data.directives&&o.data.directives.some(function(t){return"show"===t.name})&&(o.data.show=!0),l&&l.data&&!$r(o,l)&&!vt(l)){var f=l&&(l.data.transition=_({},c));if("out-in"===r)return this._leaving=!0,it(f,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),xr(t,i);if("in-out"===r){if(vt(o))return u;var d,p=function(){d()};it(c,"afterEnter",p),it(c,"enterCancelled",p),it(f,"delayLeave",function(t){d=t})}}return i}}},hs=_({tag:String,moveClass:String},ps);delete hs.mode;var ms={props:hs,render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=br(this),s=0;s<i.length;s++){var c=i[s];if(c.tag)if(null!=c.key&&0!==String(c.key).indexOf("__vlist"))o.push(c),n[c.key]=c,(c.data||(c.data={})).transition=a;else;}if(r){for(var u=[],l=[],f=0;f<r.length;f++){var d=r[f];d.data.transition=a,d.data.pos=d.elm.getBoundingClientRect(),n[d.key]?u.push(d):l.push(d)}this.kept=t(e,null,u),this.removed=l}return t(e,null,o)},beforeUpdate:function(){this.__patch__(this._vnode,this.kept,!1,!0),this._vnode=this.kept},updated:function(){var t=this.prevChildren,e=this.moveClass||(this.name||"v")+"-move";if(t.length&&this.hasMove(t[0].elm,e)){t.forEach(Cr),t.forEach(kr),t.forEach(Ar);var n=document.body;n.offsetHeight;t.forEach(function(t){if(t.data.moved){var n=t.elm,r=n.style;tr(n,e),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(es,n._moveCb=function t(r){r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(es,t),n._moveCb=null,er(n,e))})}})}},methods:{hasMove:function(t,e){if(!Ja)return!1;if(this._hasMove)return this._hasMove;var n=t.cloneNode();t._transitionClasses&&t._transitionClasses.forEach(function(t){Jn(n,t)}),qn(n,e),n.style.display="none",this.$el.appendChild(n);var r=rr(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}},gs={Transition:vs,TransitionGroup:ms};$e.config.mustUseProp=ha,$e.config.isReservedTag=Aa,$e.config.isReservedAttr=pa,$e.config.getTagNamespace=Ue,$e.config.isUnknownElement=He,_($e.options.directives,ds),_($e.options.components,gs),$e.prototype.__patch__=oo?us:x,$e.prototype.$mount=function(t,e){return t=t&&oo?ze(t):void 0,Ct(this,t,e)},setTimeout(function(){to.devtools&&bo&&bo.emit("init",$e)},0);var ys,_s=!!oo&&function(t,e){var n=document.createElement("div");return n.innerHTML='<div a="'+t+'"/>',n.innerHTML.indexOf(e)>0}("\n"," "),bs=/\{\{((?:.|\n)+?)\}\}/g,xs=/[-.*+?^${}()|[\]\/\\]/g,ws=m(function(t){var e=t[0].replace(xs,"\\$&"),n=t[1].replace(xs,"\\$&");return new RegExp(e+"((?:.|\\n)+?)"+n,"g")}),$s={staticKeys:["staticClass"],transformNode:Sr,genData:Er},Cs={staticKeys:["staticStyle"],transformNode:Mr,genData:Tr},ks=[$s,Cs],As={model:Nn,text:jr,html:Nr},Os=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),Ss=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),Es=p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),Ms={expectHTML:!0,modules:ks,directives:As,isPreTag:ka,isUnaryTag:Os,mustUseProp:ha,canBeLeftOpenTag:Ss,isReservedTag:Aa,getTagNamespace:Ue,staticKeys:function(t){return t.reduce(function(t,e){return t.concat(e.staticKeys||[])},[]).join(",")}(ks)},Ts={decode:function(t){return ys=ys||document.createElement("div"),ys.innerHTML=t,ys.textContent}},js=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Ns="[a-zA-Z_][\\w\\-\\.]*",Ls="((?:"+Ns+"\\:)?"+Ns+")",Is=new RegExp("^<"+Ls),Ps=/^\s*(\/?)>/,Ds=new RegExp("^<\\/"+Ls+"[^>]*>"),Rs=/^<!DOCTYPE [^>]+>/i,Fs=/^<!--/,Bs=/^<!\[/,Us=!1;"x".replace(/x(.)?/g,function(t,e){Us=""===e});var Hs,zs,Ws,Vs,Ys,Xs,Gs,Ks,qs,Js,Zs=p("script,style,textarea",!0),Qs={},tc={"<":"<",">":">",""":'"',"&":"&"," ":"\n"},ec=/&(?:lt|gt|quot|amp);/g,nc=/&(?:lt|gt|quot|amp|#10);/g,rc=p("pre,textarea",!0),ic=function(t,e){return t&&rc(t)&&"\n"===e[0]},oc=/^@|^v-on:/,ac=/^v-|^@|^:/,sc=/(.*?)\s+(?:in|of)\s+(.*)/,cc=/\((\{[^}]*\}|[^,]*),([^,]*)(?:,([^,]*))?\)/,uc=/:(.*)$/,lc=/^:|^v-bind:/,fc=/\.[^.]+/g,dc=m(Ts.decode),pc=/^xmlns:NS\d+/,vc=/^NS\d+:/,hc=m(ri),mc=/^\s*([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/,gc=/^\s*[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?']|\[".*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*\s*$/,yc={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},_c=function(t){return"if("+t+")return null;"},bc={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:_c("$event.target !== $event.currentTarget"),ctrl:_c("!$event.ctrlKey"),shift:_c("!$event.shiftKey"),alt:_c("!$event.altKey"),meta:_c("!$event.metaKey"),left:_c("'button' in $event && $event.button !== 0"),middle:_c("'button' in $event && $event.button !== 1"),right:_c("'button' in $event && $event.button !== 2")},xc={on:di,bind:pi,cloak:x},wc=function(t){this.options=t,this.warn=t.warn||gn,this.transforms=yn(t.modules,"transformCode"),this.dataGenFns=yn(t.modules,"genData"),this.directives=_(_({},xc),t.directives);var e=t.isReservedTag||Ki;this.maybeComponent=function(t){return!e(t.tag)},this.onceId=0,this.staticRenderFns=[]},$c=(new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)"),function(t){return function(e){function n(n,r){var i=Object.create(e),o=[],a=[];if(i.warn=function(t,e){(e?a:o).push(t)},r){r.modules&&(i.modules=(e.modules||[]).concat(r.modules)),r.directives&&(i.directives=_(Object.create(e.directives),r.directives));for(var s in r)"modules"!==s&&"directives"!==s&&(i[s]=r[s])}var c=t(n,i);return c.errors=o,c.tips=a,c}return{compile:n,compileToFunctions:Ri(n)}}}(function(t,e){var n=Pr(t.trim(),e);ni(n,e);var r=vi(n,e);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}})),Cc=$c(Ms),kc=Cc.compileToFunctions,Ac=m(function(t){var e=ze(t);return e&&e.innerHTML}),Oc=$e.prototype.$mount;$e.prototype.$mount=function(t,e){if((t=t&&ze(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=Ac(r));else{if(!r.nodeType)return this;r=r.innerHTML}else t&&(r=Fi(t));if(r){var i=kc(r,{shouldDecodeNewlines:_s,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return Oc.call(this,t,e)},$e.compile=kc,e.default=$e}.call(e,n(18))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(12),i=function(t){return t&&t.__esModule?t:{default:t}}(r),o=n(9);e.default={name:"app",components:{Icon:i.default},data:function(){return{colors:(0,o.generateRGBColors)(20),selected:null}},mounted:function(){},methods:{click:function(t){var e=t.items,n=t.index,r=e.find(function(t){return t.index===n});this.selected=r.item,console.log(this.selected)},change:function(t){console.log("change",t)},remove:function(t){console.log("remove",t)},sort:function(t){console.log("sort",t)}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"Icon",props:{index:{type:Number},withButton:{type:Boolean,default:!1},color:{type:Object,default:function(){return null}}},computed:{brightness:function(){var t=this.color;return.299*t.r+.587*t.g+.114*t.b},style:function(){if(this.color){var t=this.color,e=t.r,n=t.g,r=t.b;return{"background-color":"rgb("+e+", "+n+", "+r+")","box-shadow":"0px 6px 20px "+("rgba("+e+", "+n+", "+r+", 0.5)"),color:this.brightness>180?"#777":"#f3f3f3"}}return null}},methods:{remove:function(){this.$emit("remove",{index:this.index})}}}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}var i=n(5),o=r(i),a=n(4),s=r(a),c=n(3),u=r(c);o.default.use(u.default),new o.default({el:"#app",render:function(t){return t(s.default)}})},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=e.randomInt=function(t,e){return Math.round(t+Math.random()*e)},i=e.generateRGBColors=function(t){return Array.apply(null,new Array(t)).map(function(t,e){return{r:r(0,255),g:r(0,255),b:r(0,255)}})};e.default={randomInt:r,generateRGBColors:i}},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"@keyframes shake{0%{transform:rotate(-4deg)}to{transform:rotate(4deg)}}.icon{position:relative;background-color:transparent;margin:14px;height:52px;width:52px;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.07);color:#777;font-weight:900;font-size:12px;line-height:52px;text-align:center;transition:all .3s;cursor:pointer}.icon .icon-delete-btn{display:block;position:absolute;width:8px;height:8px;border-radius:7px;right:6px;top:6px;border:1px solid hsla(0,0%,100%,.4);background:hsla(0,0%,100%,.2)}.v-grid-item-dragging .icon{animation-name:shake;animation-duration:.07s;animation-iteration-count:infinite;animation-direction:alternate}",""])},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"body{background:#fafafa}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50}.color-header{position:relative;padding:10px 0;box-sizing:border-box}",""])},function(t,e,n){n(15);var r=n(1)(n(7),n(13),null,null);t.exports=r.exports},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"icon",style:t.style},[t.withButton?n("div",{staticClass:"icon-delete-btn",on:{mousedown:t.remove}}):t._e(),t._v(" "),t._t("default")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"app"}},[t._m(0),t._v(" "),n("div",{staticClass:"color-header"},[n("Icon",{staticStyle:{width:"auto"},attrs:{color:t.selected}},[t._v("\n vue-js-grid\n ")])],1),t._v(" "),n("grid",{attrs:{center:!1,draggable:!0,sortable:!0,items:t.colors,height:80,width:80},on:{change:t.change,remove:t.remove,click:t.click,sort:t.sort},scopedSlots:t._u([{key:"cell",fn:function(t){return[n("Icon",{attrs:{color:t.item,index:t.index,"with-button":!0},on:{remove:function(e){t.remove()}}})]}}])})],1)},staticRenderFns:[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticStyle:{padding:"10px"}},[n("a",{staticClass:"github-button",attrs:{href:"https://github.com/euvl/vue-js-grid","data-icon":"octicon-star","data-show-count":"true","aria-label":"Star euvl/vue-js-grid on GitHub"}},[t._v("Star")])])}]}},function(t,e,n){var r=n(10);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n(2)("187206ec",r,!0)},function(t,e,n){var r=n(11);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n(2)("e61d7c06",r,!0)},function(t,e){t.exports=function(t,e){for(var n=[],r={},i=0;i<e.length;i++){var o=e[i],a=o[0],s=o[1],c=o[2],u=o[3],l={id:t+":"+i,css:s,media:c,sourceMap:u};r[a]?r[a].parts.push(l):n.push(r[a]={id:a,parts:[l]})}return n}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}}]); +//# sourceMappingURL=build.js.map \ No newline at end of file diff --git a/build.js.map b/build.js.map new file mode 100644 index 0000000..8336b21 --- /dev/null +++ b/build.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///build.js","webpack:///webpack/bootstrap 3914dac29e60b888acec","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/vue-loader/lib/component-normalizer.js","webpack:///./~/vue-style-loader/lib/addStylesClient.js","webpack:///../dist/index.js","webpack:///./src/App.vue","webpack:///./~/vue/dist/vue.esm.js","webpack:///App.vue","webpack:///Icon.vue","webpack:///./src/main.js","webpack:///./src/util.js","webpack:///./src/Icon.vue?f3d7","webpack:///./src/App.vue?fc25","webpack:///./src/Icon.vue","webpack:///./src/Icon.vue?c729","webpack:///./src/App.vue?e6bc","webpack:///./src/Icon.vue?a9a6","webpack:///./src/App.vue?629d","webpack:///./~/vue-style-loader/lib/listToStyles.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","list","toString","result","this","length","item","push","join","mediaQuery","alreadyImportedModules","id","rawScriptExports","compiledTemplate","scopeId","cssModules","esModule","scriptExports","type","default","options","render","staticRenderFns","_scopeId","computed","create","keys","forEach","key","addStylesToDom","styles","domStyle","stylesInDom","refs","j","parts","addStyle","createStyleElement","styleElement","document","createElement","head","appendChild","obj","update","remove","querySelector","isProduction","noop","parentNode","removeChild","isOldIE","styleIndex","singletonCounter","singletonElement","applyToSingletonTag","bind","applyToTag","newObj","css","media","sourceMap","index","styleSheet","cssText","replaceText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","sources","btoa","unescape","encodeURIComponent","JSON","stringify","firstChild","hasDocument","DEBUG","Error","listToStyles","getElementsByTagName","navigator","test","userAgent","toLowerCase","parentId","_isProduction","newList","mayRemove","textStore","replacement","filter","Boolean","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_typeof","Symbol","iterator","constructor","root","factory","undefined","apply","Component","_interopRequireDefault","_extends","assign","target","arguments","source","_window_size","_window_size2","_GridItem","_GridItem2","mixins","components","GridItem","props","items","Array","cellWidth","Number","cellHeight","draggable","dragDelay","sortable","center","data","watch","handler","nextItems","map","sort","immediate","height","Math","ceil","rowCount","style","floor","windowWidth","rowShift","contentWidth","methods","wrapEvent","other","datetime","Date","now","getListClone","slice","a","b","removeItem","_ref","find","v","removeItemSort","$emit","onDragStart","event","onDragEnd","click","onDrag","sortList","gridPosition","itemIndex","targetItem","targetItemSort","max","min","animate","dragging","shiftStartX","shiftStartY","mouseMoveStartX","mouseMoveStartY","shiftX","shiftY","timer","zIndex","mounted","_this","$refs","self","addEventListener","className","v-grid-item-animate","v-grid-item-dragging","top","width","transform","left","dragStart","e","touches","pageX","pageY","documentMouseMove","drag","distanceX","distanceY","gridX","round","gridY","$event","positionX","positionY","mousedown","_this2","setTimeout","documentMouseUp","clearTimeout","dx","dy","distance","sqrt","removeEventListener","_Grid","_Grid2","install","Vue","component","windowHeight","created","window","getWindowSize","beforeDestroy","innerHeight","innerWidth","_vm","_h","$createElement","_c","_self","staticClass","_l","attrs","drag-delay","row-count","cell-width","cell-height","window-width","row-shift","on","dragstart","dragend","_t","ref","class","touchstart","stopPropagation","content","locals","newStyles","part","__webpack_exports__","global","isUndef","isDef","isTrue","isFalse","isPrimitive","isObject","isPlainObject","_toString","isRegExp","isValidArrayIndex","val","parseFloat","isFinite","String","toNumber","isNaN","makeMap","str","expectsLowerCase","split","arr","indexOf","splice","hasOwn","cached","fn","cache","ctx","boundFn","_length","toArray","start","ret","extend","to","_from","toObject","res","looseEqual","isObjectA","isObjectB","isArrayA","isArray","isArrayB","every","keysA","keysB","looseIndexOf","once","called","isReserved","charCodeAt","def","writable","parsePath","path","bailRE","segments","handleError","err","vm","info","config","errorHandler","inBrowser","console","error","isNative","Ctor","pushTarget","_target","Dep","targetStack","popTarget","pop","protoAugment","src","__proto__","copyAugment","observe","asRootData","ob","__ob__","Observer","observerState","shouldConvert","isServerRendering","isExtensible","_isVue","vmCount","defineReactive$$1","customSetter","shallow","dep","getOwnPropertyDescriptor","setter","set","childOb","depend","dependArray","newVal","notify","del","mergeData","from","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","mergeHook","concat","mergeAssets","normalizeProps","camelize","normalizeInject","inject","normalized","normalizeDirectives","dirs","directives","mergeOptions","parent","child","mergeField","strat","strats","defaultStrat","extendsFrom","extends","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","capitalize","validateProp","propOptions","propsData","prop","absent","isType","hyphenate","getPropDefaultValue","prevShouldConvert","$options","_props","getType","match","len","createTextVNode","VNode","cloneVNode","vnode","deep","cloned","tag","children","text","elm","context","componentOptions","asyncFactory","ns","isStatic","isComment","isCloned","cloneVNodes","vnodes","createFnInvoker","fns","invoker","arguments$1","prioritizePlainEvents","plain","updateListeners","oldOn","add","remove$$1","cur","old","toAdd","hasModifier","normalizeEvent","event$1","capture","passive","mergeVNodeHook","hookKey","hook","wrappedHook","oldHook","merged","extractPropsFromVNodeData","altKey","checkProp","hash","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","node","nestedIndex","last","_isVList","ensureCtor","comp","base","createAsyncPlaceholder","createEmptyVNode","asyncMeta","resolveAsyncComponent","baseCtor","errorComp","resolved","loading","loadingComp","contexts","sync","forceRender","$forceUpdate","resolve","reject","reason","then","delay","timeout","isAsyncPlaceholder","getFirstComponentChild","initEvents","_events","_hasHookEvent","listeners","_parentListeners","updateComponentListeners","once$$1","$once","$on","remove$1","$off","oldListeners","resolveSlots","slots","defaultSlot","slot","functionalContext","isWhitespace","resolveScopedSlots","initLifecycle","abstract","$parent","$children","$root","_watcher","_inactive","_directInactive","_isMounted","_isDestroyed","_isBeingDestroyed","mountComponent","el","hydrating","$el","callHook","updateComponent","_update","_render","Watcher","$vnode","updateChildComponent","parentVnode","renderChildren","hasChildren","_renderChildren","scopedSlots","$scopedSlots","emptyObject","_parentVnode","_vnode","$attrs","$listeners","propKeys","_propKeys","$slots","isInInactiveTree","activateChildComponent","direct","deactivateChildComponent","handlers","resetSchedulerState","queue","activatedChildren","has","waiting","flushing","flushSchedulerQueue","watcher","run","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","devtools","emit","queueActivatedComponent","queueWatcher","nextTick","traverse","seenObjects","clear","_traverse","seen","isA","depId","proxy","sourceKey","sharedPropertyDefinition","initState","_watchers","opts","initProps","initMethods","initData","_data","initComputed","nativeWatch","initWatch","propsOptions","isRoot","getData","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","shouldCache","createComputedGetter","dirty","evaluate","createWatcher","keyOrFn","$watch","initProvide","provide","_provided","initInjections","resolveInject","hasSymbol","Reflect","ownKeys","provideKey","createFunctionalComponent","mergeProps","_context","h","injections","functionalOptions","createComponent","_base","cid","resolveConstructorOptions","model","transformModel","functional","nativeOn","mergeHooks","createComponentInstanceForVnode","parentElm","refElm","vnodeComponentOptions","_isComponent","_componentTag","_parentElm","_refElm","inlineTemplate","hooksToMerge","fromParent","ours","componentVNodeHooks","mergeHook$1","one","two","callback","normalizationType","alwaysNormalize","ALWAYS_NORMALIZE","_createElement","is","SIMPLE_NORMALIZE","getTagNamespace","isReservedTag","parsePlatformTagName","applyNS","renderList","renderSlot","fallback","bindObject","scopedSlotFn","slotNodes","resolveFilter","identity","checkKeyCodes","eventKeyCode","builtInAlias","keyCodes","bindObjectProps","asProp","isSync","isReservedAttribute","mustUseProp","domProps","renderStatic","isInFor","tree","_staticTrees","_renderProxy","markStatic","markOnce","isOnce","markStaticNode","bindObjectListeners","existing","initRender","renderContext","parentData","initInternalComponent","super","superOptions","modifiedOptions","resolveModifiedOptions","extendOptions","modified","latest","extended","sealed","sealedOptions","dedupe","Vue$3","_init","initUse","use","plugin","installedPlugins","_installedPlugins","args","unshift","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","ASSET_TYPES","Comp","initAssetRegisters","definition","getComponentName","matches","pattern","pruneCache","current","cachedNode","pruneCacheEntry","componentInstance","$destroy","genClassForVnode","childNode","mergeClassData","renderClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","isSVG","isUnknownElement","unknownElementCache","HTMLUnknownElement","HTMLElement","query","selected","createElement$1","tagName","multiple","createElementNS","namespace","namespaceMap","createComment","newNode","referenceNode","nextSibling","setTextContent","textContent","registerRef","isRemoval","refInFor","sameVnode","sameInputType","typeA","typeB","isTextInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldVnode","oldDir","dir","isCreate","emptyNode","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldValue","callHook$1","componentUpdated","inserted","callInsert","modifiers","emptyModifiers","getRawDirName","rawName","updateAttrs","inheritAttrs","oldAttrs","setAttr","isIE9","isXlink","removeAttributeNS","xlinkNS","getXlinkProp","isEnumeratedAttr","removeAttribute","isBooleanAttr","isFalsyAttrValue","setAttributeNS","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","parseFilters","exp","pushFilter","filters","lastFilterIndex","trim","prev","expression","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","charAt","validDivisionCharRE","wrapFilter","baseWarn","msg","pluckModuleFunction","_","addProp","addAttr","addDirective","arg","addHandler","important","warn","events","native","nativeEvents","newHandler","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","attrsMap","attrsList","genComponentModel","number","valueExpression","assignment","genAssignmentCode","modelRs","parseModel","idx","index$1","expressionPos","expressionEndPos","lastIndexOf","eof","chr","next","isStringStart","parseString","parseBracket","substring","inBracket","stringQuote","_warn","warn$1","genSelect","genCheckboxModel","genRadioModel","genDefaultModel","valueBinding","trueValueBinding","falseValueBinding","CHECKBOX_RADIO_TOKEN","selectedVal","code","lazy","needCompositionGuard","RANGE_TOKEN","normalizeEvents","isIE","isChrome","add$1","oldHandler","target$1","ev","remove$2","supportsPassive","updateDOMListeners","updateDOMProps","oldProps","_value","strCur","shouldUpdateValue","checkVal","composing","isDirty","isInputChanged","notInFocus","activeElement","_vModifiers","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","parseStyleText","getStyle","checkChild","styleData","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","setProp","addClass","classList","getAttribute","removeClass","tar","replace","resolveTransition","def$$1","autoCssTransition","nextFrame","raf","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","cb","getTransitionInfo","propCount","TRANSITION","transitionEndEvent","animationEndEvent","ended","end","onEnd","getComputedStyle","transitionDelays","transitionProp","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationProp","animationDurations","animationTimeout","ANIMATION","hasTransform","transformRE","delays","durations","toMs","enter","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","nodeType","enterClass","enterToClass","enterActiveClass","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","activeInstance","transitionNode","isAppear","isRootInsert","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","rm","performLeave","beforeLeave","leaveClass","leaveActiveClass","leaveToClass","explicitLeaveDuration","afterLeave","leaveCancelled","delayLeave","invokerFns","_enter","setSelected","binding","actuallySetSelected","isEdge","isMultiple","option","getValue","selectedIndex","hasNoMatchingOption","onCompositionStart","onCompositionEnd","trigger","createEvent","initEvent","dispatchEvent","locateNode","getRealChild","compOptions","extractTransitionData","key$1","placeholder","rawChild","hasParentTransition","isSameChild","oldChild","callPendingCbs","_moveCb","recordPosition","newPos","getBoundingClientRect","applyTranslation","oldPos","pos","moved","WebkitTransform","transitionDuration","parseText","delimiters","tagRE","buildRegex","defaultTagRE","tokens","lastIndex","exec","transformNode","classBinding","genData","transformNode$1","styleBinding","genData$1","html","decodeAttr","shouldDecodeNewlines","re","encodedAttrWithNewLines","encodedAttr","decodingMap","parseHTML","advance","parseEndTag","lowerCasedTagName","stack","lowerCasedTag","lastTag","expectHTML","isUnaryTag$$1","isUnaryTag","no","canBeLeftOpenTag$$1","canBeLeftOpenTag","isPlainTextElement","endTagLength","stackedTag","reStackedTag","reCache","RegExp","rest$1","all","endTag","shouldIgnoreFirstNewline","chars","textEnd","comment","commentEnd","shouldKeepComment","conditionalComment","conditionalEnd","doctypeMatch","doctype","endTagMatch","curIndex","startTagMatch","startTagOpen","attr","startTagClose","attribute","unarySlash","isNonPhrasingTag","unary","IS_REGEX_CAPTURING_BROKEN","rest","parse","template","endPre","element","pre","inVPre","platformIsPreTag","inPre","warn$2","isPreTag","platformMustUseProp","platformGetTagNamespace","transforms","preTransforms","postTransforms","currentParent","preserveWhitespace","comments","guardIESVGBug","makeAttrsMap","isForbiddenTag","forbidden","processPre","processRawAttrs","processFor","processIf","processOnce","processKey","processRef","processSlot","processComponent","i$1","processAttrs","if","elseif","else","addIfCondition","block","processIfConditions","slotScope","slotTarget","i$2","lastNode","isTextTag","decodeHTMLCached","checkInFor","inMatch","forAliasRE","for","alias","iteratorMatch","forIteratorRE","iterator1","iterator2","findPrevElement","condition","ifConditions","slotName","isProp","dirRE","hasBindings","parseModifiers","modifierRE","bindRE","camel","onRE","argMatch","argRE","ieNSBug","ieNSPrefix","optimize","isStaticKey","genStaticKeysCached","staticKeys","isPlatformReservedTag","markStatic$1","markStaticRoots","genStaticKeys$1","static","l$1","staticInFor","staticRoot","isBuiltInTag","isDirectChildOfTemplateFor","genHandlers","genHandler","isMethodPath","simplePathRE","isFunctionExpression","fnExpRE","genModifierCode","modifierCode","genKeyFilter","genFilterCode","keyVal","parseInt","wrapListeners","bind$1","wrapData","generate","ast","state","CodegenState","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","genFor","ifProcessed","genIf","genSlot","genComponent","genData$2","genChildren","onceId","altGen","altEmpty","genIfConditions","conditions","genTernaryExp","shift","altHelper","genDirectives","dataGenFns","genProps","genScopedSlots","genInlineTemplate","needRuntime","hasRuntime","gen","inlineRenderFns","genScopedSlot","genForScopedSlot","scope","checkSkip","altGenElement","altGenNode","el$1","getNormalizationType","maybeComponent","genNode","needsNormalization","some","genComment","genText","transformSpecialNewlines","bind$$1","componentName","createFunction","errors","Function","createCompileToFunctionFn","compile","compiled","fnGenErrors","getOuterHTML","outerHTML","container","cloneNode","innerHTML","camelizeRE","toUpperCase","hyphenateRE","SSR_ATTR","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","performance","warnHandler","ignoredElements","isReservedAttr","_lifecycleHooks","freeze","hasProto","UA","isAndroid","isIOS","_isServer","_Set","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","nextTickHandler","pending","copies","callbacks","timerFunc","Promise","logError","catch","MutationObserver","counter","observer","textNode","characterData","_resolve","Set","uid","subs","addSub","sub","removeSub","addDep","arrayProto","arrayMethods","method","original","observeArray","arrayKeys","getOwnPropertyNames","walk","raw","prototypeAccessors","defineProperties","uid$2","expOrFn","user","active","deps","newDeps","depIds","newDepIds","cleanupDeps","this$1","tmp","teardown","init","$mount","keepAlive","mountedNode","prepatch","insert","destroy","uid$1","_uid","dataDef","propsDef","$set","$delete","hookRE","cbs","prevEl","prevVnode","prevActiveInstance","__patch__","__vue__","$nextTick","_rendered","_o","_n","_s","_q","_i","_m","_f","_k","_b","_v","_e","_u","_g","patternTypes","KeepAlive","include","exclude","destroyed","builtInComponents","configDef","util","defineReactive","delete","ssrContext","version","emptyStyle","acceptValue","svg","math","isHTMLTag","nodeOps","hooks","baseModules","klass","listDelimiter","propertyDelimiter","cssVarRE","importantRE","setProperty","normalizedName","normalize","vendorNames","capName","hasTransition","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","requestAnimationFrame","activate","platformModules","patch","backend","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","nested","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","elmToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","initial","hasChildNodes","childrenMatch","isRenderedModule","isInitialPatch","isRealElement","hasAttribute","oldElm","parentElm$1","patchable","vmodel","model$1","_vOptions","prevOptions","curOptions","transition$$1","originalDisplay","__vOriginalDisplay","display","unbind","platformDirectives","transitionProps","mode","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","prevChildren","rawChildren","transitionData","kept","removed","c$1","beforeUpdate","updated","hasMove","body","offsetHeight","propertyName","_hasMove","clone","platformComponents","decoder","encoded","div","regexEscapeRE","open","close","klass$1","style$1","modules$1","directives$1","baseOptions","reduce","he","decode","ncname","qnameCapture","g","<",">",""","&"," ","isIgnoreNewlineTag","esc","tab","space","up","right","down","genGuard","stop","prevent","ctrl","alt","meta","middle","baseDirectives","cloak","createCompiler","baseCompile","finalOptions","tips","tip","compileToFunctions","ref$1","idToTemplate","mount","documentElement","_Icon","_Icon2","_util","Icon","colors","generateRGBColors","log","change","withButton","color","brightness","_color","r","_color2","background-color","box-shadow","_vue","_vue2","_App","_App2","_plugin","_plugin2","randomInt","fr","random","count","none","with-button","padding","href","data-icon","data-show-count","aria-label","eval","webpackPolyfill","deprecate","paths"],"mappings":"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","file":"build.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \".\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 8);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n// this module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n scopeId,\n cssModules\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n // inject cssModules\n if (cssModules) {\n var computed = Object.create(options.computed || null)\n Object.keys(cssModules).forEach(function (key) {\n var module = cssModules[key]\n computed[key] = function () { return module }\n })\n options.computed = computed\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\nvar listToStyles = __webpack_require__(17)\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nmodule.exports = function (parentId, list, _isProduction) {\n isProduction = _isProduction\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[data-vue-ssr-id~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n!function (root, factory) {\n \"object\" == ( false ? \"undefined\" : _typeof(exports)) && \"object\" == ( false ? \"undefined\" : _typeof(module)) ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) ? exports[\"vue-js-grid\"] = factory() : root[\"vue-js-grid\"] = factory();\n}(undefined, function () {\n return function (modules) {\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), module.l = !0, module.exports;\n }\n var installedModules = {};\n return __webpack_require__.m = modules, __webpack_require__.c = installedModules, __webpack_require__.i = function (value) {\n return value;\n }, __webpack_require__.d = function (exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n configurable: !1,\n enumerable: !0,\n get: getter\n });\n }, __webpack_require__.n = function (module) {\n var getter = module && module.__esModule ? function () {\n return module.default;\n } : function () {\n return module;\n };\n return __webpack_require__.d(getter, \"a\", getter), getter;\n }, __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n }, __webpack_require__.p = \"/dist/\", __webpack_require__(__webpack_require__.s = 6);\n }([function (module, exports) {\n module.exports = function () {\n var list = [];\n return list.toString = function () {\n for (var result = [], i = 0; i < this.length; i++) {\n var item = this[i];\n item[2] ? result.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\") : result.push(item[1]);\n }\n return result.join(\"\");\n }, list.i = function (modules, mediaQuery) {\n \"string\" == typeof modules && (modules = [[null, modules, \"\"]]);\n for (var alreadyImportedModules = {}, i = 0; i < this.length; i++) {\n var id = this[i][0];\n \"number\" == typeof id && (alreadyImportedModules[id] = !0);\n }\n for (i = 0; i < modules.length; i++) {\n var item = modules[i];\n \"number\" == typeof item[0] && alreadyImportedModules[item[0]] || (mediaQuery && !item[2] ? item[2] = mediaQuery : mediaQuery && (item[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\"), list.push(item));\n }\n }, list;\n };\n }, function (module, exports) {\n module.exports = function (rawScriptExports, compiledTemplate, scopeId, cssModules) {\n var esModule,\n scriptExports = rawScriptExports = rawScriptExports || {},\n type = _typeof(rawScriptExports.default);\n \"object\" !== type && \"function\" !== type || (esModule = rawScriptExports, scriptExports = rawScriptExports.default);\n var options = \"function\" == typeof scriptExports ? scriptExports.options : scriptExports;\n if (compiledTemplate && (options.render = compiledTemplate.render, options.staticRenderFns = compiledTemplate.staticRenderFns), scopeId && (options._scopeId = scopeId), cssModules) {\n var computed = Object.create(options.computed || null);\n Object.keys(cssModules).forEach(function (key) {\n var module = cssModules[key];\n computed[key] = function () {\n return module;\n };\n }), options.computed = computed;\n }\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n };\n };\n }, function (module, exports, __webpack_require__) {\n function addStylesToDom(styles) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i],\n domStyle = stylesInDom[item.id];\n if (domStyle) {\n domStyle.refs++;\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j]);\n }for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]));\n }domStyle.parts.length > item.parts.length && (domStyle.parts.length = item.parts.length);\n } else {\n for (var parts = [], j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]));\n }stylesInDom[item.id] = {\n id: item.id,\n refs: 1,\n parts: parts\n };\n }\n }\n }\n function createStyleElement() {\n var styleElement = document.createElement(\"style\");\n return styleElement.type = \"text/css\", head.appendChild(styleElement), styleElement;\n }\n function addStyle(obj) {\n var update,\n remove,\n styleElement = document.querySelector('style[data-vue-ssr-id~=\"' + obj.id + '\"]');\n if (styleElement) {\n if (isProduction) return noop;\n styleElement.parentNode.removeChild(styleElement);\n }\n if (isOldIE) {\n var styleIndex = singletonCounter++;\n styleElement = singletonElement || (singletonElement = createStyleElement()), update = applyToSingletonTag.bind(null, styleElement, styleIndex, !1), remove = applyToSingletonTag.bind(null, styleElement, styleIndex, !0);\n } else styleElement = createStyleElement(), update = applyToTag.bind(null, styleElement), remove = function remove() {\n styleElement.parentNode.removeChild(styleElement);\n };\n return update(obj), function (newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) return;\n update(obj = newObj);\n } else remove();\n };\n }\n function applyToSingletonTag(styleElement, index, remove, obj) {\n var css = remove ? \"\" : obj.css;\n if (styleElement.styleSheet) styleElement.styleSheet.cssText = replaceText(index, css);else {\n var cssNode = document.createTextNode(css),\n childNodes = styleElement.childNodes;\n childNodes[index] && styleElement.removeChild(childNodes[index]), childNodes.length ? styleElement.insertBefore(cssNode, childNodes[index]) : styleElement.appendChild(cssNode);\n }\n }\n function applyToTag(styleElement, obj) {\n var css = obj.css,\n media = obj.media,\n sourceMap = obj.sourceMap;\n if (media && styleElement.setAttribute(\"media\", media), sourceMap && (css += \"\\n/*# sourceURL=\" + sourceMap.sources[0] + \" */\", css += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\"), styleElement.styleSheet) styleElement.styleSheet.cssText = css;else {\n for (; styleElement.firstChild;) {\n styleElement.removeChild(styleElement.firstChild);\n }styleElement.appendChild(document.createTextNode(css));\n }\n }\n var hasDocument = \"undefined\" != typeof document;\n if (\"undefined\" != typeof DEBUG && DEBUG && !hasDocument) throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");\n var listToStyles = __webpack_require__(15),\n stylesInDom = {},\n head = hasDocument && (document.head || document.getElementsByTagName(\"head\")[0]),\n singletonElement = null,\n singletonCounter = 0,\n isProduction = !1,\n noop = function noop() {},\n isOldIE = \"undefined\" != typeof navigator && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());\n module.exports = function (parentId, list, _isProduction) {\n isProduction = _isProduction;\n var styles = listToStyles(parentId, list);\n return addStylesToDom(styles), function (newList) {\n for (var mayRemove = [], i = 0; i < styles.length; i++) {\n var item = styles[i],\n domStyle = stylesInDom[item.id];\n domStyle.refs--, mayRemove.push(domStyle);\n }\n newList ? (styles = listToStyles(parentId, newList), addStylesToDom(styles)) : styles = [];\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i];\n if (0 === domStyle.refs) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]();\n }delete stylesInDom[domStyle.id];\n }\n }\n };\n };\n var replaceText = function () {\n var textStore = [];\n return function (index, replacement) {\n return textStore[index] = replacement, textStore.filter(Boolean).join(\"\\n\");\n };\n }();\n }, function (module, exports, __webpack_require__) {\n __webpack_require__(13);\n var Component = __webpack_require__(1)(__webpack_require__(4), __webpack_require__(11), null, null);\n module.exports = Component.exports;\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n }\n return target;\n },\n _window_size = __webpack_require__(7),\n _window_size2 = _interopRequireDefault(_window_size),\n _GridItem = __webpack_require__(10),\n _GridItem2 = _interopRequireDefault(_GridItem);\n exports.default = {\n name: \"Grid\",\n mixins: [_window_size2.default],\n components: {\n GridItem: _GridItem2.default\n },\n props: {\n items: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n cellWidth: {\n type: Number,\n default: 80\n },\n cellHeight: {\n type: Number,\n default: 80\n },\n draggable: {\n type: Boolean,\n default: !1\n },\n dragDelay: {\n type: Number,\n default: 0\n },\n sortable: {\n type: Boolean,\n default: !1\n },\n center: {\n type: Boolean,\n default: !1\n }\n },\n data: function data() {\n return {\n list: []\n };\n },\n watch: {\n items: {\n handler: function handler() {\n var nextItems = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n this.list = nextItems.map(function (item, index) {\n return {\n item: item,\n index: index,\n sort: index\n };\n });\n },\n immediate: !0\n }\n },\n computed: {\n height: function height() {\n return Math.ceil(this.items.length / this.rowCount) * this.cellHeight;\n },\n style: function style() {\n return {\n height: this.height + \"px\"\n };\n },\n rowCount: function rowCount() {\n return Math.floor(this.windowWidth / this.cellWidth);\n },\n rowShift: function rowShift() {\n if (this.center) {\n var contentWidth = this.items.length * this.cellWidth,\n rowShift = contentWidth < this.windowWidth ? (this.windowWidth - contentWidth) / 2 : this.windowWidth % this.cellWidth / 2;\n return Math.floor(rowShift);\n }\n return 0;\n }\n },\n methods: {\n wrapEvent: function wrapEvent() {\n var other = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return _extends({\n datetime: Date.now(),\n items: this.getListClone()\n }, other);\n },\n getListClone: function getListClone() {\n return this.list.slice(0).sort(function (a, b) {\n return a.sort - b.sort;\n });\n },\n removeItem: function removeItem(_ref) {\n var index = _ref.index,\n removeItem = this.list.find(function (v) {\n return v.index === index;\n }),\n removeItemSort = removeItem.sort;\n this.list = this.list.filter(function (v) {\n return v.index !== index;\n }).map(function (v) {\n var sort = v.sort > removeItemSort ? v.sort - 1 : v.sort;\n return _extends({}, v, {\n sort: sort\n });\n }), this.$emit(\"remove\", this.wrapEvent({\n index: index\n }));\n },\n onDragStart: function onDragStart(event) {\n this.$emit(\"dragstart\", this.wrapEvent(event));\n },\n onDragEnd: function onDragEnd(event) {\n this.$emit(\"dragend\", this.wrapEvent(event));\n },\n click: function click(event) {\n this.$emit(\"click\", this.wrapEvent(event));\n },\n onDrag: function onDrag(event) {\n this.sortable && this.sortList(event.index, event.gridPosition), this.$emit(\"drag\", this.wrapEvent({\n event: event\n }));\n },\n sortList: function sortList(itemIndex, gridPosition) {\n var targetItem = this.list.find(function (item) {\n return item.index === itemIndex;\n }),\n targetItemSort = targetItem.sort;\n gridPosition = Math.max(gridPosition, 0), gridPosition = Math.min(gridPosition, this.list.length - 1), targetItemSort !== gridPosition && (this.list = this.list.map(function (item) {\n if (item.index === targetItem.index) return _extends({}, item, {\n sort: gridPosition\n });\n var sort = item.sort;\n return targetItemSort > gridPosition && sort <= targetItemSort && sort >= gridPosition ? _extends({}, item, {\n sort: sort + 1\n }) : targetItemSort < gridPosition && sort >= targetItemSort && sort <= gridPosition ? _extends({}, item, {\n sort: sort - 1\n }) : item;\n }), this.$emit(\"sort\", this.wrapEvent()));\n }\n }\n };\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n exports.default = {\n name: \"GridItem\",\n props: {\n index: {\n type: Number\n },\n sort: {\n type: Number\n },\n cellWidth: {\n type: Number\n },\n cellHeight: {\n type: Number\n },\n rowCount: {\n type: Number\n },\n rowShift: {\n type: Number,\n default: 0\n },\n draggable: {\n type: Boolean\n },\n dragDelay: {\n type: Number,\n default: 0\n }\n },\n data: function data() {\n return {\n animate: !0,\n dragging: !1,\n shiftStartX: 0,\n shiftStartY: 0,\n mouseMoveStartX: 0,\n mouseMoveStartY: 0,\n shiftX: 0,\n shiftY: 0,\n timer: null,\n zIndex: 1\n };\n },\n mounted: function mounted() {\n var _this = this;\n this.$refs.self.addEventListener(\"transitionend\", function (event) {\n _this.dragging || (_this.zIndex = 1);\n }, !1);\n },\n computed: {\n className: function className() {\n return [\"v-grid-item-wrapper\", {\n \"v-grid-item-animate\": this.animate,\n \"v-grid-item-dragging\": this.dragging\n }];\n },\n style: function style() {\n var zIndex = this.zIndex,\n cellWidth = this.cellWidth,\n cellHeight = this.cellHeight,\n top = this.top;\n return {\n zIndex: zIndex,\n width: cellWidth + \"px\",\n height: cellHeight + \"px\",\n transform: \"translate3d(\" + this.left + \"px, \" + top + \"px, 0)\"\n };\n },\n left: function left() {\n return this.dragging ? this.shiftX : this.rowShift + this.sort % this.rowCount * this.cellWidth;\n },\n top: function top() {\n return this.dragging ? this.shiftY : Math.floor(this.sort / this.rowCount) * this.cellHeight;\n }\n },\n methods: {\n wrapEvent: function wrapEvent(event) {\n return {\n event: event,\n index: this.index,\n sort: this.sort\n };\n },\n dragStart: function dragStart(event) {\n var e = event.touches ? event.touches[0] : event;\n this.zIndex = 2, this.shiftX = this.shiftStartX = this.left, this.shiftY = this.shiftStartY = this.top, this.mouseMoveStartX = e.pageX, this.mouseMoveStartY = e.pageY, this.animate = !1, this.dragging = !0, document.addEventListener(\"mousemove\", this.documentMouseMove), document.addEventListener(\"touchmove\", this.documentMouseMove), this.$emit(\"dragstart\", this.wrapEvent(event));\n },\n drag: function drag(event) {\n var e = event.touches ? event.touches[0] : event,\n distanceX = e.pageX - this.mouseMoveStartX,\n distanceY = e.pageY - this.mouseMoveStartY;\n this.shiftX = distanceX + this.shiftStartX, this.shiftY = distanceY + this.shiftStartY;\n var gridX = Math.round(this.shiftX / this.cellWidth),\n gridY = Math.round(this.shiftY / this.cellHeight);\n gridX = Math.min(gridX, this.rowCount - 1), gridY = Math.max(gridY, 0);\n var gridPosition = gridX + gridY * this.rowCount,\n $event = {\n event: event,\n distanceX: distanceX,\n distanceY: distanceY,\n positionX: this.shiftX,\n positionY: this.shiftY,\n index: this.index,\n gridX: gridX,\n gridY: gridY,\n gridPosition: gridPosition\n };\n this.$emit(\"drag\", $event);\n },\n mousedown: function mousedown(event) {\n var _this2 = this;\n this.draggable && (this.timer = setTimeout(function () {\n _this2.dragStart(event);\n }, this.dragDelay), document.addEventListener(\"mouseup\", this.documentMouseUp), document.addEventListener(\"touchend\", this.documentMouseUp));\n },\n documentMouseMove: function documentMouseMove(event) {\n this.draggable && this.dragging && this.drag(event);\n },\n documentMouseUp: function documentMouseUp(event) {\n this.timer && (clearTimeout(this.timer), this.timer = null);\n var dx = this.shiftStartX - this.shiftX,\n dy = this.shiftStartY - this.shiftY,\n distance = Math.sqrt(dx * dx + dy * dy);\n this.animate = !0, this.dragging = !1, this.mouseMoveStartX = 0, this.mouseMoveStartY = 0, this.shiftStartX = 0, this.shiftStartY = 0, document.removeEventListener(\"mousemove\", this.documentMouseMove), document.removeEventListener(\"touchmove\", this.documentMouseMove), document.removeEventListener(\"mouseup\", this.documentMouseUp), document.removeEventListener(\"touchend\", this.documentMouseUp);\n var $event = this.wrapEvent(event);\n distance < 4 && this.$emit(\"click\", $event), this.$emit(\"dragend\", $event);\n }\n }\n };\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n var _Grid = __webpack_require__(3),\n _Grid2 = function (obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }(_Grid);\n exports.default = {\n install: function install(Vue) {\n Vue.component(\"Grid\", _Grid2.default);\n }\n };\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n }), exports.default = {\n data: function data() {\n return {\n windowHeight: 0,\n windowWidth: 0\n };\n },\n created: function created() {\n window.addEventListener(\"resize\", this.getWindowSize), this.getWindowSize();\n },\n beforeDestroy: function beforeDestroy() {\n window.removeEventListener(\"resize\", this.getWindowSize);\n },\n methods: {\n getWindowSize: function getWindowSize() {\n this.windowHeight = window.innerHeight, this.windowWidth = window.innerWidth;\n }\n }\n };\n }, function (module, exports, __webpack_require__) {\n exports = module.exports = __webpack_require__(0)(), exports.push([module.i, \"\\nbody {\\n margin: 0;\\n padding: 0;\\n}\\n.v-grid {\\n display: block;\\n position: relative;\\n width: 100%;\\n}\\n\", \"\"]);\n }, function (module, exports, __webpack_require__) {\n exports = module.exports = __webpack_require__(0)(), exports.push([module.i, \"\\n.v-grid-item-wrapper {\\n display: block;\\n position: absolute;\\n box-sizing: border-box;\\n left: 0;\\n top: 0;\\n user-select: none;\\n transform: translate3d(0px, 0px, 0px);\\n z-index: 1;\\n}\\n.v-grid-item-wrapper.v-grid-item-animate {\\n transition: transform 800ms ease;\\n}\\n\", \"\"]);\n }, function (module, exports, __webpack_require__) {\n __webpack_require__(14);\n var Component = __webpack_require__(1)(__webpack_require__(5), __webpack_require__(12), null, null);\n module.exports = Component.exports;\n }, function (module, exports) {\n module.exports = {\n render: function render() {\n var _vm = this,\n _h = _vm.$createElement,\n _c = _vm._self._c || _h;\n return _c(\"div\", {\n staticClass: \"v-grid\",\n style: _vm.style\n }, _vm._l(_vm.list, function (v) {\n return _c(\"GridItem\", {\n key: v.index,\n attrs: {\n index: v.index,\n sort: v.sort,\n draggable: _vm.draggable,\n \"drag-delay\": _vm.dragDelay,\n \"row-count\": _vm.rowCount,\n \"cell-width\": _vm.cellWidth,\n \"cell-height\": _vm.cellHeight,\n \"window-width\": _vm.windowWidth,\n \"row-shift\": _vm.rowShift\n },\n on: {\n dragstart: _vm.onDragStart,\n dragend: _vm.onDragEnd,\n drag: _vm.onDrag,\n click: _vm.click\n }\n }, [_vm._t(\"cell\", null, {\n item: v.item,\n index: v.index,\n sort: v.sort,\n remove: function remove() {\n _vm.removeItem(v);\n }\n })], 2);\n }));\n },\n staticRenderFns: []\n };\n }, function (module, exports) {\n module.exports = {\n render: function render() {\n var _vm = this,\n _h = _vm.$createElement;\n return (_vm._self._c || _h)(\"div\", {\n ref: \"self\",\n class: _vm.className,\n style: _vm.style,\n on: {\n mousedown: _vm.mousedown,\n touchstart: function touchstart($event) {\n $event.stopPropagation(), _vm.mousedown($event);\n }\n }\n }, [_vm._t(\"default\")], 2);\n },\n staticRenderFns: []\n };\n }, function (module, exports, __webpack_require__) {\n var content = __webpack_require__(8);\n \"string\" == typeof content && (content = [[module.i, content, \"\"]]), content.locals && (module.exports = content.locals);\n __webpack_require__(2)(\"0a97df14\", content, !0);\n }, function (module, exports, __webpack_require__) {\n var content = __webpack_require__(9);\n \"string\" == typeof content && (content = [[module.i, content, \"\"]]), content.locals && (module.exports = content.locals);\n __webpack_require__(2)(\"4be927ea\", content, !0);\n }, function (module, exports) {\n module.exports = function (parentId, list) {\n for (var styles = [], newStyles = {}, i = 0; i < list.length; i++) {\n var item = list[i],\n id = item[0],\n css = item[1],\n media = item[2],\n sourceMap = item[3],\n part = {\n id: parentId + \":\" + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n };\n newStyles[id] ? newStyles[id].parts.push(part) : styles.push(newStyles[id] = {\n id: id,\n parts: [part]\n });\n }\n return styles;\n };\n }]);\n});\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(19)(module)))\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(16)\n\nvar Component = __webpack_require__(1)(\n /* script */\n __webpack_require__(6),\n /* template */\n __webpack_require__(14),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(global) {/*!\n * Vue.js v2.4.4\n * (c) 2014-2017 Evan You\n * Released under the MIT License.\n */\n/* */\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nvar _toString = Object.prototype.toString;\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(val);\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind, faster than native\n */\nfunction bind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n // record original fn length\n boundFn._length = fn.length;\n return boundFn\n}\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated'\n];\n\n/* */\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: \"production\" !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: \"production\" !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\nvar emptyObject = Object.freeze({});\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar formatComponentName = (null); // work around flow check\n\nif (false) {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var name = typeof vm === 'string'\n ? vm\n : typeof vm === 'function' && vm.options\n ? vm.options.name\n : vm._isVue\n ? vm.$options.name || vm.$options._componentTag\n : vm.name;\n\n var file = vm._isVue && vm.$options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n var generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n if (config.errorHandler) {\n config.errorHandler.call(null, err, vm, info);\n } else {\n if (false) {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if (inBrowser && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n }\n}\n\n/* */\n/* globals MutationObserver */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = UA && UA.indexOf('android') > 0;\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\n/**\n * Defer a task to execute it asynchronously.\n */\nvar nextTick = (function () {\n var callbacks = [];\n var pending = false;\n var timerFunc;\n\n function nextTickHandler () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n\n // the nextTick behavior leverages the microtask queue, which can be accessed\n // via either native Promise.then or MutationObserver.\n // MutationObserver has wider support, however it is seriously bugged in\n // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n // completely stops working after triggering a few times... so, if native\n // Promise is available, we will use it:\n /* istanbul ignore if */\n if (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n var logError = function (err) { console.error(err); };\n timerFunc = function () {\n p.then(nextTickHandler).catch(logError);\n // in problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n } else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n )) {\n // use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n var counter = 1;\n var observer = new MutationObserver(nextTickHandler);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n } else {\n // fallback to setTimeout\n /* istanbul ignore next */\n timerFunc = function () {\n setTimeout(nextTickHandler, 0);\n };\n }\n\n return function queueNextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n _resolve = resolve;\n })\n }\n }\n})();\n\nvar _Set;\n/* istanbul ignore if */\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);[\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n]\n.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * By default, when a reactive property is set, the new value is\n * also converted to become reactive. However when passing down props,\n * we don't want to force conversion because the value may be a nested value\n * under a frozen data structure. Converting it would defeat the optimization.\n */\nvar observerState = {\n shouldConvert: true\n};\n\n/**\n * Observer class that are attached to each observed\n * object. Once attached, the observer converts target\n * object's property keys into getter/setters that\n * collect dependencies and dispatches updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i], obj[keys[i]]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value)) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n observerState.shouldConvert &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (false) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (hasOwn(target, key)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n \"production\" !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n \"production\" !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (false) {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this) : parentVal\n )\n }\n } else if (parentVal || childVal) {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n \"production\" !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn.call(this, parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (parentVal, childVal) {\n var res = Object.create(parentVal || null);\n return childVal\n ? extend(res, childVal)\n : res\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (parentVal, childVal) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key in childVal) {\n var parent = ret[key];\n var child = childVal[key];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (parentVal, childVal) {\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n var lower = key.toLowerCase();\n if (isBuiltInTag(lower) || config.isReservedTag(lower)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + key\n );\n }\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (false) {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options) {\n var inject = options.inject;\n if (Array.isArray(inject)) {\n var normalized = options.inject = {};\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = inject[i];\n }\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (false) {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child);\n normalizeInject(child);\n normalizeDirectives(child);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = mergeOptions(parent, extendsFrom, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (false) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // handle boolean props\n if (isType(Boolean, prop.type)) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (!isType(String, prop.type) && (value === '' || value === hyphenate(key))) {\n value = true;\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldConvert = observerState.shouldConvert;\n observerState.shouldConvert = true;\n observe(value);\n observerState.shouldConvert = prevShouldConvert;\n }\n if (false) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (false) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n if (!valid) {\n warn(\n 'Invalid prop: type check failed for prop \"' + name + '\".' +\n ' Expected ' + expectedTypes.map(capitalize).join(', ') +\n ', got ' + Object.prototype.toString.call(value).slice(8, -1) + '.',\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isType (type, fn) {\n if (!Array.isArray(fn)) {\n return getType(fn) === getType(type)\n }\n for (var i = 0, len = fn.length; i < len; i++) {\n if (getType(fn[i]) === getType(type)) {\n return true\n }\n }\n /* istanbul ignore next */\n return false\n}\n\n/* */\n\nvar mark;\nvar measure;\n\nif (false) {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n perf.clearMeasures(name);\n };\n }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (false) {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n \"referenced during render. Make sure to declare reactive data \" +\n \"properties in the data option.\",\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' &&\n Proxy.toString().match(/native code/);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.functionalContext = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: {} };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode, deep) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.isCloned = true;\n if (deep && vnode.children) {\n cloned.children = cloneVNodes(vnode.children);\n }\n return cloned\n}\n\nfunction cloneVNodes (vnodes, deep) {\n var len = vnodes.length;\n var res = new Array(len);\n for (var i = 0; i < len; i++) {\n res[i] = cloneVNode(vnodes[i], deep);\n }\n return res\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n var plain = !(passive || once$$1 || capture);\n return {\n name: name,\n plain: plain,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n cloned[i].apply(null, arguments$1);\n }\n } else {\n // return handler return value for single handlers\n return fns.apply(null, arguments)\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\n// #6552\nfunction prioritizePlainEvents (a, b) {\n return a.plain ? -1 : b.plain ? 1 : 0\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, cur, old, event;\n var toAdd = [];\n var hasModifier = false;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (!event.plain) { hasModifier = true; }\n if (isUndef(cur)) {\n \"production\" !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur);\n }\n event.handler = cur;\n toAdd.push(event);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n if (toAdd.length) {\n if (hasModifier) { toAdd.sort(prioritizePlainEvents); }\n for (var i = 0; i < toAdd.length; i++) {\n var event$1 = toAdd[i];\n add(event$1.name, event$1.handler, event$1.once, event$1.capture, event$1.passive);\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (false) {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n last = res[res.length - 1];\n // nested\n if (Array.isArray(c)) {\n res.push.apply(res, normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i)));\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n (last).text += String(c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[res.length - 1] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (comp.__esModule && comp.default) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor,\n context\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (isDef(factory.contexts)) {\n // already pending\n factory.contexts.push(context);\n } else {\n var contexts = factory.contexts = [context];\n var sync = true;\n\n var forceRender = function () {\n for (var i = 0, l = contexts.length; i < l; i++) {\n contexts[i].$forceUpdate();\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender();\n }\n });\n\n var reject = once(function (reason) {\n \"production\" !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender();\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (typeof res.then === 'function') {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isDef(res.component) && typeof res.component.then === 'function') {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n setTimeout(function () {\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender();\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n setTimeout(function () {\n if (isUndef(factory.resolved)) {\n reject(\n false\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn, once$$1) {\n if (once$$1) {\n target.$once(event, fn);\n } else {\n target.$on(event, fn);\n }\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, vm);\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$off(event[i], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (arguments.length === 1) {\n vm._events[event] = null;\n return vm\n }\n if (fn) {\n // specific handler\n var cb;\n var i$1 = cbs.length;\n while (i$1--) {\n cb = cbs[i$1];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i$1, 1);\n break\n }\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (false) {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n for (var i = 0, l = cbs.length; i < l; i++) {\n try {\n cbs[i].apply(vm, args);\n } catch (e) {\n handleError(e, vm, (\"event handler for \\\"\" + event + \"\\\"\"));\n }\n }\n }\n return vm\n };\n}\n\n/* */\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n var slots = {};\n if (!children) {\n return slots\n }\n var defaultSlot = [];\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.functionalContext === context) &&\n data && data.slot != null\n ) {\n var name = child.data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children);\n } else {\n slot.push(child);\n }\n } else {\n defaultSlot.push(child);\n }\n }\n // ignore whitespace\n if (!defaultSlot.every(isWhitespace)) {\n slots.default = defaultSlot;\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return node.isComment || node.text === ' '\n}\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res\n) {\n res = res || {};\n for (var i = 0; i < fns.length; i++) {\n if (Array.isArray(fns[i])) {\n resolveScopedSlots(fns[i], res);\n } else {\n res[fns[i].key] = fns[i].fn;\n }\n }\n return res\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n if (vm._isMounted) {\n callHook(vm, 'beforeUpdate');\n }\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(\n vm.$el, vnode, hydrating, false /* removeOnly */,\n vm.$options._parentElm,\n vm.$options._refElm\n );\n // no need for the ref nodes after initial patch\n // this prevents keeping a detached DOM tree in memory (#5851)\n vm.$options._parentElm = vm.$options._refElm = null;\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n activeInstance = prevActiveInstance;\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (false) {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (false) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n vm._watcher = new Watcher(vm, updateComponent, noop);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (false) {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren\n var hasChildren = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n parentVnode.data.scopedSlots || // has new scoped slots\n vm.$scopedSlots !== emptyObject // has old scoped slots\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = (parentVnode.data && parentVnode.data.attrs) || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n observerState.shouldConvert = false;\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n props[key] = validateProp(key, vm.$options.props, propsData, vm);\n }\n observerState.shouldConvert = true;\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n if (listeners) {\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n }\n // resolve slots + force update if has children\n if (hasChildren) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (false) {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n var handlers = vm.$options[hook];\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n try {\n handlers[i].call(vm);\n } catch (e) {\n handleError(e, vm, (hook + \" hook\"));\n }\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n}\n\n/* */\n\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (false) {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (false) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options\n) {\n this.vm = vm;\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = false\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = function () {};\n \"production\" !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n var dep = this$1.deps[i];\n if (!this$1.newDepIds.has(dep.id)) {\n dep.removeSub(this$1);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n var this$1 = this;\n\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].removeSub(this$1);\n }\n this.active = false;\n }\n};\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nvar seenObjects = new _Set();\nfunction traverse (val) {\n seenObjects.clear();\n _traverse(val, seenObjects);\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || !Object.isExtensible(val)) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction checkOptionType (vm, name) {\n var option = vm.$options[name];\n if (!isPlainObject(option)) {\n warn(\n (\"component option \\\"\" + name + \"\\\" should be an object.\"),\n vm\n );\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n observerState.shouldConvert = isRoot;\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (false) {\n if (isReservedAttribute(key) || config.isReservedAttr(key)) {\n warn(\n (\"\\\"\" + key + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (vm.$parent && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n observerState.shouldConvert = true;\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n \"production\" !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (false) {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n \"production\" !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n try {\n return data.call(vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n \"production\" !== 'production' && checkOptionType(vm, 'computed');\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (false) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (false) {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : userDef;\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : userDef.get\n : noop;\n sharedPropertyDefinition.set = userDef.set\n ? userDef.set\n : noop;\n }\n if (false) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction initMethods (vm, methods) {\n \"production\" !== 'production' && checkOptionType(vm, 'methods');\n var props = vm.$options.props;\n for (var key in methods) {\n if (false) {\n if (methods[key] == null) {\n warn(\n \"Method \\\"\" + key + \"\\\" has an undefined value in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = methods[key] == null ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n \"production\" !== 'production' && checkOptionType(vm, 'watch');\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n keyOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(keyOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (false) {\n dataDef.set = function (newData) {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n cb.call(vm, watcher.value);\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n observerState.shouldConvert = false;\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (false) {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n observerState.shouldConvert = true;\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject).filter(function (key) {\n /* istanbul ignore next */\n return Object.getOwnPropertyDescriptor(inject, key).enumerable\n })\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var provideKey = inject[key];\n var source = vm;\n while (source) {\n if (source._provided && provideKey in source._provided) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (false) {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n return result\n }\n}\n\n/* */\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n context,\n children\n) {\n var props = {};\n var propOptions = Ctor.options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var _context = Object.create(context);\n var h = function (a, b, c, d) { return createElement(_context, a, b, c, d, true); };\n var vnode = Ctor.options.render.call(null, h, {\n data: data,\n props: props,\n children: children,\n parent: context,\n listeners: data.on || emptyObject,\n injections: resolveInject(Ctor.options.inject, context),\n slots: function () { return resolveSlots(children, context); }\n });\n if (vnode instanceof VNode) {\n vnode.functionalContext = context;\n vnode.functionalOptions = Ctor.options;\n if (data.slot) {\n (vnode.data || (vnode.data = {})).slot = data.slot;\n }\n }\n return vnode\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n// hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (\n vnode,\n hydrating,\n parentElm,\n refElm\n ) {\n if (!vnode.componentInstance || vnode.componentInstance._isDestroyed) {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance,\n parentElm,\n refElm\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n } else if (vnode.data.keepAlive) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (false) {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // merge component management hooks onto the placeholder node\n mergeHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent, // activeInstance in lifecycle state\n parentElm,\n refElm\n) {\n var vnodeComponentOptions = vnode.componentOptions;\n var options = {\n _isComponent: true,\n parent: parent,\n propsData: vnodeComponentOptions.propsData,\n _componentTag: vnodeComponentOptions.tag,\n _parentVnode: vnode,\n _parentListeners: vnodeComponentOptions.listeners,\n _renderChildren: vnodeComponentOptions.children,\n _parentElm: parentElm || null,\n _refElm: refElm || null\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnodeComponentOptions.Ctor(options)\n}\n\nfunction mergeHooks (data) {\n if (!data.hook) {\n data.hook = {};\n }\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var fromParent = data.hook[key];\n var ours = componentVNodeHooks[key];\n data.hook[key] = fromParent ? mergeHook$1(ours, fromParent) : ours;\n }\n}\n\nfunction mergeHook$1 (one, two) {\n return function (a, b, c, d) {\n one(a, b, c, d);\n two(a, b, c, d);\n }\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n if (isDef(on[event])) {\n on[event] = [data.model.callback].concat(on[event]);\n } else {\n on[event] = data.model.callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n \"production\" !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (false\n ) {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (isDef(vnode)) {\n if (ns) { applyNS(vnode, ns); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n return\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && isUndef(child.ns)) {\n applyNS(child, ns);\n }\n }\n }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n if (isDef(ret)) {\n (ret)._isVList = true;\n }\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n props = extend(extend({}, bindObject), props);\n }\n return scopedSlotFn(props) || fallback\n } else {\n var slotNodes = this.$slots[name];\n // warn duplicate slot usage\n if (slotNodes && \"production\" !== 'production') {\n slotNodes._rendered && warn(\n \"Duplicate presence of slot \\\"\" + name + \"\\\" found in the same render tree \" +\n \"- this will likely cause render errors.\",\n this\n );\n slotNodes._rendered = true;\n }\n return slotNodes || fallback\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\n/**\n * Runtime helper for checking keyCodes from config.\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInAlias\n) {\n var keyCodes = config.keyCodes[key] || builtInAlias;\n if (Array.isArray(keyCodes)) {\n return keyCodes.indexOf(eventKeyCode) === -1\n } else {\n return keyCodes !== eventKeyCode\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n \"production\" !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n if (!(key in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var tree = this._staticTrees[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree by doing a shallow clone.\n if (tree && !isInFor) {\n return Array.isArray(tree)\n ? cloneVNodes(tree)\n : cloneVNode(tree)\n }\n // otherwise, render a fresh tree.\n tree = this._staticTrees[index] =\n this.$options.staticRenderFns[index].call(this._renderProxy);\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n \"production\" !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(ours, existing) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null;\n var parentVnode = vm.$vnode = vm.$options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(vm.$options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (false) {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', vm.$options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', vm.$options._parentListeners || emptyObject, null, true);\n }\n}\n\nfunction renderMixin (Vue) {\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var staticRenderFns = ref.staticRenderFns;\n var _parentVnode = ref._parentVnode;\n\n if (vm._isMounted) {\n // if the parent didn't update, the slot nodes will be the ones from\n // last render. They need to be cloned to ensure \"freshness\" for this render.\n for (var key in vm.$slots) {\n var slot = vm.$slots[key];\n if (slot._rendered) {\n vm.$slots[key] = cloneVNodes(slot, true /* deep */);\n }\n }\n }\n\n vm.$scopedSlots = (_parentVnode && _parentVnode.data.scopedSlots) || emptyObject;\n\n if (staticRenderFns && !vm._staticTrees) {\n vm._staticTrees = [];\n }\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render function\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (false) {\n vnode = vm.$options.renderError\n ? vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e)\n : vm._vnode;\n } else {\n vnode = vm._vnode;\n }\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (false) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n\n // internal render helpers.\n // these are exposed on the instance prototype to reduce generated render\n // code size.\n Vue.prototype._o = markOnce;\n Vue.prototype._n = toNumber;\n Vue.prototype._s = toString;\n Vue.prototype._l = renderList;\n Vue.prototype._t = renderSlot;\n Vue.prototype._q = looseEqual;\n Vue.prototype._i = looseIndexOf;\n Vue.prototype._m = renderStatic;\n Vue.prototype._f = resolveFilter;\n Vue.prototype._k = checkKeyCodes;\n Vue.prototype._b = bindObjectProps;\n Vue.prototype._v = createTextVNode;\n Vue.prototype._e = createEmptyVNode;\n Vue.prototype._u = resolveScopedSlots;\n Vue.prototype._g = bindObjectListeners;\n}\n\n/* */\n\nvar uid$1 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$1++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (false) {\n startTag = \"vue-perf-init:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (false) {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (false) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure(((vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n opts.parent = options.parent;\n opts.propsData = options.propsData;\n opts._parentVnode = options._parentVnode;\n opts._parentListeners = options._parentListeners;\n opts._renderChildren = options._renderChildren;\n opts._componentTag = options._componentTag;\n opts._parentElm = options._parentElm;\n opts._refElm = options._refElm;\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var extended = Ctor.extendOptions;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = dedupe(latest[key], extended[key], sealed[key]);\n }\n }\n return modified\n}\n\nfunction dedupe (latest, extended, sealed) {\n // compare latest and sealed to ensure lifecycle hooks won't be duplicated\n // between merges\n if (Array.isArray(latest)) {\n var res = [];\n sealed = Array.isArray(sealed) ? sealed : [sealed];\n extended = Array.isArray(extended) ? extended : [extended];\n for (var i = 0; i < latest.length; i++) {\n // push original options and not sealed options to exclude duplicated options\n if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {\n res.push(latest[i]);\n }\n }\n return res\n } else {\n return latest\n }\n}\n\nfunction Vue$3 (options) {\n if (false\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue$3);\nstateMixin(Vue$3);\neventsMixin(Vue$3);\nlifecycleMixin(Vue$3);\nrenderMixin(Vue$3);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (false) {\n if (!/^[a-zA-Z][\\w-]*$/.test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'can only contain alphanumeric characters and the hyphen, ' +\n 'and must start with a letter.'\n );\n }\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (false) {\n if (type === 'component' && config.isReservedTag(id)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + id\n );\n }\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\nvar patternTypes = [String, RegExp, Array];\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (cache, current, filter) {\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n if (cachedNode !== current) {\n pruneCacheEntry(cachedNode);\n }\n cache[key] = null;\n }\n }\n }\n}\n\nfunction pruneCacheEntry (vnode) {\n if (vnode) {\n vnode.componentInstance.$destroy();\n }\n}\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes\n },\n\n created: function created () {\n this.cache = Object.create(null);\n },\n\n destroyed: function destroyed () {\n var this$1 = this;\n\n for (var key in this$1.cache) {\n pruneCacheEntry(this$1.cache[key]);\n }\n },\n\n watch: {\n include: function include (val) {\n pruneCache(this.cache, this._vnode, function (name) { return matches(val, name); });\n },\n exclude: function exclude (val) {\n pruneCache(this.cache, this._vnode, function (name) { return !matches(val, name); });\n }\n },\n\n render: function render () {\n var vnode = getFirstComponentChild(this.$slots.default);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n if (name && (\n (this.include && !matches(this.include, name)) ||\n (this.exclude && matches(this.exclude, name))\n )) {\n return vnode\n }\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (this.cache[key]) {\n vnode.componentInstance = this.cache[key].componentInstance;\n } else {\n this.cache[key] = vnode;\n }\n vnode.data.keepAlive = true;\n }\n return vnode\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (false) {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue$3);\n\nObject.defineProperty(Vue$3.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue$3.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\nVue$3.version = '2.4.4';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\nvar isPreTag = function (tag) { return tag === 'pre'; };\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n \"production\" !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setAttribute (node, key, val) {\n node.setAttribute(key, val);\n}\n\n\nvar nodeOps = Object.freeze({\n\tcreateElement: createElement$1,\n\tcreateElementNS: createElementNS,\n\tcreateTextNode: createTextNode,\n\tcreateComment: createComment,\n\tinsertBefore: insertBefore,\n\tremoveChild: removeChild,\n\tappendChild: appendChild,\n\tparentNode: parentNode,\n\tnextSibling: nextSibling,\n\ttagName: tagName,\n\tsetTextContent: setTextContent,\n\tsetAttribute: setAttribute\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n};\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!key) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove$$1 () {\n if (--remove$$1.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove$$1.listeners = listeners;\n return remove$$1\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n var inPre = 0;\n function createElm (vnode, insertedVnodeQueue, parentElm, refElm, nested) {\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (false) {\n if (data && data.pre) {\n inPre++;\n }\n if (\n !inPre &&\n !vnode.ns &&\n !(config.ignoredElements.length && config.ignoredElements.indexOf(tag) > -1) &&\n config.isUnknownElement(tag)\n ) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (false) {\n inPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */, parentElm, refElm);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (ref$$1.parentNode === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(vnode.text));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setAttribute(vnode.elm, i, '');\n }\n ancestor = ancestor.parent;\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setAttribute(vnode.elm, i, '');\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, elmToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm);\n } else {\n elmToMove = oldCh[idxInOld];\n /* istanbul ignore if */\n if (false) {\n warn(\n 'It seems there are duplicate keys that is causing an update error. ' +\n 'Make sure each v-for item has a unique key.'\n );\n }\n if (sameVnode(elmToMove, newStartVnode)) {\n patchVnode(elmToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {\n if (oldVnode === vnode) {\n return\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var bailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n var isRenderedModule = makeMap('attrs,style,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue) {\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.elm = elm;\n vnode.isAsyncPlaceholder = true;\n return true\n }\n if (false) {\n if (!assertNodeMatch(elm, vnode)) {\n return false\n }\n }\n vnode.elm = elm;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (false\n ) {\n bailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (false\n ) {\n bailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n for (var key in data) {\n if (!isRenderedModule(key)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode) {\n if (isDef(vnode.tag)) {\n return (\n vnode.tag.indexOf('vue-component') === 0 ||\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue, parentElm, refElm);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (false) {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm$1 = nodeOps.parentNode(oldElm);\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm$1,\n nodeOps.nextSibling(oldElm)\n );\n\n if (isDef(vnode.parent)) {\n // component root element replaced.\n // update parent placeholder node element, recursively\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n }\n ancestor = ancestor.parent;\n }\n }\n\n if (isDef(parentElm$1)) {\n removeVnodes(parentElm$1, [oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n];\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n /* istanbul ignore if */\n if (isIE9 && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(key, value);\n }\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n};\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n};\n\n/* */\n\nvar validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n\nfunction parseFilters (exp) {\n var inSingle = false;\n var inDouble = false;\n var inTemplateString = false;\n var inRegex = false;\n var curly = 0;\n var square = 0;\n var paren = 0;\n var lastFilterIndex = 0;\n var c, prev, i, expression, filters;\n\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 0x27 && prev !== 0x5C) { inSingle = false; }\n } else if (inDouble) {\n if (c === 0x22 && prev !== 0x5C) { inDouble = false; }\n } else if (inTemplateString) {\n if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }\n } else if (inRegex) {\n if (c === 0x2f && prev !== 0x5C) { inRegex = false; }\n } else if (\n c === 0x7C && // pipe\n exp.charCodeAt(i + 1) !== 0x7C &&\n exp.charCodeAt(i - 1) !== 0x7C &&\n !curly && !square && !paren\n ) {\n if (expression === undefined) {\n // first filter, end of expression\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 0x22: inDouble = true; break // \"\n case 0x27: inSingle = true; break // '\n case 0x60: inTemplateString = true; break // `\n case 0x28: paren++; break // (\n case 0x29: paren--; break // )\n case 0x5B: square++; break // [\n case 0x5D: square--; break // ]\n case 0x7B: curly++; break // {\n case 0x7D: curly--; break // }\n }\n if (c === 0x2f) { // /\n var j = i - 1;\n var p = (void 0);\n // find first non-whitespace prev char\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== ' ') { break }\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n\n if (expression === undefined) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n\n function pushFilter () {\n (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n\n if (filters) {\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i]);\n }\n }\n\n return expression\n}\n\nfunction wrapFilter (exp, filter) {\n var i = filter.indexOf('(');\n if (i < 0) {\n // _f: resolveFilter\n return (\"_f(\\\"\" + filter + \"\\\")(\" + exp + \")\")\n } else {\n var name = filter.slice(0, i);\n var args = filter.slice(i + 1);\n return (\"_f(\\\"\" + name + \"\\\")(\" + exp + \",\" + args)\n }\n}\n\n/* */\n\nfunction baseWarn (msg) {\n console.error((\"[Vue compiler]: \" + msg));\n}\n\nfunction pluckModuleFunction (\n modules,\n key\n) {\n return modules\n ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })\n : []\n}\n\nfunction addProp (el, name, value) {\n (el.props || (el.props = [])).push({ name: name, value: value });\n}\n\nfunction addAttr (el, name, value) {\n (el.attrs || (el.attrs = [])).push({ name: name, value: value });\n}\n\nfunction addDirective (\n el,\n name,\n rawName,\n value,\n arg,\n modifiers\n) {\n (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });\n}\n\nfunction addHandler (\n el,\n name,\n value,\n modifiers,\n important,\n warn\n) {\n // warn prevent and passive modifier\n /* istanbul ignore if */\n if (\n false\n ) {\n warn(\n 'passive and prevent can\\'t be used together. ' +\n 'Passive handler can\\'t prevent default event.'\n );\n }\n // check capture modifier\n if (modifiers && modifiers.capture) {\n delete modifiers.capture;\n name = '!' + name; // mark the event as captured\n }\n if (modifiers && modifiers.once) {\n delete modifiers.once;\n name = '~' + name; // mark the event as once\n }\n /* istanbul ignore if */\n if (modifiers && modifiers.passive) {\n delete modifiers.passive;\n name = '&' + name; // mark the event as passive\n }\n var events;\n if (modifiers && modifiers.native) {\n delete modifiers.native;\n events = el.nativeEvents || (el.nativeEvents = {});\n } else {\n events = el.events || (el.events = {});\n }\n var newHandler = { value: value, modifiers: modifiers };\n var handlers = events[name];\n /* istanbul ignore if */\n if (Array.isArray(handlers)) {\n important ? handlers.unshift(newHandler) : handlers.push(newHandler);\n } else if (handlers) {\n events[name] = important ? [newHandler, handlers] : [handlers, newHandler];\n } else {\n events[name] = newHandler;\n }\n}\n\nfunction getBindingAttr (\n el,\n name,\n getStatic\n) {\n var dynamicValue =\n getAndRemoveAttr(el, ':' + name) ||\n getAndRemoveAttr(el, 'v-bind:' + name);\n if (dynamicValue != null) {\n return parseFilters(dynamicValue)\n } else if (getStatic !== false) {\n var staticValue = getAndRemoveAttr(el, name);\n if (staticValue != null) {\n return JSON.stringify(staticValue)\n }\n }\n}\n\nfunction getAndRemoveAttr (el, name) {\n var val;\n if ((val = el.attrsMap[name]) != null) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n if (list[i].name === name) {\n list.splice(i, 1);\n break\n }\n }\n }\n return val\n}\n\n/* */\n\n/**\n * Cross-platform code generation for component v-model\n */\nfunction genComponentModel (\n el,\n value,\n modifiers\n) {\n var ref = modifiers || {};\n var number = ref.number;\n var trim = ref.trim;\n\n var baseValueExpression = '$$v';\n var valueExpression = baseValueExpression;\n if (trim) {\n valueExpression =\n \"(typeof \" + baseValueExpression + \" === 'string'\" +\n \"? \" + baseValueExpression + \".trim()\" +\n \": \" + baseValueExpression + \")\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n var assignment = genAssignmentCode(value, valueExpression);\n\n el.model = {\n value: (\"(\" + value + \")\"),\n expression: (\"\\\"\" + value + \"\\\"\"),\n callback: (\"function (\" + baseValueExpression + \") {\" + assignment + \"}\")\n };\n}\n\n/**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\nfunction genAssignmentCode (\n value,\n assignment\n) {\n var modelRs = parseModel(value);\n if (modelRs.idx === null) {\n return (value + \"=\" + assignment)\n } else {\n return (\"$set(\" + (modelRs.exp) + \", \" + (modelRs.idx) + \", \" + assignment + \")\")\n }\n}\n\n/**\n * parse directive model to do the array update transform. a[idx] = val => $$a.splice($$idx, 1, val)\n *\n * for loop possible cases:\n *\n * - test\n * - test[idx]\n * - test[test1[idx]]\n * - test[\"a\"][idx]\n * - xxx.test[a[a].test1[idx]]\n * - test.xxx.a[\"asa\"][test1[idx]]\n *\n */\n\nvar len;\nvar str;\nvar chr;\nvar index$1;\nvar expressionPos;\nvar expressionEndPos;\n\nfunction parseModel (val) {\n str = val;\n len = str.length;\n index$1 = expressionPos = expressionEndPos = 0;\n\n if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\n return {\n exp: val,\n idx: null\n }\n }\n\n while (!eof()) {\n chr = next();\n /* istanbul ignore if */\n if (isStringStart(chr)) {\n parseString(chr);\n } else if (chr === 0x5B) {\n parseBracket(chr);\n }\n }\n\n return {\n exp: val.substring(0, expressionPos),\n idx: val.substring(expressionPos + 1, expressionEndPos)\n }\n}\n\nfunction next () {\n return str.charCodeAt(++index$1)\n}\n\nfunction eof () {\n return index$1 >= len\n}\n\nfunction isStringStart (chr) {\n return chr === 0x22 || chr === 0x27\n}\n\nfunction parseBracket (chr) {\n var inBracket = 1;\n expressionPos = index$1;\n while (!eof()) {\n chr = next();\n if (isStringStart(chr)) {\n parseString(chr);\n continue\n }\n if (chr === 0x5B) { inBracket++; }\n if (chr === 0x5D) { inBracket--; }\n if (inBracket === 0) {\n expressionEndPos = index$1;\n break\n }\n }\n}\n\nfunction parseString (chr) {\n var stringQuote = chr;\n while (!eof()) {\n chr = next();\n if (chr === stringQuote) {\n break\n }\n }\n}\n\n/* */\n\nvar warn$1;\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\nfunction model (\n el,\n dir,\n _warn\n) {\n warn$1 = _warn;\n var value = dir.value;\n var modifiers = dir.modifiers;\n var tag = el.tag;\n var type = el.attrsMap.type;\n\n if (false) {\n var dynamicType = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\n if (tag === 'input' && dynamicType) {\n warn$1(\n \"<input :type=\\\"\" + dynamicType + \"\\\" v-model=\\\"\" + value + \"\\\">:\\n\" +\n \"v-model does not support dynamic input types. Use v-if branches instead.\"\n );\n }\n // inputs with type=\"file\" are read only and setting the input's\n // value will throw an error.\n if (tag === 'input' && type === 'file') {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\" type=\\\"file\\\">:\\n\" +\n \"File inputs are read only. Use a v-on:change listener instead.\"\n );\n }\n }\n\n if (el.component) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (tag === 'select') {\n genSelect(el, value, modifiers);\n } else if (tag === 'input' && type === 'checkbox') {\n genCheckboxModel(el, value, modifiers);\n } else if (tag === 'input' && type === 'radio') {\n genRadioModel(el, value, modifiers);\n } else if (tag === 'input' || tag === 'textarea') {\n genDefaultModel(el, value, modifiers);\n } else if (!config.isReservedTag(tag)) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (false) {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"v-model is not supported on this element type. \" +\n 'If you are working with contenteditable, it\\'s recommended to ' +\n 'wrap a library dedicated for that purpose inside a custom component.'\n );\n }\n\n // ensure runtime directive metadata\n return true\n}\n\nfunction genCheckboxModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n addProp(el, 'checked',\n \"Array.isArray(\" + value + \")\" +\n \"?_i(\" + value + \",\" + valueBinding + \")>-1\" + (\n trueValueBinding === 'true'\n ? (\":(\" + value + \")\")\n : (\":_q(\" + value + \",\" + trueValueBinding + \")\")\n )\n );\n addHandler(el, CHECKBOX_RADIO_TOKEN,\n \"var $$a=\" + value + \",\" +\n '$$el=$event.target,' +\n \"$$c=$$el.checked?(\" + trueValueBinding + \"):(\" + falseValueBinding + \");\" +\n 'if(Array.isArray($$a)){' +\n \"var $$v=\" + (number ? '_n(' + valueBinding + ')' : valueBinding) + \",\" +\n '$$i=_i($$a,$$v);' +\n \"if($$el.checked){$$i<0&&(\" + value + \"=$$a.concat([$$v]))}\" +\n \"else{$$i>-1&&(\" + value + \"=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}\" +\n \"}else{\" + (genAssignmentCode(value, '$$c')) + \"}\",\n null, true\n );\n}\n\nfunction genRadioModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n valueBinding = number ? (\"_n(\" + valueBinding + \")\") : valueBinding;\n addProp(el, 'checked', (\"_q(\" + value + \",\" + valueBinding + \")\"));\n addHandler(el, CHECKBOX_RADIO_TOKEN, genAssignmentCode(value, valueBinding), null, true);\n}\n\nfunction genSelect (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var selectedVal = \"Array.prototype.filter\" +\n \".call($event.target.options,function(o){return o.selected})\" +\n \".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" +\n \"return \" + (number ? '_n(val)' : 'val') + \"})\";\n\n var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\n var code = \"var $$selectedVal = \" + selectedVal + \";\";\n code = code + \" \" + (genAssignmentCode(value, assignment));\n addHandler(el, 'change', code, null, true);\n}\n\nfunction genDefaultModel (\n el,\n value,\n modifiers\n) {\n var type = el.attrsMap.type;\n var ref = modifiers || {};\n var lazy = ref.lazy;\n var number = ref.number;\n var trim = ref.trim;\n var needCompositionGuard = !lazy && type !== 'range';\n var event = lazy\n ? 'change'\n : type === 'range'\n ? RANGE_TOKEN\n : 'input';\n\n var valueExpression = '$event.target.value';\n if (trim) {\n valueExpression = \"$event.target.value.trim()\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n\n var code = genAssignmentCode(value, valueExpression);\n if (needCompositionGuard) {\n code = \"if($event.target.composing)return;\" + code;\n }\n\n addProp(el, 'value', (\"(\" + value + \")\"));\n addHandler(el, event, code, null, true);\n if (trim || number) {\n addHandler(el, 'blur', '$forceUpdate()');\n }\n}\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n var event;\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n // Chrome fires microtasks in between click/change, leads to #4521\n event = isChrome ? 'click' : 'change';\n on[event] = [].concat(on[CHECKBOX_RADIO_TOKEN], on[event] || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction add$1 (\n event,\n handler,\n once$$1,\n capture,\n passive\n) {\n if (once$$1) {\n var oldHandler = handler;\n var _target = target$1; // save current target element in closure\n handler = function (ev) {\n var res = arguments.length === 1\n ? oldHandler(ev)\n : oldHandler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, handler, capture, _target);\n }\n };\n }\n target$1.addEventListener(\n event,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n event,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(event, handler, capture);\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, vnode.context);\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n};\n\n/* */\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (isUndef(props[key])) {\n elm[key] = '';\n }\n }\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n }\n\n if (key === 'value') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, vnode, strCur)) {\n elm.value = strCur;\n }\n } else {\n elm[key] = cur;\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (\n elm,\n vnode,\n checkVal\n) {\n return (!elm.composing && (\n vnode.tag === 'option' ||\n isDirty(elm, checkVal) ||\n isInputChanged(elm, checkVal)\n ))\n}\n\nfunction isDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isInputChanged (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers) && modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (isDef(modifiers) && modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n};\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (childNode.data && (styleData = normalizeStyleData(childNode.data))) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(name, val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n};\n\n/* */\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def$$1) {\n if (!def$$1) {\n return\n }\n /* istanbul ignore else */\n if (typeof def$$1 === 'object') {\n var res = {};\n if (def$$1.css !== false) {\n extend(res, autoCssTransition(def$$1.name || 'v'));\n }\n extend(res, def$$1);\n return res\n } else if (typeof def$$1 === 'string') {\n return autoCssTransition(def$$1)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser && window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout;\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n var transitionDelays = styles[transitionProp + 'Delay'].split(', ');\n var transitionDurations = styles[transitionProp + 'Duration'].split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = styles[animationProp + 'Delay'].split(', ');\n var animationDurations = styles[animationProp + 'Duration'].split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\nfunction toMs (s) {\n return Number(s.slice(0, -1)) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n transitionNode = transitionNode.parent;\n context = transitionNode.context;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (false) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n addTransitionClass(el, toClass);\n removeTransitionClass(el, startClass);\n if (!cb.cancelled && !userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (false) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n addTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled && !userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {};\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n];\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar model$1 = {\n inserted: function inserted (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n if (!isAndroid) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n }\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n \"production\" !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (value === oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n};\n\nvar platformDirectives = {\n model: model$1,\n show: show\n};\n\n/* */\n\n// Provides transition support for a single element/component.\n// supports transition mode (out-in / in-out)\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$options._renderChildren;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (false) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (false\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild && (oldChild.data.transition = extend({}, data));\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n};\n\n/* */\n\n// Provides transition support for list items.\n// supports move transitions using the FLIP technique.\n\n// Because the vdom's children update algorithm is \"unstable\" - i.e.\n// it doesn't guarantee the relative positioning of removed elements,\n// we force transition-group to update its children into two passes:\n// in the first pass, we remove all nodes that need to be removed,\n// triggering their leaving transition; in the second pass, we insert/move\n// into the final desired state. This way in the second pass removed\n// nodes will remain where they should be.\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (false) {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n beforeUpdate: function beforeUpdate () {\n // force removing pass\n this.__patch__(\n this._vnode,\n this.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this._vnode = this.kept;\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n var body = document.body;\n var f = body.offsetHeight; // eslint-disable-line\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n};\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n};\n\n/* */\n\n// install platform specific utils\nVue$3.config.mustUseProp = mustUseProp;\nVue$3.config.isReservedTag = isReservedTag;\nVue$3.config.isReservedAttr = isReservedAttr;\nVue$3.config.getTagNamespace = getTagNamespace;\nVue$3.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue$3.options.directives, platformDirectives);\nextend(Vue$3.options.components, platformComponents);\n\n// install platform patch function\nVue$3.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue$3.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nsetTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue$3);\n } else if (false) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (false\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n}, 0);\n\n/* */\n\n// check whether current browser encodes a char inside attribute values\nfunction shouldDecode (content, encoded) {\n var div = document.createElement('div');\n div.innerHTML = \"<div a=\\\"\" + content + \"\\\"/>\";\n return div.innerHTML.indexOf(encoded) > 0\n}\n\n// #3663\n// IE encodes newlines inside attribute values while other browsers don't\nvar shouldDecodeNewlines = inBrowser ? shouldDecode('\\n', ' ') : false;\n\n/* */\n\nvar defaultTagRE = /\\{\\{((?:.|\\n)+?)\\}\\}/g;\nvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n\nvar buildRegex = cached(function (delimiters) {\n var open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n var close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g')\n});\n\nfunction parseText (\n text,\n delimiters\n) {\n var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n if (!tagRE.test(text)) {\n return\n }\n var tokens = [];\n var lastIndex = tagRE.lastIndex = 0;\n var match, index;\n while ((match = tagRE.exec(text))) {\n index = match.index;\n // push text token\n if (index > lastIndex) {\n tokens.push(JSON.stringify(text.slice(lastIndex, index)));\n }\n // tag token\n var exp = parseFilters(match[1].trim());\n tokens.push((\"_s(\" + exp + \")\"));\n lastIndex = index + match[0].length;\n }\n if (lastIndex < text.length) {\n tokens.push(JSON.stringify(text.slice(lastIndex)));\n }\n return tokens.join('+')\n}\n\n/* */\n\nfunction transformNode (el, options) {\n var warn = options.warn || baseWarn;\n var staticClass = getAndRemoveAttr(el, 'class');\n if (false) {\n var expression = parseText(staticClass, options.delimiters);\n if (expression) {\n warn(\n \"class=\\\"\" + staticClass + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.'\n );\n }\n }\n if (staticClass) {\n el.staticClass = JSON.stringify(staticClass);\n }\n var classBinding = getBindingAttr(el, 'class', false /* getStatic */);\n if (classBinding) {\n el.classBinding = classBinding;\n }\n}\n\nfunction genData (el) {\n var data = '';\n if (el.staticClass) {\n data += \"staticClass:\" + (el.staticClass) + \",\";\n }\n if (el.classBinding) {\n data += \"class:\" + (el.classBinding) + \",\";\n }\n return data\n}\n\nvar klass$1 = {\n staticKeys: ['staticClass'],\n transformNode: transformNode,\n genData: genData\n};\n\n/* */\n\nfunction transformNode$1 (el, options) {\n var warn = options.warn || baseWarn;\n var staticStyle = getAndRemoveAttr(el, 'style');\n if (staticStyle) {\n /* istanbul ignore if */\n if (false) {\n var expression = parseText(staticStyle, options.delimiters);\n if (expression) {\n warn(\n \"style=\\\"\" + staticStyle + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.'\n );\n }\n }\n el.staticStyle = JSON.stringify(parseStyleText(staticStyle));\n }\n\n var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\n if (styleBinding) {\n el.styleBinding = styleBinding;\n }\n}\n\nfunction genData$1 (el) {\n var data = '';\n if (el.staticStyle) {\n data += \"staticStyle:\" + (el.staticStyle) + \",\";\n }\n if (el.styleBinding) {\n data += \"style:(\" + (el.styleBinding) + \"),\";\n }\n return data\n}\n\nvar style$1 = {\n staticKeys: ['staticStyle'],\n transformNode: transformNode$1,\n genData: genData$1\n};\n\nvar modules$1 = [\n klass$1,\n style$1\n];\n\n/* */\n\nfunction text (el, dir) {\n if (dir.value) {\n addProp(el, 'textContent', (\"_s(\" + (dir.value) + \")\"));\n }\n}\n\n/* */\n\nfunction html (el, dir) {\n if (dir.value) {\n addProp(el, 'innerHTML', (\"_s(\" + (dir.value) + \")\"));\n }\n}\n\nvar directives$1 = {\n model: model,\n text: text,\n html: html\n};\n\n/* */\n\nvar isUnaryTag = makeMap(\n 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\n 'link,meta,param,source,track,wbr'\n);\n\n// Elements that you can, intentionally, leave open\n// (and which close themselves)\nvar canBeLeftOpenTag = makeMap(\n 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'\n);\n\n// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\n// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\nvar isNonPhrasingTag = makeMap(\n 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\n 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\n 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\n 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\n 'title,tr,track'\n);\n\n/* */\n\nvar baseOptions = {\n expectHTML: true,\n modules: modules$1,\n directives: directives$1,\n isPreTag: isPreTag,\n isUnaryTag: isUnaryTag,\n mustUseProp: mustUseProp,\n canBeLeftOpenTag: canBeLeftOpenTag,\n isReservedTag: isReservedTag,\n getTagNamespace: getTagNamespace,\n staticKeys: genStaticKeys(modules$1)\n};\n\n/* */\n\nvar decoder;\n\nvar he = {\n decode: function decode (html) {\n decoder = decoder || document.createElement('div');\n decoder.innerHTML = html;\n return decoder.textContent\n }\n};\n\n/**\n * Not type-checking this file because it's mostly vendor code.\n */\n\n/*!\n * HTML Parser By John Resig (ejohn.org)\n * Modified by Juriy \"kangax\" Zaytsev\n * Original code by Erik Arvidsson, Mozilla Public License\n * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js\n */\n\n// Regular Expressions for parsing tags and attributes\nvar attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\n// could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName\n// but for Vue templates we can enforce a simple charset\nvar ncname = '[a-zA-Z_][\\\\w\\\\-\\\\.]*';\nvar qnameCapture = \"((?:\" + ncname + \"\\\\:)?\" + ncname + \")\";\nvar startTagOpen = new RegExp((\"^<\" + qnameCapture));\nvar startTagClose = /^\\s*(\\/?)>/;\nvar endTag = new RegExp((\"^<\\\\/\" + qnameCapture + \"[^>]*>\"));\nvar doctype = /^<!DOCTYPE [^>]+>/i;\nvar comment = /^<!--/;\nvar conditionalComment = /^<!\\[/;\n\nvar IS_REGEX_CAPTURING_BROKEN = false;\n'x'.replace(/x(.)?/g, function (m, g) {\n IS_REGEX_CAPTURING_BROKEN = g === '';\n});\n\n// Special Elements (can contain anything)\nvar isPlainTextElement = makeMap('script,style,textarea', true);\nvar reCache = {};\n\nvar decodingMap = {\n '<': '<',\n '>': '>',\n '"': '\"',\n '&': '&',\n ' ': '\\n'\n};\nvar encodedAttr = /&(?:lt|gt|quot|amp);/g;\nvar encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10);/g;\n\n// #5992\nvar isIgnoreNewlineTag = makeMap('pre,textarea', true);\nvar shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n'; };\n\nfunction decodeAttr (value, shouldDecodeNewlines) {\n var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\n return value.replace(re, function (match) { return decodingMap[match]; })\n}\n\nfunction parseHTML (html, options) {\n var stack = [];\n var expectHTML = options.expectHTML;\n var isUnaryTag$$1 = options.isUnaryTag || no;\n var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;\n var index = 0;\n var last, lastTag;\n while (html) {\n last = html;\n // Make sure we're not in a plaintext content element like script/style\n if (!lastTag || !isPlainTextElement(lastTag)) {\n var textEnd = html.indexOf('<');\n if (textEnd === 0) {\n // Comment:\n if (comment.test(html)) {\n var commentEnd = html.indexOf('-->');\n\n if (commentEnd >= 0) {\n if (options.shouldKeepComment) {\n options.comment(html.substring(4, commentEnd));\n }\n advance(commentEnd + 3);\n continue\n }\n }\n\n // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n if (conditionalComment.test(html)) {\n var conditionalEnd = html.indexOf(']>');\n\n if (conditionalEnd >= 0) {\n advance(conditionalEnd + 2);\n continue\n }\n }\n\n // Doctype:\n var doctypeMatch = html.match(doctype);\n if (doctypeMatch) {\n advance(doctypeMatch[0].length);\n continue\n }\n\n // End tag:\n var endTagMatch = html.match(endTag);\n if (endTagMatch) {\n var curIndex = index;\n advance(endTagMatch[0].length);\n parseEndTag(endTagMatch[1], curIndex, index);\n continue\n }\n\n // Start tag:\n var startTagMatch = parseStartTag();\n if (startTagMatch) {\n handleStartTag(startTagMatch);\n if (shouldIgnoreFirstNewline(lastTag, html)) {\n advance(1);\n }\n continue\n }\n }\n\n var text = (void 0), rest = (void 0), next = (void 0);\n if (textEnd >= 0) {\n rest = html.slice(textEnd);\n while (\n !endTag.test(rest) &&\n !startTagOpen.test(rest) &&\n !comment.test(rest) &&\n !conditionalComment.test(rest)\n ) {\n // < in plain text, be forgiving and treat it as text\n next = rest.indexOf('<', 1);\n if (next < 0) { break }\n textEnd += next;\n rest = html.slice(textEnd);\n }\n text = html.substring(0, textEnd);\n advance(textEnd);\n }\n\n if (textEnd < 0) {\n text = html;\n html = '';\n }\n\n if (options.chars && text) {\n options.chars(text);\n }\n } else {\n var endTagLength = 0;\n var stackedTag = lastTag.toLowerCase();\n var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));\n var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {\n endTagLength = endTag.length;\n if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {\n text = text\n .replace(/<!--([\\s\\S]*?)-->/g, '$1')\n .replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\n }\n if (shouldIgnoreFirstNewline(stackedTag, text)) {\n text = text.slice(1);\n }\n if (options.chars) {\n options.chars(text);\n }\n return ''\n });\n index += html.length - rest$1.length;\n html = rest$1;\n parseEndTag(stackedTag, index - endTagLength, index);\n }\n\n if (html === last) {\n options.chars && options.chars(html);\n if (false) {\n options.warn((\"Mal-formatted tag at end of template: \\\"\" + html + \"\\\"\"));\n }\n break\n }\n }\n\n // Clean up any remaining tags\n parseEndTag();\n\n function advance (n) {\n index += n;\n html = html.substring(n);\n }\n\n function parseStartTag () {\n var start = html.match(startTagOpen);\n if (start) {\n var match = {\n tagName: start[1],\n attrs: [],\n start: index\n };\n advance(start[0].length);\n var end, attr;\n while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {\n advance(attr[0].length);\n match.attrs.push(attr);\n }\n if (end) {\n match.unarySlash = end[1];\n advance(end[0].length);\n match.end = index;\n return match\n }\n }\n }\n\n function handleStartTag (match) {\n var tagName = match.tagName;\n var unarySlash = match.unarySlash;\n\n if (expectHTML) {\n if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n parseEndTag(lastTag);\n }\n if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {\n parseEndTag(tagName);\n }\n }\n\n var unary = isUnaryTag$$1(tagName) || !!unarySlash;\n\n var l = match.attrs.length;\n var attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n var args = match.attrs[i];\n // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778\n if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('\"\"') === -1) {\n if (args[3] === '') { delete args[3]; }\n if (args[4] === '') { delete args[4]; }\n if (args[5] === '') { delete args[5]; }\n }\n var value = args[3] || args[4] || args[5] || '';\n attrs[i] = {\n name: args[1],\n value: decodeAttr(\n value,\n options.shouldDecodeNewlines\n )\n };\n }\n\n if (!unary) {\n stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });\n lastTag = tagName;\n }\n\n if (options.start) {\n options.start(tagName, attrs, unary, match.start, match.end);\n }\n }\n\n function parseEndTag (tagName, start, end) {\n var pos, lowerCasedTagName;\n if (start == null) { start = index; }\n if (end == null) { end = index; }\n\n if (tagName) {\n lowerCasedTagName = tagName.toLowerCase();\n }\n\n // Find the closest opened tag of the same type\n if (tagName) {\n for (pos = stack.length - 1; pos >= 0; pos--) {\n if (stack[pos].lowerCasedTag === lowerCasedTagName) {\n break\n }\n }\n } else {\n // If no tag name is provided, clean shop\n pos = 0;\n }\n\n if (pos >= 0) {\n // Close all the open elements, up the stack\n for (var i = stack.length - 1; i >= pos; i--) {\n if (false\n ) {\n options.warn(\n (\"tag <\" + (stack[i].tag) + \"> has no matching end tag.\")\n );\n }\n if (options.end) {\n options.end(stack[i].tag, start, end);\n }\n }\n\n // Remove the open elements from the stack\n stack.length = pos;\n lastTag = pos && stack[pos - 1].tag;\n } else if (lowerCasedTagName === 'br') {\n if (options.start) {\n options.start(tagName, [], true, start, end);\n }\n } else if (lowerCasedTagName === 'p') {\n if (options.start) {\n options.start(tagName, [], false, start, end);\n }\n if (options.end) {\n options.end(tagName, start, end);\n }\n }\n }\n}\n\n/* */\n\nvar onRE = /^@|^v-on:/;\nvar dirRE = /^v-|^@|^:/;\nvar forAliasRE = /(.*?)\\s+(?:in|of)\\s+(.*)/;\nvar forIteratorRE = /\\((\\{[^}]*\\}|[^,]*),([^,]*)(?:,([^,]*))?\\)/;\n\nvar argRE = /:(.*)$/;\nvar bindRE = /^:|^v-bind:/;\nvar modifierRE = /\\.[^.]+/g;\n\nvar decodeHTMLCached = cached(he.decode);\n\n// configurable state\nvar warn$2;\nvar delimiters;\nvar transforms;\nvar preTransforms;\nvar postTransforms;\nvar platformIsPreTag;\nvar platformMustUseProp;\nvar platformGetTagNamespace;\n\n/**\n * Convert HTML string to AST.\n */\nfunction parse (\n template,\n options\n) {\n warn$2 = options.warn || baseWarn;\n\n platformIsPreTag = options.isPreTag || no;\n platformMustUseProp = options.mustUseProp || no;\n platformGetTagNamespace = options.getTagNamespace || no;\n\n transforms = pluckModuleFunction(options.modules, 'transformNode');\n preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n\n delimiters = options.delimiters;\n\n var stack = [];\n var preserveWhitespace = options.preserveWhitespace !== false;\n var root;\n var currentParent;\n var inVPre = false;\n var inPre = false;\n var warned = false;\n\n function warnOnce (msg) {\n if (!warned) {\n warned = true;\n warn$2(msg);\n }\n }\n\n function endPre (element) {\n // check pre state\n if (element.pre) {\n inVPre = false;\n }\n if (platformIsPreTag(element.tag)) {\n inPre = false;\n }\n }\n\n parseHTML(template, {\n warn: warn$2,\n expectHTML: options.expectHTML,\n isUnaryTag: options.isUnaryTag,\n canBeLeftOpenTag: options.canBeLeftOpenTag,\n shouldDecodeNewlines: options.shouldDecodeNewlines,\n shouldKeepComment: options.comments,\n start: function start (tag, attrs, unary) {\n // check namespace.\n // inherit parent ns if there is one\n var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\n\n // handle IE svg bug\n /* istanbul ignore if */\n if (isIE && ns === 'svg') {\n attrs = guardIESVGBug(attrs);\n }\n\n var element = {\n type: 1,\n tag: tag,\n attrsList: attrs,\n attrsMap: makeAttrsMap(attrs),\n parent: currentParent,\n children: []\n };\n if (ns) {\n element.ns = ns;\n }\n\n if (isForbiddenTag(element) && !isServerRendering()) {\n element.forbidden = true;\n \"production\" !== 'production' && warn$2(\n 'Templates should only be responsible for mapping the state to the ' +\n 'UI. Avoid placing tags with side-effects in your templates, such as ' +\n \"<\" + tag + \">\" + ', as they will not be parsed.'\n );\n }\n\n // apply pre-transforms\n for (var i = 0; i < preTransforms.length; i++) {\n preTransforms[i](element, options);\n }\n\n if (!inVPre) {\n processPre(element);\n if (element.pre) {\n inVPre = true;\n }\n }\n if (platformIsPreTag(element.tag)) {\n inPre = true;\n }\n if (inVPre) {\n processRawAttrs(element);\n } else {\n processFor(element);\n processIf(element);\n processOnce(element);\n processKey(element);\n\n // determine whether this is a plain element after\n // removing structural attributes\n element.plain = !element.key && !attrs.length;\n\n processRef(element);\n processSlot(element);\n processComponent(element);\n for (var i$1 = 0; i$1 < transforms.length; i$1++) {\n transforms[i$1](element, options);\n }\n processAttrs(element);\n }\n\n function checkRootConstraints (el) {\n if (false) {\n if (el.tag === 'slot' || el.tag === 'template') {\n warnOnce(\n \"Cannot use <\" + (el.tag) + \"> as component root element because it may \" +\n 'contain multiple nodes.'\n );\n }\n if (el.attrsMap.hasOwnProperty('v-for')) {\n warnOnce(\n 'Cannot use v-for on stateful component root element because ' +\n 'it renders multiple elements.'\n );\n }\n }\n }\n\n // tree management\n if (!root) {\n root = element;\n checkRootConstraints(root);\n } else if (!stack.length) {\n // allow root elements with v-if, v-else-if and v-else\n if (root.if && (element.elseif || element.else)) {\n checkRootConstraints(element);\n addIfCondition(root, {\n exp: element.elseif,\n block: element\n });\n } else if (false) {\n warnOnce(\n \"Component template should contain exactly one root element. \" +\n \"If you are using v-if on multiple elements, \" +\n \"use v-else-if to chain them instead.\"\n );\n }\n }\n if (currentParent && !element.forbidden) {\n if (element.elseif || element.else) {\n processIfConditions(element, currentParent);\n } else if (element.slotScope) { // scoped slot\n currentParent.plain = false;\n var name = element.slotTarget || '\"default\"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;\n } else {\n currentParent.children.push(element);\n element.parent = currentParent;\n }\n }\n if (!unary) {\n currentParent = element;\n stack.push(element);\n } else {\n endPre(element);\n }\n // apply post-transforms\n for (var i$2 = 0; i$2 < postTransforms.length; i$2++) {\n postTransforms[i$2](element, options);\n }\n },\n\n end: function end () {\n // remove trailing whitespace\n var element = stack[stack.length - 1];\n var lastNode = element.children[element.children.length - 1];\n if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {\n element.children.pop();\n }\n // pop stack\n stack.length -= 1;\n currentParent = stack[stack.length - 1];\n endPre(element);\n },\n\n chars: function chars (text) {\n if (!currentParent) {\n if (false) {\n if (text === template) {\n warnOnce(\n 'Component template requires a root element, rather than just text.'\n );\n } else if ((text = text.trim())) {\n warnOnce(\n (\"text \\\"\" + text + \"\\\" outside root element will be ignored.\")\n );\n }\n }\n return\n }\n // IE textarea placeholder bug\n /* istanbul ignore if */\n if (isIE &&\n currentParent.tag === 'textarea' &&\n currentParent.attrsMap.placeholder === text\n ) {\n return\n }\n var children = currentParent.children;\n text = inPre || text.trim()\n ? isTextTag(currentParent) ? text : decodeHTMLCached(text)\n // only preserve whitespace if its not right after a starting tag\n : preserveWhitespace && children.length ? ' ' : '';\n if (text) {\n var expression;\n if (!inVPre && text !== ' ' && (expression = parseText(text, delimiters))) {\n children.push({\n type: 2,\n expression: expression,\n text: text\n });\n } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {\n children.push({\n type: 3,\n text: text\n });\n }\n }\n },\n comment: function comment (text) {\n currentParent.children.push({\n type: 3,\n text: text,\n isComment: true\n });\n }\n });\n return root\n}\n\nfunction processPre (el) {\n if (getAndRemoveAttr(el, 'v-pre') != null) {\n el.pre = true;\n }\n}\n\nfunction processRawAttrs (el) {\n var l = el.attrsList.length;\n if (l) {\n var attrs = el.attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n attrs[i] = {\n name: el.attrsList[i].name,\n value: JSON.stringify(el.attrsList[i].value)\n };\n }\n } else if (!el.pre) {\n // non root node in pre blocks with no attributes\n el.plain = true;\n }\n}\n\nfunction processKey (el) {\n var exp = getBindingAttr(el, 'key');\n if (exp) {\n if (false) {\n warn$2(\"<template> cannot be keyed. Place the key on real elements instead.\");\n }\n el.key = exp;\n }\n}\n\nfunction processRef (el) {\n var ref = getBindingAttr(el, 'ref');\n if (ref) {\n el.ref = ref;\n el.refInFor = checkInFor(el);\n }\n}\n\nfunction processFor (el) {\n var exp;\n if ((exp = getAndRemoveAttr(el, 'v-for'))) {\n var inMatch = exp.match(forAliasRE);\n if (!inMatch) {\n \"production\" !== 'production' && warn$2(\n (\"Invalid v-for expression: \" + exp)\n );\n return\n }\n el.for = inMatch[2].trim();\n var alias = inMatch[1].trim();\n var iteratorMatch = alias.match(forIteratorRE);\n if (iteratorMatch) {\n el.alias = iteratorMatch[1].trim();\n el.iterator1 = iteratorMatch[2].trim();\n if (iteratorMatch[3]) {\n el.iterator2 = iteratorMatch[3].trim();\n }\n } else {\n el.alias = alias;\n }\n }\n}\n\nfunction processIf (el) {\n var exp = getAndRemoveAttr(el, 'v-if');\n if (exp) {\n el.if = exp;\n addIfCondition(el, {\n exp: exp,\n block: el\n });\n } else {\n if (getAndRemoveAttr(el, 'v-else') != null) {\n el.else = true;\n }\n var elseif = getAndRemoveAttr(el, 'v-else-if');\n if (elseif) {\n el.elseif = elseif;\n }\n }\n}\n\nfunction processIfConditions (el, parent) {\n var prev = findPrevElement(parent.children);\n if (prev && prev.if) {\n addIfCondition(prev, {\n exp: el.elseif,\n block: el\n });\n } else if (false) {\n warn$2(\n \"v-\" + (el.elseif ? ('else-if=\"' + el.elseif + '\"') : 'else') + \" \" +\n \"used on element <\" + (el.tag) + \"> without corresponding v-if.\"\n );\n }\n}\n\nfunction findPrevElement (children) {\n var i = children.length;\n while (i--) {\n if (children[i].type === 1) {\n return children[i]\n } else {\n if (false) {\n warn$2(\n \"text \\\"\" + (children[i].text.trim()) + \"\\\" between v-if and v-else(-if) \" +\n \"will be ignored.\"\n );\n }\n children.pop();\n }\n }\n}\n\nfunction addIfCondition (el, condition) {\n if (!el.ifConditions) {\n el.ifConditions = [];\n }\n el.ifConditions.push(condition);\n}\n\nfunction processOnce (el) {\n var once$$1 = getAndRemoveAttr(el, 'v-once');\n if (once$$1 != null) {\n el.once = true;\n }\n}\n\nfunction processSlot (el) {\n if (el.tag === 'slot') {\n el.slotName = getBindingAttr(el, 'name');\n if (false) {\n warn$2(\n \"`key` does not work on <slot> because slots are abstract outlets \" +\n \"and can possibly expand into multiple elements. \" +\n \"Use the key on a wrapping element instead.\"\n );\n }\n } else {\n var slotTarget = getBindingAttr(el, 'slot');\n if (slotTarget) {\n el.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\n // preserve slot as an attribute for native shadow DOM compat\n addAttr(el, 'slot', slotTarget);\n }\n if (el.tag === 'template') {\n el.slotScope = getAndRemoveAttr(el, 'scope');\n }\n }\n}\n\nfunction processComponent (el) {\n var binding;\n if ((binding = getBindingAttr(el, 'is'))) {\n el.component = binding;\n }\n if (getAndRemoveAttr(el, 'inline-template') != null) {\n el.inlineTemplate = true;\n }\n}\n\nfunction processAttrs (el) {\n var list = el.attrsList;\n var i, l, name, rawName, value, modifiers, isProp;\n for (i = 0, l = list.length; i < l; i++) {\n name = rawName = list[i].name;\n value = list[i].value;\n if (dirRE.test(name)) {\n // mark element as dynamic\n el.hasBindings = true;\n // modifiers\n modifiers = parseModifiers(name);\n if (modifiers) {\n name = name.replace(modifierRE, '');\n }\n if (bindRE.test(name)) { // v-bind\n name = name.replace(bindRE, '');\n value = parseFilters(value);\n isProp = false;\n if (modifiers) {\n if (modifiers.prop) {\n isProp = true;\n name = camelize(name);\n if (name === 'innerHtml') { name = 'innerHTML'; }\n }\n if (modifiers.camel) {\n name = camelize(name);\n }\n if (modifiers.sync) {\n addHandler(\n el,\n (\"update:\" + (camelize(name))),\n genAssignmentCode(value, \"$event\")\n );\n }\n }\n if (isProp || (\n !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)\n )) {\n addProp(el, name, value);\n } else {\n addAttr(el, name, value);\n }\n } else if (onRE.test(name)) { // v-on\n name = name.replace(onRE, '');\n addHandler(el, name, value, modifiers, false, warn$2);\n } else { // normal directives\n name = name.replace(dirRE, '');\n // parse arg\n var argMatch = name.match(argRE);\n var arg = argMatch && argMatch[1];\n if (arg) {\n name = name.slice(0, -(arg.length + 1));\n }\n addDirective(el, name, rawName, value, arg, modifiers);\n if (false) {\n checkForAliasModel(el, value);\n }\n }\n } else {\n // literal attribute\n if (false) {\n var expression = parseText(value, delimiters);\n if (expression) {\n warn$2(\n name + \"=\\\"\" + value + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.'\n );\n }\n }\n addAttr(el, name, JSON.stringify(value));\n }\n }\n}\n\nfunction checkInFor (el) {\n var parent = el;\n while (parent) {\n if (parent.for !== undefined) {\n return true\n }\n parent = parent.parent;\n }\n return false\n}\n\nfunction parseModifiers (name) {\n var match = name.match(modifierRE);\n if (match) {\n var ret = {};\n match.forEach(function (m) { ret[m.slice(1)] = true; });\n return ret\n }\n}\n\nfunction makeAttrsMap (attrs) {\n var map = {};\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (\n false\n ) {\n warn$2('duplicate attribute: ' + attrs[i].name);\n }\n map[attrs[i].name] = attrs[i].value;\n }\n return map\n}\n\n// for script (e.g. type=\"x/template\") or style, do not decode content\nfunction isTextTag (el) {\n return el.tag === 'script' || el.tag === 'style'\n}\n\nfunction isForbiddenTag (el) {\n return (\n el.tag === 'style' ||\n (el.tag === 'script' && (\n !el.attrsMap.type ||\n el.attrsMap.type === 'text/javascript'\n ))\n )\n}\n\nvar ieNSBug = /^xmlns:NS\\d+/;\nvar ieNSPrefix = /^NS\\d+:/;\n\n/* istanbul ignore next */\nfunction guardIESVGBug (attrs) {\n var res = [];\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n if (!ieNSBug.test(attr.name)) {\n attr.name = attr.name.replace(ieNSPrefix, '');\n res.push(attr);\n }\n }\n return res\n}\n\nfunction checkForAliasModel (el, value) {\n var _el = el;\n while (_el) {\n if (_el.for && _el.alias === value) {\n warn$2(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"You are binding v-model directly to a v-for iteration alias. \" +\n \"This will not be able to modify the v-for source array because \" +\n \"writing to the alias is like modifying a function local variable. \" +\n \"Consider using an array of objects and use v-model on an object property instead.\"\n );\n }\n _el = _el.parent;\n }\n}\n\n/* */\n\nvar isStaticKey;\nvar isPlatformReservedTag;\n\nvar genStaticKeysCached = cached(genStaticKeys$1);\n\n/**\n * Goal of the optimizer: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n * create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\nfunction optimize (root, options) {\n if (!root) { return }\n isStaticKey = genStaticKeysCached(options.staticKeys || '');\n isPlatformReservedTag = options.isReservedTag || no;\n // first pass: mark all non-static nodes.\n markStatic$1(root);\n // second pass: mark static roots.\n markStaticRoots(root, false);\n}\n\nfunction genStaticKeys$1 (keys) {\n return makeMap(\n 'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +\n (keys ? ',' + keys : '')\n )\n}\n\nfunction markStatic$1 (node) {\n node.static = isStatic(node);\n if (node.type === 1) {\n // do not make component slot content static. this avoids\n // 1. components not able to mutate slot nodes\n // 2. static slot content fails for hot-reloading\n if (\n !isPlatformReservedTag(node.tag) &&\n node.tag !== 'slot' &&\n node.attrsMap['inline-template'] == null\n ) {\n return\n }\n for (var i = 0, l = node.children.length; i < l; i++) {\n var child = node.children[i];\n markStatic$1(child);\n if (!child.static) {\n node.static = false;\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n var block = node.ifConditions[i$1].block;\n markStatic$1(block);\n if (!block.static) {\n node.static = false;\n }\n }\n }\n }\n}\n\nfunction markStaticRoots (node, isInFor) {\n if (node.type === 1) {\n if (node.static || node.once) {\n node.staticInFor = isInFor;\n }\n // For a node to qualify as a static root, it should have children that\n // are not just static text. Otherwise the cost of hoisting out will\n // outweigh the benefits and it's better off to just always render it fresh.\n if (node.static && node.children.length && !(\n node.children.length === 1 &&\n node.children[0].type === 3\n )) {\n node.staticRoot = true;\n return\n } else {\n node.staticRoot = false;\n }\n if (node.children) {\n for (var i = 0, l = node.children.length; i < l; i++) {\n markStaticRoots(node.children[i], isInFor || !!node.for);\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n markStaticRoots(node.ifConditions[i$1].block, isInFor);\n }\n }\n }\n}\n\nfunction isStatic (node) {\n if (node.type === 2) { // expression\n return false\n }\n if (node.type === 3) { // text\n return true\n }\n return !!(node.pre || (\n !node.hasBindings && // no dynamic bindings\n !node.if && !node.for && // not v-if or v-for or v-else\n !isBuiltInTag(node.tag) && // not a built-in\n isPlatformReservedTag(node.tag) && // not a component\n !isDirectChildOfTemplateFor(node) &&\n Object.keys(node).every(isStaticKey)\n ))\n}\n\nfunction isDirectChildOfTemplateFor (node) {\n while (node.parent) {\n node = node.parent;\n if (node.tag !== 'template') {\n return false\n }\n if (node.for) {\n return true\n }\n }\n return false\n}\n\n/* */\n\nvar fnExpRE = /^\\s*([\\w$_]+|\\([^)]*?\\))\\s*=>|^function\\s*\\(/;\nvar simplePathRE = /^\\s*[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['.*?']|\\[\".*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*\\s*$/;\n\n// keyCode aliases\nvar keyCodes = {\n esc: 27,\n tab: 9,\n enter: 13,\n space: 32,\n up: 38,\n left: 37,\n right: 39,\n down: 40,\n 'delete': [8, 46]\n};\n\n// #4868: modifiers that prevent the execution of the listener\n// need to explicitly return null so that we can determine whether to remove\n// the listener for .once\nvar genGuard = function (condition) { return (\"if(\" + condition + \")return null;\"); };\n\nvar modifierCode = {\n stop: '$event.stopPropagation();',\n prevent: '$event.preventDefault();',\n self: genGuard(\"$event.target !== $event.currentTarget\"),\n ctrl: genGuard(\"!$event.ctrlKey\"),\n shift: genGuard(\"!$event.shiftKey\"),\n alt: genGuard(\"!$event.altKey\"),\n meta: genGuard(\"!$event.metaKey\"),\n left: genGuard(\"'button' in $event && $event.button !== 0\"),\n middle: genGuard(\"'button' in $event && $event.button !== 1\"),\n right: genGuard(\"'button' in $event && $event.button !== 2\")\n};\n\nfunction genHandlers (\n events,\n isNative,\n warn\n) {\n var res = isNative ? 'nativeOn:{' : 'on:{';\n for (var name in events) {\n var handler = events[name];\n // #5330: warn click.right, since right clicks do not actually fire click events.\n if (false\n ) {\n warn(\n \"Use \\\"contextmenu\\\" instead of \\\"click.right\\\" since right clicks \" +\n \"do not actually fire \\\"click\\\" events.\"\n );\n }\n res += \"\\\"\" + name + \"\\\":\" + (genHandler(name, handler)) + \",\";\n }\n return res.slice(0, -1) + '}'\n}\n\nfunction genHandler (\n name,\n handler\n) {\n if (!handler) {\n return 'function(){}'\n }\n\n if (Array.isArray(handler)) {\n return (\"[\" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + \"]\")\n }\n\n var isMethodPath = simplePathRE.test(handler.value);\n var isFunctionExpression = fnExpRE.test(handler.value);\n\n if (!handler.modifiers) {\n return isMethodPath || isFunctionExpression\n ? handler.value\n : (\"function($event){\" + (handler.value) + \"}\") // inline statement\n } else {\n var code = '';\n var genModifierCode = '';\n var keys = [];\n for (var key in handler.modifiers) {\n if (modifierCode[key]) {\n genModifierCode += modifierCode[key];\n // left/right\n if (keyCodes[key]) {\n keys.push(key);\n }\n } else {\n keys.push(key);\n }\n }\n if (keys.length) {\n code += genKeyFilter(keys);\n }\n // Make sure modifiers like prevent and stop get executed after key filtering\n if (genModifierCode) {\n code += genModifierCode;\n }\n var handlerCode = isMethodPath\n ? handler.value + '($event)'\n : isFunctionExpression\n ? (\"(\" + (handler.value) + \")($event)\")\n : handler.value;\n return (\"function($event){\" + code + handlerCode + \"}\")\n }\n}\n\nfunction genKeyFilter (keys) {\n return (\"if(!('button' in $event)&&\" + (keys.map(genFilterCode).join('&&')) + \")return null;\")\n}\n\nfunction genFilterCode (key) {\n var keyVal = parseInt(key, 10);\n if (keyVal) {\n return (\"$event.keyCode!==\" + keyVal)\n }\n var alias = keyCodes[key];\n return (\"_k($event.keyCode,\" + (JSON.stringify(key)) + (alias ? ',' + JSON.stringify(alias) : '') + \")\")\n}\n\n/* */\n\nfunction on (el, dir) {\n if (false) {\n warn(\"v-on without argument does not support modifiers.\");\n }\n el.wrapListeners = function (code) { return (\"_g(\" + code + \",\" + (dir.value) + \")\"); };\n}\n\n/* */\n\nfunction bind$1 (el, dir) {\n el.wrapData = function (code) {\n return (\"_b(\" + code + \",'\" + (el.tag) + \"',\" + (dir.value) + \",\" + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + \")\")\n };\n}\n\n/* */\n\nvar baseDirectives = {\n on: on,\n bind: bind$1,\n cloak: noop\n};\n\n/* */\n\nvar CodegenState = function CodegenState (options) {\n this.options = options;\n this.warn = options.warn || baseWarn;\n this.transforms = pluckModuleFunction(options.modules, 'transformCode');\n this.dataGenFns = pluckModuleFunction(options.modules, 'genData');\n this.directives = extend(extend({}, baseDirectives), options.directives);\n var isReservedTag = options.isReservedTag || no;\n this.maybeComponent = function (el) { return !isReservedTag(el.tag); };\n this.onceId = 0;\n this.staticRenderFns = [];\n};\n\n\n\nfunction generate (\n ast,\n options\n) {\n var state = new CodegenState(options);\n var code = ast ? genElement(ast, state) : '_c(\"div\")';\n return {\n render: (\"with(this){return \" + code + \"}\"),\n staticRenderFns: state.staticRenderFns\n }\n}\n\nfunction genElement (el, state) {\n if (el.staticRoot && !el.staticProcessed) {\n return genStatic(el, state)\n } else if (el.once && !el.onceProcessed) {\n return genOnce(el, state)\n } else if (el.for && !el.forProcessed) {\n return genFor(el, state)\n } else if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.tag === 'template' && !el.slotTarget) {\n return genChildren(el, state) || 'void 0'\n } else if (el.tag === 'slot') {\n return genSlot(el, state)\n } else {\n // component or element\n var code;\n if (el.component) {\n code = genComponent(el.component, el, state);\n } else {\n var data = el.plain ? undefined : genData$2(el, state);\n\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n code = \"_c('\" + (el.tag) + \"'\" + (data ? (\",\" + data) : '') + (children ? (\",\" + children) : '') + \")\";\n }\n // module transforms\n for (var i = 0; i < state.transforms.length; i++) {\n code = state.transforms[i](el, code);\n }\n return code\n }\n}\n\n// hoist static sub-trees out\nfunction genStatic (el, state) {\n el.staticProcessed = true;\n state.staticRenderFns.push((\"with(this){return \" + (genElement(el, state)) + \"}\"));\n return (\"_m(\" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + \")\")\n}\n\n// v-once\nfunction genOnce (el, state) {\n el.onceProcessed = true;\n if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.staticInFor) {\n var key = '';\n var parent = el.parent;\n while (parent) {\n if (parent.for) {\n key = parent.key;\n break\n }\n parent = parent.parent;\n }\n if (!key) {\n \"production\" !== 'production' && state.warn(\n \"v-once can only be used inside v-for that is keyed. \"\n );\n return genElement(el, state)\n }\n return (\"_o(\" + (genElement(el, state)) + \",\" + (state.onceId++) + \",\" + key + \")\")\n } else {\n return genStatic(el, state)\n }\n}\n\nfunction genIf (\n el,\n state,\n altGen,\n altEmpty\n) {\n el.ifProcessed = true; // avoid recursion\n return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)\n}\n\nfunction genIfConditions (\n conditions,\n state,\n altGen,\n altEmpty\n) {\n if (!conditions.length) {\n return altEmpty || '_e()'\n }\n\n var condition = conditions.shift();\n if (condition.exp) {\n return (\"(\" + (condition.exp) + \")?\" + (genTernaryExp(condition.block)) + \":\" + (genIfConditions(conditions, state, altGen, altEmpty)))\n } else {\n return (\"\" + (genTernaryExp(condition.block)))\n }\n\n // v-if with v-once should generate code like (a)?_m(0):_m(1)\n function genTernaryExp (el) {\n return altGen\n ? altGen(el, state)\n : el.once\n ? genOnce(el, state)\n : genElement(el, state)\n }\n}\n\nfunction genFor (\n el,\n state,\n altGen,\n altHelper\n) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n\n if (false\n ) {\n state.warn(\n \"<\" + (el.tag) + \" v-for=\\\"\" + alias + \" in \" + exp + \"\\\">: component lists rendered with \" +\n \"v-for should have explicit keys. \" +\n \"See https://vuejs.org/guide/list.html#key for more info.\",\n true /* tip */\n );\n }\n\n el.forProcessed = true; // avoid recursion\n return (altHelper || '_l') + \"((\" + exp + \"),\" +\n \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n \"return \" + ((altGen || genElement)(el, state)) +\n '})'\n}\n\nfunction genData$2 (el, state) {\n var data = '{';\n\n // directives first.\n // directives may mutate the el's other properties before they are generated.\n var dirs = genDirectives(el, state);\n if (dirs) { data += dirs + ','; }\n\n // key\n if (el.key) {\n data += \"key:\" + (el.key) + \",\";\n }\n // ref\n if (el.ref) {\n data += \"ref:\" + (el.ref) + \",\";\n }\n if (el.refInFor) {\n data += \"refInFor:true,\";\n }\n // pre\n if (el.pre) {\n data += \"pre:true,\";\n }\n // record original tag name for components using \"is\" attribute\n if (el.component) {\n data += \"tag:\\\"\" + (el.tag) + \"\\\",\";\n }\n // module data generation functions\n for (var i = 0; i < state.dataGenFns.length; i++) {\n data += state.dataGenFns[i](el);\n }\n // attributes\n if (el.attrs) {\n data += \"attrs:{\" + (genProps(el.attrs)) + \"},\";\n }\n // DOM props\n if (el.props) {\n data += \"domProps:{\" + (genProps(el.props)) + \"},\";\n }\n // event handlers\n if (el.events) {\n data += (genHandlers(el.events, false, state.warn)) + \",\";\n }\n if (el.nativeEvents) {\n data += (genHandlers(el.nativeEvents, true, state.warn)) + \",\";\n }\n // slot target\n if (el.slotTarget) {\n data += \"slot:\" + (el.slotTarget) + \",\";\n }\n // scoped slots\n if (el.scopedSlots) {\n data += (genScopedSlots(el.scopedSlots, state)) + \",\";\n }\n // component v-model\n if (el.model) {\n data += \"model:{value:\" + (el.model.value) + \",callback:\" + (el.model.callback) + \",expression:\" + (el.model.expression) + \"},\";\n }\n // inline-template\n if (el.inlineTemplate) {\n var inlineTemplate = genInlineTemplate(el, state);\n if (inlineTemplate) {\n data += inlineTemplate + \",\";\n }\n }\n data = data.replace(/,$/, '') + '}';\n // v-bind data wrap\n if (el.wrapData) {\n data = el.wrapData(data);\n }\n // v-on data wrap\n if (el.wrapListeners) {\n data = el.wrapListeners(data);\n }\n return data\n}\n\nfunction genDirectives (el, state) {\n var dirs = el.directives;\n if (!dirs) { return }\n var res = 'directives:[';\n var hasRuntime = false;\n var i, l, dir, needRuntime;\n for (i = 0, l = dirs.length; i < l; i++) {\n dir = dirs[i];\n needRuntime = true;\n var gen = state.directives[dir.name];\n if (gen) {\n // compile-time directive that manipulates AST.\n // returns true if it also needs a runtime counterpart.\n needRuntime = !!gen(el, dir, state.warn);\n }\n if (needRuntime) {\n hasRuntime = true;\n res += \"{name:\\\"\" + (dir.name) + \"\\\",rawName:\\\"\" + (dir.rawName) + \"\\\"\" + (dir.value ? (\",value:(\" + (dir.value) + \"),expression:\" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (\",arg:\\\"\" + (dir.arg) + \"\\\"\") : '') + (dir.modifiers ? (\",modifiers:\" + (JSON.stringify(dir.modifiers))) : '') + \"},\";\n }\n }\n if (hasRuntime) {\n return res.slice(0, -1) + ']'\n }\n}\n\nfunction genInlineTemplate (el, state) {\n var ast = el.children[0];\n if (false) {\n state.warn('Inline-template components must have exactly one child element.');\n }\n if (ast.type === 1) {\n var inlineRenderFns = generate(ast, state.options);\n return (\"inlineTemplate:{render:function(){\" + (inlineRenderFns.render) + \"},staticRenderFns:[\" + (inlineRenderFns.staticRenderFns.map(function (code) { return (\"function(){\" + code + \"}\"); }).join(',')) + \"]}\")\n }\n}\n\nfunction genScopedSlots (\n slots,\n state\n) {\n return (\"scopedSlots:_u([\" + (Object.keys(slots).map(function (key) {\n return genScopedSlot(key, slots[key], state)\n }).join(',')) + \"])\")\n}\n\nfunction genScopedSlot (\n key,\n el,\n state\n) {\n if (el.for && !el.forProcessed) {\n return genForScopedSlot(key, el, state)\n }\n return \"{key:\" + key + \",fn:function(\" + (String(el.attrsMap.scope)) + \"){\" +\n \"return \" + (el.tag === 'template'\n ? genChildren(el, state) || 'void 0'\n : genElement(el, state)) + \"}}\"\n}\n\nfunction genForScopedSlot (\n key,\n el,\n state\n) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n el.forProcessed = true; // avoid recursion\n return \"_l((\" + exp + \"),\" +\n \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n \"return \" + (genScopedSlot(key, el, state)) +\n '})'\n}\n\nfunction genChildren (\n el,\n state,\n checkSkip,\n altGenElement,\n altGenNode\n) {\n var children = el.children;\n if (children.length) {\n var el$1 = children[0];\n // optimize single v-for\n if (children.length === 1 &&\n el$1.for &&\n el$1.tag !== 'template' &&\n el$1.tag !== 'slot'\n ) {\n return (altGenElement || genElement)(el$1, state)\n }\n var normalizationType = checkSkip\n ? getNormalizationType(children, state.maybeComponent)\n : 0;\n var gen = altGenNode || genNode;\n return (\"[\" + (children.map(function (c) { return gen(c, state); }).join(',')) + \"]\" + (normalizationType ? (\",\" + normalizationType) : ''))\n }\n}\n\n// determine the normalization needed for the children array.\n// 0: no normalization needed\n// 1: simple normalization needed (possible 1-level deep nested array)\n// 2: full normalization needed\nfunction getNormalizationType (\n children,\n maybeComponent\n) {\n var res = 0;\n for (var i = 0; i < children.length; i++) {\n var el = children[i];\n if (el.type !== 1) {\n continue\n }\n if (needsNormalization(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {\n res = 2;\n break\n }\n if (maybeComponent(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {\n res = 1;\n }\n }\n return res\n}\n\nfunction needsNormalization (el) {\n return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'\n}\n\nfunction genNode (node, state) {\n if (node.type === 1) {\n return genElement(node, state)\n } if (node.type === 3 && node.isComment) {\n return genComment(node)\n } else {\n return genText(node)\n }\n}\n\nfunction genText (text) {\n return (\"_v(\" + (text.type === 2\n ? text.expression // no need for () because already wrapped in _s()\n : transformSpecialNewlines(JSON.stringify(text.text))) + \")\")\n}\n\nfunction genComment (comment) {\n return (\"_e(\" + (JSON.stringify(comment.text)) + \")\")\n}\n\nfunction genSlot (el, state) {\n var slotName = el.slotName || '\"default\"';\n var children = genChildren(el, state);\n var res = \"_t(\" + slotName + (children ? (\",\" + children) : '');\n var attrs = el.attrs && (\"{\" + (el.attrs.map(function (a) { return ((camelize(a.name)) + \":\" + (a.value)); }).join(',')) + \"}\");\n var bind$$1 = el.attrsMap['v-bind'];\n if ((attrs || bind$$1) && !children) {\n res += \",null\";\n }\n if (attrs) {\n res += \",\" + attrs;\n }\n if (bind$$1) {\n res += (attrs ? '' : ',null') + \",\" + bind$$1;\n }\n return res + ')'\n}\n\n// componentName is el.component, take it as argument to shun flow's pessimistic refinement\nfunction genComponent (\n componentName,\n el,\n state\n) {\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n return (\"_c(\" + componentName + \",\" + (genData$2(el, state)) + (children ? (\",\" + children) : '') + \")\")\n}\n\nfunction genProps (props) {\n var res = '';\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n res += \"\\\"\" + (prop.name) + \"\\\":\" + (transformSpecialNewlines(prop.value)) + \",\";\n }\n return res.slice(0, -1)\n}\n\n// #3895, #4268\nfunction transformSpecialNewlines (text) {\n return text\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n}\n\n/* */\n\n// these keywords should not appear inside expressions, but operators like\n// typeof, instanceof and in are allowed\nvar prohibitedKeywordRE = new RegExp('\\\\b' + (\n 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\n 'super,throw,while,yield,delete,export,import,return,switch,default,' +\n 'extends,finally,continue,debugger,function,arguments'\n).split(',').join('\\\\b|\\\\b') + '\\\\b');\n\n// these unary operators should not be used as property/method names\nvar unaryOperatorsRE = new RegExp('\\\\b' + (\n 'delete,typeof,void'\n).split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') + '\\\\s*\\\\([^\\\\)]*\\\\)');\n\n// check valid identifier for v-for\nvar identRE = /[A-Za-z_$][\\w$]*/;\n\n// strip strings in expressions\nvar stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n\n// detect problematic expressions in a template\nfunction detectErrors (ast) {\n var errors = [];\n if (ast) {\n checkNode(ast, errors);\n }\n return errors\n}\n\nfunction checkNode (node, errors) {\n if (node.type === 1) {\n for (var name in node.attrsMap) {\n if (dirRE.test(name)) {\n var value = node.attrsMap[name];\n if (value) {\n if (name === 'v-for') {\n checkFor(node, (\"v-for=\\\"\" + value + \"\\\"\"), errors);\n } else if (onRE.test(name)) {\n checkEvent(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n } else {\n checkExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n }\n }\n }\n }\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n checkNode(node.children[i], errors);\n }\n }\n } else if (node.type === 2) {\n checkExpression(node.expression, node.text, errors);\n }\n}\n\nfunction checkEvent (exp, text, errors) {\n var stipped = exp.replace(stripStringRE, '');\n var keywordMatch = stipped.match(unaryOperatorsRE);\n if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {\n errors.push(\n \"avoid using JavaScript unary operator as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\" in expression \" + (text.trim())\n );\n }\n checkExpression(exp, text, errors);\n}\n\nfunction checkFor (node, text, errors) {\n checkExpression(node.for || '', text, errors);\n checkIdentifier(node.alias, 'v-for alias', text, errors);\n checkIdentifier(node.iterator1, 'v-for iterator', text, errors);\n checkIdentifier(node.iterator2, 'v-for iterator', text, errors);\n}\n\nfunction checkIdentifier (ident, type, text, errors) {\n if (typeof ident === 'string' && !identRE.test(ident)) {\n errors.push((\"invalid \" + type + \" \\\"\" + ident + \"\\\" in expression: \" + (text.trim())));\n }\n}\n\nfunction checkExpression (exp, text, errors) {\n try {\n new Function((\"return \" + exp));\n } catch (e) {\n var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\n if (keywordMatch) {\n errors.push(\n \"avoid using JavaScript keyword as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\" in expression \" + (text.trim())\n );\n } else {\n errors.push((\"invalid expression: \" + (text.trim())));\n }\n }\n}\n\n/* */\n\nfunction createFunction (code, errors) {\n try {\n return new Function(code)\n } catch (err) {\n errors.push({ err: err, code: code });\n return noop\n }\n}\n\nfunction createCompileToFunctionFn (compile) {\n var cache = Object.create(null);\n\n return function compileToFunctions (\n template,\n options,\n vm\n ) {\n options = options || {};\n\n /* istanbul ignore if */\n if (false) {\n // detect possible CSP restriction\n try {\n new Function('return 1');\n } catch (e) {\n if (e.toString().match(/unsafe-eval|CSP/)) {\n warn(\n 'It seems you are using the standalone build of Vue.js in an ' +\n 'environment with Content Security Policy that prohibits unsafe-eval. ' +\n 'The template compiler cannot work in this environment. Consider ' +\n 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +\n 'templates into render functions.'\n );\n }\n }\n }\n\n // check cache\n var key = options.delimiters\n ? String(options.delimiters) + template\n : template;\n if (cache[key]) {\n return cache[key]\n }\n\n // compile\n var compiled = compile(template, options);\n\n // check compilation errors/tips\n if (false) {\n if (compiled.errors && compiled.errors.length) {\n warn(\n \"Error compiling template:\\n\\n\" + template + \"\\n\\n\" +\n compiled.errors.map(function (e) { return (\"- \" + e); }).join('\\n') + '\\n',\n vm\n );\n }\n if (compiled.tips && compiled.tips.length) {\n compiled.tips.forEach(function (msg) { return tip(msg, vm); });\n }\n }\n\n // turn code into functions\n var res = {};\n var fnGenErrors = [];\n res.render = createFunction(compiled.render, fnGenErrors);\n res.staticRenderFns = compiled.staticRenderFns.map(function (code) {\n return createFunction(code, fnGenErrors)\n });\n\n // check function generation errors.\n // this should only happen if there is a bug in the compiler itself.\n // mostly for codegen development use\n /* istanbul ignore if */\n if (false) {\n if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\n warn(\n \"Failed to generate render function:\\n\\n\" +\n fnGenErrors.map(function (ref) {\n var err = ref.err;\n var code = ref.code;\n\n return ((err.toString()) + \" in\\n\\n\" + code + \"\\n\");\n }).join('\\n'),\n vm\n );\n }\n }\n\n return (cache[key] = res)\n }\n}\n\n/* */\n\nfunction createCompilerCreator (baseCompile) {\n return function createCompiler (baseOptions) {\n function compile (\n template,\n options\n ) {\n var finalOptions = Object.create(baseOptions);\n var errors = [];\n var tips = [];\n finalOptions.warn = function (msg, tip) {\n (tip ? tips : errors).push(msg);\n };\n\n if (options) {\n // merge custom modules\n if (options.modules) {\n finalOptions.modules =\n (baseOptions.modules || []).concat(options.modules);\n }\n // merge custom directives\n if (options.directives) {\n finalOptions.directives = extend(\n Object.create(baseOptions.directives),\n options.directives\n );\n }\n // copy other options\n for (var key in options) {\n if (key !== 'modules' && key !== 'directives') {\n finalOptions[key] = options[key];\n }\n }\n }\n\n var compiled = baseCompile(template, finalOptions);\n if (false) {\n errors.push.apply(errors, detectErrors(compiled.ast));\n }\n compiled.errors = errors;\n compiled.tips = tips;\n return compiled\n }\n\n return {\n compile: compile,\n compileToFunctions: createCompileToFunctionFn(compile)\n }\n }\n}\n\n/* */\n\n// `createCompilerCreator` allows creating compilers that use alternative\n// parser/optimizer/codegen, e.g the SSR optimizing compiler.\n// Here we just export a default compiler using the default parts.\nvar createCompiler = createCompilerCreator(function baseCompile (\n template,\n options\n) {\n var ast = parse(template.trim(), options);\n optimize(ast, options);\n var code = generate(ast, options);\n return {\n ast: ast,\n render: code.render,\n staticRenderFns: code.staticRenderFns\n }\n});\n\n/* */\n\nvar ref$1 = createCompiler(baseOptions);\nvar compileToFunctions = ref$1.compileToFunctions;\n\n/* */\n\nvar idToTemplate = cached(function (id) {\n var el = query(id);\n return el && el.innerHTML\n});\n\nvar mount = Vue$3.prototype.$mount;\nVue$3.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && query(el);\n\n /* istanbul ignore if */\n if (el === document.body || el === document.documentElement) {\n \"production\" !== 'production' && warn(\n \"Do not mount Vue to <html> or <body> - mount to normal elements instead.\"\n );\n return this\n }\n\n var options = this.$options;\n // resolve template/el and convert to render function\n if (!options.render) {\n var template = options.template;\n if (template) {\n if (typeof template === 'string') {\n if (template.charAt(0) === '#') {\n template = idToTemplate(template);\n /* istanbul ignore if */\n if (false) {\n warn(\n (\"Template element not found or is empty: \" + (options.template)),\n this\n );\n }\n }\n } else if (template.nodeType) {\n template = template.innerHTML;\n } else {\n if (false) {\n warn('invalid template option:' + template, this);\n }\n return this\n }\n } else if (el) {\n template = getOuterHTML(el);\n }\n if (template) {\n /* istanbul ignore if */\n if (false) {\n mark('compile');\n }\n\n var ref = compileToFunctions(template, {\n shouldDecodeNewlines: shouldDecodeNewlines,\n delimiters: options.delimiters,\n comments: options.comments\n }, this);\n var render = ref.render;\n var staticRenderFns = ref.staticRenderFns;\n options.render = render;\n options.staticRenderFns = staticRenderFns;\n\n /* istanbul ignore if */\n if (false) {\n mark('compile end');\n measure(((this._name) + \" compile\"), 'compile', 'compile end');\n }\n }\n }\n return mount.call(this, el, hydrating)\n};\n\n/**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\nfunction getOuterHTML (el) {\n if (el.outerHTML) {\n return el.outerHTML\n } else {\n var container = document.createElement('div');\n container.appendChild(el.cloneNode(true));\n return container.innerHTML\n }\n}\n\nVue$3.compile = compileToFunctions;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Vue$3);\n\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(18)))\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Icon = __webpack_require__(12);\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _util = __webpack_require__(9);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n name: 'app',\n components: {\n Icon: _Icon2.default\n },\n data: function data() {\n var colors = (0, _util.generateRGBColors)(20);\n\n return {\n colors: colors,\n selected: null\n };\n },\n mounted: function mounted() {\n /*\n setInterval(() => {\n let item = {\n color: generateRGBColors(1)[0],\n index: this.items.length\n }\n this.items.push(item)\n }, 5000)\n */\n },\n\n\n methods: {\n click: function click(_ref) {\n var items = _ref.items,\n index = _ref.index;\n\n var value = items.find(function (v) {\n return v.index === index;\n });\n this.selected = value.item;\n\n console.log(this.selected);\n },\n change: function change(event) {\n console.log('change', event);\n },\n remove: function remove(event) {\n console.log('remove', event);\n },\n sort: function sort(event) {\n console.log('sort', event);\n }\n }\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n name: 'Icon',\n props: {\n index: {\n type: Number\n },\n withButton: {\n type: Boolean,\n default: false\n },\n color: {\n type: Object,\n default: function _default() {\n return null;\n }\n }\n },\n computed: {\n brightness: function brightness() {\n var _color = this.color,\n r = _color.r,\n g = _color.g,\n b = _color.b;\n\n\n return 0.299 * r + 0.587 * g + 0.114 * b;\n },\n style: function style() {\n if (this.color) {\n var _color2 = this.color,\n r = _color2.r,\n g = _color2.g,\n b = _color2.b;\n\n var background = 'rgb(' + r + ', ' + g + ', ' + b + ')';\n var shadow = 'rgba(' + r + ', ' + g + ', ' + b + ', 0.5)';\n\n return {\n 'background-color': background,\n 'box-shadow': '0px 6px 20px ' + shadow,\n 'color': this.brightness > 180 ? '#777' : '#f3f3f3'\n };\n }\n\n return null;\n }\n },\n methods: {\n remove: function remove() {\n this.$emit('remove', {\n index: this.index\n });\n }\n }\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _App = __webpack_require__(4);\n\nvar _App2 = _interopRequireDefault(_App);\n\nvar _plugin = __webpack_require__(3);\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_vue2.default.use(_plugin2.default);\n\nnew _vue2.default({\n el: '#app',\n render: function render(h) {\n return h(_App2.default);\n }\n});\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar randomInt = exports.randomInt = function randomInt(fr, to) {\n return Math.round(fr + Math.random() * to);\n};\n\nvar generateRGBColors = exports.generateRGBColors = function generateRGBColors(count) {\n return Array.apply(null, new Array(count)).map(function (none, i) {\n return {\n r: randomInt(0, 255),\n g: randomInt(0, 255),\n b: randomInt(0, 255)\n };\n });\n};\n\nexports.default = {\n randomInt: randomInt,\n generateRGBColors: generateRGBColors\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(0)();\n// imports\n\n\n// module\nexports.push([module.i, \"@keyframes shake{0%{transform:rotate(-4deg)}to{transform:rotate(4deg)}}.icon{position:relative;background-color:transparent;margin:14px;height:52px;width:52px;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.07);color:#777;font-weight:900;font-size:12px;line-height:52px;text-align:center;transition:all .3s;cursor:pointer}.icon .icon-delete-btn{display:block;position:absolute;width:8px;height:8px;border-radius:7px;right:6px;top:6px;border:1px solid hsla(0,0%,100%,.4);background:hsla(0,0%,100%,.2)}.v-grid-item-dragging .icon{animation-name:shake;animation-duration:.07s;animation-iteration-count:infinite;animation-direction:alternate}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(0)();\n// imports\n\n\n// module\nexports.push([module.i, \"body{background:#fafafa}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50}.color-header{position:relative;padding:10px 0;box-sizing:border-box}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(15)\n\nvar Component = __webpack_require__(1)(\n /* script */\n __webpack_require__(7),\n /* template */\n __webpack_require__(13),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"icon\",\n style: (_vm.style)\n }, [(_vm.withButton) ? _c('div', {\n staticClass: \"icon-delete-btn\",\n on: {\n \"mousedown\": _vm.remove\n }\n }) : _vm._e(), _vm._v(\" \"), _vm._t(\"default\")], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_vm._m(0), _vm._v(\" \"), _c('div', {\n staticClass: \"color-header\"\n }, [_c('Icon', {\n staticStyle: {\n \"width\": \"auto\"\n },\n attrs: {\n \"color\": _vm.selected\n }\n }, [_vm._v(\"\\n vue-js-grid\\n \")])], 1), _vm._v(\" \"), _c('grid', {\n attrs: {\n \"center\": false,\n \"draggable\": true,\n \"sortable\": true,\n \"items\": _vm.colors,\n \"height\": 80,\n \"width\": 80\n },\n on: {\n \"change\": _vm.change,\n \"remove\": _vm.remove,\n \"click\": _vm.click,\n \"sort\": _vm.sort\n },\n scopedSlots: _vm._u([{\n key: \"cell\",\n fn: function(props) {\n return [_c('Icon', {\n attrs: {\n \"color\": props.item,\n \"index\": props.index,\n \"with-button\": true\n },\n on: {\n \"remove\": function($event) {\n props.remove()\n }\n }\n })]\n }\n }])\n })], 1)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticStyle: {\n \"padding\": \"10px\"\n }\n }, [_c('a', {\n staticClass: \"github-button\",\n attrs: {\n \"href\": \"https://github.com/euvl/vue-js-grid\",\n \"data-icon\": \"octicon-star\",\n \"data-show-count\": \"true\",\n \"aria-label\": \"Star euvl/vue-js-grid on GitHub\"\n }\n }, [_vm._v(\"Star\")])])\n}]}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(10);\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = __webpack_require__(2)(\"187206ec\", content, true);\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(11);\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = __webpack_require__(2)(\"e61d7c06\", content, true);\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\n/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nmodule.exports = function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// build.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \".\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 3914dac29e60b888acec","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader/lib/css-base.js\n// module id = 0\n// module chunks = 0","// this module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n scopeId,\n cssModules\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n // inject cssModules\n if (cssModules) {\n var computed = Object.create(options.computed || null)\n Object.keys(cssModules).forEach(function (key) {\n var module = cssModules[key]\n computed[key] = function () { return module }\n })\n options.computed = computed\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/component-normalizer.js\n// module id = 1\n// module chunks = 0","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\nvar listToStyles = require('./listToStyles')\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nmodule.exports = function (parentId, list, _isProduction) {\n isProduction = _isProduction\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[data-vue-ssr-id~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-style-loader/lib/addStylesClient.js\n// module id = 2\n// module chunks = 0","!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define([], factory) : \"object\" == typeof exports ? exports[\"vue-js-grid\"] = factory() : root[\"vue-js-grid\"] = factory();\n}(this, function() {\n return function(modules) {\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), \n module.l = !0, module.exports;\n }\n var installedModules = {};\n return __webpack_require__.m = modules, __webpack_require__.c = installedModules, \n __webpack_require__.i = function(value) {\n return value;\n }, __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n configurable: !1,\n enumerable: !0,\n get: getter\n });\n }, __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n return __webpack_require__.d(getter, \"a\", getter), getter;\n }, __webpack_require__.o = function(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n }, __webpack_require__.p = \"/dist/\", __webpack_require__(__webpack_require__.s = 6);\n }([ function(module, exports) {\n module.exports = function() {\n var list = [];\n return list.toString = function() {\n for (var result = [], i = 0; i < this.length; i++) {\n var item = this[i];\n item[2] ? result.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\") : result.push(item[1]);\n }\n return result.join(\"\");\n }, list.i = function(modules, mediaQuery) {\n \"string\" == typeof modules && (modules = [ [ null, modules, \"\" ] ]);\n for (var alreadyImportedModules = {}, i = 0; i < this.length; i++) {\n var id = this[i][0];\n \"number\" == typeof id && (alreadyImportedModules[id] = !0);\n }\n for (i = 0; i < modules.length; i++) {\n var item = modules[i];\n \"number\" == typeof item[0] && alreadyImportedModules[item[0]] || (mediaQuery && !item[2] ? item[2] = mediaQuery : mediaQuery && (item[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\"), \n list.push(item));\n }\n }, list;\n };\n }, function(module, exports) {\n module.exports = function(rawScriptExports, compiledTemplate, scopeId, cssModules) {\n var esModule, scriptExports = rawScriptExports = rawScriptExports || {}, type = typeof rawScriptExports.default;\n \"object\" !== type && \"function\" !== type || (esModule = rawScriptExports, scriptExports = rawScriptExports.default);\n var options = \"function\" == typeof scriptExports ? scriptExports.options : scriptExports;\n if (compiledTemplate && (options.render = compiledTemplate.render, options.staticRenderFns = compiledTemplate.staticRenderFns), \n scopeId && (options._scopeId = scopeId), cssModules) {\n var computed = Object.create(options.computed || null);\n Object.keys(cssModules).forEach(function(key) {\n var module = cssModules[key];\n computed[key] = function() {\n return module;\n };\n }), options.computed = computed;\n }\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n };\n };\n }, function(module, exports, __webpack_require__) {\n function addStylesToDom(styles) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i], domStyle = stylesInDom[item.id];\n if (domStyle) {\n domStyle.refs++;\n for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j](item.parts[j]);\n for (;j < item.parts.length; j++) domStyle.parts.push(addStyle(item.parts[j]));\n domStyle.parts.length > item.parts.length && (domStyle.parts.length = item.parts.length);\n } else {\n for (var parts = [], j = 0; j < item.parts.length; j++) parts.push(addStyle(item.parts[j]));\n stylesInDom[item.id] = {\n id: item.id,\n refs: 1,\n parts: parts\n };\n }\n }\n }\n function createStyleElement() {\n var styleElement = document.createElement(\"style\");\n return styleElement.type = \"text/css\", head.appendChild(styleElement), styleElement;\n }\n function addStyle(obj) {\n var update, remove, styleElement = document.querySelector('style[data-vue-ssr-id~=\"' + obj.id + '\"]');\n if (styleElement) {\n if (isProduction) return noop;\n styleElement.parentNode.removeChild(styleElement);\n }\n if (isOldIE) {\n var styleIndex = singletonCounter++;\n styleElement = singletonElement || (singletonElement = createStyleElement()), update = applyToSingletonTag.bind(null, styleElement, styleIndex, !1), \n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, !0);\n } else styleElement = createStyleElement(), update = applyToTag.bind(null, styleElement), \n remove = function() {\n styleElement.parentNode.removeChild(styleElement);\n };\n return update(obj), function(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) return;\n update(obj = newObj);\n } else remove();\n };\n }\n function applyToSingletonTag(styleElement, index, remove, obj) {\n var css = remove ? \"\" : obj.css;\n if (styleElement.styleSheet) styleElement.styleSheet.cssText = replaceText(index, css); else {\n var cssNode = document.createTextNode(css), childNodes = styleElement.childNodes;\n childNodes[index] && styleElement.removeChild(childNodes[index]), childNodes.length ? styleElement.insertBefore(cssNode, childNodes[index]) : styleElement.appendChild(cssNode);\n }\n }\n function applyToTag(styleElement, obj) {\n var css = obj.css, media = obj.media, sourceMap = obj.sourceMap;\n if (media && styleElement.setAttribute(\"media\", media), sourceMap && (css += \"\\n/*# sourceURL=\" + sourceMap.sources[0] + \" */\", \n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\"), \n styleElement.styleSheet) styleElement.styleSheet.cssText = css; else {\n for (;styleElement.firstChild; ) styleElement.removeChild(styleElement.firstChild);\n styleElement.appendChild(document.createTextNode(css));\n }\n }\n var hasDocument = \"undefined\" != typeof document;\n if (\"undefined\" != typeof DEBUG && DEBUG && !hasDocument) throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");\n var listToStyles = __webpack_require__(15), stylesInDom = {}, head = hasDocument && (document.head || document.getElementsByTagName(\"head\")[0]), singletonElement = null, singletonCounter = 0, isProduction = !1, noop = function() {}, isOldIE = \"undefined\" != typeof navigator && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());\n module.exports = function(parentId, list, _isProduction) {\n isProduction = _isProduction;\n var styles = listToStyles(parentId, list);\n return addStylesToDom(styles), function(newList) {\n for (var mayRemove = [], i = 0; i < styles.length; i++) {\n var item = styles[i], domStyle = stylesInDom[item.id];\n domStyle.refs--, mayRemove.push(domStyle);\n }\n newList ? (styles = listToStyles(parentId, newList), addStylesToDom(styles)) : styles = [];\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i];\n if (0 === domStyle.refs) {\n for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n delete stylesInDom[domStyle.id];\n }\n }\n };\n };\n var replaceText = function() {\n var textStore = [];\n return function(index, replacement) {\n return textStore[index] = replacement, textStore.filter(Boolean).join(\"\\n\");\n };\n }();\n }, function(module, exports, __webpack_require__) {\n __webpack_require__(13);\n var Component = __webpack_require__(1)(__webpack_require__(4), __webpack_require__(11), null, null);\n module.exports = Component.exports;\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n var _extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n }, _window_size = __webpack_require__(7), _window_size2 = _interopRequireDefault(_window_size), _GridItem = __webpack_require__(10), _GridItem2 = _interopRequireDefault(_GridItem);\n exports.default = {\n name: \"Grid\",\n mixins: [ _window_size2.default ],\n components: {\n GridItem: _GridItem2.default\n },\n props: {\n items: {\n type: Array,\n default: function() {\n return [];\n }\n },\n cellWidth: {\n type: Number,\n default: 80\n },\n cellHeight: {\n type: Number,\n default: 80\n },\n draggable: {\n type: Boolean,\n default: !1\n },\n dragDelay: {\n type: Number,\n default: 0\n },\n sortable: {\n type: Boolean,\n default: !1\n },\n center: {\n type: Boolean,\n default: !1\n }\n },\n data: function() {\n return {\n list: []\n };\n },\n watch: {\n items: {\n handler: function() {\n var nextItems = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n this.list = nextItems.map(function(item, index) {\n return {\n item: item,\n index: index,\n sort: index\n };\n });\n },\n immediate: !0\n }\n },\n computed: {\n height: function() {\n return Math.ceil(this.items.length / this.rowCount) * this.cellHeight;\n },\n style: function() {\n return {\n height: this.height + \"px\"\n };\n },\n rowCount: function() {\n return Math.floor(this.windowWidth / this.cellWidth);\n },\n rowShift: function() {\n if (this.center) {\n var contentWidth = this.items.length * this.cellWidth, rowShift = contentWidth < this.windowWidth ? (this.windowWidth - contentWidth) / 2 : this.windowWidth % this.cellWidth / 2;\n return Math.floor(rowShift);\n }\n return 0;\n }\n },\n methods: {\n wrapEvent: function() {\n var other = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return _extends({\n datetime: Date.now(),\n items: this.getListClone()\n }, other);\n },\n getListClone: function() {\n return this.list.slice(0).sort(function(a, b) {\n return a.sort - b.sort;\n });\n },\n removeItem: function(_ref) {\n var index = _ref.index, removeItem = this.list.find(function(v) {\n return v.index === index;\n }), removeItemSort = removeItem.sort;\n this.list = this.list.filter(function(v) {\n return v.index !== index;\n }).map(function(v) {\n var sort = v.sort > removeItemSort ? v.sort - 1 : v.sort;\n return _extends({}, v, {\n sort: sort\n });\n }), this.$emit(\"remove\", this.wrapEvent({\n index: index\n }));\n },\n onDragStart: function(event) {\n this.$emit(\"dragstart\", this.wrapEvent(event));\n },\n onDragEnd: function(event) {\n this.$emit(\"dragend\", this.wrapEvent(event));\n },\n click: function(event) {\n this.$emit(\"click\", this.wrapEvent(event));\n },\n onDrag: function(event) {\n this.sortable && this.sortList(event.index, event.gridPosition), this.$emit(\"drag\", this.wrapEvent({\n event: event\n }));\n },\n sortList: function(itemIndex, gridPosition) {\n var targetItem = this.list.find(function(item) {\n return item.index === itemIndex;\n }), targetItemSort = targetItem.sort;\n gridPosition = Math.max(gridPosition, 0), gridPosition = Math.min(gridPosition, this.list.length - 1), \n targetItemSort !== gridPosition && (this.list = this.list.map(function(item) {\n if (item.index === targetItem.index) return _extends({}, item, {\n sort: gridPosition\n });\n var sort = item.sort;\n return targetItemSort > gridPosition && sort <= targetItemSort && sort >= gridPosition ? _extends({}, item, {\n sort: sort + 1\n }) : targetItemSort < gridPosition && sort >= targetItemSort && sort <= gridPosition ? _extends({}, item, {\n sort: sort - 1\n }) : item;\n }), this.$emit(\"sort\", this.wrapEvent()));\n }\n }\n };\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n exports.default = {\n name: \"GridItem\",\n props: {\n index: {\n type: Number\n },\n sort: {\n type: Number\n },\n cellWidth: {\n type: Number\n },\n cellHeight: {\n type: Number\n },\n rowCount: {\n type: Number\n },\n rowShift: {\n type: Number,\n default: 0\n },\n draggable: {\n type: Boolean\n },\n dragDelay: {\n type: Number,\n default: 0\n }\n },\n data: function() {\n return {\n animate: !0,\n dragging: !1,\n shiftStartX: 0,\n shiftStartY: 0,\n mouseMoveStartX: 0,\n mouseMoveStartY: 0,\n shiftX: 0,\n shiftY: 0,\n timer: null,\n zIndex: 1\n };\n },\n mounted: function() {\n var _this = this;\n this.$refs.self.addEventListener(\"transitionend\", function(event) {\n _this.dragging || (_this.zIndex = 1);\n }, !1);\n },\n computed: {\n className: function() {\n return [ \"v-grid-item-wrapper\", {\n \"v-grid-item-animate\": this.animate,\n \"v-grid-item-dragging\": this.dragging\n } ];\n },\n style: function() {\n var zIndex = this.zIndex, cellWidth = this.cellWidth, cellHeight = this.cellHeight, top = this.top;\n return {\n zIndex: zIndex,\n width: cellWidth + \"px\",\n height: cellHeight + \"px\",\n transform: \"translate3d(\" + this.left + \"px, \" + top + \"px, 0)\"\n };\n },\n left: function() {\n return this.dragging ? this.shiftX : this.rowShift + this.sort % this.rowCount * this.cellWidth;\n },\n top: function() {\n return this.dragging ? this.shiftY : Math.floor(this.sort / this.rowCount) * this.cellHeight;\n }\n },\n methods: {\n wrapEvent: function(event) {\n return {\n event: event,\n index: this.index,\n sort: this.sort\n };\n },\n dragStart: function(event) {\n var e = event.touches ? event.touches[0] : event;\n this.zIndex = 2, this.shiftX = this.shiftStartX = this.left, this.shiftY = this.shiftStartY = this.top, \n this.mouseMoveStartX = e.pageX, this.mouseMoveStartY = e.pageY, this.animate = !1, \n this.dragging = !0, document.addEventListener(\"mousemove\", this.documentMouseMove), \n document.addEventListener(\"touchmove\", this.documentMouseMove), this.$emit(\"dragstart\", this.wrapEvent(event));\n },\n drag: function(event) {\n var e = event.touches ? event.touches[0] : event, distanceX = e.pageX - this.mouseMoveStartX, distanceY = e.pageY - this.mouseMoveStartY;\n this.shiftX = distanceX + this.shiftStartX, this.shiftY = distanceY + this.shiftStartY;\n var gridX = Math.round(this.shiftX / this.cellWidth), gridY = Math.round(this.shiftY / this.cellHeight);\n gridX = Math.min(gridX, this.rowCount - 1), gridY = Math.max(gridY, 0);\n var gridPosition = gridX + gridY * this.rowCount, $event = {\n event: event,\n distanceX: distanceX,\n distanceY: distanceY,\n positionX: this.shiftX,\n positionY: this.shiftY,\n index: this.index,\n gridX: gridX,\n gridY: gridY,\n gridPosition: gridPosition\n };\n this.$emit(\"drag\", $event);\n },\n mousedown: function(event) {\n var _this2 = this;\n this.draggable && (this.timer = setTimeout(function() {\n _this2.dragStart(event);\n }, this.dragDelay), document.addEventListener(\"mouseup\", this.documentMouseUp), \n document.addEventListener(\"touchend\", this.documentMouseUp));\n },\n documentMouseMove: function(event) {\n this.draggable && this.dragging && this.drag(event);\n },\n documentMouseUp: function(event) {\n this.timer && (clearTimeout(this.timer), this.timer = null);\n var dx = this.shiftStartX - this.shiftX, dy = this.shiftStartY - this.shiftY, distance = Math.sqrt(dx * dx + dy * dy);\n this.animate = !0, this.dragging = !1, this.mouseMoveStartX = 0, this.mouseMoveStartY = 0, \n this.shiftStartX = 0, this.shiftStartY = 0, document.removeEventListener(\"mousemove\", this.documentMouseMove), \n document.removeEventListener(\"touchmove\", this.documentMouseMove), document.removeEventListener(\"mouseup\", this.documentMouseUp), \n document.removeEventListener(\"touchend\", this.documentMouseUp);\n var $event = this.wrapEvent(event);\n distance < 4 && this.$emit(\"click\", $event), this.$emit(\"dragend\", $event);\n }\n }\n };\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n var _Grid = __webpack_require__(3), _Grid2 = function(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }(_Grid);\n exports.default = {\n install: function(Vue) {\n Vue.component(\"Grid\", _Grid2.default);\n }\n };\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n }), exports.default = {\n data: function() {\n return {\n windowHeight: 0,\n windowWidth: 0\n };\n },\n created: function() {\n window.addEventListener(\"resize\", this.getWindowSize), this.getWindowSize();\n },\n beforeDestroy: function() {\n window.removeEventListener(\"resize\", this.getWindowSize);\n },\n methods: {\n getWindowSize: function() {\n this.windowHeight = window.innerHeight, this.windowWidth = window.innerWidth;\n }\n }\n };\n }, function(module, exports, __webpack_require__) {\n exports = module.exports = __webpack_require__(0)(), exports.push([ module.i, \"\\nbody {\\n margin: 0;\\n padding: 0;\\n}\\n.v-grid {\\n display: block;\\n position: relative;\\n width: 100%;\\n}\\n\", \"\" ]);\n }, function(module, exports, __webpack_require__) {\n exports = module.exports = __webpack_require__(0)(), exports.push([ module.i, \"\\n.v-grid-item-wrapper {\\n display: block;\\n position: absolute;\\n box-sizing: border-box;\\n left: 0;\\n top: 0;\\n user-select: none;\\n transform: translate3d(0px, 0px, 0px);\\n z-index: 1;\\n}\\n.v-grid-item-wrapper.v-grid-item-animate {\\n transition: transform 800ms ease;\\n}\\n\", \"\" ]);\n }, function(module, exports, __webpack_require__) {\n __webpack_require__(14);\n var Component = __webpack_require__(1)(__webpack_require__(5), __webpack_require__(12), null, null);\n module.exports = Component.exports;\n }, function(module, exports) {\n module.exports = {\n render: function() {\n var _vm = this, _h = _vm.$createElement, _c = _vm._self._c || _h;\n return _c(\"div\", {\n staticClass: \"v-grid\",\n style: _vm.style\n }, _vm._l(_vm.list, function(v) {\n return _c(\"GridItem\", {\n key: v.index,\n attrs: {\n index: v.index,\n sort: v.sort,\n draggable: _vm.draggable,\n \"drag-delay\": _vm.dragDelay,\n \"row-count\": _vm.rowCount,\n \"cell-width\": _vm.cellWidth,\n \"cell-height\": _vm.cellHeight,\n \"window-width\": _vm.windowWidth,\n \"row-shift\": _vm.rowShift\n },\n on: {\n dragstart: _vm.onDragStart,\n dragend: _vm.onDragEnd,\n drag: _vm.onDrag,\n click: _vm.click\n }\n }, [ _vm._t(\"cell\", null, {\n item: v.item,\n index: v.index,\n sort: v.sort,\n remove: function() {\n _vm.removeItem(v);\n }\n }) ], 2);\n }));\n },\n staticRenderFns: []\n };\n }, function(module, exports) {\n module.exports = {\n render: function() {\n var _vm = this, _h = _vm.$createElement;\n return (_vm._self._c || _h)(\"div\", {\n ref: \"self\",\n class: _vm.className,\n style: _vm.style,\n on: {\n mousedown: _vm.mousedown,\n touchstart: function($event) {\n $event.stopPropagation(), _vm.mousedown($event);\n }\n }\n }, [ _vm._t(\"default\") ], 2);\n },\n staticRenderFns: []\n };\n }, function(module, exports, __webpack_require__) {\n var content = __webpack_require__(8);\n \"string\" == typeof content && (content = [ [ module.i, content, \"\" ] ]), content.locals && (module.exports = content.locals);\n __webpack_require__(2)(\"0a97df14\", content, !0);\n }, function(module, exports, __webpack_require__) {\n var content = __webpack_require__(9);\n \"string\" == typeof content && (content = [ [ module.i, content, \"\" ] ]), content.locals && (module.exports = content.locals);\n __webpack_require__(2)(\"4be927ea\", content, !0);\n }, function(module, exports) {\n module.exports = function(parentId, list) {\n for (var styles = [], newStyles = {}, i = 0; i < list.length; i++) {\n var item = list[i], id = item[0], css = item[1], media = item[2], sourceMap = item[3], part = {\n id: parentId + \":\" + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n };\n newStyles[id] ? newStyles[id].parts.push(part) : styles.push(newStyles[id] = {\n id: id,\n parts: [ part ]\n });\n }\n return styles;\n };\n } ]);\n});\n\n\n// WEBPACK FOOTER //\n// ../dist/index.js","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader!../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-46e720b8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n\nvar Component = require(\"!../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"),\n /* template */\n require(\"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-46e720b8\\\"}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = 4\n// module chunks = 0","/*!\n * Vue.js v2.4.4\n * (c) 2014-2017 Evan You\n * Released under the MIT License.\n */\n/* */\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nvar _toString = Object.prototype.toString;\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(val);\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind, faster than native\n */\nfunction bind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n // record original fn length\n boundFn._length = fn.length;\n return boundFn\n}\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated'\n];\n\n/* */\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\nvar emptyObject = Object.freeze({});\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar formatComponentName = (null); // work around flow check\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var name = typeof vm === 'string'\n ? vm\n : typeof vm === 'function' && vm.options\n ? vm.options.name\n : vm._isVue\n ? vm.$options.name || vm.$options._componentTag\n : vm.name;\n\n var file = vm._isVue && vm.$options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n var generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n if (config.errorHandler) {\n config.errorHandler.call(null, err, vm, info);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if (inBrowser && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n }\n}\n\n/* */\n/* globals MutationObserver */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = UA && UA.indexOf('android') > 0;\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\n/**\n * Defer a task to execute it asynchronously.\n */\nvar nextTick = (function () {\n var callbacks = [];\n var pending = false;\n var timerFunc;\n\n function nextTickHandler () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n\n // the nextTick behavior leverages the microtask queue, which can be accessed\n // via either native Promise.then or MutationObserver.\n // MutationObserver has wider support, however it is seriously bugged in\n // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n // completely stops working after triggering a few times... so, if native\n // Promise is available, we will use it:\n /* istanbul ignore if */\n if (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n var logError = function (err) { console.error(err); };\n timerFunc = function () {\n p.then(nextTickHandler).catch(logError);\n // in problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n } else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n )) {\n // use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n var counter = 1;\n var observer = new MutationObserver(nextTickHandler);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n } else {\n // fallback to setTimeout\n /* istanbul ignore next */\n timerFunc = function () {\n setTimeout(nextTickHandler, 0);\n };\n }\n\n return function queueNextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n _resolve = resolve;\n })\n }\n }\n})();\n\nvar _Set;\n/* istanbul ignore if */\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);[\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n]\n.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * By default, when a reactive property is set, the new value is\n * also converted to become reactive. However when passing down props,\n * we don't want to force conversion because the value may be a nested value\n * under a frozen data structure. Converting it would defeat the optimization.\n */\nvar observerState = {\n shouldConvert: true\n};\n\n/**\n * Observer class that are attached to each observed\n * object. Once attached, the observer converts target\n * object's property keys into getter/setters that\n * collect dependencies and dispatches updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i], obj[keys[i]]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value)) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n observerState.shouldConvert &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (hasOwn(target, key)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this) : parentVal\n )\n }\n } else if (parentVal || childVal) {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn.call(this, parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (parentVal, childVal) {\n var res = Object.create(parentVal || null);\n return childVal\n ? extend(res, childVal)\n : res\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (parentVal, childVal) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key in childVal) {\n var parent = ret[key];\n var child = childVal[key];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (parentVal, childVal) {\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n var lower = key.toLowerCase();\n if (isBuiltInTag(lower) || config.isReservedTag(lower)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + key\n );\n }\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options) {\n var inject = options.inject;\n if (Array.isArray(inject)) {\n var normalized = options.inject = {};\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = inject[i];\n }\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child);\n normalizeInject(child);\n normalizeDirectives(child);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = mergeOptions(parent, extendsFrom, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // handle boolean props\n if (isType(Boolean, prop.type)) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (!isType(String, prop.type) && (value === '' || value === hyphenate(key))) {\n value = true;\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldConvert = observerState.shouldConvert;\n observerState.shouldConvert = true;\n observe(value);\n observerState.shouldConvert = prevShouldConvert;\n }\n if (process.env.NODE_ENV !== 'production') {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n if (!valid) {\n warn(\n 'Invalid prop: type check failed for prop \"' + name + '\".' +\n ' Expected ' + expectedTypes.map(capitalize).join(', ') +\n ', got ' + Object.prototype.toString.call(value).slice(8, -1) + '.',\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isType (type, fn) {\n if (!Array.isArray(fn)) {\n return getType(fn) === getType(type)\n }\n for (var i = 0, len = fn.length; i < len; i++) {\n if (getType(fn[i]) === getType(type)) {\n return true\n }\n }\n /* istanbul ignore next */\n return false\n}\n\n/* */\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n perf.clearMeasures(name);\n };\n }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n \"referenced during render. Make sure to declare reactive data \" +\n \"properties in the data option.\",\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' &&\n Proxy.toString().match(/native code/);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.functionalContext = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: {} };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode, deep) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.isCloned = true;\n if (deep && vnode.children) {\n cloned.children = cloneVNodes(vnode.children);\n }\n return cloned\n}\n\nfunction cloneVNodes (vnodes, deep) {\n var len = vnodes.length;\n var res = new Array(len);\n for (var i = 0; i < len; i++) {\n res[i] = cloneVNode(vnodes[i], deep);\n }\n return res\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n var plain = !(passive || once$$1 || capture);\n return {\n name: name,\n plain: plain,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n cloned[i].apply(null, arguments$1);\n }\n } else {\n // return handler return value for single handlers\n return fns.apply(null, arguments)\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\n// #6552\nfunction prioritizePlainEvents (a, b) {\n return a.plain ? -1 : b.plain ? 1 : 0\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, cur, old, event;\n var toAdd = [];\n var hasModifier = false;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (!event.plain) { hasModifier = true; }\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur);\n }\n event.handler = cur;\n toAdd.push(event);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n if (toAdd.length) {\n if (hasModifier) { toAdd.sort(prioritizePlainEvents); }\n for (var i = 0; i < toAdd.length; i++) {\n var event$1 = toAdd[i];\n add(event$1.name, event$1.handler, event$1.once, event$1.capture, event$1.passive);\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n last = res[res.length - 1];\n // nested\n if (Array.isArray(c)) {\n res.push.apply(res, normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i)));\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n (last).text += String(c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[res.length - 1] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (comp.__esModule && comp.default) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor,\n context\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (isDef(factory.contexts)) {\n // already pending\n factory.contexts.push(context);\n } else {\n var contexts = factory.contexts = [context];\n var sync = true;\n\n var forceRender = function () {\n for (var i = 0, l = contexts.length; i < l; i++) {\n contexts[i].$forceUpdate();\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender();\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender();\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (typeof res.then === 'function') {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isDef(res.component) && typeof res.component.then === 'function') {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n setTimeout(function () {\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender();\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n setTimeout(function () {\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn, once$$1) {\n if (once$$1) {\n target.$once(event, fn);\n } else {\n target.$on(event, fn);\n }\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, vm);\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$off(event[i], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (arguments.length === 1) {\n vm._events[event] = null;\n return vm\n }\n if (fn) {\n // specific handler\n var cb;\n var i$1 = cbs.length;\n while (i$1--) {\n cb = cbs[i$1];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i$1, 1);\n break\n }\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n for (var i = 0, l = cbs.length; i < l; i++) {\n try {\n cbs[i].apply(vm, args);\n } catch (e) {\n handleError(e, vm, (\"event handler for \\\"\" + event + \"\\\"\"));\n }\n }\n }\n return vm\n };\n}\n\n/* */\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n var slots = {};\n if (!children) {\n return slots\n }\n var defaultSlot = [];\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.functionalContext === context) &&\n data && data.slot != null\n ) {\n var name = child.data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children);\n } else {\n slot.push(child);\n }\n } else {\n defaultSlot.push(child);\n }\n }\n // ignore whitespace\n if (!defaultSlot.every(isWhitespace)) {\n slots.default = defaultSlot;\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return node.isComment || node.text === ' '\n}\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res\n) {\n res = res || {};\n for (var i = 0; i < fns.length; i++) {\n if (Array.isArray(fns[i])) {\n resolveScopedSlots(fns[i], res);\n } else {\n res[fns[i].key] = fns[i].fn;\n }\n }\n return res\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n if (vm._isMounted) {\n callHook(vm, 'beforeUpdate');\n }\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(\n vm.$el, vnode, hydrating, false /* removeOnly */,\n vm.$options._parentElm,\n vm.$options._refElm\n );\n // no need for the ref nodes after initial patch\n // this prevents keeping a detached DOM tree in memory (#5851)\n vm.$options._parentElm = vm.$options._refElm = null;\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n activeInstance = prevActiveInstance;\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n vm._watcher = new Watcher(vm, updateComponent, noop);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren\n var hasChildren = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n parentVnode.data.scopedSlots || // has new scoped slots\n vm.$scopedSlots !== emptyObject // has old scoped slots\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = (parentVnode.data && parentVnode.data.attrs) || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n observerState.shouldConvert = false;\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n props[key] = validateProp(key, vm.$options.props, propsData, vm);\n }\n observerState.shouldConvert = true;\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n if (listeners) {\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n }\n // resolve slots + force update if has children\n if (hasChildren) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n var handlers = vm.$options[hook];\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n try {\n handlers[i].call(vm);\n } catch (e) {\n handleError(e, vm, (hook + \" hook\"));\n }\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n}\n\n/* */\n\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options\n) {\n this.vm = vm;\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = function () {};\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n var dep = this$1.deps[i];\n if (!this$1.newDepIds.has(dep.id)) {\n dep.removeSub(this$1);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n var this$1 = this;\n\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].removeSub(this$1);\n }\n this.active = false;\n }\n};\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nvar seenObjects = new _Set();\nfunction traverse (val) {\n seenObjects.clear();\n _traverse(val, seenObjects);\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || !Object.isExtensible(val)) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction checkOptionType (vm, name) {\n var option = vm.$options[name];\n if (!isPlainObject(option)) {\n warn(\n (\"component option \\\"\" + name + \"\\\" should be an object.\"),\n vm\n );\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n observerState.shouldConvert = isRoot;\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n if (isReservedAttribute(key) || config.isReservedAttr(key)) {\n warn(\n (\"\\\"\" + key + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (vm.$parent && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n observerState.shouldConvert = true;\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n try {\n return data.call(vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n process.env.NODE_ENV !== 'production' && checkOptionType(vm, 'computed');\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : userDef;\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : userDef.get\n : noop;\n sharedPropertyDefinition.set = userDef.set\n ? userDef.set\n : noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction initMethods (vm, methods) {\n process.env.NODE_ENV !== 'production' && checkOptionType(vm, 'methods');\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (methods[key] == null) {\n warn(\n \"Method \\\"\" + key + \"\\\" has an undefined value in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = methods[key] == null ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n process.env.NODE_ENV !== 'production' && checkOptionType(vm, 'watch');\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n keyOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(keyOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function (newData) {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n cb.call(vm, watcher.value);\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n observerState.shouldConvert = false;\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n observerState.shouldConvert = true;\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject).filter(function (key) {\n /* istanbul ignore next */\n return Object.getOwnPropertyDescriptor(inject, key).enumerable\n })\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var provideKey = inject[key];\n var source = vm;\n while (source) {\n if (source._provided && provideKey in source._provided) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (process.env.NODE_ENV !== 'production' && !source) {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n return result\n }\n}\n\n/* */\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n context,\n children\n) {\n var props = {};\n var propOptions = Ctor.options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var _context = Object.create(context);\n var h = function (a, b, c, d) { return createElement(_context, a, b, c, d, true); };\n var vnode = Ctor.options.render.call(null, h, {\n data: data,\n props: props,\n children: children,\n parent: context,\n listeners: data.on || emptyObject,\n injections: resolveInject(Ctor.options.inject, context),\n slots: function () { return resolveSlots(children, context); }\n });\n if (vnode instanceof VNode) {\n vnode.functionalContext = context;\n vnode.functionalOptions = Ctor.options;\n if (data.slot) {\n (vnode.data || (vnode.data = {})).slot = data.slot;\n }\n }\n return vnode\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n// hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (\n vnode,\n hydrating,\n parentElm,\n refElm\n ) {\n if (!vnode.componentInstance || vnode.componentInstance._isDestroyed) {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance,\n parentElm,\n refElm\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n } else if (vnode.data.keepAlive) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // merge component management hooks onto the placeholder node\n mergeHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent, // activeInstance in lifecycle state\n parentElm,\n refElm\n) {\n var vnodeComponentOptions = vnode.componentOptions;\n var options = {\n _isComponent: true,\n parent: parent,\n propsData: vnodeComponentOptions.propsData,\n _componentTag: vnodeComponentOptions.tag,\n _parentVnode: vnode,\n _parentListeners: vnodeComponentOptions.listeners,\n _renderChildren: vnodeComponentOptions.children,\n _parentElm: parentElm || null,\n _refElm: refElm || null\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnodeComponentOptions.Ctor(options)\n}\n\nfunction mergeHooks (data) {\n if (!data.hook) {\n data.hook = {};\n }\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var fromParent = data.hook[key];\n var ours = componentVNodeHooks[key];\n data.hook[key] = fromParent ? mergeHook$1(ours, fromParent) : ours;\n }\n}\n\nfunction mergeHook$1 (one, two) {\n return function (a, b, c, d) {\n one(a, b, c, d);\n two(a, b, c, d);\n }\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n if (isDef(on[event])) {\n on[event] = [data.model.callback].concat(on[event]);\n } else {\n on[event] = data.model.callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (isDef(vnode)) {\n if (ns) { applyNS(vnode, ns); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n return\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && isUndef(child.ns)) {\n applyNS(child, ns);\n }\n }\n }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n if (isDef(ret)) {\n (ret)._isVList = true;\n }\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n props = extend(extend({}, bindObject), props);\n }\n return scopedSlotFn(props) || fallback\n } else {\n var slotNodes = this.$slots[name];\n // warn duplicate slot usage\n if (slotNodes && process.env.NODE_ENV !== 'production') {\n slotNodes._rendered && warn(\n \"Duplicate presence of slot \\\"\" + name + \"\\\" found in the same render tree \" +\n \"- this will likely cause render errors.\",\n this\n );\n slotNodes._rendered = true;\n }\n return slotNodes || fallback\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\n/**\n * Runtime helper for checking keyCodes from config.\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInAlias\n) {\n var keyCodes = config.keyCodes[key] || builtInAlias;\n if (Array.isArray(keyCodes)) {\n return keyCodes.indexOf(eventKeyCode) === -1\n } else {\n return keyCodes !== eventKeyCode\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n if (!(key in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var tree = this._staticTrees[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree by doing a shallow clone.\n if (tree && !isInFor) {\n return Array.isArray(tree)\n ? cloneVNodes(tree)\n : cloneVNode(tree)\n }\n // otherwise, render a fresh tree.\n tree = this._staticTrees[index] =\n this.$options.staticRenderFns[index].call(this._renderProxy);\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(ours, existing) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null;\n var parentVnode = vm.$vnode = vm.$options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(vm.$options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', vm.$options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', vm.$options._parentListeners || emptyObject, null, true);\n }\n}\n\nfunction renderMixin (Vue) {\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var staticRenderFns = ref.staticRenderFns;\n var _parentVnode = ref._parentVnode;\n\n if (vm._isMounted) {\n // if the parent didn't update, the slot nodes will be the ones from\n // last render. They need to be cloned to ensure \"freshness\" for this render.\n for (var key in vm.$slots) {\n var slot = vm.$slots[key];\n if (slot._rendered) {\n vm.$slots[key] = cloneVNodes(slot, true /* deep */);\n }\n }\n }\n\n vm.$scopedSlots = (_parentVnode && _parentVnode.data.scopedSlots) || emptyObject;\n\n if (staticRenderFns && !vm._staticTrees) {\n vm._staticTrees = [];\n }\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render function\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n vnode = vm.$options.renderError\n ? vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e)\n : vm._vnode;\n } else {\n vnode = vm._vnode;\n }\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n\n // internal render helpers.\n // these are exposed on the instance prototype to reduce generated render\n // code size.\n Vue.prototype._o = markOnce;\n Vue.prototype._n = toNumber;\n Vue.prototype._s = toString;\n Vue.prototype._l = renderList;\n Vue.prototype._t = renderSlot;\n Vue.prototype._q = looseEqual;\n Vue.prototype._i = looseIndexOf;\n Vue.prototype._m = renderStatic;\n Vue.prototype._f = resolveFilter;\n Vue.prototype._k = checkKeyCodes;\n Vue.prototype._b = bindObjectProps;\n Vue.prototype._v = createTextVNode;\n Vue.prototype._e = createEmptyVNode;\n Vue.prototype._u = resolveScopedSlots;\n Vue.prototype._g = bindObjectListeners;\n}\n\n/* */\n\nvar uid$1 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$1++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-init:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure(((vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n opts.parent = options.parent;\n opts.propsData = options.propsData;\n opts._parentVnode = options._parentVnode;\n opts._parentListeners = options._parentListeners;\n opts._renderChildren = options._renderChildren;\n opts._componentTag = options._componentTag;\n opts._parentElm = options._parentElm;\n opts._refElm = options._refElm;\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var extended = Ctor.extendOptions;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = dedupe(latest[key], extended[key], sealed[key]);\n }\n }\n return modified\n}\n\nfunction dedupe (latest, extended, sealed) {\n // compare latest and sealed to ensure lifecycle hooks won't be duplicated\n // between merges\n if (Array.isArray(latest)) {\n var res = [];\n sealed = Array.isArray(sealed) ? sealed : [sealed];\n extended = Array.isArray(extended) ? extended : [extended];\n for (var i = 0; i < latest.length; i++) {\n // push original options and not sealed options to exclude duplicated options\n if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {\n res.push(latest[i]);\n }\n }\n return res\n } else {\n return latest\n }\n}\n\nfunction Vue$3 (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue$3)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue$3);\nstateMixin(Vue$3);\neventsMixin(Vue$3);\nlifecycleMixin(Vue$3);\nrenderMixin(Vue$3);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production') {\n if (!/^[a-zA-Z][\\w-]*$/.test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'can only contain alphanumeric characters and the hyphen, ' +\n 'and must start with a letter.'\n );\n }\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n if (type === 'component' && config.isReservedTag(id)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + id\n );\n }\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\nvar patternTypes = [String, RegExp, Array];\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (cache, current, filter) {\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n if (cachedNode !== current) {\n pruneCacheEntry(cachedNode);\n }\n cache[key] = null;\n }\n }\n }\n}\n\nfunction pruneCacheEntry (vnode) {\n if (vnode) {\n vnode.componentInstance.$destroy();\n }\n}\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes\n },\n\n created: function created () {\n this.cache = Object.create(null);\n },\n\n destroyed: function destroyed () {\n var this$1 = this;\n\n for (var key in this$1.cache) {\n pruneCacheEntry(this$1.cache[key]);\n }\n },\n\n watch: {\n include: function include (val) {\n pruneCache(this.cache, this._vnode, function (name) { return matches(val, name); });\n },\n exclude: function exclude (val) {\n pruneCache(this.cache, this._vnode, function (name) { return !matches(val, name); });\n }\n },\n\n render: function render () {\n var vnode = getFirstComponentChild(this.$slots.default);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n if (name && (\n (this.include && !matches(this.include, name)) ||\n (this.exclude && matches(this.exclude, name))\n )) {\n return vnode\n }\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (this.cache[key]) {\n vnode.componentInstance = this.cache[key].componentInstance;\n } else {\n this.cache[key] = vnode;\n }\n vnode.data.keepAlive = true;\n }\n return vnode\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue$3);\n\nObject.defineProperty(Vue$3.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue$3.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\nVue$3.version = '2.4.4';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\nvar isPreTag = function (tag) { return tag === 'pre'; };\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setAttribute (node, key, val) {\n node.setAttribute(key, val);\n}\n\n\nvar nodeOps = Object.freeze({\n\tcreateElement: createElement$1,\n\tcreateElementNS: createElementNS,\n\tcreateTextNode: createTextNode,\n\tcreateComment: createComment,\n\tinsertBefore: insertBefore,\n\tremoveChild: removeChild,\n\tappendChild: appendChild,\n\tparentNode: parentNode,\n\tnextSibling: nextSibling,\n\ttagName: tagName,\n\tsetTextContent: setTextContent,\n\tsetAttribute: setAttribute\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n};\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!key) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove$$1 () {\n if (--remove$$1.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove$$1.listeners = listeners;\n return remove$$1\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n var inPre = 0;\n function createElm (vnode, insertedVnodeQueue, parentElm, refElm, nested) {\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (process.env.NODE_ENV !== 'production') {\n if (data && data.pre) {\n inPre++;\n }\n if (\n !inPre &&\n !vnode.ns &&\n !(config.ignoredElements.length && config.ignoredElements.indexOf(tag) > -1) &&\n config.isUnknownElement(tag)\n ) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n inPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */, parentElm, refElm);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (ref$$1.parentNode === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(vnode.text));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setAttribute(vnode.elm, i, '');\n }\n ancestor = ancestor.parent;\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setAttribute(vnode.elm, i, '');\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, elmToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm);\n } else {\n elmToMove = oldCh[idxInOld];\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !elmToMove) {\n warn(\n 'It seems there are duplicate keys that is causing an update error. ' +\n 'Make sure each v-for item has a unique key.'\n );\n }\n if (sameVnode(elmToMove, newStartVnode)) {\n patchVnode(elmToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {\n if (oldVnode === vnode) {\n return\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var bailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n var isRenderedModule = makeMap('attrs,style,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue) {\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.elm = elm;\n vnode.isAsyncPlaceholder = true;\n return true\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!assertNodeMatch(elm, vnode)) {\n return false\n }\n }\n vnode.elm = elm;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !bailed\n ) {\n bailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !bailed\n ) {\n bailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n for (var key in data) {\n if (!isRenderedModule(key)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode) {\n if (isDef(vnode.tag)) {\n return (\n vnode.tag.indexOf('vue-component') === 0 ||\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue, parentElm, refElm);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm$1 = nodeOps.parentNode(oldElm);\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm$1,\n nodeOps.nextSibling(oldElm)\n );\n\n if (isDef(vnode.parent)) {\n // component root element replaced.\n // update parent placeholder node element, recursively\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n }\n ancestor = ancestor.parent;\n }\n }\n\n if (isDef(parentElm$1)) {\n removeVnodes(parentElm$1, [oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n];\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n /* istanbul ignore if */\n if (isIE9 && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(key, value);\n }\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n};\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n};\n\n/* */\n\nvar validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n\nfunction parseFilters (exp) {\n var inSingle = false;\n var inDouble = false;\n var inTemplateString = false;\n var inRegex = false;\n var curly = 0;\n var square = 0;\n var paren = 0;\n var lastFilterIndex = 0;\n var c, prev, i, expression, filters;\n\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 0x27 && prev !== 0x5C) { inSingle = false; }\n } else if (inDouble) {\n if (c === 0x22 && prev !== 0x5C) { inDouble = false; }\n } else if (inTemplateString) {\n if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }\n } else if (inRegex) {\n if (c === 0x2f && prev !== 0x5C) { inRegex = false; }\n } else if (\n c === 0x7C && // pipe\n exp.charCodeAt(i + 1) !== 0x7C &&\n exp.charCodeAt(i - 1) !== 0x7C &&\n !curly && !square && !paren\n ) {\n if (expression === undefined) {\n // first filter, end of expression\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 0x22: inDouble = true; break // \"\n case 0x27: inSingle = true; break // '\n case 0x60: inTemplateString = true; break // `\n case 0x28: paren++; break // (\n case 0x29: paren--; break // )\n case 0x5B: square++; break // [\n case 0x5D: square--; break // ]\n case 0x7B: curly++; break // {\n case 0x7D: curly--; break // }\n }\n if (c === 0x2f) { // /\n var j = i - 1;\n var p = (void 0);\n // find first non-whitespace prev char\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== ' ') { break }\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n\n if (expression === undefined) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n\n function pushFilter () {\n (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n\n if (filters) {\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i]);\n }\n }\n\n return expression\n}\n\nfunction wrapFilter (exp, filter) {\n var i = filter.indexOf('(');\n if (i < 0) {\n // _f: resolveFilter\n return (\"_f(\\\"\" + filter + \"\\\")(\" + exp + \")\")\n } else {\n var name = filter.slice(0, i);\n var args = filter.slice(i + 1);\n return (\"_f(\\\"\" + name + \"\\\")(\" + exp + \",\" + args)\n }\n}\n\n/* */\n\nfunction baseWarn (msg) {\n console.error((\"[Vue compiler]: \" + msg));\n}\n\nfunction pluckModuleFunction (\n modules,\n key\n) {\n return modules\n ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })\n : []\n}\n\nfunction addProp (el, name, value) {\n (el.props || (el.props = [])).push({ name: name, value: value });\n}\n\nfunction addAttr (el, name, value) {\n (el.attrs || (el.attrs = [])).push({ name: name, value: value });\n}\n\nfunction addDirective (\n el,\n name,\n rawName,\n value,\n arg,\n modifiers\n) {\n (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });\n}\n\nfunction addHandler (\n el,\n name,\n value,\n modifiers,\n important,\n warn\n) {\n // warn prevent and passive modifier\n /* istanbul ignore if */\n if (\n process.env.NODE_ENV !== 'production' && warn &&\n modifiers && modifiers.prevent && modifiers.passive\n ) {\n warn(\n 'passive and prevent can\\'t be used together. ' +\n 'Passive handler can\\'t prevent default event.'\n );\n }\n // check capture modifier\n if (modifiers && modifiers.capture) {\n delete modifiers.capture;\n name = '!' + name; // mark the event as captured\n }\n if (modifiers && modifiers.once) {\n delete modifiers.once;\n name = '~' + name; // mark the event as once\n }\n /* istanbul ignore if */\n if (modifiers && modifiers.passive) {\n delete modifiers.passive;\n name = '&' + name; // mark the event as passive\n }\n var events;\n if (modifiers && modifiers.native) {\n delete modifiers.native;\n events = el.nativeEvents || (el.nativeEvents = {});\n } else {\n events = el.events || (el.events = {});\n }\n var newHandler = { value: value, modifiers: modifiers };\n var handlers = events[name];\n /* istanbul ignore if */\n if (Array.isArray(handlers)) {\n important ? handlers.unshift(newHandler) : handlers.push(newHandler);\n } else if (handlers) {\n events[name] = important ? [newHandler, handlers] : [handlers, newHandler];\n } else {\n events[name] = newHandler;\n }\n}\n\nfunction getBindingAttr (\n el,\n name,\n getStatic\n) {\n var dynamicValue =\n getAndRemoveAttr(el, ':' + name) ||\n getAndRemoveAttr(el, 'v-bind:' + name);\n if (dynamicValue != null) {\n return parseFilters(dynamicValue)\n } else if (getStatic !== false) {\n var staticValue = getAndRemoveAttr(el, name);\n if (staticValue != null) {\n return JSON.stringify(staticValue)\n }\n }\n}\n\nfunction getAndRemoveAttr (el, name) {\n var val;\n if ((val = el.attrsMap[name]) != null) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n if (list[i].name === name) {\n list.splice(i, 1);\n break\n }\n }\n }\n return val\n}\n\n/* */\n\n/**\n * Cross-platform code generation for component v-model\n */\nfunction genComponentModel (\n el,\n value,\n modifiers\n) {\n var ref = modifiers || {};\n var number = ref.number;\n var trim = ref.trim;\n\n var baseValueExpression = '$$v';\n var valueExpression = baseValueExpression;\n if (trim) {\n valueExpression =\n \"(typeof \" + baseValueExpression + \" === 'string'\" +\n \"? \" + baseValueExpression + \".trim()\" +\n \": \" + baseValueExpression + \")\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n var assignment = genAssignmentCode(value, valueExpression);\n\n el.model = {\n value: (\"(\" + value + \")\"),\n expression: (\"\\\"\" + value + \"\\\"\"),\n callback: (\"function (\" + baseValueExpression + \") {\" + assignment + \"}\")\n };\n}\n\n/**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\nfunction genAssignmentCode (\n value,\n assignment\n) {\n var modelRs = parseModel(value);\n if (modelRs.idx === null) {\n return (value + \"=\" + assignment)\n } else {\n return (\"$set(\" + (modelRs.exp) + \", \" + (modelRs.idx) + \", \" + assignment + \")\")\n }\n}\n\n/**\n * parse directive model to do the array update transform. a[idx] = val => $$a.splice($$idx, 1, val)\n *\n * for loop possible cases:\n *\n * - test\n * - test[idx]\n * - test[test1[idx]]\n * - test[\"a\"][idx]\n * - xxx.test[a[a].test1[idx]]\n * - test.xxx.a[\"asa\"][test1[idx]]\n *\n */\n\nvar len;\nvar str;\nvar chr;\nvar index$1;\nvar expressionPos;\nvar expressionEndPos;\n\nfunction parseModel (val) {\n str = val;\n len = str.length;\n index$1 = expressionPos = expressionEndPos = 0;\n\n if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\n return {\n exp: val,\n idx: null\n }\n }\n\n while (!eof()) {\n chr = next();\n /* istanbul ignore if */\n if (isStringStart(chr)) {\n parseString(chr);\n } else if (chr === 0x5B) {\n parseBracket(chr);\n }\n }\n\n return {\n exp: val.substring(0, expressionPos),\n idx: val.substring(expressionPos + 1, expressionEndPos)\n }\n}\n\nfunction next () {\n return str.charCodeAt(++index$1)\n}\n\nfunction eof () {\n return index$1 >= len\n}\n\nfunction isStringStart (chr) {\n return chr === 0x22 || chr === 0x27\n}\n\nfunction parseBracket (chr) {\n var inBracket = 1;\n expressionPos = index$1;\n while (!eof()) {\n chr = next();\n if (isStringStart(chr)) {\n parseString(chr);\n continue\n }\n if (chr === 0x5B) { inBracket++; }\n if (chr === 0x5D) { inBracket--; }\n if (inBracket === 0) {\n expressionEndPos = index$1;\n break\n }\n }\n}\n\nfunction parseString (chr) {\n var stringQuote = chr;\n while (!eof()) {\n chr = next();\n if (chr === stringQuote) {\n break\n }\n }\n}\n\n/* */\n\nvar warn$1;\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\nfunction model (\n el,\n dir,\n _warn\n) {\n warn$1 = _warn;\n var value = dir.value;\n var modifiers = dir.modifiers;\n var tag = el.tag;\n var type = el.attrsMap.type;\n\n if (process.env.NODE_ENV !== 'production') {\n var dynamicType = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\n if (tag === 'input' && dynamicType) {\n warn$1(\n \"<input :type=\\\"\" + dynamicType + \"\\\" v-model=\\\"\" + value + \"\\\">:\\n\" +\n \"v-model does not support dynamic input types. Use v-if branches instead.\"\n );\n }\n // inputs with type=\"file\" are read only and setting the input's\n // value will throw an error.\n if (tag === 'input' && type === 'file') {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\" type=\\\"file\\\">:\\n\" +\n \"File inputs are read only. Use a v-on:change listener instead.\"\n );\n }\n }\n\n if (el.component) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (tag === 'select') {\n genSelect(el, value, modifiers);\n } else if (tag === 'input' && type === 'checkbox') {\n genCheckboxModel(el, value, modifiers);\n } else if (tag === 'input' && type === 'radio') {\n genRadioModel(el, value, modifiers);\n } else if (tag === 'input' || tag === 'textarea') {\n genDefaultModel(el, value, modifiers);\n } else if (!config.isReservedTag(tag)) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (process.env.NODE_ENV !== 'production') {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"v-model is not supported on this element type. \" +\n 'If you are working with contenteditable, it\\'s recommended to ' +\n 'wrap a library dedicated for that purpose inside a custom component.'\n );\n }\n\n // ensure runtime directive metadata\n return true\n}\n\nfunction genCheckboxModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n addProp(el, 'checked',\n \"Array.isArray(\" + value + \")\" +\n \"?_i(\" + value + \",\" + valueBinding + \")>-1\" + (\n trueValueBinding === 'true'\n ? (\":(\" + value + \")\")\n : (\":_q(\" + value + \",\" + trueValueBinding + \")\")\n )\n );\n addHandler(el, CHECKBOX_RADIO_TOKEN,\n \"var $$a=\" + value + \",\" +\n '$$el=$event.target,' +\n \"$$c=$$el.checked?(\" + trueValueBinding + \"):(\" + falseValueBinding + \");\" +\n 'if(Array.isArray($$a)){' +\n \"var $$v=\" + (number ? '_n(' + valueBinding + ')' : valueBinding) + \",\" +\n '$$i=_i($$a,$$v);' +\n \"if($$el.checked){$$i<0&&(\" + value + \"=$$a.concat([$$v]))}\" +\n \"else{$$i>-1&&(\" + value + \"=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}\" +\n \"}else{\" + (genAssignmentCode(value, '$$c')) + \"}\",\n null, true\n );\n}\n\nfunction genRadioModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n valueBinding = number ? (\"_n(\" + valueBinding + \")\") : valueBinding;\n addProp(el, 'checked', (\"_q(\" + value + \",\" + valueBinding + \")\"));\n addHandler(el, CHECKBOX_RADIO_TOKEN, genAssignmentCode(value, valueBinding), null, true);\n}\n\nfunction genSelect (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var selectedVal = \"Array.prototype.filter\" +\n \".call($event.target.options,function(o){return o.selected})\" +\n \".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" +\n \"return \" + (number ? '_n(val)' : 'val') + \"})\";\n\n var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\n var code = \"var $$selectedVal = \" + selectedVal + \";\";\n code = code + \" \" + (genAssignmentCode(value, assignment));\n addHandler(el, 'change', code, null, true);\n}\n\nfunction genDefaultModel (\n el,\n value,\n modifiers\n) {\n var type = el.attrsMap.type;\n var ref = modifiers || {};\n var lazy = ref.lazy;\n var number = ref.number;\n var trim = ref.trim;\n var needCompositionGuard = !lazy && type !== 'range';\n var event = lazy\n ? 'change'\n : type === 'range'\n ? RANGE_TOKEN\n : 'input';\n\n var valueExpression = '$event.target.value';\n if (trim) {\n valueExpression = \"$event.target.value.trim()\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n\n var code = genAssignmentCode(value, valueExpression);\n if (needCompositionGuard) {\n code = \"if($event.target.composing)return;\" + code;\n }\n\n addProp(el, 'value', (\"(\" + value + \")\"));\n addHandler(el, event, code, null, true);\n if (trim || number) {\n addHandler(el, 'blur', '$forceUpdate()');\n }\n}\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n var event;\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n // Chrome fires microtasks in between click/change, leads to #4521\n event = isChrome ? 'click' : 'change';\n on[event] = [].concat(on[CHECKBOX_RADIO_TOKEN], on[event] || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction add$1 (\n event,\n handler,\n once$$1,\n capture,\n passive\n) {\n if (once$$1) {\n var oldHandler = handler;\n var _target = target$1; // save current target element in closure\n handler = function (ev) {\n var res = arguments.length === 1\n ? oldHandler(ev)\n : oldHandler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, handler, capture, _target);\n }\n };\n }\n target$1.addEventListener(\n event,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n event,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(event, handler, capture);\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, vnode.context);\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n};\n\n/* */\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (isUndef(props[key])) {\n elm[key] = '';\n }\n }\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n }\n\n if (key === 'value') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, vnode, strCur)) {\n elm.value = strCur;\n }\n } else {\n elm[key] = cur;\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (\n elm,\n vnode,\n checkVal\n) {\n return (!elm.composing && (\n vnode.tag === 'option' ||\n isDirty(elm, checkVal) ||\n isInputChanged(elm, checkVal)\n ))\n}\n\nfunction isDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isInputChanged (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers) && modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (isDef(modifiers) && modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n};\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (childNode.data && (styleData = normalizeStyleData(childNode.data))) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(name, val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n};\n\n/* */\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def$$1) {\n if (!def$$1) {\n return\n }\n /* istanbul ignore else */\n if (typeof def$$1 === 'object') {\n var res = {};\n if (def$$1.css !== false) {\n extend(res, autoCssTransition(def$$1.name || 'v'));\n }\n extend(res, def$$1);\n return res\n } else if (typeof def$$1 === 'string') {\n return autoCssTransition(def$$1)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser && window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout;\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n var transitionDelays = styles[transitionProp + 'Delay'].split(', ');\n var transitionDurations = styles[transitionProp + 'Duration'].split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = styles[animationProp + 'Delay'].split(', ');\n var animationDurations = styles[animationProp + 'Duration'].split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\nfunction toMs (s) {\n return Number(s.slice(0, -1)) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n transitionNode = transitionNode.parent;\n context = transitionNode.context;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n addTransitionClass(el, toClass);\n removeTransitionClass(el, startClass);\n if (!cb.cancelled && !userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n addTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled && !userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {};\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n];\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar model$1 = {\n inserted: function inserted (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n if (!isAndroid) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n }\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (value === oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n};\n\nvar platformDirectives = {\n model: model$1,\n show: show\n};\n\n/* */\n\n// Provides transition support for a single element/component.\n// supports transition mode (out-in / in-out)\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$options._renderChildren;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (process.env.NODE_ENV !== 'production' &&\n mode && mode !== 'in-out' && mode !== 'out-in'\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild && (oldChild.data.transition = extend({}, data));\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n};\n\n/* */\n\n// Provides transition support for list items.\n// supports move transitions using the FLIP technique.\n\n// Because the vdom's children update algorithm is \"unstable\" - i.e.\n// it doesn't guarantee the relative positioning of removed elements,\n// we force transition-group to update its children into two passes:\n// in the first pass, we remove all nodes that need to be removed,\n// triggering their leaving transition; in the second pass, we insert/move\n// into the final desired state. This way in the second pass removed\n// nodes will remain where they should be.\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (process.env.NODE_ENV !== 'production') {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n beforeUpdate: function beforeUpdate () {\n // force removing pass\n this.__patch__(\n this._vnode,\n this.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this._vnode = this.kept;\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n var body = document.body;\n var f = body.offsetHeight; // eslint-disable-line\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n};\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n};\n\n/* */\n\n// install platform specific utils\nVue$3.config.mustUseProp = mustUseProp;\nVue$3.config.isReservedTag = isReservedTag;\nVue$3.config.isReservedAttr = isReservedAttr;\nVue$3.config.getTagNamespace = getTagNamespace;\nVue$3.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue$3.options.directives, platformDirectives);\nextend(Vue$3.options.components, platformComponents);\n\n// install platform patch function\nVue$3.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue$3.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nsetTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue$3);\n } else if (process.env.NODE_ENV !== 'production' && isChrome) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (process.env.NODE_ENV !== 'production' &&\n config.productionTip !== false &&\n inBrowser && typeof console !== 'undefined'\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n}, 0);\n\n/* */\n\n// check whether current browser encodes a char inside attribute values\nfunction shouldDecode (content, encoded) {\n var div = document.createElement('div');\n div.innerHTML = \"<div a=\\\"\" + content + \"\\\"/>\";\n return div.innerHTML.indexOf(encoded) > 0\n}\n\n// #3663\n// IE encodes newlines inside attribute values while other browsers don't\nvar shouldDecodeNewlines = inBrowser ? shouldDecode('\\n', ' ') : false;\n\n/* */\n\nvar defaultTagRE = /\\{\\{((?:.|\\n)+?)\\}\\}/g;\nvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n\nvar buildRegex = cached(function (delimiters) {\n var open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n var close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g')\n});\n\nfunction parseText (\n text,\n delimiters\n) {\n var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n if (!tagRE.test(text)) {\n return\n }\n var tokens = [];\n var lastIndex = tagRE.lastIndex = 0;\n var match, index;\n while ((match = tagRE.exec(text))) {\n index = match.index;\n // push text token\n if (index > lastIndex) {\n tokens.push(JSON.stringify(text.slice(lastIndex, index)));\n }\n // tag token\n var exp = parseFilters(match[1].trim());\n tokens.push((\"_s(\" + exp + \")\"));\n lastIndex = index + match[0].length;\n }\n if (lastIndex < text.length) {\n tokens.push(JSON.stringify(text.slice(lastIndex)));\n }\n return tokens.join('+')\n}\n\n/* */\n\nfunction transformNode (el, options) {\n var warn = options.warn || baseWarn;\n var staticClass = getAndRemoveAttr(el, 'class');\n if (process.env.NODE_ENV !== 'production' && staticClass) {\n var expression = parseText(staticClass, options.delimiters);\n if (expression) {\n warn(\n \"class=\\\"\" + staticClass + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.'\n );\n }\n }\n if (staticClass) {\n el.staticClass = JSON.stringify(staticClass);\n }\n var classBinding = getBindingAttr(el, 'class', false /* getStatic */);\n if (classBinding) {\n el.classBinding = classBinding;\n }\n}\n\nfunction genData (el) {\n var data = '';\n if (el.staticClass) {\n data += \"staticClass:\" + (el.staticClass) + \",\";\n }\n if (el.classBinding) {\n data += \"class:\" + (el.classBinding) + \",\";\n }\n return data\n}\n\nvar klass$1 = {\n staticKeys: ['staticClass'],\n transformNode: transformNode,\n genData: genData\n};\n\n/* */\n\nfunction transformNode$1 (el, options) {\n var warn = options.warn || baseWarn;\n var staticStyle = getAndRemoveAttr(el, 'style');\n if (staticStyle) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n var expression = parseText(staticStyle, options.delimiters);\n if (expression) {\n warn(\n \"style=\\\"\" + staticStyle + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.'\n );\n }\n }\n el.staticStyle = JSON.stringify(parseStyleText(staticStyle));\n }\n\n var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\n if (styleBinding) {\n el.styleBinding = styleBinding;\n }\n}\n\nfunction genData$1 (el) {\n var data = '';\n if (el.staticStyle) {\n data += \"staticStyle:\" + (el.staticStyle) + \",\";\n }\n if (el.styleBinding) {\n data += \"style:(\" + (el.styleBinding) + \"),\";\n }\n return data\n}\n\nvar style$1 = {\n staticKeys: ['staticStyle'],\n transformNode: transformNode$1,\n genData: genData$1\n};\n\nvar modules$1 = [\n klass$1,\n style$1\n];\n\n/* */\n\nfunction text (el, dir) {\n if (dir.value) {\n addProp(el, 'textContent', (\"_s(\" + (dir.value) + \")\"));\n }\n}\n\n/* */\n\nfunction html (el, dir) {\n if (dir.value) {\n addProp(el, 'innerHTML', (\"_s(\" + (dir.value) + \")\"));\n }\n}\n\nvar directives$1 = {\n model: model,\n text: text,\n html: html\n};\n\n/* */\n\nvar isUnaryTag = makeMap(\n 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\n 'link,meta,param,source,track,wbr'\n);\n\n// Elements that you can, intentionally, leave open\n// (and which close themselves)\nvar canBeLeftOpenTag = makeMap(\n 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'\n);\n\n// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\n// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\nvar isNonPhrasingTag = makeMap(\n 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\n 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\n 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\n 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\n 'title,tr,track'\n);\n\n/* */\n\nvar baseOptions = {\n expectHTML: true,\n modules: modules$1,\n directives: directives$1,\n isPreTag: isPreTag,\n isUnaryTag: isUnaryTag,\n mustUseProp: mustUseProp,\n canBeLeftOpenTag: canBeLeftOpenTag,\n isReservedTag: isReservedTag,\n getTagNamespace: getTagNamespace,\n staticKeys: genStaticKeys(modules$1)\n};\n\n/* */\n\nvar decoder;\n\nvar he = {\n decode: function decode (html) {\n decoder = decoder || document.createElement('div');\n decoder.innerHTML = html;\n return decoder.textContent\n }\n};\n\n/**\n * Not type-checking this file because it's mostly vendor code.\n */\n\n/*!\n * HTML Parser By John Resig (ejohn.org)\n * Modified by Juriy \"kangax\" Zaytsev\n * Original code by Erik Arvidsson, Mozilla Public License\n * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js\n */\n\n// Regular Expressions for parsing tags and attributes\nvar attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\n// could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName\n// but for Vue templates we can enforce a simple charset\nvar ncname = '[a-zA-Z_][\\\\w\\\\-\\\\.]*';\nvar qnameCapture = \"((?:\" + ncname + \"\\\\:)?\" + ncname + \")\";\nvar startTagOpen = new RegExp((\"^<\" + qnameCapture));\nvar startTagClose = /^\\s*(\\/?)>/;\nvar endTag = new RegExp((\"^<\\\\/\" + qnameCapture + \"[^>]*>\"));\nvar doctype = /^<!DOCTYPE [^>]+>/i;\nvar comment = /^<!--/;\nvar conditionalComment = /^<!\\[/;\n\nvar IS_REGEX_CAPTURING_BROKEN = false;\n'x'.replace(/x(.)?/g, function (m, g) {\n IS_REGEX_CAPTURING_BROKEN = g === '';\n});\n\n// Special Elements (can contain anything)\nvar isPlainTextElement = makeMap('script,style,textarea', true);\nvar reCache = {};\n\nvar decodingMap = {\n '<': '<',\n '>': '>',\n '"': '\"',\n '&': '&',\n ' ': '\\n'\n};\nvar encodedAttr = /&(?:lt|gt|quot|amp);/g;\nvar encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10);/g;\n\n// #5992\nvar isIgnoreNewlineTag = makeMap('pre,textarea', true);\nvar shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n'; };\n\nfunction decodeAttr (value, shouldDecodeNewlines) {\n var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\n return value.replace(re, function (match) { return decodingMap[match]; })\n}\n\nfunction parseHTML (html, options) {\n var stack = [];\n var expectHTML = options.expectHTML;\n var isUnaryTag$$1 = options.isUnaryTag || no;\n var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;\n var index = 0;\n var last, lastTag;\n while (html) {\n last = html;\n // Make sure we're not in a plaintext content element like script/style\n if (!lastTag || !isPlainTextElement(lastTag)) {\n var textEnd = html.indexOf('<');\n if (textEnd === 0) {\n // Comment:\n if (comment.test(html)) {\n var commentEnd = html.indexOf('-->');\n\n if (commentEnd >= 0) {\n if (options.shouldKeepComment) {\n options.comment(html.substring(4, commentEnd));\n }\n advance(commentEnd + 3);\n continue\n }\n }\n\n // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n if (conditionalComment.test(html)) {\n var conditionalEnd = html.indexOf(']>');\n\n if (conditionalEnd >= 0) {\n advance(conditionalEnd + 2);\n continue\n }\n }\n\n // Doctype:\n var doctypeMatch = html.match(doctype);\n if (doctypeMatch) {\n advance(doctypeMatch[0].length);\n continue\n }\n\n // End tag:\n var endTagMatch = html.match(endTag);\n if (endTagMatch) {\n var curIndex = index;\n advance(endTagMatch[0].length);\n parseEndTag(endTagMatch[1], curIndex, index);\n continue\n }\n\n // Start tag:\n var startTagMatch = parseStartTag();\n if (startTagMatch) {\n handleStartTag(startTagMatch);\n if (shouldIgnoreFirstNewline(lastTag, html)) {\n advance(1);\n }\n continue\n }\n }\n\n var text = (void 0), rest = (void 0), next = (void 0);\n if (textEnd >= 0) {\n rest = html.slice(textEnd);\n while (\n !endTag.test(rest) &&\n !startTagOpen.test(rest) &&\n !comment.test(rest) &&\n !conditionalComment.test(rest)\n ) {\n // < in plain text, be forgiving and treat it as text\n next = rest.indexOf('<', 1);\n if (next < 0) { break }\n textEnd += next;\n rest = html.slice(textEnd);\n }\n text = html.substring(0, textEnd);\n advance(textEnd);\n }\n\n if (textEnd < 0) {\n text = html;\n html = '';\n }\n\n if (options.chars && text) {\n options.chars(text);\n }\n } else {\n var endTagLength = 0;\n var stackedTag = lastTag.toLowerCase();\n var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));\n var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {\n endTagLength = endTag.length;\n if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {\n text = text\n .replace(/<!--([\\s\\S]*?)-->/g, '$1')\n .replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\n }\n if (shouldIgnoreFirstNewline(stackedTag, text)) {\n text = text.slice(1);\n }\n if (options.chars) {\n options.chars(text);\n }\n return ''\n });\n index += html.length - rest$1.length;\n html = rest$1;\n parseEndTag(stackedTag, index - endTagLength, index);\n }\n\n if (html === last) {\n options.chars && options.chars(html);\n if (process.env.NODE_ENV !== 'production' && !stack.length && options.warn) {\n options.warn((\"Mal-formatted tag at end of template: \\\"\" + html + \"\\\"\"));\n }\n break\n }\n }\n\n // Clean up any remaining tags\n parseEndTag();\n\n function advance (n) {\n index += n;\n html = html.substring(n);\n }\n\n function parseStartTag () {\n var start = html.match(startTagOpen);\n if (start) {\n var match = {\n tagName: start[1],\n attrs: [],\n start: index\n };\n advance(start[0].length);\n var end, attr;\n while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {\n advance(attr[0].length);\n match.attrs.push(attr);\n }\n if (end) {\n match.unarySlash = end[1];\n advance(end[0].length);\n match.end = index;\n return match\n }\n }\n }\n\n function handleStartTag (match) {\n var tagName = match.tagName;\n var unarySlash = match.unarySlash;\n\n if (expectHTML) {\n if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n parseEndTag(lastTag);\n }\n if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {\n parseEndTag(tagName);\n }\n }\n\n var unary = isUnaryTag$$1(tagName) || !!unarySlash;\n\n var l = match.attrs.length;\n var attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n var args = match.attrs[i];\n // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778\n if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('\"\"') === -1) {\n if (args[3] === '') { delete args[3]; }\n if (args[4] === '') { delete args[4]; }\n if (args[5] === '') { delete args[5]; }\n }\n var value = args[3] || args[4] || args[5] || '';\n attrs[i] = {\n name: args[1],\n value: decodeAttr(\n value,\n options.shouldDecodeNewlines\n )\n };\n }\n\n if (!unary) {\n stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });\n lastTag = tagName;\n }\n\n if (options.start) {\n options.start(tagName, attrs, unary, match.start, match.end);\n }\n }\n\n function parseEndTag (tagName, start, end) {\n var pos, lowerCasedTagName;\n if (start == null) { start = index; }\n if (end == null) { end = index; }\n\n if (tagName) {\n lowerCasedTagName = tagName.toLowerCase();\n }\n\n // Find the closest opened tag of the same type\n if (tagName) {\n for (pos = stack.length - 1; pos >= 0; pos--) {\n if (stack[pos].lowerCasedTag === lowerCasedTagName) {\n break\n }\n }\n } else {\n // If no tag name is provided, clean shop\n pos = 0;\n }\n\n if (pos >= 0) {\n // Close all the open elements, up the stack\n for (var i = stack.length - 1; i >= pos; i--) {\n if (process.env.NODE_ENV !== 'production' &&\n (i > pos || !tagName) &&\n options.warn\n ) {\n options.warn(\n (\"tag <\" + (stack[i].tag) + \"> has no matching end tag.\")\n );\n }\n if (options.end) {\n options.end(stack[i].tag, start, end);\n }\n }\n\n // Remove the open elements from the stack\n stack.length = pos;\n lastTag = pos && stack[pos - 1].tag;\n } else if (lowerCasedTagName === 'br') {\n if (options.start) {\n options.start(tagName, [], true, start, end);\n }\n } else if (lowerCasedTagName === 'p') {\n if (options.start) {\n options.start(tagName, [], false, start, end);\n }\n if (options.end) {\n options.end(tagName, start, end);\n }\n }\n }\n}\n\n/* */\n\nvar onRE = /^@|^v-on:/;\nvar dirRE = /^v-|^@|^:/;\nvar forAliasRE = /(.*?)\\s+(?:in|of)\\s+(.*)/;\nvar forIteratorRE = /\\((\\{[^}]*\\}|[^,]*),([^,]*)(?:,([^,]*))?\\)/;\n\nvar argRE = /:(.*)$/;\nvar bindRE = /^:|^v-bind:/;\nvar modifierRE = /\\.[^.]+/g;\n\nvar decodeHTMLCached = cached(he.decode);\n\n// configurable state\nvar warn$2;\nvar delimiters;\nvar transforms;\nvar preTransforms;\nvar postTransforms;\nvar platformIsPreTag;\nvar platformMustUseProp;\nvar platformGetTagNamespace;\n\n/**\n * Convert HTML string to AST.\n */\nfunction parse (\n template,\n options\n) {\n warn$2 = options.warn || baseWarn;\n\n platformIsPreTag = options.isPreTag || no;\n platformMustUseProp = options.mustUseProp || no;\n platformGetTagNamespace = options.getTagNamespace || no;\n\n transforms = pluckModuleFunction(options.modules, 'transformNode');\n preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n\n delimiters = options.delimiters;\n\n var stack = [];\n var preserveWhitespace = options.preserveWhitespace !== false;\n var root;\n var currentParent;\n var inVPre = false;\n var inPre = false;\n var warned = false;\n\n function warnOnce (msg) {\n if (!warned) {\n warned = true;\n warn$2(msg);\n }\n }\n\n function endPre (element) {\n // check pre state\n if (element.pre) {\n inVPre = false;\n }\n if (platformIsPreTag(element.tag)) {\n inPre = false;\n }\n }\n\n parseHTML(template, {\n warn: warn$2,\n expectHTML: options.expectHTML,\n isUnaryTag: options.isUnaryTag,\n canBeLeftOpenTag: options.canBeLeftOpenTag,\n shouldDecodeNewlines: options.shouldDecodeNewlines,\n shouldKeepComment: options.comments,\n start: function start (tag, attrs, unary) {\n // check namespace.\n // inherit parent ns if there is one\n var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\n\n // handle IE svg bug\n /* istanbul ignore if */\n if (isIE && ns === 'svg') {\n attrs = guardIESVGBug(attrs);\n }\n\n var element = {\n type: 1,\n tag: tag,\n attrsList: attrs,\n attrsMap: makeAttrsMap(attrs),\n parent: currentParent,\n children: []\n };\n if (ns) {\n element.ns = ns;\n }\n\n if (isForbiddenTag(element) && !isServerRendering()) {\n element.forbidden = true;\n process.env.NODE_ENV !== 'production' && warn$2(\n 'Templates should only be responsible for mapping the state to the ' +\n 'UI. Avoid placing tags with side-effects in your templates, such as ' +\n \"<\" + tag + \">\" + ', as they will not be parsed.'\n );\n }\n\n // apply pre-transforms\n for (var i = 0; i < preTransforms.length; i++) {\n preTransforms[i](element, options);\n }\n\n if (!inVPre) {\n processPre(element);\n if (element.pre) {\n inVPre = true;\n }\n }\n if (platformIsPreTag(element.tag)) {\n inPre = true;\n }\n if (inVPre) {\n processRawAttrs(element);\n } else {\n processFor(element);\n processIf(element);\n processOnce(element);\n processKey(element);\n\n // determine whether this is a plain element after\n // removing structural attributes\n element.plain = !element.key && !attrs.length;\n\n processRef(element);\n processSlot(element);\n processComponent(element);\n for (var i$1 = 0; i$1 < transforms.length; i$1++) {\n transforms[i$1](element, options);\n }\n processAttrs(element);\n }\n\n function checkRootConstraints (el) {\n if (process.env.NODE_ENV !== 'production') {\n if (el.tag === 'slot' || el.tag === 'template') {\n warnOnce(\n \"Cannot use <\" + (el.tag) + \"> as component root element because it may \" +\n 'contain multiple nodes.'\n );\n }\n if (el.attrsMap.hasOwnProperty('v-for')) {\n warnOnce(\n 'Cannot use v-for on stateful component root element because ' +\n 'it renders multiple elements.'\n );\n }\n }\n }\n\n // tree management\n if (!root) {\n root = element;\n checkRootConstraints(root);\n } else if (!stack.length) {\n // allow root elements with v-if, v-else-if and v-else\n if (root.if && (element.elseif || element.else)) {\n checkRootConstraints(element);\n addIfCondition(root, {\n exp: element.elseif,\n block: element\n });\n } else if (process.env.NODE_ENV !== 'production') {\n warnOnce(\n \"Component template should contain exactly one root element. \" +\n \"If you are using v-if on multiple elements, \" +\n \"use v-else-if to chain them instead.\"\n );\n }\n }\n if (currentParent && !element.forbidden) {\n if (element.elseif || element.else) {\n processIfConditions(element, currentParent);\n } else if (element.slotScope) { // scoped slot\n currentParent.plain = false;\n var name = element.slotTarget || '\"default\"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;\n } else {\n currentParent.children.push(element);\n element.parent = currentParent;\n }\n }\n if (!unary) {\n currentParent = element;\n stack.push(element);\n } else {\n endPre(element);\n }\n // apply post-transforms\n for (var i$2 = 0; i$2 < postTransforms.length; i$2++) {\n postTransforms[i$2](element, options);\n }\n },\n\n end: function end () {\n // remove trailing whitespace\n var element = stack[stack.length - 1];\n var lastNode = element.children[element.children.length - 1];\n if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {\n element.children.pop();\n }\n // pop stack\n stack.length -= 1;\n currentParent = stack[stack.length - 1];\n endPre(element);\n },\n\n chars: function chars (text) {\n if (!currentParent) {\n if (process.env.NODE_ENV !== 'production') {\n if (text === template) {\n warnOnce(\n 'Component template requires a root element, rather than just text.'\n );\n } else if ((text = text.trim())) {\n warnOnce(\n (\"text \\\"\" + text + \"\\\" outside root element will be ignored.\")\n );\n }\n }\n return\n }\n // IE textarea placeholder bug\n /* istanbul ignore if */\n if (isIE &&\n currentParent.tag === 'textarea' &&\n currentParent.attrsMap.placeholder === text\n ) {\n return\n }\n var children = currentParent.children;\n text = inPre || text.trim()\n ? isTextTag(currentParent) ? text : decodeHTMLCached(text)\n // only preserve whitespace if its not right after a starting tag\n : preserveWhitespace && children.length ? ' ' : '';\n if (text) {\n var expression;\n if (!inVPre && text !== ' ' && (expression = parseText(text, delimiters))) {\n children.push({\n type: 2,\n expression: expression,\n text: text\n });\n } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {\n children.push({\n type: 3,\n text: text\n });\n }\n }\n },\n comment: function comment (text) {\n currentParent.children.push({\n type: 3,\n text: text,\n isComment: true\n });\n }\n });\n return root\n}\n\nfunction processPre (el) {\n if (getAndRemoveAttr(el, 'v-pre') != null) {\n el.pre = true;\n }\n}\n\nfunction processRawAttrs (el) {\n var l = el.attrsList.length;\n if (l) {\n var attrs = el.attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n attrs[i] = {\n name: el.attrsList[i].name,\n value: JSON.stringify(el.attrsList[i].value)\n };\n }\n } else if (!el.pre) {\n // non root node in pre blocks with no attributes\n el.plain = true;\n }\n}\n\nfunction processKey (el) {\n var exp = getBindingAttr(el, 'key');\n if (exp) {\n if (process.env.NODE_ENV !== 'production' && el.tag === 'template') {\n warn$2(\"<template> cannot be keyed. Place the key on real elements instead.\");\n }\n el.key = exp;\n }\n}\n\nfunction processRef (el) {\n var ref = getBindingAttr(el, 'ref');\n if (ref) {\n el.ref = ref;\n el.refInFor = checkInFor(el);\n }\n}\n\nfunction processFor (el) {\n var exp;\n if ((exp = getAndRemoveAttr(el, 'v-for'))) {\n var inMatch = exp.match(forAliasRE);\n if (!inMatch) {\n process.env.NODE_ENV !== 'production' && warn$2(\n (\"Invalid v-for expression: \" + exp)\n );\n return\n }\n el.for = inMatch[2].trim();\n var alias = inMatch[1].trim();\n var iteratorMatch = alias.match(forIteratorRE);\n if (iteratorMatch) {\n el.alias = iteratorMatch[1].trim();\n el.iterator1 = iteratorMatch[2].trim();\n if (iteratorMatch[3]) {\n el.iterator2 = iteratorMatch[3].trim();\n }\n } else {\n el.alias = alias;\n }\n }\n}\n\nfunction processIf (el) {\n var exp = getAndRemoveAttr(el, 'v-if');\n if (exp) {\n el.if = exp;\n addIfCondition(el, {\n exp: exp,\n block: el\n });\n } else {\n if (getAndRemoveAttr(el, 'v-else') != null) {\n el.else = true;\n }\n var elseif = getAndRemoveAttr(el, 'v-else-if');\n if (elseif) {\n el.elseif = elseif;\n }\n }\n}\n\nfunction processIfConditions (el, parent) {\n var prev = findPrevElement(parent.children);\n if (prev && prev.if) {\n addIfCondition(prev, {\n exp: el.elseif,\n block: el\n });\n } else if (process.env.NODE_ENV !== 'production') {\n warn$2(\n \"v-\" + (el.elseif ? ('else-if=\"' + el.elseif + '\"') : 'else') + \" \" +\n \"used on element <\" + (el.tag) + \"> without corresponding v-if.\"\n );\n }\n}\n\nfunction findPrevElement (children) {\n var i = children.length;\n while (i--) {\n if (children[i].type === 1) {\n return children[i]\n } else {\n if (process.env.NODE_ENV !== 'production' && children[i].text !== ' ') {\n warn$2(\n \"text \\\"\" + (children[i].text.trim()) + \"\\\" between v-if and v-else(-if) \" +\n \"will be ignored.\"\n );\n }\n children.pop();\n }\n }\n}\n\nfunction addIfCondition (el, condition) {\n if (!el.ifConditions) {\n el.ifConditions = [];\n }\n el.ifConditions.push(condition);\n}\n\nfunction processOnce (el) {\n var once$$1 = getAndRemoveAttr(el, 'v-once');\n if (once$$1 != null) {\n el.once = true;\n }\n}\n\nfunction processSlot (el) {\n if (el.tag === 'slot') {\n el.slotName = getBindingAttr(el, 'name');\n if (process.env.NODE_ENV !== 'production' && el.key) {\n warn$2(\n \"`key` does not work on <slot> because slots are abstract outlets \" +\n \"and can possibly expand into multiple elements. \" +\n \"Use the key on a wrapping element instead.\"\n );\n }\n } else {\n var slotTarget = getBindingAttr(el, 'slot');\n if (slotTarget) {\n el.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\n // preserve slot as an attribute for native shadow DOM compat\n addAttr(el, 'slot', slotTarget);\n }\n if (el.tag === 'template') {\n el.slotScope = getAndRemoveAttr(el, 'scope');\n }\n }\n}\n\nfunction processComponent (el) {\n var binding;\n if ((binding = getBindingAttr(el, 'is'))) {\n el.component = binding;\n }\n if (getAndRemoveAttr(el, 'inline-template') != null) {\n el.inlineTemplate = true;\n }\n}\n\nfunction processAttrs (el) {\n var list = el.attrsList;\n var i, l, name, rawName, value, modifiers, isProp;\n for (i = 0, l = list.length; i < l; i++) {\n name = rawName = list[i].name;\n value = list[i].value;\n if (dirRE.test(name)) {\n // mark element as dynamic\n el.hasBindings = true;\n // modifiers\n modifiers = parseModifiers(name);\n if (modifiers) {\n name = name.replace(modifierRE, '');\n }\n if (bindRE.test(name)) { // v-bind\n name = name.replace(bindRE, '');\n value = parseFilters(value);\n isProp = false;\n if (modifiers) {\n if (modifiers.prop) {\n isProp = true;\n name = camelize(name);\n if (name === 'innerHtml') { name = 'innerHTML'; }\n }\n if (modifiers.camel) {\n name = camelize(name);\n }\n if (modifiers.sync) {\n addHandler(\n el,\n (\"update:\" + (camelize(name))),\n genAssignmentCode(value, \"$event\")\n );\n }\n }\n if (isProp || (\n !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)\n )) {\n addProp(el, name, value);\n } else {\n addAttr(el, name, value);\n }\n } else if (onRE.test(name)) { // v-on\n name = name.replace(onRE, '');\n addHandler(el, name, value, modifiers, false, warn$2);\n } else { // normal directives\n name = name.replace(dirRE, '');\n // parse arg\n var argMatch = name.match(argRE);\n var arg = argMatch && argMatch[1];\n if (arg) {\n name = name.slice(0, -(arg.length + 1));\n }\n addDirective(el, name, rawName, value, arg, modifiers);\n if (process.env.NODE_ENV !== 'production' && name === 'model') {\n checkForAliasModel(el, value);\n }\n }\n } else {\n // literal attribute\n if (process.env.NODE_ENV !== 'production') {\n var expression = parseText(value, delimiters);\n if (expression) {\n warn$2(\n name + \"=\\\"\" + value + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.'\n );\n }\n }\n addAttr(el, name, JSON.stringify(value));\n }\n }\n}\n\nfunction checkInFor (el) {\n var parent = el;\n while (parent) {\n if (parent.for !== undefined) {\n return true\n }\n parent = parent.parent;\n }\n return false\n}\n\nfunction parseModifiers (name) {\n var match = name.match(modifierRE);\n if (match) {\n var ret = {};\n match.forEach(function (m) { ret[m.slice(1)] = true; });\n return ret\n }\n}\n\nfunction makeAttrsMap (attrs) {\n var map = {};\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (\n process.env.NODE_ENV !== 'production' &&\n map[attrs[i].name] && !isIE && !isEdge\n ) {\n warn$2('duplicate attribute: ' + attrs[i].name);\n }\n map[attrs[i].name] = attrs[i].value;\n }\n return map\n}\n\n// for script (e.g. type=\"x/template\") or style, do not decode content\nfunction isTextTag (el) {\n return el.tag === 'script' || el.tag === 'style'\n}\n\nfunction isForbiddenTag (el) {\n return (\n el.tag === 'style' ||\n (el.tag === 'script' && (\n !el.attrsMap.type ||\n el.attrsMap.type === 'text/javascript'\n ))\n )\n}\n\nvar ieNSBug = /^xmlns:NS\\d+/;\nvar ieNSPrefix = /^NS\\d+:/;\n\n/* istanbul ignore next */\nfunction guardIESVGBug (attrs) {\n var res = [];\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n if (!ieNSBug.test(attr.name)) {\n attr.name = attr.name.replace(ieNSPrefix, '');\n res.push(attr);\n }\n }\n return res\n}\n\nfunction checkForAliasModel (el, value) {\n var _el = el;\n while (_el) {\n if (_el.for && _el.alias === value) {\n warn$2(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"You are binding v-model directly to a v-for iteration alias. \" +\n \"This will not be able to modify the v-for source array because \" +\n \"writing to the alias is like modifying a function local variable. \" +\n \"Consider using an array of objects and use v-model on an object property instead.\"\n );\n }\n _el = _el.parent;\n }\n}\n\n/* */\n\nvar isStaticKey;\nvar isPlatformReservedTag;\n\nvar genStaticKeysCached = cached(genStaticKeys$1);\n\n/**\n * Goal of the optimizer: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n * create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\nfunction optimize (root, options) {\n if (!root) { return }\n isStaticKey = genStaticKeysCached(options.staticKeys || '');\n isPlatformReservedTag = options.isReservedTag || no;\n // first pass: mark all non-static nodes.\n markStatic$1(root);\n // second pass: mark static roots.\n markStaticRoots(root, false);\n}\n\nfunction genStaticKeys$1 (keys) {\n return makeMap(\n 'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +\n (keys ? ',' + keys : '')\n )\n}\n\nfunction markStatic$1 (node) {\n node.static = isStatic(node);\n if (node.type === 1) {\n // do not make component slot content static. this avoids\n // 1. components not able to mutate slot nodes\n // 2. static slot content fails for hot-reloading\n if (\n !isPlatformReservedTag(node.tag) &&\n node.tag !== 'slot' &&\n node.attrsMap['inline-template'] == null\n ) {\n return\n }\n for (var i = 0, l = node.children.length; i < l; i++) {\n var child = node.children[i];\n markStatic$1(child);\n if (!child.static) {\n node.static = false;\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n var block = node.ifConditions[i$1].block;\n markStatic$1(block);\n if (!block.static) {\n node.static = false;\n }\n }\n }\n }\n}\n\nfunction markStaticRoots (node, isInFor) {\n if (node.type === 1) {\n if (node.static || node.once) {\n node.staticInFor = isInFor;\n }\n // For a node to qualify as a static root, it should have children that\n // are not just static text. Otherwise the cost of hoisting out will\n // outweigh the benefits and it's better off to just always render it fresh.\n if (node.static && node.children.length && !(\n node.children.length === 1 &&\n node.children[0].type === 3\n )) {\n node.staticRoot = true;\n return\n } else {\n node.staticRoot = false;\n }\n if (node.children) {\n for (var i = 0, l = node.children.length; i < l; i++) {\n markStaticRoots(node.children[i], isInFor || !!node.for);\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n markStaticRoots(node.ifConditions[i$1].block, isInFor);\n }\n }\n }\n}\n\nfunction isStatic (node) {\n if (node.type === 2) { // expression\n return false\n }\n if (node.type === 3) { // text\n return true\n }\n return !!(node.pre || (\n !node.hasBindings && // no dynamic bindings\n !node.if && !node.for && // not v-if or v-for or v-else\n !isBuiltInTag(node.tag) && // not a built-in\n isPlatformReservedTag(node.tag) && // not a component\n !isDirectChildOfTemplateFor(node) &&\n Object.keys(node).every(isStaticKey)\n ))\n}\n\nfunction isDirectChildOfTemplateFor (node) {\n while (node.parent) {\n node = node.parent;\n if (node.tag !== 'template') {\n return false\n }\n if (node.for) {\n return true\n }\n }\n return false\n}\n\n/* */\n\nvar fnExpRE = /^\\s*([\\w$_]+|\\([^)]*?\\))\\s*=>|^function\\s*\\(/;\nvar simplePathRE = /^\\s*[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['.*?']|\\[\".*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*\\s*$/;\n\n// keyCode aliases\nvar keyCodes = {\n esc: 27,\n tab: 9,\n enter: 13,\n space: 32,\n up: 38,\n left: 37,\n right: 39,\n down: 40,\n 'delete': [8, 46]\n};\n\n// #4868: modifiers that prevent the execution of the listener\n// need to explicitly return null so that we can determine whether to remove\n// the listener for .once\nvar genGuard = function (condition) { return (\"if(\" + condition + \")return null;\"); };\n\nvar modifierCode = {\n stop: '$event.stopPropagation();',\n prevent: '$event.preventDefault();',\n self: genGuard(\"$event.target !== $event.currentTarget\"),\n ctrl: genGuard(\"!$event.ctrlKey\"),\n shift: genGuard(\"!$event.shiftKey\"),\n alt: genGuard(\"!$event.altKey\"),\n meta: genGuard(\"!$event.metaKey\"),\n left: genGuard(\"'button' in $event && $event.button !== 0\"),\n middle: genGuard(\"'button' in $event && $event.button !== 1\"),\n right: genGuard(\"'button' in $event && $event.button !== 2\")\n};\n\nfunction genHandlers (\n events,\n isNative,\n warn\n) {\n var res = isNative ? 'nativeOn:{' : 'on:{';\n for (var name in events) {\n var handler = events[name];\n // #5330: warn click.right, since right clicks do not actually fire click events.\n if (process.env.NODE_ENV !== 'production' &&\n name === 'click' &&\n handler && handler.modifiers && handler.modifiers.right\n ) {\n warn(\n \"Use \\\"contextmenu\\\" instead of \\\"click.right\\\" since right clicks \" +\n \"do not actually fire \\\"click\\\" events.\"\n );\n }\n res += \"\\\"\" + name + \"\\\":\" + (genHandler(name, handler)) + \",\";\n }\n return res.slice(0, -1) + '}'\n}\n\nfunction genHandler (\n name,\n handler\n) {\n if (!handler) {\n return 'function(){}'\n }\n\n if (Array.isArray(handler)) {\n return (\"[\" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + \"]\")\n }\n\n var isMethodPath = simplePathRE.test(handler.value);\n var isFunctionExpression = fnExpRE.test(handler.value);\n\n if (!handler.modifiers) {\n return isMethodPath || isFunctionExpression\n ? handler.value\n : (\"function($event){\" + (handler.value) + \"}\") // inline statement\n } else {\n var code = '';\n var genModifierCode = '';\n var keys = [];\n for (var key in handler.modifiers) {\n if (modifierCode[key]) {\n genModifierCode += modifierCode[key];\n // left/right\n if (keyCodes[key]) {\n keys.push(key);\n }\n } else {\n keys.push(key);\n }\n }\n if (keys.length) {\n code += genKeyFilter(keys);\n }\n // Make sure modifiers like prevent and stop get executed after key filtering\n if (genModifierCode) {\n code += genModifierCode;\n }\n var handlerCode = isMethodPath\n ? handler.value + '($event)'\n : isFunctionExpression\n ? (\"(\" + (handler.value) + \")($event)\")\n : handler.value;\n return (\"function($event){\" + code + handlerCode + \"}\")\n }\n}\n\nfunction genKeyFilter (keys) {\n return (\"if(!('button' in $event)&&\" + (keys.map(genFilterCode).join('&&')) + \")return null;\")\n}\n\nfunction genFilterCode (key) {\n var keyVal = parseInt(key, 10);\n if (keyVal) {\n return (\"$event.keyCode!==\" + keyVal)\n }\n var alias = keyCodes[key];\n return (\"_k($event.keyCode,\" + (JSON.stringify(key)) + (alias ? ',' + JSON.stringify(alias) : '') + \")\")\n}\n\n/* */\n\nfunction on (el, dir) {\n if (process.env.NODE_ENV !== 'production' && dir.modifiers) {\n warn(\"v-on without argument does not support modifiers.\");\n }\n el.wrapListeners = function (code) { return (\"_g(\" + code + \",\" + (dir.value) + \")\"); };\n}\n\n/* */\n\nfunction bind$1 (el, dir) {\n el.wrapData = function (code) {\n return (\"_b(\" + code + \",'\" + (el.tag) + \"',\" + (dir.value) + \",\" + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + \")\")\n };\n}\n\n/* */\n\nvar baseDirectives = {\n on: on,\n bind: bind$1,\n cloak: noop\n};\n\n/* */\n\nvar CodegenState = function CodegenState (options) {\n this.options = options;\n this.warn = options.warn || baseWarn;\n this.transforms = pluckModuleFunction(options.modules, 'transformCode');\n this.dataGenFns = pluckModuleFunction(options.modules, 'genData');\n this.directives = extend(extend({}, baseDirectives), options.directives);\n var isReservedTag = options.isReservedTag || no;\n this.maybeComponent = function (el) { return !isReservedTag(el.tag); };\n this.onceId = 0;\n this.staticRenderFns = [];\n};\n\n\n\nfunction generate (\n ast,\n options\n) {\n var state = new CodegenState(options);\n var code = ast ? genElement(ast, state) : '_c(\"div\")';\n return {\n render: (\"with(this){return \" + code + \"}\"),\n staticRenderFns: state.staticRenderFns\n }\n}\n\nfunction genElement (el, state) {\n if (el.staticRoot && !el.staticProcessed) {\n return genStatic(el, state)\n } else if (el.once && !el.onceProcessed) {\n return genOnce(el, state)\n } else if (el.for && !el.forProcessed) {\n return genFor(el, state)\n } else if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.tag === 'template' && !el.slotTarget) {\n return genChildren(el, state) || 'void 0'\n } else if (el.tag === 'slot') {\n return genSlot(el, state)\n } else {\n // component or element\n var code;\n if (el.component) {\n code = genComponent(el.component, el, state);\n } else {\n var data = el.plain ? undefined : genData$2(el, state);\n\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n code = \"_c('\" + (el.tag) + \"'\" + (data ? (\",\" + data) : '') + (children ? (\",\" + children) : '') + \")\";\n }\n // module transforms\n for (var i = 0; i < state.transforms.length; i++) {\n code = state.transforms[i](el, code);\n }\n return code\n }\n}\n\n// hoist static sub-trees out\nfunction genStatic (el, state) {\n el.staticProcessed = true;\n state.staticRenderFns.push((\"with(this){return \" + (genElement(el, state)) + \"}\"));\n return (\"_m(\" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + \")\")\n}\n\n// v-once\nfunction genOnce (el, state) {\n el.onceProcessed = true;\n if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.staticInFor) {\n var key = '';\n var parent = el.parent;\n while (parent) {\n if (parent.for) {\n key = parent.key;\n break\n }\n parent = parent.parent;\n }\n if (!key) {\n process.env.NODE_ENV !== 'production' && state.warn(\n \"v-once can only be used inside v-for that is keyed. \"\n );\n return genElement(el, state)\n }\n return (\"_o(\" + (genElement(el, state)) + \",\" + (state.onceId++) + \",\" + key + \")\")\n } else {\n return genStatic(el, state)\n }\n}\n\nfunction genIf (\n el,\n state,\n altGen,\n altEmpty\n) {\n el.ifProcessed = true; // avoid recursion\n return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)\n}\n\nfunction genIfConditions (\n conditions,\n state,\n altGen,\n altEmpty\n) {\n if (!conditions.length) {\n return altEmpty || '_e()'\n }\n\n var condition = conditions.shift();\n if (condition.exp) {\n return (\"(\" + (condition.exp) + \")?\" + (genTernaryExp(condition.block)) + \":\" + (genIfConditions(conditions, state, altGen, altEmpty)))\n } else {\n return (\"\" + (genTernaryExp(condition.block)))\n }\n\n // v-if with v-once should generate code like (a)?_m(0):_m(1)\n function genTernaryExp (el) {\n return altGen\n ? altGen(el, state)\n : el.once\n ? genOnce(el, state)\n : genElement(el, state)\n }\n}\n\nfunction genFor (\n el,\n state,\n altGen,\n altHelper\n) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n\n if (process.env.NODE_ENV !== 'production' &&\n state.maybeComponent(el) &&\n el.tag !== 'slot' &&\n el.tag !== 'template' &&\n !el.key\n ) {\n state.warn(\n \"<\" + (el.tag) + \" v-for=\\\"\" + alias + \" in \" + exp + \"\\\">: component lists rendered with \" +\n \"v-for should have explicit keys. \" +\n \"See https://vuejs.org/guide/list.html#key for more info.\",\n true /* tip */\n );\n }\n\n el.forProcessed = true; // avoid recursion\n return (altHelper || '_l') + \"((\" + exp + \"),\" +\n \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n \"return \" + ((altGen || genElement)(el, state)) +\n '})'\n}\n\nfunction genData$2 (el, state) {\n var data = '{';\n\n // directives first.\n // directives may mutate the el's other properties before they are generated.\n var dirs = genDirectives(el, state);\n if (dirs) { data += dirs + ','; }\n\n // key\n if (el.key) {\n data += \"key:\" + (el.key) + \",\";\n }\n // ref\n if (el.ref) {\n data += \"ref:\" + (el.ref) + \",\";\n }\n if (el.refInFor) {\n data += \"refInFor:true,\";\n }\n // pre\n if (el.pre) {\n data += \"pre:true,\";\n }\n // record original tag name for components using \"is\" attribute\n if (el.component) {\n data += \"tag:\\\"\" + (el.tag) + \"\\\",\";\n }\n // module data generation functions\n for (var i = 0; i < state.dataGenFns.length; i++) {\n data += state.dataGenFns[i](el);\n }\n // attributes\n if (el.attrs) {\n data += \"attrs:{\" + (genProps(el.attrs)) + \"},\";\n }\n // DOM props\n if (el.props) {\n data += \"domProps:{\" + (genProps(el.props)) + \"},\";\n }\n // event handlers\n if (el.events) {\n data += (genHandlers(el.events, false, state.warn)) + \",\";\n }\n if (el.nativeEvents) {\n data += (genHandlers(el.nativeEvents, true, state.warn)) + \",\";\n }\n // slot target\n if (el.slotTarget) {\n data += \"slot:\" + (el.slotTarget) + \",\";\n }\n // scoped slots\n if (el.scopedSlots) {\n data += (genScopedSlots(el.scopedSlots, state)) + \",\";\n }\n // component v-model\n if (el.model) {\n data += \"model:{value:\" + (el.model.value) + \",callback:\" + (el.model.callback) + \",expression:\" + (el.model.expression) + \"},\";\n }\n // inline-template\n if (el.inlineTemplate) {\n var inlineTemplate = genInlineTemplate(el, state);\n if (inlineTemplate) {\n data += inlineTemplate + \",\";\n }\n }\n data = data.replace(/,$/, '') + '}';\n // v-bind data wrap\n if (el.wrapData) {\n data = el.wrapData(data);\n }\n // v-on data wrap\n if (el.wrapListeners) {\n data = el.wrapListeners(data);\n }\n return data\n}\n\nfunction genDirectives (el, state) {\n var dirs = el.directives;\n if (!dirs) { return }\n var res = 'directives:[';\n var hasRuntime = false;\n var i, l, dir, needRuntime;\n for (i = 0, l = dirs.length; i < l; i++) {\n dir = dirs[i];\n needRuntime = true;\n var gen = state.directives[dir.name];\n if (gen) {\n // compile-time directive that manipulates AST.\n // returns true if it also needs a runtime counterpart.\n needRuntime = !!gen(el, dir, state.warn);\n }\n if (needRuntime) {\n hasRuntime = true;\n res += \"{name:\\\"\" + (dir.name) + \"\\\",rawName:\\\"\" + (dir.rawName) + \"\\\"\" + (dir.value ? (\",value:(\" + (dir.value) + \"),expression:\" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (\",arg:\\\"\" + (dir.arg) + \"\\\"\") : '') + (dir.modifiers ? (\",modifiers:\" + (JSON.stringify(dir.modifiers))) : '') + \"},\";\n }\n }\n if (hasRuntime) {\n return res.slice(0, -1) + ']'\n }\n}\n\nfunction genInlineTemplate (el, state) {\n var ast = el.children[0];\n if (process.env.NODE_ENV !== 'production' && (\n el.children.length > 1 || ast.type !== 1\n )) {\n state.warn('Inline-template components must have exactly one child element.');\n }\n if (ast.type === 1) {\n var inlineRenderFns = generate(ast, state.options);\n return (\"inlineTemplate:{render:function(){\" + (inlineRenderFns.render) + \"},staticRenderFns:[\" + (inlineRenderFns.staticRenderFns.map(function (code) { return (\"function(){\" + code + \"}\"); }).join(',')) + \"]}\")\n }\n}\n\nfunction genScopedSlots (\n slots,\n state\n) {\n return (\"scopedSlots:_u([\" + (Object.keys(slots).map(function (key) {\n return genScopedSlot(key, slots[key], state)\n }).join(',')) + \"])\")\n}\n\nfunction genScopedSlot (\n key,\n el,\n state\n) {\n if (el.for && !el.forProcessed) {\n return genForScopedSlot(key, el, state)\n }\n return \"{key:\" + key + \",fn:function(\" + (String(el.attrsMap.scope)) + \"){\" +\n \"return \" + (el.tag === 'template'\n ? genChildren(el, state) || 'void 0'\n : genElement(el, state)) + \"}}\"\n}\n\nfunction genForScopedSlot (\n key,\n el,\n state\n) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n el.forProcessed = true; // avoid recursion\n return \"_l((\" + exp + \"),\" +\n \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n \"return \" + (genScopedSlot(key, el, state)) +\n '})'\n}\n\nfunction genChildren (\n el,\n state,\n checkSkip,\n altGenElement,\n altGenNode\n) {\n var children = el.children;\n if (children.length) {\n var el$1 = children[0];\n // optimize single v-for\n if (children.length === 1 &&\n el$1.for &&\n el$1.tag !== 'template' &&\n el$1.tag !== 'slot'\n ) {\n return (altGenElement || genElement)(el$1, state)\n }\n var normalizationType = checkSkip\n ? getNormalizationType(children, state.maybeComponent)\n : 0;\n var gen = altGenNode || genNode;\n return (\"[\" + (children.map(function (c) { return gen(c, state); }).join(',')) + \"]\" + (normalizationType ? (\",\" + normalizationType) : ''))\n }\n}\n\n// determine the normalization needed for the children array.\n// 0: no normalization needed\n// 1: simple normalization needed (possible 1-level deep nested array)\n// 2: full normalization needed\nfunction getNormalizationType (\n children,\n maybeComponent\n) {\n var res = 0;\n for (var i = 0; i < children.length; i++) {\n var el = children[i];\n if (el.type !== 1) {\n continue\n }\n if (needsNormalization(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {\n res = 2;\n break\n }\n if (maybeComponent(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {\n res = 1;\n }\n }\n return res\n}\n\nfunction needsNormalization (el) {\n return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'\n}\n\nfunction genNode (node, state) {\n if (node.type === 1) {\n return genElement(node, state)\n } if (node.type === 3 && node.isComment) {\n return genComment(node)\n } else {\n return genText(node)\n }\n}\n\nfunction genText (text) {\n return (\"_v(\" + (text.type === 2\n ? text.expression // no need for () because already wrapped in _s()\n : transformSpecialNewlines(JSON.stringify(text.text))) + \")\")\n}\n\nfunction genComment (comment) {\n return (\"_e(\" + (JSON.stringify(comment.text)) + \")\")\n}\n\nfunction genSlot (el, state) {\n var slotName = el.slotName || '\"default\"';\n var children = genChildren(el, state);\n var res = \"_t(\" + slotName + (children ? (\",\" + children) : '');\n var attrs = el.attrs && (\"{\" + (el.attrs.map(function (a) { return ((camelize(a.name)) + \":\" + (a.value)); }).join(',')) + \"}\");\n var bind$$1 = el.attrsMap['v-bind'];\n if ((attrs || bind$$1) && !children) {\n res += \",null\";\n }\n if (attrs) {\n res += \",\" + attrs;\n }\n if (bind$$1) {\n res += (attrs ? '' : ',null') + \",\" + bind$$1;\n }\n return res + ')'\n}\n\n// componentName is el.component, take it as argument to shun flow's pessimistic refinement\nfunction genComponent (\n componentName,\n el,\n state\n) {\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n return (\"_c(\" + componentName + \",\" + (genData$2(el, state)) + (children ? (\",\" + children) : '') + \")\")\n}\n\nfunction genProps (props) {\n var res = '';\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n res += \"\\\"\" + (prop.name) + \"\\\":\" + (transformSpecialNewlines(prop.value)) + \",\";\n }\n return res.slice(0, -1)\n}\n\n// #3895, #4268\nfunction transformSpecialNewlines (text) {\n return text\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n}\n\n/* */\n\n// these keywords should not appear inside expressions, but operators like\n// typeof, instanceof and in are allowed\nvar prohibitedKeywordRE = new RegExp('\\\\b' + (\n 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\n 'super,throw,while,yield,delete,export,import,return,switch,default,' +\n 'extends,finally,continue,debugger,function,arguments'\n).split(',').join('\\\\b|\\\\b') + '\\\\b');\n\n// these unary operators should not be used as property/method names\nvar unaryOperatorsRE = new RegExp('\\\\b' + (\n 'delete,typeof,void'\n).split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') + '\\\\s*\\\\([^\\\\)]*\\\\)');\n\n// check valid identifier for v-for\nvar identRE = /[A-Za-z_$][\\w$]*/;\n\n// strip strings in expressions\nvar stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n\n// detect problematic expressions in a template\nfunction detectErrors (ast) {\n var errors = [];\n if (ast) {\n checkNode(ast, errors);\n }\n return errors\n}\n\nfunction checkNode (node, errors) {\n if (node.type === 1) {\n for (var name in node.attrsMap) {\n if (dirRE.test(name)) {\n var value = node.attrsMap[name];\n if (value) {\n if (name === 'v-for') {\n checkFor(node, (\"v-for=\\\"\" + value + \"\\\"\"), errors);\n } else if (onRE.test(name)) {\n checkEvent(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n } else {\n checkExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n }\n }\n }\n }\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n checkNode(node.children[i], errors);\n }\n }\n } else if (node.type === 2) {\n checkExpression(node.expression, node.text, errors);\n }\n}\n\nfunction checkEvent (exp, text, errors) {\n var stipped = exp.replace(stripStringRE, '');\n var keywordMatch = stipped.match(unaryOperatorsRE);\n if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {\n errors.push(\n \"avoid using JavaScript unary operator as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\" in expression \" + (text.trim())\n );\n }\n checkExpression(exp, text, errors);\n}\n\nfunction checkFor (node, text, errors) {\n checkExpression(node.for || '', text, errors);\n checkIdentifier(node.alias, 'v-for alias', text, errors);\n checkIdentifier(node.iterator1, 'v-for iterator', text, errors);\n checkIdentifier(node.iterator2, 'v-for iterator', text, errors);\n}\n\nfunction checkIdentifier (ident, type, text, errors) {\n if (typeof ident === 'string' && !identRE.test(ident)) {\n errors.push((\"invalid \" + type + \" \\\"\" + ident + \"\\\" in expression: \" + (text.trim())));\n }\n}\n\nfunction checkExpression (exp, text, errors) {\n try {\n new Function((\"return \" + exp));\n } catch (e) {\n var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\n if (keywordMatch) {\n errors.push(\n \"avoid using JavaScript keyword as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\" in expression \" + (text.trim())\n );\n } else {\n errors.push((\"invalid expression: \" + (text.trim())));\n }\n }\n}\n\n/* */\n\nfunction createFunction (code, errors) {\n try {\n return new Function(code)\n } catch (err) {\n errors.push({ err: err, code: code });\n return noop\n }\n}\n\nfunction createCompileToFunctionFn (compile) {\n var cache = Object.create(null);\n\n return function compileToFunctions (\n template,\n options,\n vm\n ) {\n options = options || {};\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n // detect possible CSP restriction\n try {\n new Function('return 1');\n } catch (e) {\n if (e.toString().match(/unsafe-eval|CSP/)) {\n warn(\n 'It seems you are using the standalone build of Vue.js in an ' +\n 'environment with Content Security Policy that prohibits unsafe-eval. ' +\n 'The template compiler cannot work in this environment. Consider ' +\n 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +\n 'templates into render functions.'\n );\n }\n }\n }\n\n // check cache\n var key = options.delimiters\n ? String(options.delimiters) + template\n : template;\n if (cache[key]) {\n return cache[key]\n }\n\n // compile\n var compiled = compile(template, options);\n\n // check compilation errors/tips\n if (process.env.NODE_ENV !== 'production') {\n if (compiled.errors && compiled.errors.length) {\n warn(\n \"Error compiling template:\\n\\n\" + template + \"\\n\\n\" +\n compiled.errors.map(function (e) { return (\"- \" + e); }).join('\\n') + '\\n',\n vm\n );\n }\n if (compiled.tips && compiled.tips.length) {\n compiled.tips.forEach(function (msg) { return tip(msg, vm); });\n }\n }\n\n // turn code into functions\n var res = {};\n var fnGenErrors = [];\n res.render = createFunction(compiled.render, fnGenErrors);\n res.staticRenderFns = compiled.staticRenderFns.map(function (code) {\n return createFunction(code, fnGenErrors)\n });\n\n // check function generation errors.\n // this should only happen if there is a bug in the compiler itself.\n // mostly for codegen development use\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\n warn(\n \"Failed to generate render function:\\n\\n\" +\n fnGenErrors.map(function (ref) {\n var err = ref.err;\n var code = ref.code;\n\n return ((err.toString()) + \" in\\n\\n\" + code + \"\\n\");\n }).join('\\n'),\n vm\n );\n }\n }\n\n return (cache[key] = res)\n }\n}\n\n/* */\n\nfunction createCompilerCreator (baseCompile) {\n return function createCompiler (baseOptions) {\n function compile (\n template,\n options\n ) {\n var finalOptions = Object.create(baseOptions);\n var errors = [];\n var tips = [];\n finalOptions.warn = function (msg, tip) {\n (tip ? tips : errors).push(msg);\n };\n\n if (options) {\n // merge custom modules\n if (options.modules) {\n finalOptions.modules =\n (baseOptions.modules || []).concat(options.modules);\n }\n // merge custom directives\n if (options.directives) {\n finalOptions.directives = extend(\n Object.create(baseOptions.directives),\n options.directives\n );\n }\n // copy other options\n for (var key in options) {\n if (key !== 'modules' && key !== 'directives') {\n finalOptions[key] = options[key];\n }\n }\n }\n\n var compiled = baseCompile(template, finalOptions);\n if (process.env.NODE_ENV !== 'production') {\n errors.push.apply(errors, detectErrors(compiled.ast));\n }\n compiled.errors = errors;\n compiled.tips = tips;\n return compiled\n }\n\n return {\n compile: compile,\n compileToFunctions: createCompileToFunctionFn(compile)\n }\n }\n}\n\n/* */\n\n// `createCompilerCreator` allows creating compilers that use alternative\n// parser/optimizer/codegen, e.g the SSR optimizing compiler.\n// Here we just export a default compiler using the default parts.\nvar createCompiler = createCompilerCreator(function baseCompile (\n template,\n options\n) {\n var ast = parse(template.trim(), options);\n optimize(ast, options);\n var code = generate(ast, options);\n return {\n ast: ast,\n render: code.render,\n staticRenderFns: code.staticRenderFns\n }\n});\n\n/* */\n\nvar ref$1 = createCompiler(baseOptions);\nvar compileToFunctions = ref$1.compileToFunctions;\n\n/* */\n\nvar idToTemplate = cached(function (id) {\n var el = query(id);\n return el && el.innerHTML\n});\n\nvar mount = Vue$3.prototype.$mount;\nVue$3.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && query(el);\n\n /* istanbul ignore if */\n if (el === document.body || el === document.documentElement) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Do not mount Vue to <html> or <body> - mount to normal elements instead.\"\n );\n return this\n }\n\n var options = this.$options;\n // resolve template/el and convert to render function\n if (!options.render) {\n var template = options.template;\n if (template) {\n if (typeof template === 'string') {\n if (template.charAt(0) === '#') {\n template = idToTemplate(template);\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !template) {\n warn(\n (\"Template element not found or is empty: \" + (options.template)),\n this\n );\n }\n }\n } else if (template.nodeType) {\n template = template.innerHTML;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn('invalid template option:' + template, this);\n }\n return this\n }\n } else if (el) {\n template = getOuterHTML(el);\n }\n if (template) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n mark('compile');\n }\n\n var ref = compileToFunctions(template, {\n shouldDecodeNewlines: shouldDecodeNewlines,\n delimiters: options.delimiters,\n comments: options.comments\n }, this);\n var render = ref.render;\n var staticRenderFns = ref.staticRenderFns;\n options.render = render;\n options.staticRenderFns = staticRenderFns;\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n mark('compile end');\n measure(((this._name) + \" compile\"), 'compile', 'compile end');\n }\n }\n }\n return mount.call(this, el, hydrating)\n};\n\n/**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\nfunction getOuterHTML (el) {\n if (el.outerHTML) {\n return el.outerHTML\n } else {\n var container = document.createElement('div');\n container.appendChild(el.cloneNode(true));\n return container.innerHTML\n }\n}\n\nVue$3.compile = compileToFunctions;\n\nexport default Vue$3;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue/dist/vue.esm.js\n// module id = 5\n// module chunks = 0","<template>\n <div id=\"app\">\n <div style=\"padding: 10px;\">\n <a class=\"github-button\"\n href=\"https://github.com/euvl/vue-js-grid\"\n data-icon=\"octicon-star\"\n data-show-count=\"true\"\n aria-label=\"Star euvl/vue-js-grid on GitHub\">Star</a>\n </div>\n <div class=\"color-header\">\n <Icon :color=\"selected\" style=\"width: auto;\">\n vue-js-grid\n </Icon>\n </div>\n <grid\n :center=\"false\"\n :draggable=\"true\"\n :sortable=\"true\"\n :items=\"colors\"\n :height=\"80\"\n :width=\"80\"\n @change=\"change\"\n @remove=\"remove\"\n @click=\"click\"\n @sort=\"sort\">\n <template slot=\"cell\" scope=\"props\">\n <Icon :color=\"props.item\"\n :index=\"props.index\"\n :with-button=\"true\"\n @remove=\"props.remove()\"/>\n </template>\n </grid>\n<!--\n <grid\n :center=\"false\"\n :draggable=\"true\"\n :sortable=\"true\"\n :items=\"items\"\n @change=\"change\"\n @remove=\"remove\"\n @sort=\"sort\">\n <template slot=\"cell\" scope=\"scope\">\n <Icon :index=\"scope.index\">\n {{scope.index}} / {{scope.sort}}\n </Icon>\n </template>\n </grid>\n-->\n </div>\n\n</template>\n\n<script>\nimport Icon from './Icon.vue'\nimport { generateRGBColors } from './util'\n\nexport default {\n name: 'app',\n components: {\n Icon\n },\n data () {\n let colors = generateRGBColors(20)\n\n return {\n colors,\n selected: null\n }\n },\n\n mounted () {\n /*\n setInterval(() => {\n let item = {\n color: generateRGBColors(1)[0],\n index: this.items.length\n }\n this.items.push(item)\n }, 5000)\n */\n },\n\n methods: {\n click ({ items, index }) {\n let value = items.find(v => v.index === index)\n this.selected = value.item\n\n console.log(this.selected)\n },\n\n change (event) {\n console.log('change', event)\n },\n\n remove (event) {\n console.log('remove', event)\n },\n\n sort (event) {\n console.log('sort', event)\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\nbody {\n background: #fafafa;\n}\n\n#app {\n font-family: 'Avenir', Helvetica, Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n color: #2c3e50;\n}\n\n.color-header {\n position: relative;\n padding: 10px 0;\n box-sizing: border-box;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// App.vue?ed3824b6","<template>\n <div class=\"icon\" :style=\"style\">\n <div v-if=\"withButton\"\n class=\"icon-delete-btn\"\n @mousedown=\"remove\"></div>\n <slot>\n </slot>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'Icon',\n props: {\n index: {\n type: Number\n },\n withButton: {\n type: Boolean,\n default: false\n },\n color: {\n type: Object,\n default: () => {\n return null\n }\n }\n },\n computed: {\n brightness () {\n let { r, g, b } = this.color\n\n return 0.299 * r + 0.587 * g + 0.114 * b\n },\n style () {\n if (this.color) {\n let { r, g, b } = this.color\n let background = `rgb(${r}, ${g}, ${b})`\n let shadow = `rgba(${r}, ${g}, ${b}, 0.5)`\n\n return {\n 'background-color': background,\n 'box-shadow': `0px 6px 20px ${shadow}`,\n 'color': this.brightness > 180 ? '#777' : '#f3f3f3'\n }\n }\n\n return null\n }\n },\n methods: {\n remove () {\n this.$emit('remove', {\n index: this.index\n })\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n\n@keyframes shake {\n from {\n transform: rotate(-4deg);\n },\n\n to {\n transform: rotate(4deg);\n }\n}\n\n.icon {\n position: relative;\n background-color: transparent;\n margin: 14px;\n height: 52px;\n width: 52px;\n\n border-radius: 10px;\n box-shadow: 0px 6px 20px rgba(0, 0, 0, 0.07);\n color: #777;\n\n font-weight: 900;\n font-size: 12px;\n\n line-height: 52px;\n text-align: center;\n\n transition: all 0.3s;\n\n cursor: pointer;\n\n .icon-delete-btn {\n display: block;\n position: absolute;\n\n width: 8px;\n height: 8px;\n border-radius: 7px;\n\n right: 6px;\n top: 6px;\n\n border: 1px solid rgba(255, 255, 255, 0.4);\n background: rgba(255, 255, 255, 0.2);\n }\n}\n\n.v-grid-item-dragging .icon {\n animation-name: shake;\n animation-duration: 0.07s;\n animation-iteration-count: infinite;\n animation-direction: alternate;\n}\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// Icon.vue?1e6f731c","import Vue from 'vue'\nimport App from './App.vue'\nimport Grid from 'plugin'\n\nVue.use(Grid)\n\nnew Vue({\n el: '#app',\n render: h => h(App)\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","export const randomInt = (fr, to) => {\n return Math.round(fr + Math.random() * to)\n}\n\nexport const generateRGBColors = (count) => {\n return Array.apply(null, new Array(count)).map((none, i) => {\n return {\n r: randomInt(0, 255),\n g: randomInt(0, 255),\n b: randomInt(0, 255)\n }\n })\n}\n\nexport default {\n randomInt,\n generateRGBColors\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util.js","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"@keyframes shake{0%{transform:rotate(-4deg)}to{transform:rotate(4deg)}}.icon{position:relative;background-color:transparent;margin:14px;height:52px;width:52px;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.07);color:#777;font-weight:900;font-size:12px;line-height:52px;text-align:center;transition:all .3s;cursor:pointer}.icon .icon-delete-btn{display:block;position:absolute;width:8px;height:8px;border-radius:7px;right:6px;top:6px;border:1px solid hsla(0,0%,100%,.4);background:hsla(0,0%,100%,.2)}.v-grid-item-dragging .icon{animation-name:shake;animation-duration:.07s;animation-iteration-count:infinite;animation-direction:alternate}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-2705adf2\",\"scoped\":false,\"hasInlineConfig\":false}!./~/sass-loader/lib/loader.js!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/Icon.vue\n// module id = 10\n// module chunks = 0","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"body{background:#fafafa}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50}.color-header{position:relative;padding:10px 0;box-sizing:border-box}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-46e720b8\",\"scoped\":false,\"hasInlineConfig\":false}!./~/sass-loader/lib/loader.js!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/App.vue\n// module id = 11\n// module chunks = 0","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader!../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-2705adf2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader!../node_modules/vue-loader/lib/selector?type=styles&index=0!./Icon.vue\")\n\nvar Component = require(\"!../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./Icon.vue\"),\n /* template */\n require(\"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2705adf2\\\"}!../node_modules/vue-loader/lib/selector?type=template&index=0!./Icon.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/Icon.vue\n// module id = 12\n// module chunks = 0","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"icon\",\n style: (_vm.style)\n }, [(_vm.withButton) ? _c('div', {\n staticClass: \"icon-delete-btn\",\n on: {\n \"mousedown\": _vm.remove\n }\n }) : _vm._e(), _vm._v(\" \"), _vm._t(\"default\")], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2705adf2\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/Icon.vue\n// module id = 13\n// module chunks = 0","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_vm._m(0), _vm._v(\" \"), _c('div', {\n staticClass: \"color-header\"\n }, [_c('Icon', {\n staticStyle: {\n \"width\": \"auto\"\n },\n attrs: {\n \"color\": _vm.selected\n }\n }, [_vm._v(\"\\n vue-js-grid\\n \")])], 1), _vm._v(\" \"), _c('grid', {\n attrs: {\n \"center\": false,\n \"draggable\": true,\n \"sortable\": true,\n \"items\": _vm.colors,\n \"height\": 80,\n \"width\": 80\n },\n on: {\n \"change\": _vm.change,\n \"remove\": _vm.remove,\n \"click\": _vm.click,\n \"sort\": _vm.sort\n },\n scopedSlots: _vm._u([{\n key: \"cell\",\n fn: function(props) {\n return [_c('Icon', {\n attrs: {\n \"color\": props.item,\n \"index\": props.index,\n \"with-button\": true\n },\n on: {\n \"remove\": function($event) {\n props.remove()\n }\n }\n })]\n }\n }])\n })], 1)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticStyle: {\n \"padding\": \"10px\"\n }\n }, [_c('a', {\n staticClass: \"github-button\",\n attrs: {\n \"href\": \"https://github.com/euvl/vue-js-grid\",\n \"data-icon\": \"octicon-star\",\n \"data-show-count\": \"true\",\n \"aria-label\": \"Star euvl/vue-js-grid on GitHub\"\n }\n }, [_vm._v(\"Star\")])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-46e720b8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = 14\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../node_modules/css-loader/index.js!../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"id\\\":\\\"data-v-2705adf2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/sass-loader/lib/loader.js!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./Icon.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = require(\"!../node_modules/vue-style-loader/lib/addStylesClient.js\")(\"187206ec\", content, true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-style-loader!./~/css-loader!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-2705adf2\",\"scoped\":false,\"hasInlineConfig\":false}!./~/sass-loader/lib/loader.js!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/Icon.vue\n// module id = 15\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../node_modules/css-loader/index.js!../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"id\\\":\\\"data-v-46e720b8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/sass-loader/lib/loader.js!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./App.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = require(\"!../node_modules/vue-style-loader/lib/addStylesClient.js\")(\"e61d7c06\", content, true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-style-loader!./~/css-loader!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-46e720b8\",\"scoped\":false,\"hasInlineConfig\":false}!./~/sass-loader/lib/loader.js!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/App.vue\n// module id = 16\n// module chunks = 0","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nmodule.exports = function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-style-loader/lib/listToStyles.js\n// module id = 17\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 18\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 19\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/demo/.babelrc b/demo/.babelrc deleted file mode 100644 index 9c044eb..0000000 --- a/demo/.babelrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "presets": [ - ["env"] - ], - "plugins": ["transform-object-rest-spread"] -} diff --git a/demo/deploy.js b/demo/deploy.js deleted file mode 100644 index 4745644..0000000 --- a/demo/deploy.js +++ /dev/null @@ -1,10 +0,0 @@ -var ghpages = require('gh-pages'); -var path = require('path'); - -ghpages.publish('dist', function(err) { - console.log('Github Pages deployment done.') - - if (err) { - console.log(err) - } -}); diff --git a/demo/package.json b/demo/package.json deleted file mode 100644 index 6c50e9e..0000000 --- a/demo/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "demo", - "version": "1.0.0", - "scripts": { - "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot", - "build": "cross-env NODE_ENV=production webpack --progress --hide-modules", - "deploy": "npm run build && node ./deploy.js" - }, - "dependencies": { - "vue": "^2.0.0" - }, - "devDependencies": { - "babel-core": "^6.0.0", - "babel-loader": "^6.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0", - "babel-preset-env": "^1.6.0", - "babel-preset-latest": "^6.0.0", - "cross-env": "^3.0.0", - "css-loader": "^0.25.0", - "file-loader": "^0.9.0", - "gh-pages": "^1.0.0", - "html-webpack-plugin": "^2.30.1", - "install": "^0.10.1", - "node-sass": "^4.5.0", - "npm": "^6.13.4", - "sass-loader": "^5.0.1", - "vue-loader": "^11.1.4", - "vue-template-compiler": "^2.2.1", - "webpack": "^2.2.0", - "webpack-dev-server": "^2.2.0" - } -} diff --git a/demo/src/App.vue b/demo/src/App.vue deleted file mode 100644 index ee8a2f8..0000000 --- a/demo/src/App.vue +++ /dev/null @@ -1,123 +0,0 @@ -<template> - <div id="app"> - <div style="padding: 10px;"> - <a class="github-button" - href="https://github.com/euvl/vue-js-grid" - data-icon="octicon-star" - data-show-count="true" - aria-label="Star euvl/vue-js-grid on GitHub">Star</a> - </div> - <div class="color-header"> - <Icon :color="selected" style="width: auto;"> - vue-js-grid - </Icon> - </div> - <grid - :center="false" - :draggable="true" - :sortable="true" - :items="colors" - :height="80" - :width="80" - @change="change" - @remove="remove" - @click="click" - @sort="sort"> - <template slot="cell" scope="props"> - <Icon :color="props.item" - :index="props.index" - :with-button="true" - @remove="props.remove()"/> - </template> - </grid> -<!-- - <grid - :center="false" - :draggable="true" - :sortable="true" - :items="items" - @change="change" - @remove="remove" - @sort="sort"> - <template slot="cell" scope="scope"> - <Icon :index="scope.index"> - {{scope.index}} / {{scope.sort}} - </Icon> - </template> - </grid> ---> - </div> - -</template> - -<script> -import Icon from './Icon.vue' -import { generateRGBColors } from './util' - -export default { - name: 'app', - components: { - Icon - }, - data () { - let colors = generateRGBColors(20) - - return { - colors, - selected: null - } - }, - - mounted () { - /* - setInterval(() => { - let item = { - color: generateRGBColors(1)[0], - index: this.items.length - } - this.items.push(item) - }, 5000) - */ - }, - - methods: { - click ({ items, index }) { - let value = items.find(v => v.index === index) - this.selected = value.item - - console.log(this.selected) - }, - - change (event) { - console.log('change', event) - }, - - remove (event) { - console.log('remove', event) - }, - - sort (event) { - console.log('sort', event) - } - } -} -</script> - -<style lang="scss"> -body { - background: #fafafa; -} - -#app { - font-family: 'Avenir', Helvetica, Arial, sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - color: #2c3e50; -} - -.color-header { - position: relative; - padding: 10px 0; - box-sizing: border-box; -} -</style> diff --git a/demo/src/Icon.vue b/demo/src/Icon.vue deleted file mode 100644 index f099273..0000000 --- a/demo/src/Icon.vue +++ /dev/null @@ -1,117 +0,0 @@ -<template> - <div class="icon" :style="style"> - <div v-if="withButton" - class="icon-delete-btn" - @mousedown="remove"></div> - <slot> - </slot> - </div> -</template> - -<script> -export default { - name: 'Icon', - props: { - index: { - type: Number - }, - withButton: { - type: Boolean, - default: false - }, - color: { - type: Object, - default: () => { - return null - } - } - }, - computed: { - brightness () { - let { r, g, b } = this.color - - return 0.299 * r + 0.587 * g + 0.114 * b - }, - style () { - if (this.color) { - let { r, g, b } = this.color - let background = `rgb(${r}, ${g}, ${b})` - let shadow = `rgba(${r}, ${g}, ${b}, 0.5)` - - return { - 'background-color': background, - 'box-shadow': `0px 6px 20px ${shadow}`, - 'color': this.brightness > 180 ? '#777' : '#f3f3f3' - } - } - - return null - } - }, - methods: { - remove () { - this.$emit('remove', { - index: this.index - }) - } - } -} -</script> - -<style lang="scss"> - -@keyframes shake { - from { - transform: rotate(-4deg); - }, - - to { - transform: rotate(4deg); - } -} - -.icon { - position: relative; - background-color: transparent; - margin: 14px; - height: 52px; - width: 52px; - - border-radius: 10px; - box-shadow: 0px 6px 20px rgba(0, 0, 0, 0.07); - color: #777; - - font-weight: 900; - font-size: 12px; - - line-height: 52px; - text-align: center; - - transition: all 0.3s; - - cursor: pointer; - - .icon-delete-btn { - display: block; - position: absolute; - - width: 8px; - height: 8px; - border-radius: 7px; - - right: 6px; - top: 6px; - - border: 1px solid rgba(255, 255, 255, 0.4); - background: rgba(255, 255, 255, 0.2); - } -} - -.v-grid-item-dragging .icon { - animation-name: shake; - animation-duration: 0.07s; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -</style> diff --git a/demo/src/main.js b/demo/src/main.js deleted file mode 100644 index b0b8563..0000000 --- a/demo/src/main.js +++ /dev/null @@ -1,10 +0,0 @@ -import Vue from 'vue' -import App from './App.vue' -import Grid from 'plugin' - -Vue.use(Grid) - -new Vue({ - el: '#app', - render: h => h(App) -}) diff --git a/demo/src/util.js b/demo/src/util.js deleted file mode 100644 index 8b44f62..0000000 --- a/demo/src/util.js +++ /dev/null @@ -1,18 +0,0 @@ -export const randomInt = (fr, to) => { - return Math.round(fr + Math.random() * to) -} - -export const generateRGBColors = (count) => { - return Array.apply(null, new Array(count)).map((none, i) => { - return { - r: randomInt(0, 255), - g: randomInt(0, 255), - b: randomInt(0, 255) - } - }) -} - -export default { - randomInt, - generateRGBColors -} diff --git a/demo/webpack.config.js b/demo/webpack.config.js deleted file mode 100644 index 49d9aef..0000000 --- a/demo/webpack.config.js +++ /dev/null @@ -1,70 +0,0 @@ -var path = require('path') -var webpack = require('webpack') -var HtmlWebpackPlugin = require('html-webpack-plugin') - -module.exports = { - entry: './src/main.js', - output: { - path: path.resolve(__dirname, './dist'), - publicPath: '/dist/', - filename: 'build.js' - }, - module: { - rules: [ - { - test: /\.vue$/, - loader: 'vue-loader', - options: { - loaders: { - 'scss': 'vue-style-loader!css-loader!sass-loader', - } - } - }, - { - test: /\.js$/, - loader: 'babel-loader', - exclude: /node_modules/ - } - ] - }, - resolve: { - alias: { - 'vue$': 'vue/dist/vue.esm.js', - 'plugin': path.resolve(__dirname, '../dist/index.js') - } - }, - devServer: { - // contentBase: path.join(__dirname, 'dist'), - historyApiFallback: true, - noInfo: true - }, - performance: { - hints: false - }, - devtool: '#eval-source-map' -} - -if (process.env.NODE_ENV === 'production') { - module.exports.output.publicPath = '.' - module.exports.devtool = '#source-map' - // http://vue-loader.vuejs.org/en/workflow/production.html - module.exports.plugins = (module.exports.plugins || []).concat([ - new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: '"production"' - } - }), - new webpack.optimize.UglifyJsPlugin({ - sourceMap: true, - compress: { - warnings: false - } - }), - new webpack.LoaderOptionsPlugin({ - minimize: true - }), - new HtmlWebpackPlugin({ - template: './index.html' - }) - ]) -} diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7977b19..0000000 --- a/dist/index.js +++ /dev/null @@ -1,596 +0,0 @@ -!function(root, factory) { - "object" == typeof exports && "object" == typeof module ? module.exports = factory() : "function" == typeof define && define.amd ? define([], factory) : "object" == typeof exports ? exports["vue-js-grid"] = factory() : root["vue-js-grid"] = factory(); -}(this, function() { - return function(modules) { - function __webpack_require__(moduleId) { - if (installedModules[moduleId]) return installedModules[moduleId].exports; - var module = installedModules[moduleId] = { - i: moduleId, - l: !1, - exports: {} - }; - return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), - module.l = !0, module.exports; - } - var installedModules = {}; - return __webpack_require__.m = modules, __webpack_require__.c = installedModules, - __webpack_require__.i = function(value) { - return value; - }, __webpack_require__.d = function(exports, name, getter) { - __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, { - configurable: !1, - enumerable: !0, - get: getter - }); - }, __webpack_require__.n = function(module) { - var getter = module && module.__esModule ? function() { - return module.default; - } : function() { - return module; - }; - return __webpack_require__.d(getter, "a", getter), getter; - }, __webpack_require__.o = function(object, property) { - return Object.prototype.hasOwnProperty.call(object, property); - }, __webpack_require__.p = "/dist/", __webpack_require__(__webpack_require__.s = 6); - }([ function(module, exports) { - module.exports = function() { - var list = []; - return list.toString = function() { - for (var result = [], i = 0; i < this.length; i++) { - var item = this[i]; - item[2] ? result.push("@media " + item[2] + "{" + item[1] + "}") : result.push(item[1]); - } - return result.join(""); - }, list.i = function(modules, mediaQuery) { - "string" == typeof modules && (modules = [ [ null, modules, "" ] ]); - for (var alreadyImportedModules = {}, i = 0; i < this.length; i++) { - var id = this[i][0]; - "number" == typeof id && (alreadyImportedModules[id] = !0); - } - for (i = 0; i < modules.length; i++) { - var item = modules[i]; - "number" == typeof item[0] && alreadyImportedModules[item[0]] || (mediaQuery && !item[2] ? item[2] = mediaQuery : mediaQuery && (item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"), - list.push(item)); - } - }, list; - }; - }, function(module, exports) { - module.exports = function(rawScriptExports, compiledTemplate, scopeId, cssModules) { - var esModule, scriptExports = rawScriptExports = rawScriptExports || {}, type = typeof rawScriptExports.default; - "object" !== type && "function" !== type || (esModule = rawScriptExports, scriptExports = rawScriptExports.default); - var options = "function" == typeof scriptExports ? scriptExports.options : scriptExports; - if (compiledTemplate && (options.render = compiledTemplate.render, options.staticRenderFns = compiledTemplate.staticRenderFns), - scopeId && (options._scopeId = scopeId), cssModules) { - var computed = Object.create(options.computed || null); - Object.keys(cssModules).forEach(function(key) { - var module = cssModules[key]; - computed[key] = function() { - return module; - }; - }), options.computed = computed; - } - return { - esModule: esModule, - exports: scriptExports, - options: options - }; - }; - }, function(module, exports, __webpack_require__) { - function addStylesToDom(styles) { - for (var i = 0; i < styles.length; i++) { - var item = styles[i], domStyle = stylesInDom[item.id]; - if (domStyle) { - domStyle.refs++; - for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j](item.parts[j]); - for (;j < item.parts.length; j++) domStyle.parts.push(addStyle(item.parts[j])); - domStyle.parts.length > item.parts.length && (domStyle.parts.length = item.parts.length); - } else { - for (var parts = [], j = 0; j < item.parts.length; j++) parts.push(addStyle(item.parts[j])); - stylesInDom[item.id] = { - id: item.id, - refs: 1, - parts: parts - }; - } - } - } - function createStyleElement() { - var styleElement = document.createElement("style"); - return styleElement.type = "text/css", head.appendChild(styleElement), styleElement; - } - function addStyle(obj) { - var update, remove, styleElement = document.querySelector('style[data-vue-ssr-id~="' + obj.id + '"]'); - if (styleElement) { - if (isProduction) return noop; - styleElement.parentNode.removeChild(styleElement); - } - if (isOldIE) { - var styleIndex = singletonCounter++; - styleElement = singletonElement || (singletonElement = createStyleElement()), update = applyToSingletonTag.bind(null, styleElement, styleIndex, !1), - remove = applyToSingletonTag.bind(null, styleElement, styleIndex, !0); - } else styleElement = createStyleElement(), update = applyToTag.bind(null, styleElement), - remove = function() { - styleElement.parentNode.removeChild(styleElement); - }; - return update(obj), function(newObj) { - if (newObj) { - if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) return; - update(obj = newObj); - } else remove(); - }; - } - function applyToSingletonTag(styleElement, index, remove, obj) { - var css = remove ? "" : obj.css; - if (styleElement.styleSheet) styleElement.styleSheet.cssText = replaceText(index, css); else { - var cssNode = document.createTextNode(css), childNodes = styleElement.childNodes; - childNodes[index] && styleElement.removeChild(childNodes[index]), childNodes.length ? styleElement.insertBefore(cssNode, childNodes[index]) : styleElement.appendChild(cssNode); - } - } - function applyToTag(styleElement, obj) { - var css = obj.css, media = obj.media, sourceMap = obj.sourceMap; - if (media && styleElement.setAttribute("media", media), sourceMap && (css += "\n/*# sourceURL=" + sourceMap.sources[0] + " */", - css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */"), - styleElement.styleSheet) styleElement.styleSheet.cssText = css; else { - for (;styleElement.firstChild; ) styleElement.removeChild(styleElement.firstChild); - styleElement.appendChild(document.createTextNode(css)); - } - } - var hasDocument = "undefined" != typeof document; - if ("undefined" != typeof DEBUG && DEBUG && !hasDocument) throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."); - var listToStyles = __webpack_require__(15), stylesInDom = {}, head = hasDocument && (document.head || document.getElementsByTagName("head")[0]), singletonElement = null, singletonCounter = 0, isProduction = !1, noop = function() {}, isOldIE = "undefined" != typeof navigator && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase()); - module.exports = function(parentId, list, _isProduction) { - isProduction = _isProduction; - var styles = listToStyles(parentId, list); - return addStylesToDom(styles), function(newList) { - for (var mayRemove = [], i = 0; i < styles.length; i++) { - var item = styles[i], domStyle = stylesInDom[item.id]; - domStyle.refs--, mayRemove.push(domStyle); - } - newList ? (styles = listToStyles(parentId, newList), addStylesToDom(styles)) : styles = []; - for (var i = 0; i < mayRemove.length; i++) { - var domStyle = mayRemove[i]; - if (0 === domStyle.refs) { - for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j](); - delete stylesInDom[domStyle.id]; - } - } - }; - }; - var replaceText = function() { - var textStore = []; - return function(index, replacement) { - return textStore[index] = replacement, textStore.filter(Boolean).join("\n"); - }; - }(); - }, function(module, exports, __webpack_require__) { - __webpack_require__(13); - var Component = __webpack_require__(1)(__webpack_require__(4), __webpack_require__(11), null, null); - module.exports = Component.exports; - }, function(module, exports, __webpack_require__) { - "use strict"; - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - Object.defineProperty(exports, "__esModule", { - value: !0 - }); - var _extends = Object.assign || function(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]); - } - return target; - }, _window_size = __webpack_require__(7), _window_size2 = _interopRequireDefault(_window_size), _GridItem = __webpack_require__(10), _GridItem2 = _interopRequireDefault(_GridItem); - exports.default = { - name: "Grid", - mixins: [ _window_size2.default ], - components: { - GridItem: _GridItem2.default - }, - props: { - items: { - type: Array, - default: function() { - return []; - } - }, - gridWidth: { - type: Number, - default: -1 - }, - cellWidth: { - type: Number, - default: 80 - }, - cellHeight: { - type: Number, - default: 80 - }, - draggable: { - type: Boolean, - default: !1 - }, - dragDelay: { - type: Number, - default: 0 - }, - sortable: { - type: Boolean, - default: !1 - }, - center: { - type: Boolean, - default: !1 - } - }, - data: function() { - return { - list: [] - }; - }, - watch: { - items: { - handler: function() { - var nextItems = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; - this.list = nextItems.map(function(item, index) { - return { - item: item, - index: index, - sort: index - }; - }); - }, - immediate: !0 - } - }, - computed: { - gridResponsiveWidth: function() { - return this.gridWidth < 0 ? this.windowWidth : Math.min(this.windowWidth, this.gridWidth); - }, - height: function() { - return Math.ceil(this.list.length / this.rowCount) * this.cellHeight; - }, - style: function() { - return { - height: this.height + "px" - }; - }, - rowCount: function() { - return Math.floor(this.gridResponsiveWidth / this.cellWidth); - }, - rowShift: function() { - if (this.center) { - var contentWidth = this.list.length * this.cellWidth, rowShift = contentWidth < this.gridResponsiveWidth ? (this.gridResponsiveWidth - contentWidth) / 2 : this.gridResponsiveWidth % this.cellWidth / 2; - return Math.floor(rowShift); - } - return 0; - } - }, - methods: { - wrapEvent: function() { - var other = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; - return _extends({ - datetime: Date.now(), - items: this.getListClone() - }, other); - }, - getListClone: function() { - return this.list.slice(0).sort(function(a, b) { - return a.sort - b.sort; - }); - }, - removeItem: function(_ref) { - var index = _ref.index, removeItem = this.list.find(function(v) { - return v.index === index; - }), removeItemSort = removeItem.sort; - this.list = this.list.filter(function(v) { - return v.index !== index; - }).map(function(v) { - var sort = v.sort > removeItemSort ? v.sort - 1 : v.sort; - return _extends({}, v, { - sort: sort - }); - }), this.$emit("remove", this.wrapEvent({ - index: index - })); - }, - onDragStart: function(event) { - this.$emit("dragstart", this.wrapEvent(event)); - }, - onDragEnd: function(event) { - this.$emit("dragend", this.wrapEvent(event)); - }, - click: function(event) { - this.$emit("click", this.wrapEvent(event)); - }, - onDrag: function(event) { - this.sortable && this.sortList(event.index, event.gridPosition), this.$emit("drag", this.wrapEvent({ - event: event - })); - }, - sortList: function(itemIndex, gridPosition) { - var targetItem = this.list.find(function(item) { - return item.index === itemIndex; - }), targetItemSort = targetItem.sort; - gridPosition = Math.max(gridPosition, 0), gridPosition = Math.min(gridPosition, this.list.length - 1), - targetItemSort !== gridPosition && (this.list = this.list.map(function(item) { - if (item.index === targetItem.index) return _extends({}, item, { - sort: gridPosition - }); - var sort = item.sort; - return targetItemSort > gridPosition && sort <= targetItemSort && sort >= gridPosition ? _extends({}, item, { - sort: sort + 1 - }) : targetItemSort < gridPosition && sort >= targetItemSort && sort <= gridPosition ? _extends({}, item, { - sort: sort - 1 - }) : item; - }), this.$emit("sort", this.wrapEvent())); - } - } - }; - }, function(module, exports, __webpack_require__) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: !0 - }); - exports.default = { - name: "GridItem", - props: { - index: { - type: Number - }, - sort: { - type: Number - }, - cellWidth: { - type: Number - }, - cellHeight: { - type: Number - }, - rowCount: { - type: Number - }, - rowShift: { - type: Number, - default: 0 - }, - draggable: { - type: Boolean - }, - dragDelay: { - type: Number, - default: 0 - } - }, - data: function() { - return { - animate: !0, - dragging: !1, - shiftStartX: 0, - shiftStartY: 0, - mouseMoveStartX: 0, - mouseMoveStartY: 0, - shiftX: 0, - shiftY: 0, - timer: null, - zIndex: 1 - }; - }, - mounted: function() { - var _this = this; - this.$refs.self.addEventListener("transitionend", function(event) { - _this.dragging || (_this.zIndex = 1); - }, !1); - }, - computed: { - className: function() { - return [ "v-grid-item-wrapper", { - "v-grid-item-animate": this.animate, - "v-grid-item-dragging": this.dragging - } ]; - }, - style: function() { - var zIndex = this.zIndex, cellWidth = this.cellWidth, cellHeight = this.cellHeight, top = this.top; - return { - zIndex: zIndex, - width: cellWidth + "px", - height: cellHeight + "px", - transform: "translate3d(" + this.left + "px, " + top + "px, 0)" - }; - }, - left: function() { - return this.dragging ? this.shiftX : this.rowShift + this.sort % this.rowCount * this.cellWidth; - }, - top: function() { - return this.dragging ? this.shiftY : Math.floor(this.sort / this.rowCount) * this.cellHeight; - } - }, - methods: { - wrapEvent: function(event) { - return { - event: event, - index: this.index, - sort: this.sort - }; - }, - dragStart: function(event) { - var e = event.touches ? event.touches[0] : event; - this.zIndex = 2, this.shiftX = this.shiftStartX = this.left, this.shiftY = this.shiftStartY = this.top, - this.mouseMoveStartX = e.pageX, this.mouseMoveStartY = e.pageY, this.animate = !1, - this.dragging = !0, document.addEventListener("mousemove", this.documentMouseMove), - document.addEventListener("touchmove", this.documentMouseMove), this.$emit("dragstart", this.wrapEvent(event)); - }, - drag: function(event) { - var e = event.touches ? event.touches[0] : event, distanceX = e.pageX - this.mouseMoveStartX, distanceY = e.pageY - this.mouseMoveStartY; - this.shiftX = distanceX + this.shiftStartX, this.shiftY = distanceY + this.shiftStartY; - var gridX = Math.round(this.shiftX / this.cellWidth), gridY = Math.round(this.shiftY / this.cellHeight); - gridX = Math.min(gridX, this.rowCount - 1), gridY = Math.max(gridY, 0); - var gridPosition = gridX + gridY * this.rowCount, $event = { - event: event, - distanceX: distanceX, - distanceY: distanceY, - positionX: this.shiftX, - positionY: this.shiftY, - index: this.index, - gridX: gridX, - gridY: gridY, - gridPosition: gridPosition - }; - this.$emit("drag", $event); - }, - mousedown: function(event) { - var _this2 = this; - this.draggable && (this.timer = setTimeout(function() { - _this2.dragStart(event); - }, this.dragDelay), document.addEventListener("mouseup", this.documentMouseUp), - document.addEventListener("touchend", this.documentMouseUp)); - }, - documentMouseMove: function(event) { - this.draggable && this.dragging && this.drag(event); - }, - documentMouseUp: function(event) { - this.timer && (clearTimeout(this.timer), this.timer = null); - var dx = this.shiftStartX - this.shiftX, dy = this.shiftStartY - this.shiftY, distance = Math.sqrt(dx * dx + dy * dy); - this.animate = !0, this.dragging = !1, this.mouseMoveStartX = 0, this.mouseMoveStartY = 0, - this.shiftStartX = 0, this.shiftStartY = 0, document.removeEventListener("mousemove", this.documentMouseMove), - document.removeEventListener("touchmove", this.documentMouseMove), document.removeEventListener("mouseup", this.documentMouseUp), - document.removeEventListener("touchend", this.documentMouseUp); - var $event = this.wrapEvent(event); - distance < 4 && this.$emit("click", $event), this.$emit("dragend", $event); - } - } - }; - }, function(module, exports, __webpack_require__) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: !0 - }); - var _Grid = __webpack_require__(3), _Grid2 = function(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - }(_Grid); - exports.default = { - install: function(Vue) { - Vue.component("Grid", _Grid2.default); - } - }; - }, function(module, exports, __webpack_require__) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: !0 - }), exports.default = { - data: function() { - return { - windowHeight: 0, - windowWidth: 0 - }; - }, - created: function() { - window.addEventListener("resize", this.getWindowSize), this.getWindowSize(); - }, - mounted: function() { - this.getWindowSize(); - }, - beforeDestroy: function() { - window.removeEventListener("resize", this.getWindowSize); - }, - methods: { - getWindowSize: function() { - this.$el && (this.windowHeight = this.$el.clientHeight, this.windowWidth = this.$el.clientWidth); - } - } - }; - }, function(module, exports, __webpack_require__) { - exports = module.exports = __webpack_require__(0)(), exports.push([ module.i, ".v-grid{display:block;position:relative;width:100%}", "" ]); - }, function(module, exports, __webpack_require__) { - exports = module.exports = __webpack_require__(0)(), exports.push([ module.i, ".v-grid-item-wrapper{display:block;position:absolute;box-sizing:border-box;left:0;top:0;user-select:none;transform:translateZ(0);z-index:1}.v-grid-item-animate{transition:transform .8s ease}", "" ]); - }, function(module, exports, __webpack_require__) { - __webpack_require__(14); - var Component = __webpack_require__(1)(__webpack_require__(5), __webpack_require__(12), null, null); - module.exports = Component.exports; - }, function(module, exports) { - module.exports = { - render: function() { - var _vm = this, _h = _vm.$createElement, _c = _vm._self._c || _h; - return _c("div", { - staticClass: "v-grid", - style: _vm.style - }, _vm._l(_vm.list, function(v) { - return _c("GridItem", { - key: v.index, - attrs: { - index: v.index, - sort: v.sort, - draggable: _vm.draggable, - "drag-delay": _vm.dragDelay, - "row-count": _vm.rowCount, - "cell-width": _vm.cellWidth, - "cell-height": _vm.cellHeight, - "window-width": _vm.windowWidth, - "row-shift": _vm.rowShift - }, - on: { - dragstart: _vm.onDragStart, - dragend: _vm.onDragEnd, - drag: _vm.onDrag, - click: _vm.click - } - }, [ _vm._t("cell", null, { - item: v.item, - index: v.index, - sort: v.sort, - remove: function() { - _vm.removeItem(v); - } - }) ], 2); - })); - }, - staticRenderFns: [] - }; - }, function(module, exports) { - module.exports = { - render: function() { - var _vm = this, _h = _vm.$createElement; - return (_vm._self._c || _h)("div", { - ref: "self", - class: _vm.className, - style: _vm.style, - on: { - mousedown: _vm.mousedown, - touchstart: function($event) { - return $event.stopPropagation(), _vm.mousedown($event); - } - } - }, [ _vm._t("default") ], 2); - }, - staticRenderFns: [] - }; - }, function(module, exports, __webpack_require__) { - var content = __webpack_require__(8); - "string" == typeof content && (content = [ [ module.i, content, "" ] ]), content.locals && (module.exports = content.locals); - __webpack_require__(2)("105852af", content, !0); - }, function(module, exports, __webpack_require__) { - var content = __webpack_require__(9); - "string" == typeof content && (content = [ [ module.i, content, "" ] ]), content.locals && (module.exports = content.locals); - __webpack_require__(2)("38de0bc4", content, !0); - }, function(module, exports) { - module.exports = function(parentId, list) { - for (var styles = [], newStyles = {}, i = 0; i < list.length; i++) { - var item = list[i], id = item[0], css = item[1], media = item[2], sourceMap = item[3], part = { - id: parentId + ":" + i, - css: css, - media: media, - sourceMap: sourceMap - }; - newStyles[id] ? newStyles[id].parts.push(part) : styles.push(newStyles[id] = { - id: id, - parts: [ part ] - }); - } - return styles; - }; - } ]); -}); \ No newline at end of file diff --git a/demo/index.html b/index.html similarity index 83% rename from demo/index.html rename to index.html index 30396c6..5bc7ac4 100644 --- a/demo/index.html +++ b/index.html @@ -9,5 +9,5 @@ <div id="app"></div> <script src="https://buttons.github.io/buttons.js"></script> <script src="./dist/build.js"></script> - </body> + <script type="text/javascript" src="./build.js"></script></body> </html> diff --git a/package.json b/package.json deleted file mode 100644 index 60e3cc5..0000000 --- a/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "vue-js-grid", - "description": "Vue.js responsive grid plugin", - "version": "1.0.1", - "author": "euvl <yev.vlasenko@gmail.com>", - "private": false, - "scripts": { - "build": "cross-env NODE_ENV=production webpack --progress --hide-modules" - }, - "main": "dist/index.js", - "repository": { - "type": "git", - "url": "https://github.com/euvl/vue-js-grid.git" - }, - "bugs": { - "url": "https://github.com/euvl/vue-js-grid/issues" - }, - "keywords": [ - "vue" - ], - "devDependencies": { - "babel-core": "^6.0.0", - "babel-loader": "^6.0.0", - "babel-preset-latest": "^6.0.0", - "babel-preset-stage-2": "^6.24.1", - "cross-env": "^3.0.0", - "css-loader": "^0.25.0", - "file-loader": "^0.9.0", - "node-sass": "^4.5.0", - "sass-loader": "^5.0.1", - "uglifyjs-webpack-plugin": "^0.4.6", - "vue": "^2.0.0", - "vue-loader": "^11.1.4", - "vue-template-compiler": "^2.0.0", - "webpack": "^2.2.0", - "webpack-dev-server": "^2.2.0" - } -} diff --git a/src/Grid.vue b/src/Grid.vue deleted file mode 100644 index 647d9bc..0000000 --- a/src/Grid.vue +++ /dev/null @@ -1,245 +0,0 @@ -<template> - <div class="v-grid" :style="style"> - <GridItem v-for="v in list" - :key="v.index" - :index="v.index" - :sort="v.sort" - :draggable="draggable" - :drag-delay="dragDelay" - :row-count="rowCount" - :cell-width="cellWidth" - :cell-height="cellHeight" - :window-width="windowWidth" - :row-shift="rowShift" - @dragstart="onDragStart" - @dragend="onDragEnd" - @drag="onDrag" - @click="click"> - <slot name="cell" - :item="v.item" - :index="v.index" - :sort="v.sort" - :remove="() => { removeItem(v) }"> - </slot> - </GridItem> - </div> -</template> -<script> -import windowSize from './mixins/window_size.js' -import GridItem from './GridItem.vue' - -export default { - name: 'Grid', - mixins: [windowSize], - components: { - GridItem - }, - props: { - items: { - type: Array, - default: () => [] - }, - gridWidth: { - type: Number, - default: -1 - }, - cellWidth: { - type: Number, - default: 80, - }, - cellHeight: { - type: Number, - default: 80 - }, - draggable: { - type: Boolean, - default: false - }, - dragDelay: { - type: Number, - default: 0 - }, - sortable: { - type: Boolean, - default: false - }, - center: { - type: Boolean, - default: false - } - }, - data () { - return { - list: [] - } - }, - watch: { - items: { - handler: function (nextItems = []) { - this.list = nextItems.map((item, index) => { - return { - item, - index: index, - sort: index - } - }) - }, - immediate: true - } - }, - computed: { - gridResponsiveWidth () { - if (this.gridWidth < 0) { - return this.windowWidth - } else { - return Math.min(this.windowWidth, this.gridWidth) - } - }, - - height () { - return Math.ceil(this.list.length / this.rowCount) * - this.cellHeight - }, - - style () { - return { - height: this.height + 'px' - } - }, - - rowCount () { - return Math.floor(this.gridResponsiveWidth / this.cellWidth) - }, - - rowShift () { - if (this.center) { - let contentWidth = this.list.length * this.cellWidth - let rowShift = contentWidth < this.gridResponsiveWidth - ? (this.gridResponsiveWidth - contentWidth) / 2 - : (this.gridResponsiveWidth % this.cellWidth) / 2 - - return Math.floor(rowShift) - } - - return 0 - } - }, - methods: { - /* Returns merged event object */ - wrapEvent (other = {}) { - return { - datetime: Date.now(), - items: this.getListClone(), - ...other - } - }, - /* Returns sorted clone of "list" array */ - getListClone () { - return this.list - .slice(0) - .sort((a, b) => { - return a.sort - b.sort - }) - // .map(v => { - // return { ...v.item } - // }) - }, - - removeItem ({ index }) { - let removeItem = this.list.find(v => v.index === index) - let removeItemSort = removeItem.sort - - this.list = this.list - .filter(v => { - return v.index !== index - }) - .map(v => { - let sort = v.sort > removeItemSort - ? (v.sort - 1) - : v.sort - - return { ...v, sort } - }) - - this.$emit('remove', this.wrapEvent({ index })) - }, - - onDragStart (event) { - this.$emit('dragstart', this.wrapEvent(event)) - }, - - onDragEnd (event) { - this.$emit('dragend', this.wrapEvent(event)) - }, - - click (event) { - this.$emit('click', this.wrapEvent(event)) - }, - - onDrag (event) { - if (this.sortable) { - this.sortList(event.index, event.gridPosition) - } - - this.$emit('drag', this.wrapEvent({ event })) - }, - - sortList (itemIndex, gridPosition) { - let targetItem = this.list.find(item => item.index === itemIndex) - let targetItemSort = targetItem.sort - - /* - Normalizing new grid position - */ - gridPosition = Math.max(gridPosition, 0) - /* - If you remove this line you can drag items to positions that - are further than items array length - */ - gridPosition = Math.min(gridPosition, this.list.length - 1) - - if (targetItemSort !== gridPosition) { - this.list = this.list.map(item => { - if (item.index === targetItem.index) { - return { - ...item, - sort: gridPosition - } - } - - const { sort } = item - - if (targetItemSort > gridPosition) { - if (sort <= targetItemSort && sort >= gridPosition) { - return { - ...item, - sort: sort + 1 - } - } - } - - if (targetItemSort < gridPosition) { - if (sort >= targetItemSort && sort <= gridPosition) { - return { - ...item, - sort: sort - 1 - } - } - } - - return item - }) - - this.$emit('sort', this.wrapEvent()) - } - } - } -} -</script> -<style> -.v-grid { - display: block; - position: relative; - width: 100%; -} -</style> diff --git a/src/GridItem.vue b/src/GridItem.vue deleted file mode 100644 index 3c903d3..0000000 --- a/src/GridItem.vue +++ /dev/null @@ -1,235 +0,0 @@ -<template> - <div ref="self" - :class="className" - :style="style" - @mousedown="mousedown" - @touchstart.stop="mousedown"> - <slot/> - </div> -</template> - -<script> -const CLICK_PIXEL_DISTANCE = 4 - -export default { - name: 'GridItem', - props: { - index: { - type: Number - }, - sort: { - type: Number - }, - cellWidth: { - type: Number - }, - cellHeight: { - type: Number - }, - rowCount: { - type: Number - }, - rowShift: { - type: Number, - default: 0 - }, - draggable: { - type: Boolean - }, - dragDelay: { - type: Number, - default: 0 - } - }, - data () { - return { - animate: true, - dragging: false, - - shiftStartX: 0, - shiftStartY: 0, - - mouseMoveStartX: 0, - mouseMoveStartY: 0, - - shiftX: 0, - shiftY: 0, - - timer: null, - - zIndex: 1 - } - }, - mounted () { - this.$refs.self - .addEventListener('transitionend', (event) => { - if (!this.dragging) { - this.zIndex = 1 - } - }, false) - }, - computed: { - className () { - let { animate, dragging } = this - - return [ - 'v-grid-item-wrapper', - { - 'v-grid-item-animate': animate, - 'v-grid-item-dragging': dragging - } - ] - }, - style () { - let { zIndex, cellWidth, cellHeight, top, left } = this - - return { - zIndex, - width: cellWidth + 'px', - height: cellHeight + 'px', - transform: `translate3d(${left}px, ${top}px, 0)` - } - }, - - left () { - return this.dragging - ? this.shiftX - : this.rowShift + (this.sort % this.rowCount) * this.cellWidth - }, - - top () { - return this.dragging - ? this.shiftY - : Math.floor(this.sort / this.rowCount) * this.cellHeight - } - }, - methods: { - wrapEvent (event) { - let { index, sort } = this - return { event, index, sort } - }, - - dragStart (event) { - let e = event.touches ? event.touches[0] : event - - this.zIndex = 2 - - this.shiftX = this.shiftStartX = this.left - this.shiftY = this.shiftStartY = this.top - - this.mouseMoveStartX = e.pageX - this.mouseMoveStartY = e.pageY - - this.animate = false - this.dragging = true - - document.addEventListener('mousemove', this.documentMouseMove) - document.addEventListener('touchmove', this.documentMouseMove) - - this.$emit('dragstart', this.wrapEvent(event)) - }, - - drag (event) { - let e = event.touches ? event.touches[0] : event - - let distanceX = e.pageX - this.mouseMoveStartX - let distanceY = e.pageY - this.mouseMoveStartY - - this.shiftX = distanceX + this.shiftStartX - this.shiftY = distanceY + this.shiftStartY - - let gridX = Math.round(this.shiftX / this.cellWidth) - let gridY = Math.round(this.shiftY / this.cellHeight) - - gridX = Math.min(gridX, this.rowCount - 1) - gridY = Math.max(gridY, 0) - - let gridPosition = gridX + gridY * this.rowCount - - const $event = { - event, - distanceX, - distanceY, - positionX: this.shiftX, - positionY: this.shiftY, - index: this.index, - gridX, - gridY, - gridPosition - } - - this.$emit('drag', $event) - }, - - mousedown (event) { - if (this.draggable) { - this.timer = setTimeout(() => { - this.dragStart(event) - }, this.dragDelay) - - document.addEventListener('mouseup', this.documentMouseUp) - document.addEventListener('touchend', this.documentMouseUp) - } - }, - - documentMouseMove (event) { - if (this.draggable && this.dragging) { - this.drag(event) - } - }, - - documentMouseUp (event) { - if (this.timer) { - clearTimeout(this.timer) - this.timer = null - } - - let dx = this.shiftStartX - this.shiftX - let dy = this.shiftStartY - this.shiftY - - let distance = Math.sqrt(dx * dx + dy * dy) - - this.animate = true - this.dragging = false - this.mouseMoveStartX = 0 - this.mouseMoveStartY = 0 - this.shiftStartX = 0 - this.shiftStartY = 0 - - document.removeEventListener('mousemove', this.documentMouseMove) - document.removeEventListener('touchmove', this.documentMouseMove) - - document.removeEventListener('mouseup', this.documentMouseUp) - document.removeEventListener('touchend', this.documentMouseUp) - - let $event = this.wrapEvent(event) - - if (distance < CLICK_PIXEL_DISTANCE) { - this.$emit('click', $event) - } - - this.$emit('dragend', $event) - } - } -} -</script> - -<style> -.v-grid-item-wrapper { - display: block; - position: absolute; - box-sizing: border-box; - - left: 0; - top: 0; - - user-select: none; - transform: translate3d(0px, 0px, 0px); - - z-index: 1; -} - -.v-grid-item-animate { - transition: transform 800ms ease; -} -</style> diff --git a/src/index.js b/src/index.js deleted file mode 100644 index 9df9f8d..0000000 --- a/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import Grid from './Grid.vue' - -export default { - install (Vue) { - Vue.component('Grid', Grid) - } -} diff --git a/src/mixins/window_size.js b/src/mixins/window_size.js deleted file mode 100644 index 516db1b..0000000 --- a/src/mixins/window_size.js +++ /dev/null @@ -1,27 +0,0 @@ -export default { - data () { - return { - windowHeight: 0, - windowWidth: 0 - } - }, - created () { - window.addEventListener('resize', this.getWindowSize) - this.getWindowSize() - }, - mounted () { - this.getWindowSize() - }, - beforeDestroy () { - window.removeEventListener('resize', this.getWindowSize) - }, - - methods: { - getWindowSize () { - if (this.$el) { - this.windowHeight = this.$el.clientHeight - this.windowWidth = this.$el.clientWidth - } - } - } -} diff --git a/src/util.js b/src/util.js deleted file mode 100644 index 54acf69..0000000 --- a/src/util.js +++ /dev/null @@ -1,5 +0,0 @@ -const distance = (x1, y1, x2, y2) => { - return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)) -} - -export default { distance } diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 4f70dd9..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,48 +0,0 @@ -var path = require('path') -var webpack = require('webpack') -var UglifyJSPlugin = require('uglifyjs-webpack-plugin'); - -module.exports = { - entry: './src/index.js', - output: { - path: path.resolve(__dirname, './dist'), - publicPath: '/dist/', - filename: 'index.js', - library:'vue-js-grid', - libraryTarget: 'umd' - }, - module: { - rules: [ - { - test: /\.vue$/, - loader: 'vue-loader' -// , -// options: { -// loaders: { -// 'scss': 'vue-style-loader!css-loader!sass-loader' -// } -// } - }, - { - test: /\.js$/, - loader: 'babel-loader', - exclude: /node_modules/ - } - ] - }, - performance: { - hints: false - }, - devtool: '#source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: '"production"' - } - }), - new UglifyJSPlugin({ - mangle: false, - beautify: true - }) - ] -}