UNPKG

vue-scrollable-tabs

Version:
2 lines 8.41 kB
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("vue-scrollable-tabs",[],e):"object"==typeof exports?exports["vue-scrollable-tabs"]=e():t["vue-scrollable-tabs"]=e()}("undefined"!=typeof self?self:this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=3)}([function(t,e){t.exports=function(t,e,n,r,o,a){var i,s=t=t||{},l=typeof t.default;"object"!==l&&"function"!==l||(i=t,s=t.default);var c="function"==typeof s?s.options:s;e&&(c.render=e.render,c.staticRenderFns=e.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),o&&(c._scopeId=o);var u;if(a?(u=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=u):r&&(u=r),u){var f=c.functional,d=f?c.render:c.beforeCreate;f?(c._injectStyles=u,c.render=function(t,e){return u.call(e),d(t,e)}):c.beforeCreate=d?[].concat(d,u):[u]}return{esModule:i,exports:s,options:c}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"scrollTab",props:{getActiveTab:{type:Function,default:function(){}}},data:function(){return{tabs:[],tabHeight:0,wrapWidth:1e5}},mounted:function(){this.calcWidth()},methods:{active:function(t){var e=this.tabs[t],n=e.left+e.width/2-this.$refs.scrollTab.offsetWidth/2;this.smoothScroll(n)},getActive:function(t){this.$emit("getActiveTab",t)},calcWidth:function(){var t=this;this.$nextTick(function(){if(!t.$slots.default)return!1;var e=0;t.tabs=[],t.$slots.default.forEach(function(n,r){var o=n.elm,a=o.getBoundingClientRect();t.tabHeight=a.height,t.tabs.push({left:e,width:a.width,index:r}),e+=a.width}),t.wrapWidth=e})},smoothScroll:function(t){var e=this,n=this.$refs.scrollTab,r=n.scrollLeft,o=t-r>0?"bottom":"top";this.scrolling=!0;var a=setInterval(function(){if(Math.abs(r-t)<=20)e.scrolling=!1,clearInterval(a),n.scrollLeft=t;else{var i=(t-r)/3;i=Math.abs(i)>20?i:"bottom"===o?20:-20,r+=i,n.scrollLeft=r}},16.7)}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"tabItem",props:{index:{type:Number,default:0},data:{type:Object,default:{}}},methods:{handleClick:function(){this.$parent.active(this.index),this.$parent.getActive(this.data)}}}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.tabItem=e.scrollTab=e.install=void 0;var o=n(4),a=r(o),i=n(11),s=r(i),l=[a.default,s.default],c=function(t){arguments.length>1&&void 0!==arguments[1]&&arguments[1];l.map(function(e){t.component(e.name,e)})},u={scrollTab:a.default,tabItem:s.default,install:c};e.default=u,e.install=c,e.scrollTab=a.default,e.tabItem=s.default},function(t,e,n){"use strict";function r(t){n(5)}Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),a=n.n(o);for(var i in o)"default"!==i&&function(t){n.d(e,t,function(){return o[t]})}(i);var s=n(10),l=n(0),c=r,u=l(a.a,s.a,!1,c,"data-v-1955138f",null);e.default=u.exports},function(t,e,n){var r=n(6);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n(8)("18c8e335",r,!0,{})},function(t,e,n){e=t.exports=n(7)(!1),e.push([t.i,".vst-container[data-v-1955138f]{position:relative;overflow:hidden}.vst-container .scrollTab[data-v-1955138f]{width:100%;position:absolute;top:0;left:0;overflow-x:scroll;overflow-y:hidden;display:block;-webkit-overflow-scrolling:touch}.vst-container .scrollTab[data-v-1955138f]::-webkit-scrollbar{display:none}.vst-container .scrollTabWrap[data-v-1955138f]{display:flex;flex-direction:row;align-items:center}",""])},function(t,e){function n(t,e){var n=t[1]||"",o=t[3];if(!o)return n;if(e&&"function"==typeof btoa){var a=r(o);return[n].concat(o.sources.map(function(t){return"/*# sourceURL="+o.sourceRoot+t+" */"})).concat([a]).join("\n")}return[n].join("\n")}function r(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var r=n(e,t);return e[2]?"@media "+e[2]+"{"+r+"}":r}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},o=0;o<this.length;o++){var a=this[o][0];"number"==typeof a&&(r[a]=!0)}for(o=0;o<t.length;o++){var i=t[o];"number"==typeof i[0]&&r[i[0]]||(n&&!i[2]?i[2]=n:n&&(i[2]="("+i[2]+") and ("+n+")"),e.push(i))}},e}},function(t,e,n){function r(t){for(var e=0;e<t.length;e++){var n=t[e],r=u[n.id];if(r){r.refs++;for(var o=0;o<r.parts.length;o++)r.parts[o](n.parts[o]);for(;o<n.parts.length;o++)r.parts.push(a(n.parts[o]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{for(var i=[],o=0;o<n.parts.length;o++)i.push(a(n.parts[o]));u[n.id]={id:n.id,refs:1,parts:i}}}}function o(){var t=document.createElement("style");return t.type="text/css",f.appendChild(t),t}function a(t){var e,n,r=document.querySelector("style["+m+'~="'+t.id+'"]');if(r){if(v)return h;r.parentNode.removeChild(r)}if(g){var a=p++;r=d||(d=o()),e=i.bind(null,r,a,!1),n=i.bind(null,r,a,!0)}else r=o(),e=s.bind(null,r),n=function(){r.parentNode.removeChild(r)};return e(t),function(r){if(r){if(r.css===t.css&&r.media===t.media&&r.sourceMap===t.sourceMap)return;e(t=r)}else n()}}function i(t,e,n,r){var o=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=y(e,o);else{var a=document.createTextNode(o),i=t.childNodes;i[e]&&t.removeChild(i[e]),i.length?t.insertBefore(a,i[e]):t.appendChild(a)}}function s(t,e){var n=e.css,r=e.media,o=e.sourceMap;if(r&&t.setAttribute("media",r),b.ssrId&&t.setAttribute(m,e.id),o&&(n+="\n/*# sourceURL="+o.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}var l="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!l)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var c=n(9),u={},f=l&&(document.head||document.getElementsByTagName("head")[0]),d=null,p=0,v=!1,h=function(){},b=null,m="data-vue-ssr-id",g="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());t.exports=function(t,e,n,o){v=n,b=o||{};var a=c(t,e);return r(a),function(e){for(var n=[],o=0;o<a.length;o++){var i=a[o],s=u[i.id];s.refs--,n.push(s)}e?(a=c(t,e),r(a)):a=[];for(var o=0;o<n.length;o++){var s=n[o];if(0===s.refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete u[s.id]}}}};var y=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},function(t,e){t.exports=function(t,e){for(var n=[],r={},o=0;o<e.length;o++){var a=e[o],i=a[0],s=a[1],l=a[2],c=a[3],u={id:t+":"+o,css:s,media:l,sourceMap:c};r[i]?r[i].parts.push(u):n.push(r[i]={id:i,parts:[u]})}return n}},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"vst-container",style:{height:t.tabHeight+"px"}},[n("div",{ref:"scrollTab",staticClass:"scrollTab"},[n("div",{staticClass:"scrollTabWrap",style:{width:t.wrapWidth+"px"}},[t._t("default")],2)])])},o=[],a={render:r,staticRenderFns:o};e.a=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,function(){return r[t]})}(a);var i=n(12),s=n(0),l=s(o.a,i.a,!1,null,null,null);e.default=l.exports},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",{staticClass:"vst-tabItem",on:{click:t.handleClick}},[t._t("default")],2)},o=[],a={render:r,staticRenderFns:o};e.a=a}])}); //# sourceMappingURL=vue-scrollable-tabs.js.map