vue-sliding-pagination
Advanced tools
Comparing version 1.0.1 to 1.0.2
@@ -1,1 +0,1 @@ | ||
!function(i){var e={};function t(n){if(e[n])return e[n].exports;var a=e[n]={i:n,l:!1,exports:{}};return i[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}t.m=i,t.c=e,t.d=function(i,e,n){t.o(i,e)||Object.defineProperty(i,e,{enumerable:!0,get:n})},t.r=function(i){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},t.t=function(i,e){if(1&e&&(i=t(i)),8&e)return i;if(4&e&&"object"==typeof i&&i&&i.__esModule)return i;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:i}),2&e&&"string"!=typeof i)for(var a in i)t.d(n,a,function(e){return i[e]}.bind(null,a));return n},t.n=function(i){var e=i&&i.__esModule?function(){return i.default}:function(){return i};return t.d(e,"a",e),e},t.o=function(i,e){return Object.prototype.hasOwnProperty.call(i,e)},t.p="",t(t.s=2)}([function(i,e,t){},function(i,e,t){"use strict";var n=t(0);t.n(n).a},function(i,e,t){"use strict";t.r(e);var n=function(){var i=this,e=i.$createElement,t=i._self._c||e;return t("nav",{staticClass:"c-sliding-pagination",attrs:{"aria-label":i.ariaPaginationLabel}},[t("ul",{staticClass:"c-sliding-pagination__list"},[i.showPreviousPageAction?t("li",{staticClass:"c-sliding-pagination__list-element",class:1==i.current?"c-sliding-pagination__list-element--disabled":""},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":i.ariaPreviousPageLabel,disabled:1==i.current},on:{click:function(e){e.preventDefault(),e.stopPropagation(),i.goToPage(i.current-1)}}},[i._t("previous-page",[i._v("«")])],2)]):i._e(),i._l(i.beginningPages,function(e){return t("li",{key:e,staticClass:"c-sliding-pagination__list-element",class:i.isCurrentPage(e)?"c-sliding-pagination__list-element--active":""},[t(i.pageComponent,{tag:"component",attrs:{"is-current":i.isCurrentPage(e),"aria-page-label":i.pageLabel(e),page:e},on:{"page-click":function(t){i.goToPage(e)}}})],1)}),i.hasBeginningGap?t("li",{staticClass:"c-sliding-pagination__list-element c-sliding-pagination__list-element--disabled",attrs:{"aria-hidden":"true"}},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#",disabled:""}},[i._t("gap-left",[i._v("…")])],2)]):i._e(),i._l(i.slidingWindowPages,function(e){return t("li",{key:e,staticClass:"c-sliding-pagination__list-element",class:i.isCurrentPage(e)?"c-sliding-pagination__list-element--active":""},[t(i.pageComponent,{tag:"component",attrs:{"is-current":i.isCurrentPage(e),"aria-page-label":i.pageLabel(e),page:e},on:{"page-click":function(t){i.goToPage(e)}}})],1)}),i.hasEndingGap?t("li",{staticClass:"c-sliding-pagination__list-element c-sliding-pagination__list-element--disabled",attrs:{"aria-hidden":"true"}},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#",disabled:""}},[i._t("gap-right",[i._v("…")])],2)]):i._e(),i._l(i.endingPages,function(e){return t("li",{key:e,staticClass:"c-sliding-pagination__list-element",class:i.isCurrentPage(e)?"c-sliding-pagination__list-element--active":""},[t(i.pageComponent,{tag:"component",attrs:{"is-current":i.isCurrentPage(e),"aria-page-label":i.pageLabel(e),page:e},on:{"page-click":function(t){i.goToPage(e)}}})],1)}),i.showNextPageAction?t("li",{staticClass:"c-sliding-pagination__list-element",class:i.current==i.total?"c-sliding-pagination__list-element--disabled":""},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":i.ariaNextPageLabel,disabled:i.current==i.total},on:{click:function(e){e.preventDefault(),e.stopPropagation(),i.goToPage(i.current+1)}}},[i._t("next-page",[i._v("»")])],2)]):i._e()],2)])};n._withStripped=!0;var a=function(){var i=this,e=i.$createElement;return(i._self._c||e)("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":i.ariaPageLabel},on:{click:function(e){e.stopPropagation(),e.preventDefault(),i.goToPage(i.page)}}},[i._v("\n "+i._s(i.page)+"\n")])};function r(i,e,t,n,a,r,s,o){var l,g="function"==typeof i?i.options:i;if(e&&(g.render=e,g.staticRenderFns=t,g._compiled=!0),n&&(g.functional=!0),r&&(g._scopeId="data-v-"+r),s?(l=function(i){(i=i||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(i=__VUE_SSR_CONTEXT__),a&&a.call(this,i),i&&i._registeredComponents&&i._registeredComponents.add(s)},g._ssrRegister=l):a&&(l=o?function(){a.call(this,this.$root.$options.shadowRoot)}:a),l)if(g.functional){g._injectStyles=l;var u=g.render;g.render=function(i,e){return l.call(e),u(i,e)}}else{var c=g.beforeCreate;g.beforeCreate=c?[].concat(c,l):[l]}return{exports:i,options:g}}a._withStripped=!0;var s=r({name:"SlidingPaginationDefaultPage",props:{ariaPageLabel:{type:String,required:!0},isCurrent:{type:Boolean,required:!0},page:{type:Number,required:!0}},computed:{currentClass:function(){return this.isCurrent?"c-sliding-pagination__page--current":""}},methods:{goToPage:function(){this.$emit("page-click",this.page)}}},a,[],!1,null,null,null);s.options.__file="src/SlidingPaginationDefaultPage.vue";var o=s.exports;function l(i,e){var t=[];if("number"!=typeof i||"number"!=typeof e)return t;if(i>e){var n=i;i=e,e=n}for(var a=i;a<=e;a++)t.push(a);return t}var g={name:"SlidingPagination",props:{ariaPaginationLabel:{type:String,required:!1,default:"Pagination Navigation"},ariaGotoPageLabel:{type:String,required:!1,default:"Go to page %page% of %total%"},ariaPreviousPageLabel:{type:String,required:!1,default:"Go to previous page"},ariaNextPageLabel:{type:String,required:!1,default:"Go to next page"},ariaCurrentPageLabel:{type:String,required:!1,default:"Page %page% of %total%, current page"},current:{required:!0,type:Number},total:{required:!0,type:Number},slidingEndingSize:{required:!1,type:Number,default:2},slidingWindowSize:{required:!1,type:Number,default:3},nonSlidingSize:{required:!1,type:Number,default:9},pageComponent:{required:!1,type:String,default:"sliding-pagination-default-page"}},components:{SlidingPaginationDefaultPage:o},computed:{isSliding:function(){return this.total>this.nonSlidingSize},hasBeginningGap:function(){return!!this.isSliding&&this.lastBeginningPage+1!==this.firstWindowPage},hasEndingGap:function(){return!!this.isSliding&&this.lastWindowPage+1!==this.firstEndingPage},beginningPages:function(){return l(1,this.isSliding?this.slidingEndingSize:this.total)},lastBeginningPage:function(){return this.beginningPages[this.beginningPages.length-1]},endingPages:function(){return this.isSliding?l(this.total-this.slidingEndingSize+1,this.total):[]},firstEndingPage:function(){return this.endingPages[0]},slidingWindowHalf:function(){var i=this.slidingWindowSize/2;return this.slidingWindowSize%2==1&&(i-=.5),i},slidingWindowPages:function(){if(!this.isSliding)return[];var i=this.lastBeginningPage+this.slidingWindowHalf,e=this.firstEndingPage-this.slidingWindowHalf;if(this.current<=i)return l(this.lastBeginningPage+1,this.lastBeginningPage+this.slidingWindowSize);if(this.current>i&&this.current<e){var t=this.slidingWindowHalf;return this.slidingWindowSize%2==0&&(t/=2),l(-this.slidingWindowHalf+this.current,t+this.current)}return l(this.firstEndingPage-this.slidingWindowSize,this.firstEndingPage-1)},firstWindowPage:function(){return this.slidingWindowPages[0]},lastWindowPage:function(){return this.slidingWindowPages[this.slidingWindowPages.length-1]},showPreviousPageAction:function(){return this.total>this.nonSlidingSize},showNextPageAction:function(){return this.total>this.nonSlidingSize}},methods:{replaceLabelVars:function(i,e){return i.replace("%total%",this.total).replace("%page%",e)},isCurrentPage:function(i){return this.current===i},currentPageLabel:function(i){return this.replaceLabelVars(this.ariaCurrentPageLabel,i)},goToPage:function(i){this.$emit("page-change",i)},goToPageLabel:function(i){return this.replaceLabelVars(this.ariaGotoPageLabel,i)},pageLabel:function(i){return this.isCurrentPage(i)?this.currentPageLabel(i):this.goToPageLabel(i)}}},u=(t(1),r(g,n,[],!1,null,null,null));u.options.__file="src/SlidingPagination.vue";var c=u.exports;e.default={install:function(i,e){i.component("SlidingPagination",c)}}}]); | ||
!function(i){var e={};function t(n){if(e[n])return e[n].exports;var a=e[n]={i:n,l:!1,exports:{}};return i[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}t.m=i,t.c=e,t.d=function(i,e,n){t.o(i,e)||Object.defineProperty(i,e,{enumerable:!0,get:n})},t.r=function(i){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},t.t=function(i,e){if(1&e&&(i=t(i)),8&e)return i;if(4&e&&"object"==typeof i&&i&&i.__esModule)return i;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:i}),2&e&&"string"!=typeof i)for(var a in i)t.d(n,a,function(e){return i[e]}.bind(null,a));return n},t.n=function(i){var e=i&&i.__esModule?function(){return i.default}:function(){return i};return t.d(e,"a",e),e},t.o=function(i,e){return Object.prototype.hasOwnProperty.call(i,e)},t.p="",t(t.s=2)}([function(i,e,t){},function(i,e,t){"use strict";var n=t(0);t.n(n).a},function(i,e,t){"use strict";t.r(e);var n=function(){var i=this,e=i.$createElement,t=i._self._c||e;return t("nav",{staticClass:"c-sliding-pagination",attrs:{"aria-label":i.ariaPaginationLabel}},[t("ul",{staticClass:"c-sliding-pagination__list"},[i.showPreviousPageAction?t("li",{staticClass:"c-sliding-pagination__list-element",class:1==i.current?"c-sliding-pagination__list-element--disabled":""},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":i.ariaPreviousPageLabel,disabled:1==i.current},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),i.goToPage(i.current-1)}}},[i._t("previous-page",[i._v("«")])],2)]):i._e(),i._l(i.beginningPages,function(e){return t("li",{key:e,staticClass:"c-sliding-pagination__list-element",class:i.isCurrentPage(e)?"c-sliding-pagination__list-element--active":""},[t(i.pageComponent,{tag:"component",attrs:{"is-current":i.isCurrentPage(e),"aria-page-label":i.pageLabel(e),page:e},on:{"page-click":function(t){return i.goToPage(e)}}})],1)}),i.hasBeginningGap?t("li",{staticClass:"c-sliding-pagination__list-element c-sliding-pagination__list-element--disabled",attrs:{"aria-hidden":"true"}},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#",disabled:""}},[i._t("gap-left",[i._v("…")])],2)]):i._e(),i._l(i.slidingWindowPages,function(e){return t("li",{key:e,staticClass:"c-sliding-pagination__list-element",class:i.isCurrentPage(e)?"c-sliding-pagination__list-element--active":""},[t(i.pageComponent,{tag:"component",attrs:{"is-current":i.isCurrentPage(e),"aria-page-label":i.pageLabel(e),page:e},on:{"page-click":function(t){return i.goToPage(e)}}})],1)}),i.hasEndingGap?t("li",{staticClass:"c-sliding-pagination__list-element c-sliding-pagination__list-element--disabled",attrs:{"aria-hidden":"true"}},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#",disabled:""}},[i._t("gap-right",[i._v("…")])],2)]):i._e(),i._l(i.endingPages,function(e){return t("li",{key:e,staticClass:"c-sliding-pagination__list-element",class:i.isCurrentPage(e)?"c-sliding-pagination__list-element--active":""},[t(i.pageComponent,{tag:"component",attrs:{"is-current":i.isCurrentPage(e),"aria-page-label":i.pageLabel(e),page:e},on:{"page-click":function(t){return i.goToPage(e)}}})],1)}),i.showNextPageAction?t("li",{staticClass:"c-sliding-pagination__list-element",class:i.current==i.total?"c-sliding-pagination__list-element--disabled":""},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":i.ariaNextPageLabel,disabled:i.current==i.total},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),i.goToPage(i.current+1)}}},[i._t("next-page",[i._v("»")])],2)]):i._e()],2)])};n._withStripped=!0;var a=function(){var i=this,e=i.$createElement;return(i._self._c||e)("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":i.ariaPageLabel},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),i.goToPage(i.page)}}},[i._v("\n "+i._s(i.page)+"\n")])};function r(i,e,t,n,a,r,s,o){var l,g="function"==typeof i?i.options:i;if(e&&(g.render=e,g.staticRenderFns=t,g._compiled=!0),n&&(g.functional=!0),r&&(g._scopeId="data-v-"+r),s?(l=function(i){(i=i||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(i=__VUE_SSR_CONTEXT__),a&&a.call(this,i),i&&i._registeredComponents&&i._registeredComponents.add(s)},g._ssrRegister=l):a&&(l=o?function(){a.call(this,this.$root.$options.shadowRoot)}:a),l)if(g.functional){g._injectStyles=l;var u=g.render;g.render=function(i,e){return l.call(e),u(i,e)}}else{var c=g.beforeCreate;g.beforeCreate=c?[].concat(c,l):[l]}return{exports:i,options:g}}a._withStripped=!0;var s=r({name:"SlidingPaginationDefaultPage",props:{ariaPageLabel:{type:String,required:!0},isCurrent:{type:Boolean,required:!0},page:{type:Number,required:!0}},computed:{currentClass:function(){return this.isCurrent?"c-sliding-pagination__page--current":""}},methods:{goToPage:function(){this.$emit("page-click",this.page)}}},a,[],!1,null,null,null);s.options.__file="src/SlidingPaginationDefaultPage.vue";var o=s.exports;function l(i,e){var t=[];if("number"!=typeof i||"number"!=typeof e)return t;if(i>e){var n=i;i=e,e=n}for(var a=i;a<=e;a++)t.push(a);return t}var g={name:"SlidingPagination",props:{ariaPaginationLabel:{type:String,required:!1,default:"Pagination Navigation"},ariaGotoPageLabel:{type:String,required:!1,default:"Go to page %page% of %total%"},ariaPreviousPageLabel:{type:String,required:!1,default:"Go to previous page"},ariaNextPageLabel:{type:String,required:!1,default:"Go to next page"},ariaCurrentPageLabel:{type:String,required:!1,default:"Page %page% of %total%, current page"},current:{required:!0,type:Number},total:{required:!0,type:Number},slidingEndingSize:{required:!1,type:Number,default:2},slidingWindowSize:{required:!1,type:Number,default:3},nonSlidingSize:{required:!1,type:Number,default:9},pageComponent:{required:!1,type:String,default:"sliding-pagination-default-page"}},components:{SlidingPaginationDefaultPage:o},computed:{isSliding:function(){return this.total>this.nonSlidingSize},hasBeginningGap:function(){return!!this.isSliding&&this.lastBeginningPage+1!==this.firstWindowPage},hasEndingGap:function(){return!!this.isSliding&&this.lastWindowPage+1!==this.firstEndingPage},beginningPages:function(){return l(1,this.isSliding?this.slidingEndingSize:this.total)},lastBeginningPage:function(){return this.beginningPages[this.beginningPages.length-1]},endingPages:function(){return this.isSliding?l(this.total-this.slidingEndingSize+1,this.total):[]},firstEndingPage:function(){return this.endingPages[0]},slidingWindowHalf:function(){var i=this.slidingWindowSize/2;return this.slidingWindowSize%2==1&&(i-=.5),i},slidingWindowPages:function(){if(!this.isSliding)return[];var i=this.lastBeginningPage+this.slidingWindowHalf,e=this.firstEndingPage-this.slidingWindowHalf;if(this.current<=i)return l(this.lastBeginningPage+1,this.lastBeginningPage+this.slidingWindowSize);if(this.current>i&&this.current<e){var t=this.slidingWindowHalf;return this.slidingWindowSize%2==0&&(t/=2),l(-this.slidingWindowHalf+this.current,t+this.current)}return l(this.firstEndingPage-this.slidingWindowSize,this.firstEndingPage-1)},firstWindowPage:function(){return this.slidingWindowPages[0]},lastWindowPage:function(){return this.slidingWindowPages[this.slidingWindowPages.length-1]},showPreviousPageAction:function(){return this.total>this.nonSlidingSize},showNextPageAction:function(){return this.total>this.nonSlidingSize}},methods:{replaceLabelVars:function(i,e){return i.replace("%total%",this.total).replace("%page%",e)},isCurrentPage:function(i){return this.current===i},currentPageLabel:function(i){return this.replaceLabelVars(this.ariaCurrentPageLabel,i)},goToPage:function(i){this.$emit("page-change",i)},goToPageLabel:function(i){return this.replaceLabelVars(this.ariaGotoPageLabel,i)},pageLabel:function(i){return this.isCurrentPage(i)?this.currentPageLabel(i):this.goToPageLabel(i)}}},u=(t(1),r(g,n,[],!1,null,null,null));u.options.__file="src/SlidingPagination.vue";var c=u.exports;e.default={install:function(i,e){i.component("SlidingPagination",c)}}}]); |
@@ -1,1 +0,1 @@ | ||
!function(i,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("vue-sliding-pagination",[],e):"object"==typeof exports?exports["vue-sliding-pagination"]=e():i["vue-sliding-pagination"]=e()}(window,function(){return function(i){var e={};function t(n){if(e[n])return e[n].exports;var a=e[n]={i:n,l:!1,exports:{}};return i[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=i,t.c=e,t.d=function(i,e,n){t.o(i,e)||Object.defineProperty(i,e,{enumerable:!0,get:n})},t.r=function(i){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},t.t=function(i,e){if(1&e&&(i=t(i)),8&e)return i;if(4&e&&"object"==typeof i&&i&&i.__esModule)return i;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:i}),2&e&&"string"!=typeof i)for(var a in i)t.d(n,a,function(e){return i[e]}.bind(null,a));return n},t.n=function(i){var e=i&&i.__esModule?function(){return i.default}:function(){return i};return t.d(e,"a",e),e},t.o=function(i,e){return Object.prototype.hasOwnProperty.call(i,e)},t.p="",t(t.s=2)}([function(i,e,t){},function(i,e,t){"use strict";var n=t(0);t.n(n).a},function(i,e,t){"use strict";t.r(e);var n=function(){var i=this,e=i.$createElement,t=i._self._c||e;return t("nav",{staticClass:"c-sliding-pagination",attrs:{"aria-label":i.ariaPaginationLabel}},[t("ul",{staticClass:"c-sliding-pagination__list"},[i.showPreviousPageAction?t("li",{staticClass:"c-sliding-pagination__list-element",class:1==i.current?"c-sliding-pagination__list-element--disabled":""},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":i.ariaPreviousPageLabel,disabled:1==i.current},on:{click:function(e){e.preventDefault(),e.stopPropagation(),i.goToPage(i.current-1)}}},[i._t("previous-page",[i._v("«")])],2)]):i._e(),i._l(i.beginningPages,function(e){return t("li",{key:e,staticClass:"c-sliding-pagination__list-element",class:i.isCurrentPage(e)?"c-sliding-pagination__list-element--active":""},[t(i.pageComponent,{tag:"component",attrs:{"is-current":i.isCurrentPage(e),"aria-page-label":i.pageLabel(e),page:e},on:{"page-click":function(t){i.goToPage(e)}}})],1)}),i.hasBeginningGap?t("li",{staticClass:"c-sliding-pagination__list-element c-sliding-pagination__list-element--disabled",attrs:{"aria-hidden":"true"}},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#",disabled:""}},[i._t("gap-left",[i._v("…")])],2)]):i._e(),i._l(i.slidingWindowPages,function(e){return t("li",{key:e,staticClass:"c-sliding-pagination__list-element",class:i.isCurrentPage(e)?"c-sliding-pagination__list-element--active":""},[t(i.pageComponent,{tag:"component",attrs:{"is-current":i.isCurrentPage(e),"aria-page-label":i.pageLabel(e),page:e},on:{"page-click":function(t){i.goToPage(e)}}})],1)}),i.hasEndingGap?t("li",{staticClass:"c-sliding-pagination__list-element c-sliding-pagination__list-element--disabled",attrs:{"aria-hidden":"true"}},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#",disabled:""}},[i._t("gap-right",[i._v("…")])],2)]):i._e(),i._l(i.endingPages,function(e){return t("li",{key:e,staticClass:"c-sliding-pagination__list-element",class:i.isCurrentPage(e)?"c-sliding-pagination__list-element--active":""},[t(i.pageComponent,{tag:"component",attrs:{"is-current":i.isCurrentPage(e),"aria-page-label":i.pageLabel(e),page:e},on:{"page-click":function(t){i.goToPage(e)}}})],1)}),i.showNextPageAction?t("li",{staticClass:"c-sliding-pagination__list-element",class:i.current==i.total?"c-sliding-pagination__list-element--disabled":""},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":i.ariaNextPageLabel,disabled:i.current==i.total},on:{click:function(e){e.preventDefault(),e.stopPropagation(),i.goToPage(i.current+1)}}},[i._t("next-page",[i._v("»")])],2)]):i._e()],2)])};n._withStripped=!0;var a=function(){var i=this,e=i.$createElement;return(i._self._c||e)("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":i.ariaPageLabel},on:{click:function(e){e.stopPropagation(),e.preventDefault(),i.goToPage(i.page)}}},[i._v("\n "+i._s(i.page)+"\n")])};function r(i,e,t,n,a,r,s,o){var l,g="function"==typeof i?i.options:i;if(e&&(g.render=e,g.staticRenderFns=t,g._compiled=!0),n&&(g.functional=!0),r&&(g._scopeId="data-v-"+r),s?(l=function(i){(i=i||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(i=__VUE_SSR_CONTEXT__),a&&a.call(this,i),i&&i._registeredComponents&&i._registeredComponents.add(s)},g._ssrRegister=l):a&&(l=o?function(){a.call(this,this.$root.$options.shadowRoot)}:a),l)if(g.functional){g._injectStyles=l;var u=g.render;g.render=function(i,e){return l.call(e),u(i,e)}}else{var d=g.beforeCreate;g.beforeCreate=d?[].concat(d,l):[l]}return{exports:i,options:g}}a._withStripped=!0;var s=r({name:"SlidingPaginationDefaultPage",props:{ariaPageLabel:{type:String,required:!0},isCurrent:{type:Boolean,required:!0},page:{type:Number,required:!0}},computed:{currentClass:function(){return this.isCurrent?"c-sliding-pagination__page--current":""}},methods:{goToPage:function(){this.$emit("page-click",this.page)}}},a,[],!1,null,null,null);s.options.__file="src/SlidingPaginationDefaultPage.vue";var o=s.exports;function l(i,e){var t=[];if("number"!=typeof i||"number"!=typeof e)return t;if(i>e){var n=i;i=e,e=n}for(var a=i;a<=e;a++)t.push(a);return t}var g={name:"SlidingPagination",props:{ariaPaginationLabel:{type:String,required:!1,default:"Pagination Navigation"},ariaGotoPageLabel:{type:String,required:!1,default:"Go to page %page% of %total%"},ariaPreviousPageLabel:{type:String,required:!1,default:"Go to previous page"},ariaNextPageLabel:{type:String,required:!1,default:"Go to next page"},ariaCurrentPageLabel:{type:String,required:!1,default:"Page %page% of %total%, current page"},current:{required:!0,type:Number},total:{required:!0,type:Number},slidingEndingSize:{required:!1,type:Number,default:2},slidingWindowSize:{required:!1,type:Number,default:3},nonSlidingSize:{required:!1,type:Number,default:9},pageComponent:{required:!1,type:String,default:"sliding-pagination-default-page"}},components:{SlidingPaginationDefaultPage:o},computed:{isSliding:function(){return this.total>this.nonSlidingSize},hasBeginningGap:function(){return!!this.isSliding&&this.lastBeginningPage+1!==this.firstWindowPage},hasEndingGap:function(){return!!this.isSliding&&this.lastWindowPage+1!==this.firstEndingPage},beginningPages:function(){return l(1,this.isSliding?this.slidingEndingSize:this.total)},lastBeginningPage:function(){return this.beginningPages[this.beginningPages.length-1]},endingPages:function(){return this.isSliding?l(this.total-this.slidingEndingSize+1,this.total):[]},firstEndingPage:function(){return this.endingPages[0]},slidingWindowHalf:function(){var i=this.slidingWindowSize/2;return this.slidingWindowSize%2==1&&(i-=.5),i},slidingWindowPages:function(){if(!this.isSliding)return[];var i=this.lastBeginningPage+this.slidingWindowHalf,e=this.firstEndingPage-this.slidingWindowHalf;if(this.current<=i)return l(this.lastBeginningPage+1,this.lastBeginningPage+this.slidingWindowSize);if(this.current>i&&this.current<e){var t=this.slidingWindowHalf;return this.slidingWindowSize%2==0&&(t/=2),l(-this.slidingWindowHalf+this.current,t+this.current)}return l(this.firstEndingPage-this.slidingWindowSize,this.firstEndingPage-1)},firstWindowPage:function(){return this.slidingWindowPages[0]},lastWindowPage:function(){return this.slidingWindowPages[this.slidingWindowPages.length-1]},showPreviousPageAction:function(){return this.total>this.nonSlidingSize},showNextPageAction:function(){return this.total>this.nonSlidingSize}},methods:{replaceLabelVars:function(i,e){return i.replace("%total%",this.total).replace("%page%",e)},isCurrentPage:function(i){return this.current===i},currentPageLabel:function(i){return this.replaceLabelVars(this.ariaCurrentPageLabel,i)},goToPage:function(i){this.$emit("page-change",i)},goToPageLabel:function(i){return this.replaceLabelVars(this.ariaGotoPageLabel,i)},pageLabel:function(i){return this.isCurrentPage(i)?this.currentPageLabel(i):this.goToPageLabel(i)}}};t(1);t.d(e,"range",function(){return l});var u=r(g,n,[],!1,null,null,null);u.options.__file="src/SlidingPagination.vue";e.default=u.exports}])}); | ||
!function(e,i){"object"==typeof exports&&"object"==typeof module?module.exports=i():"function"==typeof define&&define.amd?define("vue-sliding-pagination",[],i):"object"==typeof exports?exports["vue-sliding-pagination"]=i():e["vue-sliding-pagination"]=i()}(window,function(){return function(e){var i={};function t(n){if(i[n])return i[n].exports;var a=i[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=e,t.c=i,t.d=function(e,i,n){t.o(e,i)||Object.defineProperty(e,i,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,i){if(1&i&&(e=t(e)),8&i)return e;if(4&i&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&i&&"string"!=typeof e)for(var a in e)t.d(n,a,function(i){return e[i]}.bind(null,a));return n},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,"a",i),i},t.o=function(e,i){return Object.prototype.hasOwnProperty.call(e,i)},t.p="",t(t.s=2)}([function(e,i,t){},function(e,i,t){"use strict";var n=t(0);t.n(n).a},function(e,i,t){"use strict";t.r(i);var n=function(){var e=this,i=e.$createElement,t=e._self._c||i;return t("nav",{staticClass:"c-sliding-pagination",attrs:{"aria-label":e.ariaPaginationLabel}},[t("ul",{staticClass:"c-sliding-pagination__list"},[e.showPreviousPageAction?t("li",{staticClass:"c-sliding-pagination__list-element",class:1==e.current?"c-sliding-pagination__list-element--disabled":""},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":e.ariaPreviousPageLabel,disabled:1==e.current},on:{click:function(i){return i.preventDefault(),i.stopPropagation(),e.goToPage(e.current-1)}}},[e._t("previous-page",[e._v("«")])],2)]):e._e(),e._l(e.beginningPages,function(i){return t("li",{key:i,staticClass:"c-sliding-pagination__list-element",class:e.isCurrentPage(i)?"c-sliding-pagination__list-element--active":""},[t(e.pageComponent,{tag:"component",attrs:{"is-current":e.isCurrentPage(i),"aria-page-label":e.pageLabel(i),page:i},on:{"page-click":function(t){return e.goToPage(i)}}})],1)}),e.hasBeginningGap?t("li",{staticClass:"c-sliding-pagination__list-element c-sliding-pagination__list-element--disabled",attrs:{"aria-hidden":"true"}},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#",disabled:""}},[e._t("gap-left",[e._v("…")])],2)]):e._e(),e._l(e.slidingWindowPages,function(i){return t("li",{key:i,staticClass:"c-sliding-pagination__list-element",class:e.isCurrentPage(i)?"c-sliding-pagination__list-element--active":""},[t(e.pageComponent,{tag:"component",attrs:{"is-current":e.isCurrentPage(i),"aria-page-label":e.pageLabel(i),page:i},on:{"page-click":function(t){return e.goToPage(i)}}})],1)}),e.hasEndingGap?t("li",{staticClass:"c-sliding-pagination__list-element c-sliding-pagination__list-element--disabled",attrs:{"aria-hidden":"true"}},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#",disabled:""}},[e._t("gap-right",[e._v("…")])],2)]):e._e(),e._l(e.endingPages,function(i){return t("li",{key:i,staticClass:"c-sliding-pagination__list-element",class:e.isCurrentPage(i)?"c-sliding-pagination__list-element--active":""},[t(e.pageComponent,{tag:"component",attrs:{"is-current":e.isCurrentPage(i),"aria-page-label":e.pageLabel(i),page:i},on:{"page-click":function(t){return e.goToPage(i)}}})],1)}),e.showNextPageAction?t("li",{staticClass:"c-sliding-pagination__list-element",class:e.current==e.total?"c-sliding-pagination__list-element--disabled":""},[t("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":e.ariaNextPageLabel,disabled:e.current==e.total},on:{click:function(i){return i.preventDefault(),i.stopPropagation(),e.goToPage(e.current+1)}}},[e._t("next-page",[e._v("»")])],2)]):e._e()],2)])};n._withStripped=!0;var a=function(){var e=this,i=e.$createElement;return(e._self._c||i)("a",{staticClass:"c-sliding-pagination__page",attrs:{href:"#","aria-label":e.ariaPageLabel},on:{click:function(i){return i.stopPropagation(),i.preventDefault(),e.goToPage(e.page)}}},[e._v("\n "+e._s(e.page)+"\n")])};function r(e,i,t,n,a,r,s,o){var l,g="function"==typeof e?e.options:e;if(i&&(g.render=i,g.staticRenderFns=t,g._compiled=!0),n&&(g.functional=!0),r&&(g._scopeId="data-v-"+r),s?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),a&&a.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},g._ssrRegister=l):a&&(l=o?function(){a.call(this,this.$root.$options.shadowRoot)}:a),l)if(g.functional){g._injectStyles=l;var u=g.render;g.render=function(e,i){return l.call(i),u(e,i)}}else{var d=g.beforeCreate;g.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:g}}a._withStripped=!0;var s=r({name:"SlidingPaginationDefaultPage",props:{ariaPageLabel:{type:String,required:!0},isCurrent:{type:Boolean,required:!0},page:{type:Number,required:!0}},computed:{currentClass:function(){return this.isCurrent?"c-sliding-pagination__page--current":""}},methods:{goToPage:function(){this.$emit("page-click",this.page)}}},a,[],!1,null,null,null);s.options.__file="src/SlidingPaginationDefaultPage.vue";var o=s.exports;function l(e,i){var t=[];if("number"!=typeof e||"number"!=typeof i)return t;if(e>i){var n=e;e=i,i=n}for(var a=e;a<=i;a++)t.push(a);return t}var g={name:"SlidingPagination",props:{ariaPaginationLabel:{type:String,required:!1,default:"Pagination Navigation"},ariaGotoPageLabel:{type:String,required:!1,default:"Go to page %page% of %total%"},ariaPreviousPageLabel:{type:String,required:!1,default:"Go to previous page"},ariaNextPageLabel:{type:String,required:!1,default:"Go to next page"},ariaCurrentPageLabel:{type:String,required:!1,default:"Page %page% of %total%, current page"},current:{required:!0,type:Number},total:{required:!0,type:Number},slidingEndingSize:{required:!1,type:Number,default:2},slidingWindowSize:{required:!1,type:Number,default:3},nonSlidingSize:{required:!1,type:Number,default:9},pageComponent:{required:!1,type:String,default:"sliding-pagination-default-page"}},components:{SlidingPaginationDefaultPage:o},computed:{isSliding:function(){return this.total>this.nonSlidingSize},hasBeginningGap:function(){return!!this.isSliding&&this.lastBeginningPage+1!==this.firstWindowPage},hasEndingGap:function(){return!!this.isSliding&&this.lastWindowPage+1!==this.firstEndingPage},beginningPages:function(){return l(1,this.isSliding?this.slidingEndingSize:this.total)},lastBeginningPage:function(){return this.beginningPages[this.beginningPages.length-1]},endingPages:function(){return this.isSliding?l(this.total-this.slidingEndingSize+1,this.total):[]},firstEndingPage:function(){return this.endingPages[0]},slidingWindowHalf:function(){var e=this.slidingWindowSize/2;return this.slidingWindowSize%2==1&&(e-=.5),e},slidingWindowPages:function(){if(!this.isSliding)return[];var e=this.lastBeginningPage+this.slidingWindowHalf,i=this.firstEndingPage-this.slidingWindowHalf;if(this.current<=e)return l(this.lastBeginningPage+1,this.lastBeginningPage+this.slidingWindowSize);if(this.current>e&&this.current<i){var t=this.slidingWindowHalf;return this.slidingWindowSize%2==0&&(t/=2),l(-this.slidingWindowHalf+this.current,t+this.current)}return l(this.firstEndingPage-this.slidingWindowSize,this.firstEndingPage-1)},firstWindowPage:function(){return this.slidingWindowPages[0]},lastWindowPage:function(){return this.slidingWindowPages[this.slidingWindowPages.length-1]},showPreviousPageAction:function(){return this.total>this.nonSlidingSize},showNextPageAction:function(){return this.total>this.nonSlidingSize}},methods:{replaceLabelVars:function(e,i){return e.replace("%total%",this.total).replace("%page%",i)},isCurrentPage:function(e){return this.current===e},currentPageLabel:function(e){return this.replaceLabelVars(this.ariaCurrentPageLabel,e)},goToPage:function(e){this.$emit("page-change",e)},goToPageLabel:function(e){return this.replaceLabelVars(this.ariaGotoPageLabel,e)},pageLabel:function(e){return this.isCurrentPage(e)?this.currentPageLabel(e):this.goToPageLabel(e)}}};t(1);t.d(i,"range",function(){return l});var u=r(g,n,[],!1,null,null,null);u.options.__file="src/SlidingPagination.vue";i.default=u.exports}])}); |
{ | ||
"name": "vue-sliding-pagination", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"repository": { | ||
@@ -8,2 +8,3 @@ "type": "git", | ||
}, | ||
"homepage": "https://vue-sliding-pagination.efrane.com", | ||
"description": "Sliding pagination component", | ||
@@ -27,3 +28,5 @@ "author": "eFrane <efrane@meanderingsoul.com>", | ||
"test": "yarn run unit --coverage", | ||
"lint": "eslint --ext .js,.vue src test/unit" | ||
"lint": "eslint --ext .js,.vue src test/unit", | ||
"vuepress:dev": "vuepress dev docs", | ||
"vuepress:build": "vuepress build docs" | ||
}, | ||
@@ -81,2 +84,3 @@ "dependencies": { | ||
"vue-template-compiler": "^2.5.2", | ||
"vuepress": "^0.14.11", | ||
"webpack": "^4.0.0", | ||
@@ -83,0 +87,0 @@ "webpack-cli": "^3.1.2", |
156
README.md
@@ -9,3 +9,3 @@ [TODO:] [Insert] [a crapton] [of badges] [here] [because] [javascript] | ||
![Example pagination](https://github.com/eFrane/vue-sliding-pagination/raw/master/pagination-example.png) | ||
![Example pagination](https://github.com/eFrane/vue-sliding-pagination/raw/master/docs/.vuepress/public/pagination-example.png) | ||
@@ -72,156 +72,6 @@ ## Installation | ||
``` | ||
## Documentation | ||
Additionally, the CSS for the component should be made available. Please refer to | ||
the [Styles customization section](#styling) below | ||
In-depth documentation may be found at [https://vue-sliding-pagination.efrane.com](https://vue-sliding-pagination.efrane.com) | ||
## Options | ||
| name | type | default | description | | ||
|-----------------------|:------:|-------------------------------------------|---------------------------------------------------------------| | ||
| ariaPaginationLabel | String | `'Pagination navigation'` | ARIA label for the whole <nav> area | | ||
| ariaGotoPageLabel | String | `'Go to page %page% of %total%'` | ARIA label for a page link that is not the current page | | ||
| ariaPreviousPageLabel | String | `'Go to previous page'` | ARIA label for the previous page action | | ||
| ariaNextPageLabel | String | `'Go to next page'` | ARIA label for the next page action | | ||
| ariaCurrentPageLabel | String | `'Page %current of %total, current page'` | ARIA label for the current page | | ||
| current | Number | - | Integer representing the current page | | ||
| total | Number | - | Integer representing the total number of pages | | ||
| slidingEndingSize | Number | `2` | Number of always listed pages on the beginning and end | | ||
| slidingWindowSize | Number | `3` | Number of pages in the sliding window | | ||
| nonSlidingSize | Number | `9` | Number of pages before the paginator switches to sliding mode | | ||
| pageComponent | String | `'sliding-pagination-default-page'` | Component name (must be registered) for the page elements | | ||
## Customization | ||
The component offers severals customization options. | ||
### ARIA labels | ||
All ARIA labels can be altered and localized. | ||
The labels `ariaGoToPageLabel` and `ariaCurrentPageLabel` support | ||
the following template variables: | ||
| Variable | Type | Description | | ||
|-----------|:------:|---------------------------| | ||
| `%total%` | Number | The total number of pages | | ||
| `%page%` | Number | The page under the cursor | | ||
### Intervals | ||
The number of pages shown on the beginning and ending of the pager | ||
as well as the number of pages in the pagination window can be changed | ||
dynamically. The break-point from normal to sliding-window pagination | ||
can also be adjusted. **Please bear in mind that none of these intervals | ||
and none of the calculations they are used in make any assertions on | ||
obviously impossible configurations!** | ||
_What are obviously impossible configurations?_ | ||
Glad you're asking! For one, the rule of thumb should be | ||
`2 * slidingEndingSize + slidingWindowSize <= total`. | ||
However, as there is a fallback coated as `nonSlidingSize` you can work around | ||
this "limitation" with some ingenouity on your part. Basically, don't do stupid things | ||
that disregards principles of natural numbers. | ||
### Page navigation | ||
The content of the previous and next page elements are customizable via the | ||
slots `previous-page` and `next-page`. By default, these only contain | ||
the "pretend arrows" aka « and ». The contents of these slots | ||
are **only intended for visual use**. Screenreader users are presented | ||
the `ariaPreviousPageLabel` and `ariaNextPageLabel` instead. | ||
### Gaps | ||
Depending on the current page, there may be a gap between the sliding window and the | ||
beginning and ending pages. The gap content defaults to … but can be | ||
customized **for visual use** under the same conditions as the page navigation with | ||
the slots `gap-left` and `gap-right`. | ||
### Page component | ||
Since actual pages are the most active element of the whole pagination deal, | ||
they have been implemented with the `<component :is="paginationComponent">` pattern. | ||
The `SlidingPaginationDefaultPage` component offers guidance into how a basic | ||
component representing page elements should look like. It's unit test can | ||
be used as a basis for unit testing custom page components. | ||
The page component receives the following props: | ||
| name | type | description | | ||
|---------------|:-------:|------------------------------| | ||
| ariaPageLabel | String | The computed ARIA page label | | ||
| isCurrent | Boolean | Is the page the current page | | ||
| page | Number | The page number to display | | ||
It is by no means required to implement all properties of the default page. | ||
A custom pagination component can usually just be implemented as render | ||
function, e.g. | ||
```js | ||
Vue.component('ExamplePageComponent', { | ||
props: { | ||
page: { | ||
type: Number, | ||
required: true | ||
} | ||
}, | ||
render (h) { | ||
return h('a', { class: 'page-component' }, this.page) | ||
} | ||
}) | ||
``` | ||
```html | ||
<sliding-pagination | ||
... | ||
pagination-component="example-page-component" | ||
></sliding-pagination> | ||
``` | ||
_Please keep in mind that the above example is absurdly simple for demonstration purposes | ||
and breaks the ARIA compatibility of the whole pagination component._ | ||
### Styling | ||
The CSS classes used in the component are following the [BEM](http://getbem.com/introduction/)-Methodology, | ||
regarding **only** the component itself as a block and going downward from there, thus the | ||
corresponding classes to interface elements are: | ||
| Class | Interface element | | ||
|-----------------------------------------------|------------------------------------------------------------------| | ||
| .c-sliding-pagination | The whole component i.e. the `<nav>` container | | ||
| .c-sliding-pagination__list | The `<ul>` containing all navigational and page elements | | ||
| .c-sliding-pagination__list-element | Each `<li>` representing either a navigational or a page element | | ||
| .c-sliding-pagination__list-element--active | The `<li>` representing the current page | | ||
| .c-sliding-pagination__list-element--disabled | Disabled navigational elements | | ||
| .c-sliding-pagination__page | The page element inside an `<li>` (typically an `<a>`) | | ||
To get the default styling, you may either add `dist/style/vue-sliding-pagination.css` as a | ||
CSS asset to your page: | ||
```css | ||
@import "~vue-sliding-pagination/dist/style/vue-sliding-pagination.css"; | ||
``` | ||
For ease of customization, the original SCSS styling files are available in the distribution package | ||
in the `dist/style` subdir, allowing quick and deep customization by utilizing the exposed variables | ||
and re-declaring classes: | ||
```scss | ||
$sliding-pagination-background-primary: $background-primary; | ||
$sliding-pagination-background-secondary: $background-secondary; | ||
$sliding-pagination-foreground-primary: $color-foreground-primary; | ||
$sliding-pagination-foreground-secondary: $color-foreground-secondary; | ||
@import "~vue-sliding-pagination/dist/style/sliding-pagination"; | ||
.c-sliding-pagination { | ||
text-align: center; | ||
margin: 1.5em 0; | ||
} | ||
``` | ||
## Contributing | ||
@@ -228,0 +78,0 @@ |
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
11
0
35386
51
98