├── .babelrc ├── README.md ├── assets ├── js │ └── app │ │ ├── app.js │ │ └── components │ │ └── welcome.vue └── scss │ ├── app │ └── app.scss │ └── vendor │ └── vendor.scss ├── footer.php ├── functions.php ├── gulpfile.js ├── header.php ├── index.php ├── package.json ├── postcss.config.js ├── public ├── css │ ├── app.css │ └── vendor.css └── js │ ├── app.js │ └── vendor.js ├── style.css └── webpack.config.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["es2015"] 4 | ] 5 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WordPress starter theme with Vue.js integrated. 2 | This theme pretty much includes only a way to compile your assets with Vue code. 3 | It's meant for you to learn Vue inside WordPress, or to create your own theme. 4 | It includes an example component. 5 | I'm using Gulp+Webpack to compile the assets. Gulp handles the CSS and running Webpack, while Webpack handles JS. 6 | 7 | There are packages you would probably want to use such as axios, vuex, etc. I would leave them to you to install. 8 | 9 | Clone the theme, run ```npm install``` and start playing. 10 | 11 | Make sure to modify the BrowserSync proxy link inside the gulpfile.js. 12 | 13 | ## Commands 14 | 1. ``` gulp ``` Will compile, start BrowserSync and watch for any changes. 15 | 2. ``` gulp production ``` Will compile and minify assets. 16 | 17 | ## Vue devtools 18 | Download it [here](https://github.com/vuejs/vue-devtools#vue-devtools) 19 | -------------------------------------------------------------------------------- /assets/js/app/app.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import welcome from './components/welcome.vue'; 3 | 4 | window.Vue = Vue; 5 | 6 | Vue.component('welcome', welcome); 7 | 8 | const app = new Vue({ 9 | el: '#app', 10 | }); 11 | 12 | 13 | -------------------------------------------------------------------------------- /assets/js/app/components/welcome.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 12 | 13 | -------------------------------------------------------------------------------- /assets/scss/app/app.scss: -------------------------------------------------------------------------------- 1 | #app { 2 | h1 { 3 | font-size: 60px; 4 | text-align: center; 5 | background: -webkit-linear-gradient(#41B883, #35495E); 6 | -webkit-background-clip: text; 7 | -webkit-text-fill-color: transparent; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /assets/scss/vendor/vendor.scss: -------------------------------------------------------------------------------- 1 | //Include here any css libraries -------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | WordVue 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 | 7 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordvue", 3 | "version": "1.0.0", 4 | "description": "WordPress theme with Vue.js integrated", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Isaac Ben", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "autoprefixer": "^7.1.4", 13 | "babel-core": "^6.26.0", 14 | "babel-loader": "^7.1.2", 15 | "babel-preset-es2015": "^6.24.1", 16 | "browser-sync": "^2.18.13", 17 | "css-loader": "^0.28.7", 18 | "gulp": "^3.9.1", 19 | "gulp-csso": "^3.0.0", 20 | "gulp-postcss": "^7.0.0", 21 | "gulp-sass": "^3.1.0", 22 | "gulp-uglify": "^3.0.0", 23 | "gulp-watch": "^4.3.11", 24 | "uglify-js": "^3.1.0", 25 | "uglifyjs-webpack-plugin": "^0.4.6", 26 | "vue": "^2.4.4", 27 | "vue-loader": "^13.0.4", 28 | "vue-template-compiler": "^2.4.4", 29 | "webpack": "^3.6.0", 30 | "webpack-stream-fixed": "^3.2.2" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require('autoprefixer') 4 | ] 5 | }; -------------------------------------------------------------------------------- /public/css/app.css: -------------------------------------------------------------------------------- 1 | #app h1{font-size:60px;text-align:center;background:-webkit-linear-gradient(#41b883,#35495e);-webkit-background-clip:text;-webkit-text-fill-color:transparent} -------------------------------------------------------------------------------- /public/css/vendor.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzikbenh/WordVue/08e0ed6e8f801c68c600c846c805d8e746c51f0f/public/css/vendor.css -------------------------------------------------------------------------------- /public/js/app.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([0],[,function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}var r=n(0),s=o(r),u=n(4),a=o(u);window.Vue=s.default,s.default.component("welcome",a.default);new s.default({el:"#app"})},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(6),r=n.n(o),s=n(7),u=n(5),a=u(r.a,s.a,null,null,null);t.default=a.exports},function(e,t){e.exports=function(e,t,n,o,r){var s,u=e=e||{},a=typeof e.default;"object"!==a&&"function"!==a||(s=e,u=e.default);var d="function"==typeof u?u.options:u;t&&(d.render=t.render,d.staticRenderFns=t.staticRenderFns),o&&(d._scopeId=o);var i;if(r?(i=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},d._ssrRegister=i):n&&(i=n),i){var c=d.functional,f=c?d.render:d.beforeCreate;c?d.render=function(e,t){return i.call(t),f(e,t)}:d.beforeCreate=f?[].concat(f,i):[i]}return{esModule:s,exports:u,options:d}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={mounted:function(){console.log("Component mounted.")}}},function(e,t,n){"use strict";var o=function(){var e=this,t=e.$createElement;return(e._self._c||t)("h1",[e._v("Welcome to WordVue")])},r=[],s={render:o,staticRenderFns:r};t.a=s}],[1]); -------------------------------------------------------------------------------- /public/js/vendor.js: -------------------------------------------------------------------------------- 1 | !function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n=window.webpackJsonp;window.webpackJsonp=function(r,i,a){for(var s,c,u,l=0,f=[];l=0&&Math.floor(t)===t&&isFinite(e)}function d(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function p(e){var t=parseFloat(e);return isNaN(t)?e:t}function v(e,t){for(var n=Object.create(null),r=e.split(","),o=0;o-1)return e.splice(n,1)}}function m(e,t){return ri.call(e,t)}function y(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}function g(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n}function _(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function b(e,t){for(var n in t)e[n]=t[n];return e}function E(e){for(var t={},n=0;nya)){yi("You may have an infinite update loop "+(t.user?'in watcher with expression "'+t.expression+'"':"in a component render function."),t.vm);break}var r=_a.slice(),o=ga.slice();je(),Pe(r),Le(o),Ri&&vi.devtools&&Ri.emit("flush")}function Le(e){for(var t=e.length;t--;){var n=e[t],r=n.vm;r._watcher===n&&r._isMounted&&Se(r,"updated")}}function Ie(e){e._inactive=!1,_a.push(e)}function Pe(e){for(var t=0;t$a&&ga[n].id>e.id;)n--;ga.splice(n+1,0,e)}else ga.push(e);wa||(wa=!0,Hi(Me))}}function Re(e){Ca.clear(),Ue(e,Ca)}function Ue(e,t){var n,r,o=Array.isArray(e);if((o||c(e))&&Object.isExtensible(e)){if(e.__ob__){var i=e.__ob__.dep.id;if(t.has(i))return;t.add(i)}if(o)for(n=e.length;n--;)Ue(e[n],t);else for(r=Object.keys(e),n=r.length;n--;)Ue(e[r[n]],t)}}function He(e,t,n){ka.get=function(){return this[t][n]},ka.set=function(e){this[t][n]=e},Object.defineProperty(e,n,ka)}function Be(e){e._watchers=[];var t=e.$options;t.props&&Je(e,t.props),t.methods&&Ge(e,t.methods),t.data?qe(e):M(e._data={},!0),t.computed&&We(e,t.computed),t.watch&&t.watch!==ji&&Qe(e,t.watch)}function ze(e,t){u(e.$options[t])||yi('component option "'+t+'" should be an object.',e)}function Je(t,n){var r=t.$options.propsData||{},o=t._props={},i=t.$options._propKeys=[],a=!t.$parent;Yi.shouldConvert=a;for(var s in n)!function(a){i.push(a);var s=Z(a,n,r,t);"production"!==e.env.NODE_ENV?((ni(a)||vi.isReservedAttr(a))&&yi('"'+a+'" is a reserved attribute and cannot be used as component prop.',t),L(o,a,s,function(){t.$parent&&!ma&&yi("Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: \""+a+'"',t)})):L(o,a,s),a in t||He(t,"_props",a)}(s);Yi.shouldConvert=!0}function qe(t){var n=t.$options.data;n=t._data="function"==typeof n?Ke(n,t):n||{},u(n)||(n={},"production"!==e.env.NODE_ENV&&yi("data functions should return an object:\nhttps://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function",t));for(var r=Object.keys(n),o=t.$options.props,i=t.$options.methods,a=r.length;a--;){var s=r[a];"production"!==e.env.NODE_ENV&&i&&m(i,s)&&yi('Method "'+s+'" has already been defined as a data property.',t),o&&m(o,s)?"production"!==e.env.NODE_ENV&&yi('The data property "'+s+'" is already declared as a prop. Use prop default value instead.',t):x(s)||He(t,"_data",s)}M(n,!0)}function Ke(e,t){try{return e.call(t)}catch(e){return A(e,t,"data()"),{}}}function We(t,n){"production"!==e.env.NODE_ENV&&ze(t,"computed");var r=t._computedWatchers=Object.create(null),o=Fi();for(var i in n){var a=n[i],s="function"==typeof a?a:a.get;"production"!==e.env.NODE_ENV&&null==s&&yi('Getter is missing for computed property "'+i+'".',t),o||(r[i]=new xa(t,s||w,w,Aa)),i in t?"production"!==e.env.NODE_ENV&&(i in t.$data?yi('The computed property "'+i+'" is already defined in data.',t):t.$options.props&&i in t.$options.props&&yi('The computed property "'+i+'" is already defined as a prop.',t)):Ye(t,i,a)}}function Ye(t,n,r){var o=!Fi();"function"==typeof r?(ka.get=o?Ze(n):r,ka.set=w):(ka.get=r.get?o&&!1!==r.cache?Ze(n):r.get:w,ka.set=r.set?r.set:w),"production"!==e.env.NODE_ENV&&ka.set===w&&(ka.set=function(){yi('Computed property "'+n+'" was assigned to but it has no setter.',this)}),Object.defineProperty(t,n,ka)}function Ze(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),zi.target&&t.depend(),t.value}}function Ge(t,n){"production"!==e.env.NODE_ENV&&ze(t,"methods");var r=t.$options.props;for(var o in n)"production"!==e.env.NODE_ENV&&(null==n[o]&&yi('Method "'+o+'" has an undefined value in the component definition. Did you reference the function correctly?',t),r&&m(r,o)&&yi('Method "'+o+'" has already been defined as a prop.',t),o in t&&x(o)&&yi('Method "'+o+'" conflicts with an existing Vue instance method. Avoid defining component methods that start with _ or $.')),t[o]=null==n[o]?w:g(n[o],t)}function Qe(t,n){"production"!==e.env.NODE_ENV&&ze(t,"watch");for(var r in n){var o=n[r];if(Array.isArray(o))for(var i=0;i=0||n.indexOf(e[o])<0)&&r.push(e[o]);return r}return e}function kt(t){"production"===e.env.NODE_ENV||this instanceof kt||yi("Vue is a constructor and should be called with the `new` keyword"),this._init(t)}function At(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=_(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}function Dt(e){e.mixin=function(e){return this.options=W(this.options,e),this}}function Tt(t){t.cid=0;var n=1;t.extend=function(t){t=t||{};var r=this,o=r.cid,i=t._Ctor||(t._Ctor={});if(i[o])return i[o];var a=t.name||r.options.name;"production"!==e.env.NODE_ENV&&(/^[a-zA-Z][\w-]*$/.test(a)||yi('Invalid component name: "'+a+'". Component names can only contain alphanumeric characters and the hyphen, and must start with a letter.'));var s=function(e){this._init(e)};return s.prototype=Object.create(r.prototype),s.prototype.constructor=s,s.cid=n++,s.options=W(r.options,t),s.super=r,s.options.props&&Vt(s),s.options.computed&&St(s),s.extend=r.extend,s.mixin=r.mixin,s.use=r.use,di.forEach(function(e){s[e]=r[e]}),a&&(s.options.components[a]=s),s.superOptions=r.options,s.extendOptions=t,s.sealedOptions=b({},s.options),i[o]=s,s}}function Vt(e){var t=e.options.props;for(var n in t)He(e.prototype,"_props",n)}function St(e){var t=e.options.computed;for(var n in t)Ye(e.prototype,n,t[n])}function jt(t){di.forEach(function(n){t[n]=function(t,r){return r?("production"!==e.env.NODE_ENV&&"component"===n&&vi.isReservedTag(t)&&yi("Do not use built-in or reserved HTML elements as component id: "+t),"component"===n&&u(r)&&(r.name=r.name||t,r=this.options._base.extend(r)),"directive"===n&&"function"==typeof r&&(r={bind:r,update:r}),this.options[n+"s"][t]=r,r):this.options[n+"s"][t]}})}function Mt(e){return e&&(e.Ctor.options.name||e.tag)}function Lt(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!l(e)&&e.test(t)}function It(e,t,n){for(var r in e){var o=e[r];if(o){var i=Mt(o.componentOptions);i&&!n(i)&&(o!==t&&Pt(o),e[r]=null)}}}function Pt(e){e&&e.componentInstance.$destroy()}function Ft(e){for(var t=e.data,n=e,r=e;o(r.componentInstance);)r=r.componentInstance._vnode,r.data&&(t=Rt(r.data,t));for(;o(n=n.parent);)n.data&&(t=Rt(t,n.data));return Ut(t.staticClass,t.class)}function Rt(e,t){return{staticClass:Ht(e.staticClass,t.staticClass),class:o(e.class)?[e.class,t.class]:t.class}}function Ut(e,t){return o(e)||o(t)?Ht(e,Bt(t)):""}function Ht(e,t){return e?t?e+" "+t:e:t||""}function Bt(e){return Array.isArray(e)?zt(e):c(e)?Jt(e):"string"==typeof e?e:""}function zt(e){for(var t,n="",r=0,i=e.length;r-1?ss[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:ss[e]=/HTMLUnknownElement/.test(t.toString())}function Wt(t){if("string"==typeof t){var n=document.querySelector(t);return n||("production"!==e.env.NODE_ENV&&yi("Cannot find element: "+t),document.createElement("div"))}return t}function Yt(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function Zt(e,t){return document.createElementNS(ns[e],t)}function Gt(e){return document.createTextNode(e)}function Qt(e){return document.createComment(e)}function Xt(e,t,n){e.insertBefore(t,n)}function en(e,t){e.removeChild(t)}function tn(e,t){e.appendChild(t)}function nn(e){return e.parentNode}function rn(e){return e.nextSibling}function on(e){return e.tagName}function an(e,t){e.textContent=t}function sn(e,t,n){e.setAttribute(t,n)}function cn(e,t){var n=e.data.ref;if(n){var r=e.context,o=e.componentInstance||e.elm,i=r.$refs;t?Array.isArray(i[n])?h(i[n],o):i[n]===o&&(i[n]=void 0):e.data.refInFor?Array.isArray(i[n])?i[n].indexOf(o)<0&&i[n].push(o):i[n]=[o]:i[n]=o}}function un(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&o(e.data)===o(t.data)&&ln(e,t)||i(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&r(t.asyncFactory.error))}function ln(e,t){if("input"!==e.tag)return!0;var n,r=o(n=e.data)&&o(n=n.attrs)&&n.type,i=o(n=t.data)&&o(n=n.attrs)&&n.type;return r===i||cs(r)&&cs(i)}function fn(e,t,n){var r,i,a={};for(r=t;r<=n;++r)i=e[r].key,o(i)&&(a[i]=r);return a}function dn(e,t){(e.data.directives||t.data.directives)&&pn(e,t)}function pn(e,t){var n,r,o,i=e===fs,a=t===fs,s=vn(e.data.directives,e.context),c=vn(t.data.directives,t.context),u=[],l=[];for(n in c)r=s[n],o=c[n],r?(o.oldValue=r.value,mn(o,"update",t,e),o.def&&o.def.componentUpdated&&l.push(o)):(mn(o,"bind",t,e),o.def&&o.def.inserted&&u.push(o));if(u.length){var f=function(){for(var n=0;n=0&&" "===(m=e.charAt(h));h--);m&&gs.test(m)||(l=!0)}}else void 0===i?(v=o+1,i=e.slice(0,o).trim()):t();if(void 0===i?i=e.slice(0,o).trim():0!==v&&t(),a)for(o=0;o=Pa}function Mn(e){return 34===e||39===e}function Ln(e){var t=1;for(Ha=Ua;!jn();)if(e=Sn(),Mn(e))In(e);else if(91===e&&t++,93===e&&t--,0===t){Ba=Ua;break}}function In(e){for(var t=e;!jn()&&(e=Sn())!==t;);}function Pn(t,n,r){za=r;var o=n.value,i=n.modifiers,a=t.tag,s=t.attrsMap.type;if("production"!==e.env.NODE_ENV){var c=t.attrsMap["v-bind:type"]||t.attrsMap[":type"];"input"===a&&c&&za(':\nv-model does not support dynamic input types. Use v-if branches instead.'),"input"===a&&"file"===s&&za("<"+t.tag+' v-model="'+o+'" type="file">:\nFile inputs are read only. Use a v-on:change listener instead.')}if(t.component)return Dn(t,o,i),!1;if("select"===a)Un(t,o,i);else if("input"===a&&"checkbox"===s)Fn(t,o,i);else if("input"===a&&"radio"===s)Rn(t,o,i);else if("input"===a||"textarea"===a)Hn(t,o,i);else{if(!vi.isReservedTag(a))return Dn(t,o,i),!1;"production"!==e.env.NODE_ENV&&za("<"+t.tag+' v-model="'+o+"\">: v-model is not supported on this element type. If you are working with contenteditable, it's recommended to wrap a library dedicated for that purpose inside a custom component.")}return!0}function Fn(e,t,n){var r=n&&n.number,o=kn(e,"value")||"null",i=kn(e,"true-value")||"true",a=kn(e,"false-value")||"false";$n(e,"checked","Array.isArray("+t+")?_i("+t+","+o+")>-1"+("true"===i?":("+t+")":":_q("+t+","+i+")")),Cn(e,bs,"var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+i+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+o+")":o)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+t+"=$$a.concat([$$v]))}else{$$i>-1&&("+t+"=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{"+Tn(t,"$$c")+"}",null,!0)}function Rn(e,t,n){var r=n&&n.number,o=kn(e,"value")||"null";o=r?"_n("+o+")":o,$n(e,"checked","_q("+t+","+o+")"),Cn(e,bs,Tn(t,o),null,!0)}function Un(e,t,n){var r=n&&n.number,o='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")+"})",i="var $$selectedVal = "+o+";";i=i+" "+Tn(t,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),Cn(e,"change",i,null,!0)}function Hn(e,t,n){var r=e.attrsMap.type,o=n||{},i=o.lazy,a=o.number,s=o.trim,c=!i&&"range"!==r,u=i?"change":"range"===r?_s:"input",l="$event.target.value";s&&(l="$event.target.value.trim()"),a&&(l="_n("+l+")");var f=Tn(t,l);c&&(f="if($event.target.composing)return;"+f),$n(e,"value","("+t+")"),Cn(e,u,f,null,!0),(s||a)&&Cn(e,"blur","$forceUpdate()")}function Bn(e){var t;o(e[_s])&&(t=ki?"change":"input",e[t]=[].concat(e[_s],e[t]||[]),delete e[_s]),o(e[bs])&&(t=Si?"click":"change",e[t]=[].concat(e[bs],e[t]||[]),delete e[bs])}function zn(e,t,n,r,o){if(n){var i=t,a=Ja;t=function(n){null!==(1===arguments.length?i(n):i.apply(null,arguments))&&Jn(e,t,r,a)}}Ja.addEventListener(e,t,Mi?{capture:r,passive:o}:r)}function Jn(e,t,n,r){(r||Ja).removeEventListener(e,t,n)}function qn(e,t){if(!r(e.data.on)||!r(t.data.on)){var n=t.data.on||{},o=e.data.on||{};Ja=t.elm,Bn(n),se(n,o,zn,Jn,t.context)}}function Kn(e,t){if(!r(e.data.domProps)||!r(t.data.domProps)){var n,i,a=t.elm,s=e.data.domProps||{},c=t.data.domProps||{};o(c.__ob__)&&(c=t.data.domProps=b({},c));for(n in s)r(c[n])&&(a[n]="");for(n in c)if(i=c[n],"textContent"!==n&&"innerHTML"!==n||(t.children&&(t.children.length=0),i!==s[n]))if("value"===n){a._value=i;var u=r(i)?"":String(i);Wn(a,t,u)&&(a.value=u)}else a[n]=i}}function Wn(e,t,n){return!e.composing&&("option"===t.tag||Yn(e,n)||Zn(e,n))}function Yn(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}function Zn(e,t){var n=e.value,r=e._vModifiers;return o(r)&&r.number?p(n)!==p(t):o(r)&&r.trim?n.trim()!==t.trim():n!==t}function Gn(e){var t=Qn(e.style);return e.staticStyle?b(e.staticStyle,t):t}function Qn(e){return Array.isArray(e)?E(e):"string"==typeof e?Ns(e):e}function Xn(e,t){var n,r={};if(t)for(var o=e;o.componentInstance;)o=o.componentInstance._vnode,o.data&&(n=Gn(o.data))&&b(r,n);(n=Gn(e.data))&&b(r,n);for(var i=e;i=i.parent;)i.data&&(n=Gn(i.data))&&b(r,n);return r}function er(e,t){var n=t.data,i=e.data;if(!(r(n.staticStyle)&&r(n.style)&&r(i.staticStyle)&&r(i.style))){var a,s,c=t.elm,u=i.staticStyle,l=i.normalizedStyle||i.style||{},f=u||l,d=Qn(t.data.style)||{};t.data.normalizedStyle=o(d.__ob__)?b({},d):d;var p=Xn(t,!0);for(s in f)r(p[s])&&xs(c,s,"");for(s in p)(a=p[s])!==f[s]&&xs(c,s,null==a?"":a)}}function tr(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function nr(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");n=n.trim(),n?e.setAttribute("class",n):e.removeAttribute("class")}}function rr(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&b(t,Ds(e.name||"v")),b(t,e),t}return"string"==typeof e?Ds(e):void 0}}function or(e){Ps(function(){Ps(e)})}function ir(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),tr(e,t))}function ar(e,t){e._transitionClasses&&h(e._transitionClasses,t),nr(e,t)}function sr(e,t,n){var r=cr(e,t),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===Vs?Ms:Is,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=a&&u()};setTimeout(function(){c0&&(n=Vs,l=a,f=i.length):t===Ss?u>0&&(n=Ss,l=u,f=c.length):(l=Math.max(a,u),n=l>0?a>u?Vs:Ss:null,f=n?n===Vs?i.length:c.length:0),{type:n,timeout:l,propCount:f,hasTransform:n===Vs&&Fs.test(r[js+"Property"])}}function ur(e,t){for(;e.length explicit "+t+" duration is not a valid number - got "+JSON.stringify(e)+".",n.context):isNaN(e)&&yi(" explicit "+t+" duration is NaN - the duration expression might be incorrect.",n.context)}function vr(e){return"number"==typeof e&&!isNaN(e)}function hr(e){if(r(e))return!1;var t=e.fns;return o(t)?hr(Array.isArray(t)?t[0]:t):(e._length||e.length)>1}function mr(e,t){!0!==t.data.show&&fr(t)}function yr(e,t,n){gr(e,t,n),(ki||Di)&&setTimeout(function(){gr(e,t,n)},0)}function gr(t,n,r){var o=n.value,i=t.multiple;if(i&&!Array.isArray(o))return void("production"!==e.env.NODE_ENV&&yi('