diff --git a/.babelrc b/.babelrc index c690370..532c4a5 100644 --- a/.babelrc +++ b/.babelrc @@ -1,6 +1,10 @@ { "presets": [ - ["es2015", { "modules": false }], - "stage-2" + ["env", { + "targets": { + "ie": 8 + }, + "modules": false + }] ], -} +} \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 95c0082..0000000 --- a/README.md +++ /dev/null @@ -1,32 +0,0 @@ -#vue-parallax-js -vue component for parallax effect on elements. -- no dependencies. -- for Vue.js 2 -- lightweight -- 1.6 kb minified - -##Setup -```bash -npm install --save vue-parallax-js -# or use yarn -# yarn add vue-parallax-js -``` - -in your main JavaScript file -```javascript -// import Vue and vue-parallax-js -import Vue from 'vue' -import VueParallaxJs from 'vue-parallax-js' - -// add vue-parallax-js to vue -Vue.use(VueParallaxJs) -``` - -##Usage -when everything is setup you can use the directive like this: -```html -

vue-parallax-js

-``` - -##Options and Modifiers -see [documentation](https://jsnanigans.github.io/vue-parallax-js/) diff --git a/dist/demo.js b/dist/demo.js new file mode 100644 index 0000000..f7c64d2 --- /dev/null +++ b/dist/demo.js @@ -0,0 +1,238 @@ +'use strict'; + +let parallaxjs = function (options = {}) { + + // options = { + // ...options + // } + + let elements = []; + let screenY; + let posY; + let api = {}; + + // helper functions + const transformProp = window.transformProp || (function(){ + var testEl = document.createElement('div'); + if (testEl.style.transform == null) { + var vendors = ['Webkit', 'Moz', 'ms']; + for (var vendor in vendors) { + if (testEl.style[ vendors[vendor] + 'Transform' ] !== undefined) { + return vendors[vendor] + 'Transform'; + } + } + } + return 'transform'; + })(); + + let rqaf = window.requestAnimationFrame || + window.mozRequestAnimationFrame || + window.webkitRequestAnimationFrame || + window.msRequestAnimationFrame || + window.oRequestAnimationFrame; + + let clamp = (v, min, max) => v; + + api.loop = rqaf ? rqaf.bind(window) : _ => { setTimeout(_, 1000 / 60); }; + + api.setPageY = _ => { + screenY = window.innerHeight; + }; + + api.setPageScroll = _ => { + var oldY = posY; + + if (window.pageYOffset !== undefined) { + posY = window.pageYOffset; + } else { + posY = (document.documentElement || document.body.parentNode || document.body).scrollTop; + } + + if (oldY != posY) { + // scroll changed, return true + return true; + } + + // scroll did not change + return false; + }; + + api.addElement = (el, binding) => { + let opt = { + speed: -2, + center: false, + round: true, + callback: _ => {}, + percentage: false, + zindex: 0, + }; + + if (typeof binding.value === 'number') + opt.speed = binding.value; + + // console.log(binding) + + var posY = opt.percentage || opt.center ? (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop) : 0; + var blockTop = posY + el.getBoundingClientRect().top; + var blockHeight = el.clientHeight || el.offsetHeight || el.scrollHeight; + var percentage = opt.percentage ? opt.percentage : (posY - blockTop + screenY) / (blockHeight + screenY); + if(opt.center){ percentage = 0.5; } + var speed = opt.speed * 10; + + speed = speed ? clamp(speed, -13, 13) : speed; + + if (opt.percentage || opt.center) { + speed = clamp(opt.speed || opt.speed, -5, 5); + } + + var base = updatePosition(percentage, speed, opt.round); + + var style = el.style.cssText; + var transform = ''; + + // console.log({e: el.style}) + let computed = getComputedStyle(el, null); + // console.log(computed.getPropertyValue('transform')) + let initialMatrix = computed.getPropertyValue('transform'); + if (initialMatrix.indexOf('matrix(') === 0) { + initialMatrix = initialMatrix.replace('matrix(', ''); + initialMatrix = initialMatrix.replace(')', ''); + initialMatrix = initialMatrix.split(', '); + } else { + initialMatrix = [1, 0, 0, 1, 0, 0]; + } + // console.log(initialMatrix) + // let initialTransform = { + // rotate: + // } + + + if (style.indexOf('transform') !== -1) { + // Get the index of the transform + var index = style.indexOf('transform'); + + // Trim the style to the transform point and get the following semi-colon index + var trimmedStyle = style.slice(index); + var delimiter = trimmedStyle.indexOf(';'); + + // Remove "transform" string and save the attribute + if (delimiter) { + transform = ' ' + trimmedStyle.slice(11, delimiter).replace(/\s/g,''); + } else { + transform = ' ' + trimmedStyle.slice(11).replace(/\s/g,''); + } + + + } + + elements.push({ + el, + base, + top: blockTop, + height: blockHeight, + speed, + style, + transform, + zindex: opt.zindex, + opt, + initialMatrix + }); + + // elements.push(el) + }; + + var updatePosition = function(percentage, speed, round) { + var value = (speed * (100 * (1 - percentage))); + return round ? Math.round(value * 10) / 10 : value; + }; + + api.animate = id => { + let targets = elements; + if (typeof id === 'number') { + targets = [elements[id]]; + } + + if (!targets) + return + + targets.forEach(item => { + // console.log(item) + var percentage = ((posY - item.top + screenY) / (item.height + screenY)); + + var position = updatePosition(percentage, item.speed, item.opt.round) - item.base; + + let values = item.initialMatrix; + values[5] = position; + + var translate = 'matrix(' + values.join(',') + ')'; + item.el.style[transformProp] = translate; + item.el.style.backfaceVisibility = 'hidden'; + }); + }; + + return api +}; + + +var VueParallaxJs = { + install (Vue, options = {}) { + var p = parallaxjs(options); + p.setPageScroll(); + p.setPageY(); + + window.addEventListener('scroll', () => { + p.loop(_ => { + p.loop(_ => { + p.setPageScroll(); + p.animate(); + }); + }); + }, {passive: true}); + window.addEventListener('resize', () => { + p.loop(_ => { + p.loop(_ => { + p.setPageScroll(); + p.setPageY(); + p.animate(); + }); + }); + }, {passive: true}); + + Vue.prototype.$parallaxjs = p; + window.$parallaxjs = p; + + Vue.directive('parallax', { + bind (el, binding) { + }, + inserted (el, binding) { + let id = p.addElement(el, binding); + p.animate(id); + }, + // unbind(el, binding) { + // p.resetPosition(el) + // } + // bind: parallaxjs.add(parallaxjs), + // update(value) { + // parallaxjs.update(value) + // }, + // update(el, binding) { + // console.log("cup"); + // }, + }); + } +}; + +// import Vue and vue-parallax-js +Vue.use(VueParallaxJs); + +new Vue({ + el: '#app', + data() { + return { + title: 'Smooth and Simple Parallax for Vue', + } + }, + + created() { + } +}); diff --git a/vue-parallax-js.js b/dist/vue-parallax-js.js similarity index 91% rename from vue-parallax-js.js rename to dist/vue-parallax-js.js index ec2430d..c17f9b7 100644 --- a/vue-parallax-js.js +++ b/dist/vue-parallax-js.js @@ -1,3 +1,5 @@ +'use strict'; + var parallaxjs = function parallaxjs(options) { this.options = options; }; @@ -46,16 +48,9 @@ parallaxjs.prototype = { var scrollTop = window.scrollY || window.pageYOffset; var windowHeight = window.innerHeight; - var windowWidth = window.innerWidth; - this.items.map(function (item) { var pos = scrollTop + windowHeight; var elH = item.clientHeight; - // if (item.count > 50) { - // item.count = 0; - // elH = item.el.clientHeight || item.el.offsetHeight || item.el.scrollHeight - // } - pos = pos - elH / 2; pos = pos - windowHeight / 2; @@ -68,13 +63,12 @@ parallaxjs.prototype = { pos = pos.toFixed(2); - // item.count++ _this.setStyle(item, 'translateY(' + pos + 'px)'); }); } }; -export default { +var VueParallaxJs = { install: function install(Vue) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; @@ -102,3 +96,5 @@ export default { }); } }; + +export default VueParallaxJs; diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 26eda62..0000000 --- a/docs/index.html +++ /dev/null @@ -1,7 +0,0 @@ -vue-parallax-js
diff --git a/docs/static/css/app.0e52a89b9b34716047f7494aaa9dd868.css b/docs/static/css/app.0e52a89b9b34716047f7494aaa9dd868.css deleted file mode 100644 index b8c38c1..0000000 --- a/docs/static/css/app.0e52a89b9b34716047f7494aaa9dd868.css +++ /dev/null @@ -1 +0,0 @@ -#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;margin-top:60px}body{margin:0;padding:0;font-size:1.2em;letter-spacing:.03em;font-family:sans-serif}.title{width:100%;height:90vh;min-height:400px;overflow:hidden;position:relative;background:#000;background-position:50%}i{z-index:1;width:40px;height:40px;border-radius:50%;background-color:#7929a7;opacity:.2}.h1title,i{position:absolute}.h1title{top:0;right:0;width:100%;text-align:center;margin:0 auto;z-index:2;display:block;opacity:.8;font-size:8vw;line-height:90vh;-webkit-backface-visibility:hidden;backface-visibility:hidden;text-shadow:0 0 120px #000;color:#7929a7}.h1title:first-child{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;-webkit-clip-path:polygon(0 0,100% 0,100% 30%,-65% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 30%,-65% 100%,0 100%)}.h1title:nth-child(2){-webkit-clip-path:polygon(100% 0,100% 100%,-65% 100%,100% 30%);clip-path:polygon(100% 0,100% 100%,-65% 100%,100% 30%)}pre[data-v-25268710]{margin:5px -3px 30px;padding:2px 25px;border-radius:0 20px 20px 20px;background:#fff;border:1px solid #ddd;white-space:pre-wrap}em[data-v-25268710]{opacity:.9;color:#7929a7}span[data-v-25268710]{color:#7929a7;display:inline-block;padding:0 4px;margin:2px 0;border-radius:5px;background:rgba(121,41,167,.2);font-weight:700}h1[data-v-25268710]{font-size:180%;border-bottom:1px solid #999;margin-top:0}h2[data-v-25268710]{font-size:160%;margin:50px 0 20px;border-bottom:1px solid #999}p[data-v-25268710]{margin-bottom:5px}a[name][data-v-25268710]{text-decoration:none;color:#000;opacity:.05;position:relative;padding-top:20px;display:inline-block}a[name][data-v-25268710]:hover{opacity:.3}.option[data-v-25268710]{background:#f4f4f4;display:-ms-flexbox;display:flex;border:1px solid #ddd;margin-top:-1px}.option.head[data-v-25268710]{text-transform:uppercase;font-size:70%}.option .param[data-v-25268710]{padding:10px 20px;width:150px;color:#7929a7;background:#fff;border-right:1px solid #ddd}.option .type[data-v-25268710]{padding:10px 20px;width:200px;color:#7929a7;background:hsla(0,0%,100%,.3);border-right:1px solid #ddd;text-align:right}.option .desc[data-v-25268710]{padding:10px 20px}section[data-v-25268710]{box-sizing:border-box;background:#f4f4f4;padding:50px 0 100px;position:relative;left:0;right:0;color:#000;font-family:sans-serif;font-size:14px}@media screen and (min-width:600px){section[data-v-25268710]{font-size:16px}}.content[data-v-25268710]{width:1000px;max-width:calc(100% - 40px);margin:0 auto;line-height:1.5;color:#333} \ No newline at end of file diff --git a/docs/static/css/app.0e52a89b9b34716047f7494aaa9dd868.css.map b/docs/static/css/app.0e52a89b9b34716047f7494aaa9dd868.css.map deleted file mode 100644 index e9f05f0..0000000 --- a/docs/static/css/app.0e52a89b9b34716047f7494aaa9dd868.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack:///src/App.vue","webpack:///webpack:///src/components/ParallaxDemo.vue","webpack:///webpack:///src/components/content.vue"],"names":[],"mappings":";AACA;EACE,oDAAoD;EACpD,oCAAoC;EACpC,mCAAmC;EACnC,mBAAmB;EACnB,eAAe;EACf,iBAAiB;CAClB;;ACPD;EACE,UAAU;EACV,WAAW;EACX,iBAAiB;EACjB,uBAAuB;EACvB,wBAAwB;CACzB;AACD;EACE,YAAY;EACZ,aAAa;EACb,kBAAkB;EAClB,iBAAiB;EACjB,mBAAmB;EACnB,iBAAiB;EACjB,4BAA4B;CAC7B;AACD;EACE,mBAAmB;EACnB,YAAY;EACZ,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,0BAA0B;EAC1B,aAAa;CACd;AACD;EACE,mBAAmB;EACnB,OAAO;EACP,SAAS;EACT,YAAY;EACZ,mBAAmB;EACnB,eAAe;EACf,YAAY;EACZ,eAAe;EACf,aAAa;EACb,eAAe;EACf,kBAAkB;EAClB,oCAAoC;UAC5B,4BAA4B;EACpC,4BAA4B;EAC5B,eAAe;CAChB;AACD;IACI,0BAA0B;OACvB,uBAAuB;QACtB,sBAAsB;YAClB,kBAAkB;IAC1B,qBAAqB;IACrB,wEAAwE;YAChE,gEAAgE;CAC3E;AACD;IACI,oEAAoE;YAC5D,4DAA4D;CACvE;;ACtDD;EACE,sBAAsB;EACtB,kBAAkB;EAClB,gCAAgC;EAChC,iBAAiB;EACjB,uBAAuB;EACvB,sBAAsB;CACvB;AACD;EACE,aAAa;EACb,eAAe;CAChB;AACD;EACE,eAAe;EACf,sBAAsB;EACtB,iBAAiB;EACjB,cAAc;EACd,mBAAmB;EACnB,oCAAoC;EACpC,kBAAkB;CACnB;AACD;EACE,gBAAgB;EAChB,8BAA8B;EAC9B,cAAc;CACf;AACD;EACE,gBAAgB;EAChB,oBAAoB;EACpB,8BAA8B;CAC/B;AACD;EACE,mBAAmB;CACpB;AACD;EACE,sBAAsB;EACtB,aAAa;EACb,cAAc;EACd,mBAAmB;EACnB,kBAAkB;EAClB,sBAAsB;CACvB;AACD;IACI,aAAa;CAChB;AACD;EACE,oBAAoB;EACpB,qBAAqB;EACrB,cAAc;EACd,uBAAuB;EACvB,iBAAiB;CAClB;AACD;IACI,0BAA0B;IAC1B,eAAe;CAClB;AACD;IACI,mBAAmB;IACnB,aAAa;IACb,eAAe;IACf,kBAAkB;IAClB,6BAA6B;CAChC;AACD;IACI,mBAAmB;IACnB,aAAa;IACb,eAAe;IACf,qCAAqC;IACrC,6BAA6B;IAC7B,kBAAkB;CACrB;AACD;IACI,mBAAmB;CACtB;AACD;EACE,uBAAuB;EACvB,oBAAoB;EACpB,sBAAsB;EACtB,mBAAmB;EACnB,QAAQ;EACR,SAAS;EACT,aAAa;EACb,wBAAwB;EACxB,gBAAgB;CACjB;AACD;AACA;MACM,gBAAgB;CACrB;CACA;AACD;EACE,cAAc;EACd,6BAA6B;EAC7B,eAAe;EACf,iBAAiB;EACjB,YAAY;CACb","file":"static/css/app.0e52a89b9b34716047f7494aaa9dd868.css","sourcesContent":["\n#app {\n font-family: 'Avenir', Helvetica, Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-align: center;\n color: #2c3e50;\n margin-top: 60px;\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/App.vue","\nbody {\n margin: 0;\n padding: 0;\n font-size: 1.2em;\n letter-spacing: 0.03em;\n font-family: sans-serif;\n}\n.title {\n width: 100%;\n height: 90vh;\n min-height: 400px;\n overflow: hidden;\n position: relative;\n background: #000;\n background-position: center;\n}\ni {\n position: absolute;\n z-index: 20;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background-color: #7929a7;\n opacity: 0.2;\n}\n.h1title {\n position: absolute;\n top: 0;\n right: 0;\n width: 100%;\n text-align: center;\n margin: 0 auto;\n z-index: 50;\n display: block;\n opacity: 0.8;\n font-size: 8vw;\n line-height: 90vh;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n text-shadow: 0 0 120px #000;\n color: #7929a7;\n}\n.h1title:first-child {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n pointer-events: none;\n -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 30%, -65% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 100% 0, 100% 30%, -65% 100%, 0% 100%);\n}\n.h1title:nth-child(2) {\n -webkit-clip-path: polygon(100% 0%, 100% 100%, -65% 100%, 100% 30%);\n clip-path: polygon(100% 0%, 100% 100%, -65% 100%, 100% 30%);\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/ParallaxDemo.vue","\npre[data-v-25268710] {\n margin: 5px -3px 30px;\n padding: 2px 25px;\n border-radius: 0 20px 20px 20px;\n background: #fff;\n border: 1px solid #ddd;\n white-space: pre-wrap;\n}\nem[data-v-25268710] {\n opacity: 0.9;\n color: #7929a7;\n}\nspan[data-v-25268710] {\n color: #7929a7;\n display: inline-block;\n padding: 0px 4px;\n margin: 2px 0;\n border-radius: 5px;\n background: rgba(121, 41, 167, 0.2);\n font-weight: bold;\n}\nh1[data-v-25268710] {\n font-size: 180%;\n border-bottom: 1px solid #999;\n margin-top: 0;\n}\nh2[data-v-25268710] {\n font-size: 160%;\n margin: 50px 0 20px;\n border-bottom: 1px solid #999;\n}\np[data-v-25268710] {\n margin-bottom: 5px;\n}\na[name][data-v-25268710] {\n text-decoration: none;\n color: black;\n opacity: 0.05;\n position: relative;\n padding-top: 20px;\n display: inline-block;\n}\na[name][data-v-25268710]:hover {\n opacity: 0.3;\n}\n.option[data-v-25268710] {\n background: #f4f4f4;\n display: -ms-flexbox;\n display: flex;\n border: 1px solid #ddd;\n margin-top: -1px;\n}\n.option.head[data-v-25268710] {\n text-transform: uppercase;\n font-size: 70%;\n}\n.option .param[data-v-25268710] {\n padding: 10px 20px;\n width: 150px;\n color: #7929a7;\n background: white;\n border-right: 1px solid #ddd;\n}\n.option .type[data-v-25268710] {\n padding: 10px 20px;\n width: 200px;\n color: #7929a7;\n background: rgba(255, 255, 255, 0.3);\n border-right: 1px solid #ddd;\n text-align: right;\n}\n.option .desc[data-v-25268710] {\n padding: 10px 20px;\n}\nsection[data-v-25268710] {\n box-sizing: border-box;\n background: #f4f4f4;\n padding: 50px 0 100px;\n position: relative;\n left: 0;\n right: 0;\n color: black;\n font-family: sans-serif;\n font-size: 14px;\n}\n@media screen and (min-width: 600px) {\nsection[data-v-25268710] {\n font-size: 16px;\n}\n}\n.content[data-v-25268710] {\n width: 1000px;\n max-width: calc(100% - 40px);\n margin: 0 auto;\n line-height: 1.5;\n color: #333;\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/content.vue"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/static/js/app.c37f4a906e6ca0265b0b.js b/docs/static/js/app.c37f4a906e6ca0265b0b.js deleted file mode 100644 index 14a7b04..0000000 --- a/docs/static/js/app.c37f4a906e6ca0265b0b.js +++ /dev/null @@ -1,2 +0,0 @@ -webpackJsonp([0,2],[,function(e,t,a){"use strict";var n=function(e){this.options=e};n.prototype={items:[],active:!0,setStyle:function(e,t){e.modifiers.centerX&&(t+=" translateX(-50%)");var a=e.el,n="Transform";a.style["webkit"+n]=t,a.style["moz"+n]=t,a.style["ms"+n]=t},add:function(e,t){var a=t.value,n=t.arg,s=e.currentStyle||window.getComputedStyle(e),i=t.modifiers.absY?window.innerHeight:e.clientHeight||e.offsetHeight||e.scrollHeight;this.items.push({el:e,initialOffsetTop:e.offsetTop+e.offsetParent.offsetTop-parseInt(s.marginTop),style:s,value:a,arg:n,modifiers:t.modifiers,clientHeight:i,count:0})},move:function(){var e=this;if(this.active){if(window.innerWidth1&&void 0!==arguments[1]?arguments[1]:{},a=new n(t);window.addEventListener("scroll",function(){requestAnimationFrame(function(){a.move(a)})},{passive:!0}),window.addEventListener("resize",function(){requestAnimationFrame(function(){a.move(a)})},{passive:!0}),e.prototype.$parallaxjs=a,window.$parallaxjs=a,e.directive("parallax",{bind:function(e,t){},inserted:function(e,t){a.add(e,t),a.move(a)}})}}},function(e,t,a){a(9);var n=a(0)(a(4),a(14),null,null);e.exports=n.exports},,function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=a(10),s=a.n(n);t.default={name:"app",components:{Demo:s.a}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=a(11),s=a.n(n);t.default={name:"hello",components:{"my-content":s.a},data:function(){return{title:"vue-parallax-js"}},computed:{ballPos:function(){var e=function(e){return Math.round(Math.random()*e)},t=[],a=window.innerWidth/20;a<30&&(a=30);for(var n=0;nvue-parallax-js']},optioExample:function(){return["

vue-parallax-js

']}}}},function(e,t){},function(e,t){},function(e,t){},function(e,t,a){a(7);var n=a(0)(a(5),a(12),null,null);e.exports=n.exports},function(e,t,a){a(8);var n=a(0)(a(6),a(13),"data-v-25268710",null);e.exports=n.exports},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"page"},[a("div",{staticClass:"title"},[a("h1",{directives:[{name:"parallax",rawName:"v-parallax.absY",value:-.9,expression:"-0.9",modifiers:{absY:!0}}],staticClass:"h1title"},[e._v(e._s(e.title))]),e._v(" "),a("h1",{directives:[{name:"parallax",rawName:"v-parallax.absY",value:1.2,expression:"1.2",modifiers:{absY:!0}}],staticClass:"h1title"},[e._v(e._s(e.title))]),e._v(" "),e._l(e.ballPos,function(e){return a("i",{directives:[{name:"parallax",rawName:"v-parallax.centerX",value:e.parallax,expression:"ball.parallax",modifiers:{centerX:!0}}],style:e.style})})],2),e._v(" "),a("my-content")],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("section",[a("div",{staticClass:"content"},[a("h1",[e._v("vue-parallax-js")]),e._v(" "),e._m(0),e._v(" "),e._m(1),e._v(" "),a("b",[e._v("install via npm")]),e._v(" "),e._m(2),e._v(" "),e._m(3),e._v(" "),a("p",[e._v("in your main javascript file")]),e._v(" "),e._m(4),e._v(" "),e._m(5),e._v(" "),e._m(6),e._v(" "),a("pre",[e._v("\n"+e._s(e.basicUsageExample[0])),a("span",[e._v("0.2")]),e._v(e._s(e.basicUsageExample[1])+"\n\n"),e._m(7),e._v("\n"),e._m(8),e._v("\n"),e._m(9),e._v("\n\t\t\t")]),e._v(" "),e._m(10),e._v(" "),a("p",[e._v("when adding vue-parallax-js to Vue you can pass some options")]),e._v(" "),e._m(11),e._v(" "),e._m(12),e._v(" "),e._m(13),e._v(" "),e._m(14),e._v(" "),e._m(15),e._v(" "),a("pre",[e._v("\n"+e._s(e.optioExample[0])+"."),a("span",[e._v("modifier")]),e._v(e._s(e.optioExample[1])+"\n"),e._m(16),e._v("\n\t\t\t")]),e._v(" "),e._m(17),e._v(" "),e._m(18),e._v(" "),e._m(19)])])},staticRenderFns:[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",[e._v("\n\t\t\t\tvue component for parallax effect on elements "),a("br"),e._v("\n\t\t\t\tno dependencies "),a("br"),e._v("\n\t\t\t\tlightweight "),a("br"),e._v("\n\t\t\t\t1.6 KB - minified"),a("br"),e._v("\n\t\t\t\tfor "),a("span",[e._v("Vue.js 2")]),e._v(" "),a("br")])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("h2",[e._v("Setup "),a("a",{attrs:{href:"#setup",name:"setup"}},[e._v("~")])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("pre",[e._v("\nnpm install --save vue-parallax-js\n"),a("em",[e._v("# or use yarn")]),e._v("\n"),a("em",[e._v("# yarn add vue-parallax-js")]),e._v("\n\t\t\t")])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("b",[e._v("using "),a("span",[e._v("vue-parallax-js")])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("pre",[e._v("\n"),a("em",[e._v("// import Vue and vue-parallax-js")]),e._v("\nimport Vue from 'vue'\nimport VueParallaxJs from 'vue-parallax-js'\n\n"),a("em",[e._v("// add vue-parallax-js to vue")]),e._v("\nVue.use(VueParallaxJs)\n\t\t\t")])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("h2",[e._v("Usage "),a("a",{attrs:{href:"#usage",name:"usage"}},[e._v("~")])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("b",[e._v("in your templates you can now use the "),a("span",[e._v("v-parallax")]),e._v(" directive.")])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("em",[a("span",[e._v("0")]),e._v(" will appear static on the page (no effect)")])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("em",[a("span",[e._v("1")]),e._v(" will move along the page at the same speed as the scrolling")])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("em",[a("span",[e._v("-1")]),e._v(" will move upwards at the same speed as the scrolling")])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("h2",[e._v("Options "),a("a",{attrs:{href:"#options",name:"options"}},[e._v("~")])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("pre",[e._v("\nVue.use(VueParallaxJs, "),a("span",[e._v("{option: value}")]),e._v(")\n\t\t\t")])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"option head"},[a("div",{staticClass:"param"},[e._v("option")]),e._v(" "),a("div",{staticClass:"type"},[e._v("value-type")]),e._v(" "),a("div",{staticClass:"desc"},[e._v("description")])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"option"},[a("div",{staticClass:"param"},[e._v("minWidth")]),e._v(" "),a("div",{staticClass:"type"},[e._v("integer")]),e._v(" "),a("div",{staticClass:"desc"},[e._v("minumum window width for parallax to take effect")])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("h2",[e._v("Modifiers "),a("a",{attrs:{href:"#modifiers",name:"modifiers"}},[e._v("~")])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",[e._v("when using the "),a("span",[e._v("v-parallax")]),e._v(" directive you can also pass some modifiers to configure the instance of vue-parallax-js")])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("em",[e._v("// notice the "),a("span",[e._v(".")]),e._v(' between "v-parallax" and the modifier')])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"option head"},[a("div",{staticClass:"param"},[e._v("modifier")]),e._v(" "),a("div",{staticClass:"desc"},[e._v("description")])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"option"},[a("div",{staticClass:"param"},[e._v("centerX")]),e._v(" "),a("div",{staticClass:"desc"},[e._v('will add "transform: '),a("em",[e._v("translateX(-50%)")]),e._v('" along with the parallax positioning')])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"option"},[a("div",{staticClass:"param"},[e._v("absY")]),e._v(" "),a("div",{staticClass:"desc"},[e._v("uses the window height instead of the element height for the calculations")])])}]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("demo")},staticRenderFns:[]}},,,function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=a(3),s=a.n(n),i=a(2),r=a.n(i),l=a(1);s.a.use(l.a,{}),new s.a({el:"#app",template:"",components:{App:r.a}})}],[17]); -//# sourceMappingURL=app.c37f4a906e6ca0265b0b.js.map \ No newline at end of file diff --git a/docs/static/js/app.c37f4a906e6ca0265b0b.js.map b/docs/static/js/app.c37f4a906e6ca0265b0b.js.map deleted file mode 100644 index 3008a9d..0000000 --- a/docs/static/js/app.c37f4a906e6ca0265b0b.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///static/js/app.c37f4a906e6ca0265b0b.js","webpack:///./src/vue-parallax-js/src/vue-parallax-js.js","webpack:///./src/App.vue","webpack:///App.vue","webpack:///ParallaxDemo.vue","webpack:///content.vue","webpack:///./src/components/ParallaxDemo.vue","webpack:///./src/components/content.vue","webpack:///./src/components/ParallaxDemo.vue?5db8","webpack:///./src/components/content.vue?2388","webpack:///./src/App.vue?7f75","webpack:///./src/main.js"],"names":["webpackJsonp","module","__webpack_exports__","__webpack_require__","parallaxjs","options","this","prototype","items","active","setStyle","item","value","modifiers","centerX","el","prop","style","add","binding","arg","currentStyle","window","getComputedStyle","height","absY","innerHeight","clientHeight","offsetHeight","scrollHeight","push","initialOffsetTop","offsetTop","offsetParent","parseInt","marginTop","count","move","_this","innerWidth","minWidth","map","scrollTop","scrollY","pageYOffset","windowHeight","pos","elH","offset","toFixed","install","Vue","arguments","length","undefined","p","addEventListener","requestAnimationFrame","passive","$parallaxjs","directive","bind","inserted","exports","Component","Object","defineProperty","__WEBPACK_IMPORTED_MODULE_0__components_ParallaxDemo__","__WEBPACK_IMPORTED_MODULE_0__components_ParallaxDemo___default","n","name","components","Demo","a","__WEBPACK_IMPORTED_MODULE_0__content__","__WEBPACK_IMPORTED_MODULE_0__content___default","my-content","data","title","computed","ballPos","rnd","max","Math","round","random","r","circs","i","par","size","left","top","width","parallax","basicUsageExample","optioExample","render","_vm","_h","$createElement","_c","_self","staticClass","directives","rawName","expression","_v","_s","_l","ball","staticRenderFns","_m","attrs","href","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_0_vue___default","__WEBPACK_IMPORTED_MODULE_1__App__","__WEBPACK_IMPORTED_MODULE_1__App___default","__WEBPACK_IMPORTED_MODULE_2__vue_parallax_js_src_vue_parallax_js__","use","template","App"],"mappings":"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","file":"static/js/app.c37f4a906e6ca0265b0b.js","sourcesContent":["webpackJsonp([0,2],[\n/* 0 */,\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar parallaxjs = function parallaxjs(options) {\n this.options = options;\n};\n\nparallaxjs.prototype = {\n items: [],\n active: true,\n\n setStyle: function setStyle(item, value) {\n if (item.modifiers.centerX) value += ' translateX(-50%)';\n\n var el = item.el;\n var prop = 'Transform';\n el.style[\"webkit\" + prop] = value;\n el.style[\"moz\" + prop] = value;\n el.style[\"ms\" + prop] = value;\n },\n add: function add(el, binding) {\n var value = binding.value;\n var arg = binding.arg;\n var style = el.currentStyle || window.getComputedStyle(el);\n\n var height = binding.modifiers.absY ? window.innerHeight : el.clientHeight || el.offsetHeight || el.scrollHeight;\n this.items.push({\n el: el,\n initialOffsetTop: el.offsetTop + el.offsetParent.offsetTop - parseInt(style.marginTop),\n style: style,\n value: value,\n arg: arg,\n modifiers: binding.modifiers,\n clientHeight: height,\n count: 0\n });\n },\n move: function move() {\n var _this = this;\n\n if (!this.active) return;\n if (window.innerWidth < this.options.minWidth || 0) {\n this.items.map(function (item) {\n _this.setStyle(item, 'translateY(' + 0 + 'px) translateZ(0px)');\n });\n\n return;\n }\n\n var scrollTop = window.scrollY || window.pageYOffset;\n var windowHeight = window.innerHeight;\n var windowWidth = window.innerWidth;\n\n this.items.map(function (item) {\n var pos = scrollTop + windowHeight;\n var elH = item.clientHeight;\n // if (item.count > 50) {\n // item.count = 0;\n // elH = item.el.clientHeight || item.el.offsetHeight || item.el.scrollHeight\n // }\n\n\n pos = pos - elH / 2;\n pos = pos - windowHeight / 2;\n pos = pos * item.value;\n\n var offset = item.initialOffsetTop;\n offset = offset * -1;\n offset = offset * item.value;\n pos = pos + offset;\n\n pos = pos.toFixed(2);\n\n // item.count++\n _this.setStyle(item, 'translateY(' + pos + 'px)');\n });\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = {\n install: function install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var p = new parallaxjs(options);\n\n window.addEventListener('scroll', function () {\n requestAnimationFrame(function () {\n p.move(p);\n });\n }, { passive: true });\n window.addEventListener('resize', function () {\n requestAnimationFrame(function () {\n p.move(p);\n });\n }, { passive: true });\n\n Vue.prototype.$parallaxjs = p;\n window.$parallaxjs = p;\n Vue.directive('parallax', {\n bind: function bind(el, binding) {},\n inserted: function inserted(el, binding) {\n p.add(el, binding);\n p.move(p);\n }\n });\n }\n};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(9)\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(4),\n /* template */\n __webpack_require__(14),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 3 */,\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_ParallaxDemo__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_ParallaxDemo___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__components_ParallaxDemo__);\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n name: 'app',\n components: {\n Demo: __WEBPACK_IMPORTED_MODULE_0__components_ParallaxDemo___default.a\n }\n};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__content__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__content___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__content__);\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n name: 'hello',\n components: {\n 'my-content': __WEBPACK_IMPORTED_MODULE_0__content___default.a\n },\n data: function data() {\n return {\n title: 'vue-parallax-js'\n };\n },\n\n computed: {\n ballPos: function ballPos() {\n var rnd = function rnd(max) {\n return Math.round(Math.random() * max);\n };\n var r = [];\n var circs = window.innerWidth / 20;\n if (circs < 30) circs = 30;\n\n for (var i = 0; i < circs; i++) {\n var par = Math.random() * 2;\n var size = (0 + 2 * par).toFixed(2);\n var left = rnd(80) + 10;\n var top = rnd(40) + 30;\n\n\n if (Math.random() < 0.5) {\n par = par * -1;\n }\n\n r.push({\n style: {\n left: left + '%',\n top: top + '%',\n width: size + 'vw',\n height: size + 'vw'\n },\n parallax: par.toFixed(2)\n });\n }\n return r;\n }\n }\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n\tname: 'content',\n\tcomputed: {\n\t\tbasicUsageExample: function basicUsageExample() {\n\t\t\treturn ['

vue-parallax-js

'];\n\t\t},\n\t\toptioExample: function optioExample() {\n\t\t\treturn ['

vue-parallax-js

'];\n\t\t}\n\t}\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(7)\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(5),\n /* template */\n __webpack_require__(12),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(8)\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(6),\n /* template */\n __webpack_require__(13),\n /* scopeId */\n \"data-v-25268710\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 12 */\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: \"page\"\n }, [_c('div', {\n staticClass: \"title\"\n }, [_c('h1', {\n directives: [{\n name: \"parallax\",\n rawName: \"v-parallax.absY\",\n value: (-0.9),\n expression: \"-0.9\",\n modifiers: {\n \"absY\": true\n }\n }],\n staticClass: \"h1title\"\n }, [_vm._v(_vm._s(_vm.title))]), _vm._v(\" \"), _c('h1', {\n directives: [{\n name: \"parallax\",\n rawName: \"v-parallax.absY\",\n value: (1.2),\n expression: \"1.2\",\n modifiers: {\n \"absY\": true\n }\n }],\n staticClass: \"h1title\"\n }, [_vm._v(_vm._s(_vm.title))]), _vm._v(\" \"), _vm._l((_vm.ballPos), function(ball) {\n return _c('i', {\n directives: [{\n name: \"parallax\",\n rawName: \"v-parallax.centerX\",\n value: (ball.parallax),\n expression: \"ball.parallax\",\n modifiers: {\n \"centerX\": true\n }\n }],\n style: (ball.style)\n })\n })], 2), _vm._v(\" \"), _c('my-content')], 1)\n},staticRenderFns: []}\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('section', [_c('div', {\n staticClass: \"content\"\n }, [_c('h1', [_vm._v(\"vue-parallax-js\")]), _vm._v(\" \"), _vm._m(0), _vm._v(\" \"), _vm._m(1), _vm._v(\" \"), _c('b', [_vm._v(\"install via npm\")]), _vm._v(\" \"), _vm._m(2), _vm._v(\" \"), _vm._m(3), _vm._v(\" \"), _c('p', [_vm._v(\"in your main javascript file\")]), _vm._v(\" \"), _vm._m(4), _vm._v(\" \"), _vm._m(5), _vm._v(\" \"), _vm._m(6), _vm._v(\" \"), _c('pre', [_vm._v(\"\\n\" + _vm._s(_vm.basicUsageExample[0])), _c('span', [_vm._v(\"0.2\")]), _vm._v(_vm._s(_vm.basicUsageExample[1]) + \"\\n\\n\"), _vm._m(7), _vm._v(\"\\n\"), _vm._m(8), _vm._v(\"\\n\"), _vm._m(9), _vm._v(\"\\n\\t\\t\\t\")]), _vm._v(\" \"), _vm._m(10), _vm._v(\" \"), _c('p', [_vm._v(\"when adding vue-parallax-js to Vue you can pass some options\")]), _vm._v(\" \"), _vm._m(11), _vm._v(\" \"), _vm._m(12), _vm._v(\" \"), _vm._m(13), _vm._v(\" \"), _vm._m(14), _vm._v(\" \"), _vm._m(15), _vm._v(\" \"), _c('pre', [_vm._v(\"\\n\" + _vm._s(_vm.optioExample[0]) + \".\"), _c('span', [_vm._v(\"modifier\")]), _vm._v(_vm._s(_vm.optioExample[1]) + \"\\n\"), _vm._m(16), _vm._v(\"\\n\\t\\t\\t\")]), _vm._v(\" \"), _vm._m(17), _vm._v(\" \"), _vm._m(18), _vm._v(\" \"), _vm._m(19)])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('p', [_vm._v(\"\\n\\t\\t\\t\\tvue component for parallax effect on elements \"), _c('br'), _vm._v(\"\\n\\t\\t\\t\\tno dependencies \"), _c('br'), _vm._v(\"\\n\\t\\t\\t\\tlightweight \"), _c('br'), _vm._v(\"\\n\\t\\t\\t\\t1.6 KB - minified\"), _c('br'), _vm._v(\"\\n\\t\\t\\t\\tfor \"), _c('span', [_vm._v(\"Vue.js 2\")]), _vm._v(\" \"), _c('br')])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h2', [_vm._v(\"Setup \"), _c('a', {\n attrs: {\n \"href\": \"#setup\",\n \"name\": \"setup\"\n }\n }, [_vm._v(\"~\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('pre', [_vm._v(\"\\nnpm install --save vue-parallax-js\\n\"), _c('em', [_vm._v(\"# or use yarn\")]), _vm._v(\"\\n\"), _c('em', [_vm._v(\"# yarn add vue-parallax-js\")]), _vm._v(\"\\n\\t\\t\\t\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('b', [_vm._v(\"using \"), _c('span', [_vm._v(\"vue-parallax-js\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('pre', [_vm._v(\"\\n\"), _c('em', [_vm._v(\"// import Vue and vue-parallax-js\")]), _vm._v(\"\\nimport Vue from 'vue'\\nimport VueParallaxJs from 'vue-parallax-js'\\n\\n\"), _c('em', [_vm._v(\"// add vue-parallax-js to vue\")]), _vm._v(\"\\nVue.use(VueParallaxJs)\\n\\t\\t\\t\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h2', [_vm._v(\"Usage \"), _c('a', {\n attrs: {\n \"href\": \"#usage\",\n \"name\": \"usage\"\n }\n }, [_vm._v(\"~\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('b', [_vm._v(\"in your templates you can now use the \"), _c('span', [_vm._v(\"v-parallax\")]), _vm._v(\" directive.\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('em', [_c('span', [_vm._v(\"0\")]), _vm._v(\" will appear static on the page (no effect)\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('em', [_c('span', [_vm._v(\"1\")]), _vm._v(\" will move along the page at the same speed as the scrolling\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('em', [_c('span', [_vm._v(\"-1\")]), _vm._v(\" will move upwards at the same speed as the scrolling\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h2', [_vm._v(\"Options \"), _c('a', {\n attrs: {\n \"href\": \"#options\",\n \"name\": \"options\"\n }\n }, [_vm._v(\"~\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('pre', [_vm._v(\"\\nVue.use(VueParallaxJs, \"), _c('span', [_vm._v(\"{option: value}\")]), _vm._v(\")\\n\\t\\t\\t\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"option head\"\n }, [_c('div', {\n staticClass: \"param\"\n }, [_vm._v(\"option\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"type\"\n }, [_vm._v(\"value-type\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"desc\"\n }, [_vm._v(\"description\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"option\"\n }, [_c('div', {\n staticClass: \"param\"\n }, [_vm._v(\"minWidth\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"type\"\n }, [_vm._v(\"integer\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"desc\"\n }, [_vm._v(\"minumum window width for parallax to take effect\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h2', [_vm._v(\"Modifiers \"), _c('a', {\n attrs: {\n \"href\": \"#modifiers\",\n \"name\": \"modifiers\"\n }\n }, [_vm._v(\"~\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('p', [_vm._v(\"when using the \"), _c('span', [_vm._v(\"v-parallax\")]), _vm._v(\" directive you can also pass some modifiers to configure the instance of vue-parallax-js\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('em', [_vm._v(\"// notice the \"), _c('span', [_vm._v(\".\")]), _vm._v(\" between \\\"v-parallax\\\" and the modifier\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"option head\"\n }, [_c('div', {\n staticClass: \"param\"\n }, [_vm._v(\"modifier\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"desc\"\n }, [_vm._v(\"description\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"option\"\n }, [_c('div', {\n staticClass: \"param\"\n }, [_vm._v(\"centerX\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"desc\"\n }, [_vm._v(\"will add \\\"transform: \"), _c('em', [_vm._v(\"translateX(-50%)\")]), _vm._v(\"\\\" along with the parallax positioning\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"option\"\n }, [_c('div', {\n staticClass: \"param\"\n }, [_vm._v(\"absY\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"desc\"\n }, [_vm._v(\"uses the window height instead of the element height for the calculations\")])])\n}]}\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('demo')\n},staticRenderFns: []}\n\n/***/ }),\n/* 15 */,\n/* 16 */,\n/* 17 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__App__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__App___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__App__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__vue_parallax_js_src_vue_parallax_js__ = __webpack_require__(1);\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue___default.a.use(__WEBPACK_IMPORTED_MODULE_2__vue_parallax_js_src_vue_parallax_js__[\"a\" /* default */], {});\n\nnew __WEBPACK_IMPORTED_MODULE_0_vue___default.a({\n el: '#app',\n template: '',\n components: { App: __WEBPACK_IMPORTED_MODULE_1__App___default.a }\n});\n\n/***/ })\n],[17]);\n\n\n// WEBPACK FOOTER //\n// static/js/app.c37f4a906e6ca0265b0b.js","let parallaxjs = function (options) {\n this.options = options\n}\n\nparallaxjs.prototype = {\n items: [],\n active: true,\n\n setStyle (item, value) {\n if (item.modifiers.centerX)\n value += ' translateX(-50%)'\n\n let el = item.el;\n let prop = 'Transform';\n el.style[\"webkit\" + prop] = value;\n el.style[\"moz\" + prop] = value;\n el.style[\"ms\" + prop] = value;\n },\n\n add (el, binding) {\n let value = binding.value\n let arg = binding.arg\n let style = el.currentStyle || window.getComputedStyle(el);\n\n let height = binding.modifiers.absY ? window.innerHeight : el.clientHeight || el.offsetHeight || el.scrollHeight;\n this.items.push({\n el: el,\n initialOffsetTop: el.offsetTop + el.offsetParent.offsetTop - parseInt(style.marginTop),\n style,\n value,\n arg,\n modifiers: binding.modifiers,\n clientHeight: height,\n count: 0\n })\n },\n\n move () {\n if (!this.active) return\n if (window.innerWidth < this.options.minWidth || 0) {\n this.items.map((item) => {\n this.setStyle(item, 'translateY(' + 0 + 'px) translateZ(0px)')\n })\n\n return\n }\n\n let scrollTop = window.scrollY || window.pageYOffset\n let windowHeight = window.innerHeight\n let windowWidth = window.innerWidth\n\n this.items.map((item) => {\n let pos = (scrollTop + windowHeight)\n let elH = item.clientHeight\n // if (item.count > 50) {\n // item.count = 0;\n // elH = item.el.clientHeight || item.el.offsetHeight || item.el.scrollHeight\n // }\n\n\n pos = pos - (elH / 2)\n pos = pos - (windowHeight / 2)\n pos = pos * item.value\n\n let offset = item.initialOffsetTop\n offset = offset * -1\n offset = offset * item.value\n pos = pos + offset\n\n pos = pos.toFixed(2)\n\n // item.count++\n this.setStyle(item, 'translateY(' + pos + 'px)')\n })\n }\n}\n\nexport default {\n install (Vue, options = {}) {\n var p = new parallaxjs(options)\n\n window.addEventListener('scroll', () => {\n requestAnimationFrame(() => {\n p.move(p)\n })\n }, {passive: true})\n window.addEventListener('resize', () => {\n requestAnimationFrame(() => {\n p.move(p)\n })\n }, {passive: true})\n\n Vue.prototype.$parallaxjs = p\n window.$parallaxjs = p\n Vue.directive('parallax', {\n bind (el, binding) {\n },\n inserted (el, binding) {\n p.add(el, binding)\n p.move(p)\n },\n // unbind(el, binding) {\n // p.remove(el)\n // }\n // bind: parallaxjs.add(parallaxjs),\n // update(value) {\n // parallaxjs.update(value)\n // },\n // update(el, binding) {\n // console.log(\"cup\");\n // },\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/vue-parallax-js/src/vue-parallax-js.js","\n/* styles */\nrequire(\"!!./../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!./../node_modules/vue-loader/lib/style-rewriter?id=data-v-7f2df5be!./../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?id=data-v-7f2df5be!./../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 = 2\n// module chunks = 0","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// App.vue?96d0cb14","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ParallaxDemo.vue?30d7f530","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// content.vue?0c0bc891","\n/* styles */\nrequire(\"!!./../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!./../../node_modules/vue-loader/lib/style-rewriter?id=data-v-09efc8b3!sass-loader?indentedSyntax&sourceMap!./../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ParallaxDemo.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!./ParallaxDemo.vue\"),\n /* template */\n require(\"!!./../../node_modules/vue-loader/lib/template-compiler?id=data-v-09efc8b3!./../../node_modules/vue-loader/lib/selector?type=template&index=0!./ParallaxDemo.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ParallaxDemo.vue\n// module id = 10\n// module chunks = 0","\n/* styles */\nrequire(\"!!./../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!./../../node_modules/vue-loader/lib/style-rewriter?id=data-v-25268710&scoped=true!sass-loader?indentedSyntax&sourceMap!./../../node_modules/vue-loader/lib/selector?type=styles&index=0!./content.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!./content.vue\"),\n /* template */\n require(\"!!./../../node_modules/vue-loader/lib/template-compiler?id=data-v-25268710!./../../node_modules/vue-loader/lib/selector?type=template&index=0!./content.vue\"),\n /* scopeId */\n \"data-v-25268710\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/content.vue\n// module id = 11\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: \"page\"\n }, [_c('div', {\n staticClass: \"title\"\n }, [_c('h1', {\n directives: [{\n name: \"parallax\",\n rawName: \"v-parallax.absY\",\n value: (-0.9),\n expression: \"-0.9\",\n modifiers: {\n \"absY\": true\n }\n }],\n staticClass: \"h1title\"\n }, [_vm._v(_vm._s(_vm.title))]), _vm._v(\" \"), _c('h1', {\n directives: [{\n name: \"parallax\",\n rawName: \"v-parallax.absY\",\n value: (1.2),\n expression: \"1.2\",\n modifiers: {\n \"absY\": true\n }\n }],\n staticClass: \"h1title\"\n }, [_vm._v(_vm._s(_vm.title))]), _vm._v(\" \"), _vm._l((_vm.ballPos), function(ball) {\n return _c('i', {\n directives: [{\n name: \"parallax\",\n rawName: \"v-parallax.centerX\",\n value: (ball.parallax),\n expression: \"ball.parallax\",\n modifiers: {\n \"centerX\": true\n }\n }],\n style: (ball.style)\n })\n })], 2), _vm._v(\" \"), _c('my-content')], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler.js?id=data-v-09efc8b3!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/ParallaxDemo.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('section', [_c('div', {\n staticClass: \"content\"\n }, [_c('h1', [_vm._v(\"vue-parallax-js\")]), _vm._v(\" \"), _vm._m(0), _vm._v(\" \"), _vm._m(1), _vm._v(\" \"), _c('b', [_vm._v(\"install via npm\")]), _vm._v(\" \"), _vm._m(2), _vm._v(\" \"), _vm._m(3), _vm._v(\" \"), _c('p', [_vm._v(\"in your main javascript file\")]), _vm._v(\" \"), _vm._m(4), _vm._v(\" \"), _vm._m(5), _vm._v(\" \"), _vm._m(6), _vm._v(\" \"), _c('pre', [_vm._v(\"\\n\" + _vm._s(_vm.basicUsageExample[0])), _c('span', [_vm._v(\"0.2\")]), _vm._v(_vm._s(_vm.basicUsageExample[1]) + \"\\n\\n\"), _vm._m(7), _vm._v(\"\\n\"), _vm._m(8), _vm._v(\"\\n\"), _vm._m(9), _vm._v(\"\\n\\t\\t\\t\")]), _vm._v(\" \"), _vm._m(10), _vm._v(\" \"), _c('p', [_vm._v(\"when adding vue-parallax-js to Vue you can pass some options\")]), _vm._v(\" \"), _vm._m(11), _vm._v(\" \"), _vm._m(12), _vm._v(\" \"), _vm._m(13), _vm._v(\" \"), _vm._m(14), _vm._v(\" \"), _vm._m(15), _vm._v(\" \"), _c('pre', [_vm._v(\"\\n\" + _vm._s(_vm.optioExample[0]) + \".\"), _c('span', [_vm._v(\"modifier\")]), _vm._v(_vm._s(_vm.optioExample[1]) + \"\\n\"), _vm._m(16), _vm._v(\"\\n\\t\\t\\t\")]), _vm._v(\" \"), _vm._m(17), _vm._v(\" \"), _vm._m(18), _vm._v(\" \"), _vm._m(19)])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('p', [_vm._v(\"\\n\\t\\t\\t\\tvue component for parallax effect on elements \"), _c('br'), _vm._v(\"\\n\\t\\t\\t\\tno dependencies \"), _c('br'), _vm._v(\"\\n\\t\\t\\t\\tlightweight \"), _c('br'), _vm._v(\"\\n\\t\\t\\t\\t1.6 KB - minified\"), _c('br'), _vm._v(\"\\n\\t\\t\\t\\tfor \"), _c('span', [_vm._v(\"Vue.js 2\")]), _vm._v(\" \"), _c('br')])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h2', [_vm._v(\"Setup \"), _c('a', {\n attrs: {\n \"href\": \"#setup\",\n \"name\": \"setup\"\n }\n }, [_vm._v(\"~\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('pre', [_vm._v(\"\\nnpm install --save vue-parallax-js\\n\"), _c('em', [_vm._v(\"# or use yarn\")]), _vm._v(\"\\n\"), _c('em', [_vm._v(\"# yarn add vue-parallax-js\")]), _vm._v(\"\\n\\t\\t\\t\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('b', [_vm._v(\"using \"), _c('span', [_vm._v(\"vue-parallax-js\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('pre', [_vm._v(\"\\n\"), _c('em', [_vm._v(\"// import Vue and vue-parallax-js\")]), _vm._v(\"\\nimport Vue from 'vue'\\nimport VueParallaxJs from 'vue-parallax-js'\\n\\n\"), _c('em', [_vm._v(\"// add vue-parallax-js to vue\")]), _vm._v(\"\\nVue.use(VueParallaxJs)\\n\\t\\t\\t\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h2', [_vm._v(\"Usage \"), _c('a', {\n attrs: {\n \"href\": \"#usage\",\n \"name\": \"usage\"\n }\n }, [_vm._v(\"~\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('b', [_vm._v(\"in your templates you can now use the \"), _c('span', [_vm._v(\"v-parallax\")]), _vm._v(\" directive.\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('em', [_c('span', [_vm._v(\"0\")]), _vm._v(\" will appear static on the page (no effect)\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('em', [_c('span', [_vm._v(\"1\")]), _vm._v(\" will move along the page at the same speed as the scrolling\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('em', [_c('span', [_vm._v(\"-1\")]), _vm._v(\" will move upwards at the same speed as the scrolling\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h2', [_vm._v(\"Options \"), _c('a', {\n attrs: {\n \"href\": \"#options\",\n \"name\": \"options\"\n }\n }, [_vm._v(\"~\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('pre', [_vm._v(\"\\nVue.use(VueParallaxJs, \"), _c('span', [_vm._v(\"{option: value}\")]), _vm._v(\")\\n\\t\\t\\t\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"option head\"\n }, [_c('div', {\n staticClass: \"param\"\n }, [_vm._v(\"option\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"type\"\n }, [_vm._v(\"value-type\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"desc\"\n }, [_vm._v(\"description\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"option\"\n }, [_c('div', {\n staticClass: \"param\"\n }, [_vm._v(\"minWidth\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"type\"\n }, [_vm._v(\"integer\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"desc\"\n }, [_vm._v(\"minumum window width for parallax to take effect\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h2', [_vm._v(\"Modifiers \"), _c('a', {\n attrs: {\n \"href\": \"#modifiers\",\n \"name\": \"modifiers\"\n }\n }, [_vm._v(\"~\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('p', [_vm._v(\"when using the \"), _c('span', [_vm._v(\"v-parallax\")]), _vm._v(\" directive you can also pass some modifiers to configure the instance of vue-parallax-js\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('em', [_vm._v(\"// notice the \"), _c('span', [_vm._v(\".\")]), _vm._v(\" between \\\"v-parallax\\\" and the modifier\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"option head\"\n }, [_c('div', {\n staticClass: \"param\"\n }, [_vm._v(\"modifier\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"desc\"\n }, [_vm._v(\"description\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"option\"\n }, [_c('div', {\n staticClass: \"param\"\n }, [_vm._v(\"centerX\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"desc\"\n }, [_vm._v(\"will add \\\"transform: \"), _c('em', [_vm._v(\"translateX(-50%)\")]), _vm._v(\"\\\" along with the parallax positioning\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"option\"\n }, [_c('div', {\n staticClass: \"param\"\n }, [_vm._v(\"absY\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"desc\"\n }, [_vm._v(\"uses the window height instead of the element height for the calculations\")])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler.js?id=data-v-25268710!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/content.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('demo')\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler.js?id=data-v-7f2df5be!./~/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = 14\n// module chunks = 0","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue'\nimport App from './App'\n\n\nimport parallaxjs from './vue-parallax-js/src/vue-parallax-js'\n\nVue.use(parallaxjs, {\n\t// minWidth: 600\n})\n\n\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n template: '',\n components: { App }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/static/js/manifest.0d820bfc10fb992a8abc.js b/docs/static/js/manifest.0d820bfc10fb992a8abc.js deleted file mode 100644 index e9ae2b4..0000000 --- a/docs/static/js/manifest.0d820bfc10fb992a8abc.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var n=window.webpackJsonp;window.webpackJsonp=function(t,c,i){for(var u,a,f,s=0,l=[];s-1)return e.splice(n,1)}}function a(e,t){return ai.call(e,t)}function s(e){return"string"==typeof e||"number"==typeof e}function c(e){var t=Object.create(null);return function(n){var r=t[n];return r||(t[n]=e(n))}}function u(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 l(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function f(e,t){for(var n in t)e[n]=t[n];return e}function p(e){return null!==e&&"object"==typeof e}function d(e){return pi.call(e)===di}function v(e){for(var t={},n=0;n1?l(n):n;for(var r=l(arguments,1),i=0,o=n.length;i=0&&Qi[n].id>e.id;)n--;Qi.splice(Math.max(n,no)+1,0,e)}else Qi.push(e);eo||(eo=!0,Si(Ae))}}function Se(e){oo.clear(),Te(e,oo)}function Te(e,t){var n,r,i=Array.isArray(e);if((i||p(e))&&Object.isExtensible(e)){if(e.__ob__){var o=e.__ob__.dep.id;if(t.has(o))return;t.add(o)}if(i)for(n=e.length;n--;)Te(e[n],t);else for(r=Object.keys(e),n=r.length;n--;)Te(e[r[n]],t)}}function Ee(e){e._watchers=[];var t=e.$options;t.props&&je(e,t.props),t.methods&&Le(e,t.methods),t.data?Ie(e):O(e._data={},!0),t.computed&&Ne(e,t.computed),t.watch&&De(e,t.watch)}function je(e,t){var n=e.$options.propsData||{},r=e.$options._propKeys=Object.keys(t),i=!e.$parent;Pi.shouldConvert=i;for(var o=function(i){var o=r[i];S(e,o,U(o,t,n,e))},a=0;a-1:e.test(t)}function Ge(e,t){for(var n in e){var r=e[n];if(r){var i=We(r.componentOptions);i&&!t(i)&&(Ye(r),e[n]=null)}}}function Ye(e){e&&(e.componentInstance._inactive||xe(e.componentInstance,"deactivated"),e.componentInstance.$destroy())}function Qe(e){var t={};t.get=function(){return mi},Object.defineProperty(e,"config",t),e.util=Bi,e.set=T,e.delete=E,e.nextTick=Si,e.options=Object.create(null),mi._assetTypes.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,f(e.options.components,lo),Ve(e),Je(e),qe(e),Ke(e)}function Xe(e){for(var t=e.data,n=e,r=e;r.componentInstance;)r=r.componentInstance._vnode,r.data&&(t=et(r.data,t));for(;n=n.parent;)n.data&&(t=et(t,n.data));return tt(t)}function et(e,t){return{staticClass:nt(e.staticClass,t.staticClass),class:e.class?[e.class,t.class]:t.class}}function tt(e){var t=e.class,n=e.staticClass;return n||t?nt(n,rt(t)):""}function nt(e,t){return e?t?e+" "+t:e:t||""}function rt(e){var t="";if(!e)return t;if("string"==typeof e)return e;if(Array.isArray(e)){for(var n,r=0,i=e.length;r-1?Oo[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Oo[e]=/HTMLUnknownElement/.test(t.toString())}function at(e){if("string"==typeof e){if(e=document.querySelector(e),!e)return document.createElement("div")}return e}function st(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&"multiple"in t.data.attrs&&n.setAttribute("multiple","multiple"),n)}function ct(e,t){return document.createElementNS(wo[e],t)}function ut(e){return document.createTextNode(e)}function lt(e){return document.createComment(e)}function ft(e,t,n){e.insertBefore(t,n)}function pt(e,t){e.removeChild(t)}function dt(e,t){e.appendChild(t)}function vt(e){return e.parentNode}function ht(e){return e.nextSibling}function mt(e){return e.tagName}function gt(e,t){e.textContent=t}function yt(e,t,n){e.setAttribute(t,n)}function _t(e,t){var n=e.data.ref;if(n){var r=e.context,i=e.componentInstance||e.elm,a=r.$refs;t?Array.isArray(a[n])?o(a[n],i):a[n]===i&&(a[n]=void 0):e.data.refInFor?Array.isArray(a[n])&&a[n].indexOf(i)<0?a[n].push(i):a[n]=[i]:a[n]=i}}function bt(e){return null==e}function $t(e){return null!=e}function wt(e,t){return e.key===t.key&&e.tag===t.tag&&e.isComment===t.isComment&&!e.data==!t.data}function Ct(e,t,n){var r,i,o={};for(r=t;r<=n;++r)i=e[r].key,$t(i)&&(o[i]=r);return o}function xt(e){function t(e){return new Hi(O.tagName(e).toLowerCase(),{},[],void 0,e)}function n(e,t){function n(){0===--n.listeners&&r(e)}return n.listeners=t,n}function r(e){var t=O.parentNode(e);t&&O.removeChild(t,e)}function o(e,t,n,r,i){if(e.isRootInsert=!i,!a(e,t,n,r)){var o=e.data,s=e.children,c=e.tag;$t(c)?(e.elm=e.ns?O.createElementNS(e.ns,c):O.createElement(c,e),v(e),f(e,s,t),$t(o)&&d(e,t),l(n,e.elm,r)):e.isComment?(e.elm=O.createComment(e.text),l(n,e.elm,r)):(e.elm=O.createTextNode(e.text),l(n,e.elm,r))}}function a(e,t,n,r){var i=e.data;if($t(i)){var o=$t(e.componentInstance)&&i.keepAlive;if($t(i=i.hook)&&$t(i=i.init)&&i(e,!1,n,r),$t(e.componentInstance))return c(e,t),o&&u(e,t,n,r),!0}}function c(e,t){e.data.pendingInsert&&t.push.apply(t,e.data.pendingInsert),e.elm=e.componentInstance.$el,p(e)?(d(e,t),v(e)):(_t(e),t.push(e))}function u(e,t,n,r){for(var i,o=e;o.componentInstance;)if(o=o.componentInstance._vnode,$t(i=o.data)&&$t(i=i.transition)){for(i=0;ip?(u=bt(n[m+1])?null:n[m+1].elm,h(e,u,n,f,m,r)):f>m&&g(e,t,l,p)}function b(e,t,n,r){if(e!==t){if(t.isStatic&&e.isStatic&&t.key===e.key&&(t.isCloned||t.isOnce))return t.elm=e.elm,void(t.componentInstance=e.componentInstance);var i,o=t.data,a=$t(o);a&&$t(i=o.hook)&&$t(i=i.prepatch)&&i(e,t);var s=t.elm=e.elm,c=e.children,u=t.children;if(a&&p(t)){for(i=0;i-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 Jt(e,t){if(t&&t.trim())if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t);else{for(var n=" "+e.getAttribute("class")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");e.setAttribute("class",n.trim())}}function qt(e){Xo(function(){Xo(e)})}function Kt(e,t){(e._transitionClasses||(e._transitionClasses=[])).push(t),Vt(e,t)}function Wt(e,t){e._transitionClasses&&o(e._transitionClasses,t),Jt(e,t)}function Zt(e,t,n){var r=Gt(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Ko?Go:Qo,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=a&&u()};setTimeout(function(){c0&&(n=Ko,l=a,f=o.length):t===Wo?u>0&&(n=Wo,l=u,f=c.length):(l=Math.max(a,u),n=l>0?a>u?Ko:Wo:null,f=n?n===Ko?o.length:c.length:0);var p=n===Ko&&ea.test(r[Zo+"Property"]);return{type:n,timeout:l,propCount:f,hasTransform:p}}function Yt(e,t){for(;e.length1,I=n._enterCb=nn(function(){E&&(Wt(n,k),Wt(n,x)),I.cancelled?(E&&Wt(n,C),T&&T(n)):S&&S(n),n._enterCb=null});e.data.show||ie(e.data.hook||(e.data.hook={}),"insert",function(){var t=n.parentNode,r=t&&t._pending&&t._pending[e.key];r&&r.tag===e.tag&&r.elm._leaveCb&&r.elm._leaveCb(),O&&O(n,I)},"transition-insert"),A&&A(n),E&&(Kt(n,C),Kt(n,x),qt(function(){Kt(n,k),Wt(n,C),I.cancelled||j||Zt(n,o,I)})),e.data.show&&(t&&t(),O&&O(n,I)),E||j||I()}}}function en(e,t){function n(){g.cancelled||(e.data.show||((r.parentNode._pending||(r.parentNode._pending={}))[e.key]=e),l&&l(r),h&&(Kt(r,s),Kt(r,u),qt(function(){Kt(r,c),Wt(r,s),g.cancelled||m||Zt(r,a,g)})),f&&f(r,g),h||m||g())}var r=e.elm;r._enterCb&&(r._enterCb.cancelled=!0,r._enterCb());var i=tn(e.data.transition);if(!i)return t();if(!r._leaveCb&&1===r.nodeType){var o=i.css,a=i.type,s=i.leaveClass,c=i.leaveToClass,u=i.leaveActiveClass,l=i.beforeLeave,f=i.leave,p=i.afterLeave,d=i.leaveCancelled,v=i.delayLeave,h=o!==!1&&!wi,m=f&&(f._length||f.length)>1,g=r._leaveCb=nn(function(){r.parentNode&&r.parentNode._pending&&(r.parentNode._pending[e.key]=null),h&&(Wt(r,c),Wt(r,u)),g.cancelled?(h&&Wt(r,s),d&&d(r)):(t(),p&&p(r)),r._leaveCb=null});v?v(n):n()}}function tn(e){if(e){if("object"==typeof e){var t={};return e.css!==!1&&f(t,ta(e.name||"v")),f(t,e),t}return"string"==typeof e?ta(e):void 0}}function nn(e){var t=!1;return function(){t||(t=!0,e())}}function rn(e,t){t.data.show||Xt(t)}function on(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=e.options.length;s-1,a.selected!==o&&(a.selected=o);else if(g(sn(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function an(e,t){for(var n=0,r=t.length;n',n.innerHTML.indexOf(t)>0}function $n(e){return va=va||document.createElement("div"),va.innerHTML=e,va.textContent}function wn(e,t){return t&&(e=e.replace(ss,"\n")),e.replace(os,"<").replace(as,">").replace(cs,"&").replace(us,'"')}function Cn(e,t){function n(t){f+=t,e=e.substring(t)}function r(){var t=e.match(ka);if(t){var r={tagName:t[1],attrs:[],start:f};n(t[0].length);for(var i,o;!(i=e.match(Aa))&&(o=e.match(wa));)n(o[0].length),r.attrs.push(o);if(i)return r.unarySlash=i[1],n(i[0].length),r.end=f,r}}function i(e){var n=e.tagName,r=e.unarySlash;u&&("p"===s&&ya(n)&&o(s),ga(n)&&s===n&&o(n));for(var i=l(n)||"html"===n&&"head"===s||!!r,a=e.attrs.length,f=new Array(a),p=0;p=0&&c[i].lowerCasedTag!==o;i--);else i=0;if(i>=0){for(var a=c.length-1;a>=i;a--)t.end&&t.end(c[a].tag,n,r);c.length=i,s=i&&c[i-1].tag}else"br"===o?t.start&&t.start(e,[],!0,n,r):"p"===o&&(t.start&&t.start(e,[],!1,n,r),t.end&&t.end(e,n,r))}for(var a,s,c=[],u=t.expectHTML,l=t.isUnaryTag||vi,f=0;e;){if(a=e,s&&rs(s)){var p=s.toLowerCase(),d=is[p]||(is[p]=new RegExp("([\\s\\S]*?)(]*>)","i")),v=0,h=e.replace(d,function(e,n,r){return v=r.length,"script"!==p&&"style"!==p&&"noscript"!==p&&(n=n.replace(//g,"$1").replace(//g,"$1")),t.chars&&t.chars(n),""});f+=e.length-h.length,e=h,o(p,f-v,f)}else{var m=e.indexOf("<");if(0===m){if(Ta.test(e)){var g=e.indexOf("-->");if(g>=0){n(g+3);continue}}if(Ea.test(e)){var y=e.indexOf("]>");if(y>=0){n(y+2);continue}}var _=e.match(Sa);if(_){n(_[0].length);continue}var b=e.match(Oa);if(b){var $=f;n(b[0].length),o(b[1],$,f);continue}var w=r();if(w){i(w);continue}}var C=void 0,x=void 0,k=void 0;if(m>0){for(x=e.slice(m);!(Oa.test(x)||ka.test(x)||Ta.test(x)||Ea.test(x)||(k=x.indexOf("<",1),k<0));)m+=k,x=e.slice(m);C=e.substring(0,m),n(m)}m<0&&(C=e,e=""),t.chars&&C&&t.chars(C)}if(e===a&&t.chars){t.chars(e);break}}o()}function xn(e){function t(){(a||(a=[])).push(e.slice(v,i).trim()),v=i+1}var n,r,i,o,a,s=!1,c=!1,u=!1,l=!1,f=0,p=0,d=0,v=0;for(i=0;i=0&&(m=e.charAt(h)," "===m);h--);m&&/[\w$]/.test(m)||(l=!0)}}else void 0===o?(v=i+1,o=e.slice(0,i).trim()):t();if(void 0===o?o=e.slice(0,i).trim():0!==v&&t(),a)for(i=0;ia&&o.push(JSON.stringify(e.slice(a,i)));var s=xn(r[1].trim());o.push("_s("+s+")"),a=i+r[0].length}return a=Ia}function Rn(e){return 34===e||39===e}function Un(e){var t=1;for(Da=La;!Pn();)if(e=Dn(),Rn(e))Fn(e);else if(91===e&&t++,93===e&&t--,0===t){Pa=La;break}}function Fn(e){for(var t=e;!Pn()&&(e=Dn(),e!==t););}function Bn(e,t){Ra=t.warn||On,Ua=t.getTagNamespace||vi,Fa=t.mustUseProp||vi,Ba=t.isPreTag||vi,Ha=Sn(t.modules,"preTransformNode"),za=Sn(t.modules,"transformNode"),Va=Sn(t.modules,"postTransformNode"),Ja=t.delimiters;var n,r,i=[],o=t.preserveWhitespace!==!1,a=!1,s=!1;return Cn(e,{expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,shouldDecodeNewlines:t.shouldDecodeNewlines,start:function(e,o,c){function u(e){}var l=r&&r.ns||Ua(e);$i&&"svg"===l&&(o=or(o));var f={type:1,tag:e,attrsList:o,attrsMap:rr(o),parent:r,children:[]};l&&(f.ns=l),ir(f)&&!Ai()&&(f.forbidden=!0);for(var p=0;p-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),In(e,"click","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$c){$$i<0&&("+t+"=$$a.concat($$v))}else{$$i>-1&&("+t+"=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{"+t+"=$$c}",null,!0)}function Kr(e,t,n){var r=n&&n.number,i=Nn(e,"value")||"null";i=r?"_n("+i+")":i,Tn(e,"checked","_q("+t+","+i+")"),In(e,"click",Gr(t,i),null,!0)}function Wr(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=o||$i&&"range"===r?"change":"input",u=!o&&"range"!==r,l="input"===e.tag||"textarea"===e.tag,f=l?"$event.target.value"+(s?".trim()":""):s?"(typeof $event === 'string' ? $event.trim() : $event)":"$event";f=a||"number"===r?"_n("+f+")":f;var p=Gr(t,f);l&&u&&(p="if($event.target.composing)return;"+p),Tn(e,"value",l?"_s("+t+")":"("+t+")"),In(e,c,p,null,!0),(s||a||"number"===r)&&In(e,"blur","$forceUpdate()")}function Zr(e,t,n){var r=n&&n.number,i='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(r?"_n(val)":"val")+"})"+(null==e.attrsMap.multiple?"[0]":""),o=Gr(t,i);In(e,"change",o,null,!0)}function Gr(e,t){var n=Ln(e);return null===n.idx?e+"="+t:"var $$exp = "+n.exp+", $$idx = "+n.idx+";if (!Array.isArray($$exp)){"+e+"="+t+"}else{$$exp.splice($$idx, 1, "+t+")}"}function Yr(e,t){t.value&&Tn(e,"textContent","_s("+t.value+")")}function Qr(e,t){t.value&&Tn(e,"innerHTML","_s("+t.value+")")}function Xr(e,t){return t=t?f(f({},Ms),t):Ms,Fr(e,t)}function ei(e,t,n){var r=(t&&t.warn||Ei,t&&t.delimiters?String(t.delimiters)+e:e);if(Ns[r])return Ns[r];var i={},o=Xr(e,t);i.render=ti(o.render);var a=o.staticRenderFns.length;i.staticRenderFns=new Array(a);for(var s=0;s0,Ci=bi&&bi.indexOf("edge/")>0,xi=bi&&bi.indexOf("android")>0,ki=bi&&/iphone|ipad|ipod|ios/.test(bi),Ai=function(){return void 0===ri&&(ri=!_i&&"undefined"!=typeof t&&"server"===t.process.env.VUE_ENV),ri},Oi=_i&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,Si=function(){function e(){r=!1;var e=n.slice(0);n.length=0;for(var t=0;t1&&(t[n[0].trim()]=n[1].trim())}}),t}),Fo=/^--/,Bo=/\s*!important$/,Ho=function(e,t,n){Fo.test(t)?e.style.setProperty(t,n):Bo.test(n)?e.style.setProperty(t,n.replace(Bo,""),"important"):e.style[Vo(t)]=n},zo=["Webkit","Moz","ms"],Vo=c(function(e){if(po=po||document.createElement("div"),e=ci(e),"filter"!==e&&e in po.style)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n\/=]+)/,ba=/(?:=)/,$a=[/"([^"]*)"+/.source,/'([^']*)'+/.source,/([^\s"'=<>`]+)/.source],wa=new RegExp("^\\s*"+_a.source+"(?:\\s*("+ba.source+")\\s*(?:"+$a.join("|")+"))?"),Ca="[a-zA-Z_][\\w\\-\\.]*",xa="((?:"+Ca+"\\:)?"+Ca+")",ka=new RegExp("^<"+xa),Aa=/^\s*(\/?)>/,Oa=new RegExp("^<\\/"+xa+"[^>]*>"),Sa=/^]+>/i,Ta=/^');\n\n if (commentEnd >= 0) {\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 continue\n }\n }\n\n var text = (void 0), rest$1 = (void 0), next = (void 0);\n if (textEnd > 0) {\n rest$1 = html.slice(textEnd);\n while (\n !endTag.test(rest$1) &&\n !startTagOpen.test(rest$1) &&\n !comment.test(rest$1) &&\n !conditionalComment.test(rest$1)\n ) {\n // < in plain text, be forgiving and treat it as text\n next = rest$1.indexOf('<', 1);\n if (next < 0) { break }\n textEnd += next;\n rest$1 = 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 stackedTag = lastTag.toLowerCase();\n var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(]*>)', 'i'));\n var endTagLength = 0;\n var rest = html.replace(reStackedTag, function (all, text, endTag) {\n endTagLength = endTag.length;\n if (stackedTag !== 'script' && stackedTag !== 'style' && stackedTag !== 'noscript') {\n text = text\n .replace(//g, '$1')\n .replace(//g, '$1');\n }\n if (options.chars) {\n options.chars(text);\n }\n return ''\n });\n index += html.length - rest.length;\n html = rest;\n parseEndTag(stackedTag, index - endTagLength, index);\n }\n\n if (html === last && options.chars) {\n options.chars(html);\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(tagName) && lastTag === tagName) {\n parseEndTag(tagName);\n }\n }\n\n var unary = isUnaryTag$$1(tagName) || tagName === 'html' && lastTag === 'head' || !!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 unarySlash = '';\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 (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\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 || !/[\\w$]/.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\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 baseWarn (msg) {\n console.error((\"[Vue parser]: \" + 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) {\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 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\nvar len;\nvar str;\nvar chr;\nvar index$1;\nvar expressionPos;\nvar expressionEndPos;\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\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 dirRE = /^v-|^@|^:/;\nvar forAliasRE = /(.*?)\\s+(?:in|of)\\s+(.*)/;\nvar forIteratorRE = /\\((\\{[^}]*\\}|[^,]*),([^,]*)(?:,([^,]*))?\\)/;\nvar bindRE = /^:|^v-bind:/;\nvar onRE = /^@|^v-on:/;\nvar argRE = /:(.*)$/;\nvar modifierRE = /\\.[^.]+/g;\n\nvar decodeHTMLCached = cached(decode);\n\n// configurable state\nvar warn$1;\nvar platformGetTagNamespace;\nvar platformMustUseProp;\nvar platformIsPreTag;\nvar preTransforms;\nvar transforms;\nvar postTransforms;\nvar delimiters;\n\n/**\n * Convert HTML string to AST.\n */\nfunction parse (\n template,\n options\n) {\n warn$1 = options.warn || baseWarn;\n platformGetTagNamespace = options.getTagNamespace || no;\n platformMustUseProp = options.mustUseProp || no;\n platformIsPreTag = options.isPreTag || no;\n preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n transforms = pluckModuleFunction(options.modules, 'transformNode');\n postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n delimiters = options.delimiters;\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 parseHTML(template, {\n expectHTML: options.expectHTML,\n isUnaryTag: options.isUnaryTag,\n shouldDecodeNewlines: options.shouldDecodeNewlines,\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$1(\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 warned = true;\n warn$1(\n \"Cannot use <\" + (el.tag) + \"> as component root element because it may \" +\n 'contain multiple nodes:\\n' + template\n );\n }\n if (el.attrsMap.hasOwnProperty('v-for')) {\n warned = true;\n warn$1(\n 'Cannot use v-for on stateful component root element because ' +\n 'it renders multiple elements:\\n' + template\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 warned = true;\n warn$1(\n \"Component template should contain exactly one root element:\" +\n \"\\n\\n\" + template + \"\\n\\n\" +\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 }\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 === ' ') {\n element.children.pop();\n }\n // pop stack\n stack.length -= 1;\n currentParent = stack[stack.length - 1];\n // check pre state\n if (element.pre) {\n inVPre = false;\n }\n if (platformIsPreTag(element.tag)) {\n inPre = false;\n }\n },\n\n chars: function chars (text) {\n if (!currentParent) {\n if (false) {\n warned = true;\n warn$1(\n 'Component template requires a root element, rather than just text:\\n\\n' + template\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 return\n }\n var children = currentParent.children;\n text = inPre || text.trim()\n ? 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[children.length - 1].text !== ' ') {\n currentParent.children.push({\n type: 3,\n text: text\n });\n }\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$1(\"