UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

3 lines (2 loc) 16 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.data.js"),require("kendo.dropdownlist.js"),require("kendo.numerictextbox.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["exports","kendo.data.min","kendo.dropdownlist.min","kendo.numerictextbox.min","kendo.icons.min"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Pager={}))}(this,(function(e){!function(e,t){var a=window.kendo,n=a.ui,i=n.Widget,s=a.keys,r=a.htmlEncode,o=a.template,l="caret-alt-to-left",p="caret-alt-to-right",d="caret-alt-left",u="caret-alt-right",c="caret-alt-to-left",g="caret-alt-to-right",m="caret-alt-left",f="caret-alt-right",h=":kendoFocusable:not([tabindex='-1'])",_="change",b=".kendoPager",k="click",x=Number.MAX_VALUE,v=!1;function z(e){return e.template({idx:e.idx,text:e.text,ns:a.ns,numeric:e.numeric,size:e.size,title:e.title||"",tabindex:e.navigatable?0:-1,navigatable:e.navigatable})}function S(t,n,i,s,r){return(({text:t,wrapClassName:n,className:i,size:s})=>`<button role="button" title="${t}" aria-label="${t}" class="k-pager-nav k-button k-button-flat k-button-flat-base k-icon-button ${n} ${s}">${a.ui.icon(e('<span class="k-button-icon"></span>'),i)}</button>`)({className:t,text:n,wrapClassName:i||"",id:s||"",size:r})}function T(e,t,n,i){e.find(`[class*="-i-${t}"]`).parent().attr(a.attr("page"),n).attr("tabindex",i?-1:0).attr("aria-disabled",i).toggleClass("k-disabled",i)}function w(e,t){T(e,l,1,t<=1)}function W(e,t){T(e,d,Math.max(1,t-1),t<=1)}function C(e,t,a){T(e,u,Math.min(a,t+1),t>=a)}function P(e,t,a){T(e,p,a,t>=a)}var y=i.extend({init:function(t,n){var s,o,h=this,x="";if(i.fn.init.call(h,t,n),n=h.options,h._createDataSource(n),h.linkTemplate=a.template(h.options.linkTemplate),h.selectTemplate=a.template(h.options.selectTemplate),h.numericSelectItemTemplate=a.template(h.options.numericSelectItemTemplate),s=h.page(),o=h.totalPages(),h._refreshHandler=h.refresh.bind(h),h.dataSource.bind(_,h._refreshHandler),h.downEvent=a.applyEventMap("down",a.guid()),v=a.support.isRtl(t),h._numericWrap=h.element.find(".k-pager-numbers-wrap"),v?(l=g,p=c,d=f,u=m,h._numericWrap.length&&h._numericWrap.empty()):(l=c,p=g,d=m,u=f),n.size&&(x=a.getValidCssClass("k-button-","size",n.size),"k-rounded-md "+a.getValidCssClass("k-picker-","size",n.size)),n.navigatable&&(h._id=h.element.attr("id")||a.guid()),h._template(),(n.previousNext||n.numeric)&&0===h._numericWrap.length&&(h._numericWrap=e("<div class='k-pager-numbers-wrap' />").appendTo(h.element)),n.previousNext&&(h._numericWrap.find("[class*='-i-"+l+"']").length||(h._numericWrap.append(S(l,n.messages.first,"k-pager-first",h._id,x)),w(h._numericWrap,s)),h._numericWrap.find("[class*='-i-"+d+"']").length||(h._numericWrap.append(S(d,n.messages.previous,null,h._id,x)),W(h._numericWrap,s))),n.numeric){if(h.element.find(".k-pager-input").length)h._decoratePagerInput(h.element.find(".k-pager-input"),o),h._initNumericInputTextBox();else{let t=h._decoratePagerInput(e("<span class='k-pager-input'></span>"),o);h._numericWrap.append(t),h._initNumericInputTextBox()}n.input||(h.list||(h.list=h._numericWrap.find(".k-pager-numbers"),0===h.list.length&&(h.list=e('<div class="k-pager-numbers" />').appendTo(h._numericWrap))),n.dataSource&&!n.dataSource.total()&&h.list.empty().append(h.selectTemplate({text:0,tabindex:n.navigatalbe?0:-1,navigatable:n.navigatable,title:a.format(n.messages.pageButtonLabel,0)})),h._pagerInputWrap.hide())}if(n.previousNext&&(h._numericWrap.find("[class*='-i-"+u+"']").length||(h._numericWrap.append(S(u,n.messages.next,null,h._id,x)),C(h._numericWrap,s,o)),h._numericWrap.find("[class*='-i-"+p+"']").length||(h._numericWrap.append(S(p,n.messages.last,"k-pager-last",h._id,x)),P(h._numericWrap,s,o))),n.pageSizes){if(!h.element.find(".k-pager-sizes").length){var z=n.pageSizes.length?n.pageSizes:["all",5,10,20],T=e.map(z,(function(e){return e.toLowerCase&&"all"===e.toLowerCase()?"<option value='all'>"+r(n.messages.allPages)+"</option>":"<option>"+e+"</option>"}));e('<span class="k-pager-sizes"><select></select><span>'+r(n.messages.itemsPerPage)+"</span></span>").appendTo(h.element).find("select").html(T.join("")).end().appendTo(h.element)}h.element.find(".k-pager-sizes select").val(h.pageSize()),a.ui.DropDownList&&h.element.find(".k-pager-sizes select").show().attr("aria-label",n.messages.pageSizeDropDownLabel).kendoDropDownList({size:n.size,adaptiveMode:n.adaptiveMode}),h.element.on(_+b,".k-pager-sizes select",h._change.bind(h))}n.refresh&&(h.element.find(".k-pager-refresh").length||h.element.append('<button role="button" href="#" class="k-pager-refresh k-button '+x+' k-button-flat k-button-flat-base k-icon-button" title="'+n.messages.refresh+'" aria-label="'+n.messages.refresh+'">'+a.ui.icon(e('<span class="k-button-icon"></span>'),"arrow-rotate-cw")+"</button>"),h.element.on(k+b,".k-pager-refresh",h._refreshClick.bind(h))),n.info&&(h.element.find(".k-pager-info").length||h.element.append('<span class="k-pager-info" />')),h.element.on(k+b,"button",h._click.bind(h)).addClass("k-pager"),n.size&&h.element.addClass(a.getValidCssClass("k-pager-","size",n.size)),n.responsive&&h.element.addClass("k-pager-responsive"),n.autoBind&&h.refresh(),h._resizeHandler=h.resize.bind(h,!0),e(window).on("resize"+b,h._resizeHandler),h._navigatable(),h._lastWidth=1,h.resize(),a.notify(h)},_initNumericInputTextBox:function(){let e=this,t=e.options;e._numericTextBox=e._numericWrap.find(".k-pager-input input").kendoNumericTextBox({spinners:!1,size:t.size,min:1,format:"n0",change:function(t){let a=this.value();(a<1||a>e.totalPages())&&(a=e.page()),setTimeout((function(){e.page(a)}),100)}}).data("kendoNumericTextBox"),e._numericTextBox.element.on("focus"+b,(()=>e._restoreTabIndexes())),e._numericTextBox.wrapper.find(".k-input-spinner").remove(),e._pagerInputWrap=e.element.find(".k-pager-input")},_decoratePagerInput:function(t,n){let i=this.options;return e(t).append("<span>"+r(i.messages.page)+"</span>"+`<input aria-label='${this.options.messages.page}'/><span>`+r(a.format(i.messages.of,n))+"</span>"),t},destroy:function(){var t=this;i.fn.destroy.call(t),t.element.off(b),t.dataSource.unbind(_,t._refreshHandler),t._refreshHandler=null;let n=t.element.find(".k-pager-input");n.length&&n.remove(),e(window).off("resize"+b,this._resizeHandler),a.destroy(t.element),t.element=t.list=null},events:[_],options:{name:"Pager",adaptiveMode:"none",ARIATemplate:({page:e,totalPages:t})=>`Page navigation, page ${e} of ${t}`,selectTemplate:({text:e,title:t,tabindex:a,size:n})=>`<button role="button" aria-current="page" tabindex="${a}" aria-label="${t}" class="k-button ${n} k-button-flat k-button-flat-primary k-selected"><span class="k-button-text">${r(e)}</span></button>`,linkTemplate:({ns:e,idx:t,text:a,title:n,tabindex:i,size:s})=>`<button class="k-button ${s} k-button-flat k-button-flat-primary" tabindex="${i}" href="#" data-${e}page="${t}" ${""!==n?`title="${n}"`:""}><span class="k-button-text">${r(a)}</span></button>`,numericSelectItemTemplate:({idx:e,selected:t,text:a})=>`<option value="${e}" ${t?'selected="selected"':""}>${r(a)}</option>`,buttonCount:10,autoBind:!0,numeric:!0,info:!0,input:!1,previousNext:!0,pageSizes:!1,refresh:!1,responsive:!0,navigatable:!1,size:"medium",messages:{allPages:"All",display:"{0} - {1} of {2} items",empty:"No items to display",page:"Page",of:"of {0}",itemsPerPage:"items per page",pageButtonLabel:"Page {0}",pageSizeDropDownLabel:"Page sizes drop down",first:"Go to the first page",previous:"Go to the previous page",next:"Go to the next page",last:"Go to the last page",refresh:"Refresh",morePages:"More pages"}},setDataSource:function(e){var t=this;t.dataSource.unbind(_,t._refreshHandler),t.dataSource=t.options.dataSource=e,e.bind(_,t._refreshHandler),t.options.autoBind&&e.fetch()},_aria:function(){this.element.attr({role:"application","aria-roledescription":"pager","aria-keyshortcuts":"Enter ArrowRight ArrowLeft"})},_adaptiveStep:function(e,t,a){var n=this,i=parseInt(this.element.css("gap"));switch(e){case 0:return n._toggleButtons(t,a);case 1:return n._toggleRefresh(t,a-i);case 2:return n._togglePagerInfo(t,a-i);case 3:return n._toggleInputSizesLabel(t,a-i);case 4:return n._togglePageSizesLabel(t,a-i);case 5:return n._togglePageSizesDropDown(t,a-i)}},_calculateNeededWidth:function(){let t=0;const n=parseInt(this.element.css("gap")),i=parseInt(this.element.css("padding-left")),s=parseInt(this.element.css("padding-right"));return this.element.children().each((function(){const n=e(this),i=n.hasClass("k-pager-info");i&&n.removeClass("k-pager-info"),t+=n.is(":visible")?a._outerWidth(n):0,i&&n.addClass("k-pager-info")})),t+=n*(this.element.children(":visible").length-1),t+i+s},_resize:function(e){var t=this;const a=e.width;if(t.element.is(":visible")&&t._lastWidth&&t.options.responsive){if(t._lastWidth<a)for(let e=5;e>=0;e--){const n=t._calculateNeededWidth();if(a<n)break;if(t._adaptiveStep(e,!1,a-n))break}else if(t._lastWidth>a)for(let e=0;e<6&&!(a-3>t._calculateNeededWidth());e++)t._adaptiveStep(e,!0);t._lastWidth=a}},_toggleButtons:function(e,t){if(this.options.input||!this._numericWrap||!this.list||!this._numericTextBox)return;const n=a._outerWidth(this._pagerInputWrap,!0);e?(this._pagerInputWrap.show(),this.list.hide()):t&&this.list.width()-n<t&&(this._pagerInputWrap.hide(),this.list.show())},_toggleRefresh:function(e,t){if(!this.options.refresh)return;const n=this.element.find(".k-pager-refresh");if(e)n.hide();else if(t&&a._outerWidth(n)<t)n.show();else if(n.is(":hidden"))return!0},_togglePagerInfo:function(e,t){if(!this.options.info)return;const a=this.element.find(".k-pager-info");if(e)a.hide();else if(t&&a.width()<t)a.show();else if(!a.is(":visible"))return!0},_toggleInputSizesLabel:function(e,t){if(!this._numericTextBox)return;const a=this.element.find(".k-pager-input").children(),n=a.eq(0);if(e)n.hide();else if(t&&a.eq(0).width()<t)n.show();else if(n.is(":hidden"))return!0},_togglePageSizesLabel:function(e,t){if(!this.options.pageSizes)return;const a=this.element.find(".k-pager-sizes").children().eq(1);if(e)a.hide();else if(t&&a.width()<t)a.show();else if(a.is(":hidden"))return!0},_togglePageSizesDropDown:function(e,t){if(!this.options.pageSizes)return;const n=this.element.find(".k-pager-sizes .k-picker");if(e)n.hide();else if(t&&a._outerWidth(n)<t)n.show();else if(!n.is(":visible"))return!0},_createDataSource:function(e){this.dataSource=a.data.DataSource.create(e.dataSource)},refresh:function(e){var t,n,i,s=this,o=1,l=s.page(),p="",d=s.options,u=s.pageSize(),c=s._collapsedTotal(),g=s.dataSource._isGroupPaged()?s.dataSource.groupsTotal(!0):s.dataSource.total(),m=s.totalPages(),f=s.linkTemplate,h=d.navigatable,_=s.numericSelectItemTemplate,b=d.size?a.getValidCssClass("k-button-","size",d.size):"",k=d.buttonCount;if(!e||"itemchange"!=e.action){if(d.numeric&&!d.input){for(l>k&&(o=0===(i=l%k)?l-k+1:l-i+1),n=Math.min(o+k-1,m),o>1&&(p+=z({template:f,navigatable:h,size:b,idx:o-1,text:"...",numeric:!1,title:d.messages.morePages})),t=o;t<=n;t++)p+=z({template:t==l?s.selectTemplate:f,navigatable:h,idx:t,text:t,size:b,numeric:!0,title:a.format(d.messages.pageButtonLabel,t)});n<m&&(p+=z({template:f,navigatable:h,idx:t,size:b,text:"...",numeric:_,title:d.messages.morePages})),""===p&&(p=s.selectTemplate({text:0,size:b,tabindex:h?0:-1,navigatable:h,title:a.format(d.messages.pageButtonLabel,0)})),s.list.html(p)}if(d.info&&(p=g>0?a.format(d.messages.display,s.dataSource.options.endless?1:Math.min((l-1)*(s.dataSource.pageSize()||0)+1,c),Math.min(l*u,c),g):d.messages.empty,s.element.find(".k-pager-info").html(p)),s._numericTextBox&&(s._numericTextBox.value(l),g>0!=!s._numericTextBox.wrapper.hasClass("k-disabled")&&s._numericTextBox.enable(g>0),s._numericTextBox.wrapper.prev().html("<span>"+r(d.messages.page)+"</span>"),s._numericTextBox.wrapper.next().html("<span>"+r(a.format(d.messages.of,m))+"</span>")),d.previousNext&&(w(s.element,l),W(s.element,l),C(s.element,l,m),P(s.element,l,m)),d.pageSizes){var v=u;s.element.find(".k-pager-sizes option[value='all']").length>0&&(u===this.dataSource.total()||u==x)&&(u="all",v=d.messages.allPages),s.element.find(".k-pager-sizes select").val(u).filter("["+a.attr("role")+"=dropdownlist]").kendoDropDownList("value",u).kendoDropDownList("text",v)}s._restoreFocus(o,n,m),s._excludeChildrenFromTab(),s._updateAria(),m?(s._lastWidth=a._outerWidth(s.element)+12,s.resize(!0)):s._lastWidth&&(s._lastWidth=a._outerWidth(s.element))}},_excludeChildrenFromTab:function(){var t=a._activeElement();!this.options.navigatable||t!==this.element[0]&&e.contains(this.element[0],t)||this.element.find(h).attr("tabindex",-1)},_restoreFocus:function(e,t,a){var n=this;n.options.navigatable&&(n._focusSelected&&(n.element.find(".k-selected").trigger("focus"),n._focusSelected=null),null!==n._focusMore&&(t<a&&n._focusMore&&n.list.find("li").last().find("a").trigger("focus"),!n._focusMore&&e>1&&n.list.find("li").first().find("a").trigger("focus"),n._focusMore=null))},_restoreTabIndexes:function(){this.element.find("[tabindex='-1']:not(.k-disabled):not(.k-dropdownlist > .k-icon-button)").attr("tabindex",0)},_collapsedTotal:function(){return this.dataSource.total()},_refreshClick:function(e){e.preventDefault(),this.dataSource.read()},_change:function(e){var a=e.currentTarget.value,n=parseInt(a,10),i=this.dataSource;isNaN(n)?"all"==(a+"").toLowerCase()&&(i._pageSize=t,i._take=t,i._skip=0,i.fetch()):i.pageSize(n)},_template:function(){this._ariaTemplate=o(this.options.ARIATemplate).bind(this)},_updateAria:function(){this.options.navigatable&&this.element.attr("aria-label",this._ariaTemplate({page:this.page(),totalPages:this.totalPages()}))},_navigatable:function(){var e=this;e.options.navigatable&&(e._aria(),e.element.attr("id",e._id),e._template(),e._updateAria(),e._tabindex(e.element),e.element.on("keydown"+b,e,e._keyDown.bind(e)),e.element.on("focusout"+b,(function(){e.element.removeClass("k-focus")})),e.element.on("focusin"+b,(function(t){e.element.addClass("k-focus"),t.target===e.element[0]?e.element.find(h).attr("tabindex",-1):e.element.removeClass("k-focus")})))},_keyDown:function(t){var a,n,i=this,r=e(t.target),o=!1;r[0]===i.element[0]&&t.keyCode==s.ENTER&&(i._restoreTabIndexes(),i.element.find(h).first().trigger("focus"),o=!0),r[0]!==i.element[0]&&t.keyCode==s.ESC&&(i.element.trigger("focus"),o=!0),r[0]===i.element[0]&&t.keyCode==s.HOME&&(i.page(1),o=!0),r[0]===i.element[0]&&t.keyCode==s.END&&(i.page(i.totalPages()),o=!0),r[0]!==i.element[0]||t.keyCode!=(v?s.LEFT:s.RIGHT)&&t.keyCode!=s.PAGEDOWN||(i.page(i.page()+1),o=!0),r[0]!==i.element[0]||t.keyCode!=(v?s.RIGHT:s.LEFT)&&t.keyCode!=s.PAGEUP||(i.page(i.page()-1||1),o=!0),r[0]!==i.element[0]&&t.keyCode==s.TAB&&(i.options._isToolbarItem&&i._restoreTabIndexes(),n=(a=i.element.find(h)).index(r),t.shiftKey?n-1<0?a.last().trigger("focus"):a.eq(n-1).trigger("focus"):n+1<a.length?a.eq(n+1).trigger("focus"):a.first().trigger("focus"),o=!0),o&&(t.preventDefault(),t.stopPropagation())},_click:function(t){const n=this,i=e(t.currentTarget);t.preventDefault(),n.options.navigatable&&(i.attr("title")==n.options.messages.morePages?n._focusMore=i.parent().index():i.hasClass("k-pager-refresh")||i.hasClass("k-pager-nav")||(n._focusSelected=!0),n._restoreTabIndexes()),i.is(".k-disabled")||n.page(parseInt(i.attr(a.attr("page")),10))},totalPages:function(){return Math.ceil((this.dataSource.total()||0)/(this.pageSize()||1))},pageSize:function(){return this.dataSource.pageSize()||this.dataSource.total()},page:function(e){if(!e)return this.dataSource.total()>0?this.dataSource.page():0;this.trigger("pageChange",{index:e})||(this.dataSource.page(e),this.trigger(_,{index:e}))}});n.plugin(y)}(window.kendo.jQuery);var t=kendo;e.__meta__={id:"pager",name:"Pager",category:"framework",depends:["data","icons"],advanced:!0},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.pager.min.js.map