kendo-ui-core
Version:
3 lines (2 loc) • 16 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("kendo.data.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["kendo.data.min","kendo.icons.min"],t):((e="undefined"!=typeof globalThis?globalThis:e||self).kendopager=e.kendopager||{},e.kendopager.js=t())}(this,(function(){return function(e,t){var a=window.kendo,i=a.ui,n=i.Widget,s=a.keys,r=(a.mediaQuery,a.support,a.htmlEncode),l=a.template,o="caret-alt-to-left",p="caret-alt-to-right",u="caret-alt-left",d="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'])",k="change",b=".kendoPager",_="click",v=Number.MAX_VALUE,S=!1;function w(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 z(e,t,a,i){return e({idx:t,text:a||t,selected:i||!1})}function x(t,i,n,s,r){return function(t){var i=t.text,n=t.wrapClassName,s=t.className;return'<button role="button" title="'+i+'" aria-label="'+i+'" class="k-pager-nav k-button k-button-flat k-button-flat-base k-icon-button '+n+" "+t.size+'">'+a.ui.icon(e('<span class="k-button-icon"></span>'),s)+"</button>"}({className:t,text:i,wrapClassName:n||"",id:s||"",size:r})}function C(e,t,i,n){e.find('[class*="-i-'+t+'"]').parent().attr(a.attr("page"),i).attr("tabindex",n?-1:0).attr("aria-disabled",n).toggleClass("k-disabled",n)}function T(e,t){C(e,o,1,t<=1)}function P(e,t){C(e,u,Math.max(1,t-1),t<=1)}function y(e,t,a){C(e,d,Math.min(a,t+1),t>=a)}function W(e,t,a){C(e,p,a,t>=a)}var D=n.extend({init:function(t,i){var s,l,h,v,w=this,z="",C="";if(n.fn.init.call(w,t,i),i=w.options,w._createDataSource(i),w.linkTemplate=a.template(w.options.linkTemplate),w.selectTemplate=a.template(w.options.selectTemplate),w.numericSelectItemTemplate=a.template(w.options.numericSelectItemTemplate),s=w.page(),l=w.totalPages(),w._refreshHandler=w.refresh.bind(w),w.dataSource.bind(k,w._refreshHandler),w.downEvent=a.applyEventMap("down",a.guid()),(S=a.support.isRtl(t))?(o=g,p=c,u=f,d=m):(o=c,p=g,u=m,d=f),i.size&&(z=a.getValidCssClass("k-button-","size",i.size),C="k-rounded-md "+a.getValidCssClass("k-picker-","size",i.size)),i.navigatable&&(w._id=w.element.attr("id")||a.guid()),w._template(),(i.previousNext||i.numeric)&&(w._numericWrap=w.element.find(".k-pager-numbers-wrap"),0===w._numericWrap.length&&(w._numericWrap=e("<div class='k-pager-numbers-wrap' />").appendTo(w.element))),i.previousNext&&(w._numericWrap.find("[class*='-i-"+o+"']").length||(w._numericWrap.append(x(o,i.messages.first,"k-pager-first",w._id,z)),T(w._numericWrap,s)),w._numericWrap.find("[class*='-i-"+u+"']").length||(w._numericWrap.append(x(u,i.messages.previous,null,w._id,z)),P(w._numericWrap,s))),i.numeric&&(w._numericSelect||(w._numericSelect=w._numericWrap.find(".k-dropdown"),0===w._numericSelect.length&&(w._numericSelect=e("<select aria-label='"+w.options.messages.numbersSelectLabel+"' class='k-dropdown k-picker k-picker-solid k-dropdown-list "+C+"' />").appendTo(w._numericWrap))),w.list||(w.list=w._numericWrap.find(".k-pager-numbers"),0===w.list.length&&(w.list=e('<div class="k-pager-numbers" />').appendTo(w._numericWrap))),i.dataSource&&!i.dataSource.total()&&(w._numericSelect.empty().append("<option value='0' />"),w.list.empty().append(w.selectTemplate({text:0,tabindex:i.navigatalbe?0:-1,navigatable:i.navigatable,title:a.format(i.messages.pageButtonLabel,0)})))),i.input&&(w.element.find(".k-pager-input").length||w.element.append('<span class="k-pager-input k-label">'+r(i.messages.page)+'<span class="k-textbox k-input k-input-md k-rounded-md k-input-solid"><input class="k-input-inner" /></span>'+r(a.format(i.messages.of,l))+"</span>"),w.element.on("keydown"+b,".k-pager-input input",w._keydown.bind(w))),i.previousNext&&(w._numericWrap.find("[class*='-i-"+d+"']").length||(w._numericWrap.append(x(d,i.messages.next,null,w._id,z)),y(w._numericWrap,s,l)),w._numericWrap.find("[class*='-i-"+p+"']").length||(w._numericWrap.append(x(p,i.messages.last,"k-pager-last",w._id,z)),W(w._numericWrap,s,l))),i.pageSizes){if(!w.element.find(".k-pager-sizes").length){var D=i.pageSizes.length?i.pageSizes:["all",5,10,20],L=e.map(D,(function(e){return e.toLowerCase&&"all"===e.toLowerCase()?"<option value='all'>"+r(i.messages.allPages)+"</option>":"<option>"+e+"</option>"}));e('<span class="k-pager-sizes"><select></select><span>'+r(i.messages.itemsPerPage)+"</span></span>").appendTo(w.element).find("select").html(L.join("")).end().appendTo(w.element)}w.element.find(".k-pager-sizes select").val(w.pageSize()),a.ui.DropDownList&&w.element.find(".k-pager-sizes select").show().attr("aria-label",i.messages.pageSizeDropDownLabel).kendoDropDownList({size:i.size}),w.element.on(k+b,".k-pager-sizes select",w._change.bind(w))}i.refresh&&(w.element.find(".k-pager-refresh").length||w.element.append('<button role="button" href="#" class="k-pager-refresh k-button '+z+' k-button-flat k-button-flat-base k-icon-button" title="'+i.messages.refresh+'" aria-label="'+i.messages.refresh+'">'+a.ui.icon("arrow-rotate-cw")+"</button>"),w.element.on(_+b,".k-pager-refresh",w._refreshClick.bind(w))),i.info&&(w.element.find(".k-pager-info").length||w.element.append('<span class="k-pager-info k-label" />')),w.element.on(_+b,"button",w._click.bind(w)).on(k+b,"select.k-dropdown",w._numericSelectChange.bind(w)).addClass("k-pager"),i.autoBind&&w.refresh(),w._resizeHandler=w.resize.bind(w,!0),e(window).on("resize"+b,w._resizeHandler),i.size&&w.element.addClass(a.getValidCssClass("k-pager-","size",i.size)),w._navigatable(),w.options.responsive?(h=w.element.outerWidth(),v=w.element.find(".k-pager-info"),h<=480?(v.hide(),w.element.find(".k-pager-sizes").children().hide(),i.numeric&&(w._numericSelect.show(),w.list.hide())):(h<=600&&v.hide(),i.numeric&&w._numericSelect.hide())):w._numericSelect&&w._numericSelect.hide(),a.notify(w)},destroy:function(){var t=this;n.fn.destroy.call(t),t.element.off(b),t.dataSource.unbind(k,t._refreshHandler),t._refreshHandler=null,e(window).off("resize"+b,this._resizeHandler),a.destroy(t.element),t.element=t.list=null},events:[k],options:{name:"Pager",ARIATemplate:function(e){return"Page navigation, page "+e.page+" of "+e.totalPages},selectTemplate:function(e){var t=e.text,a=e.title;return'<button role="button" aria-current="page" tabindex="'+e.tabindex+'" aria-label="'+a+'" class="k-button '+e.size+' k-button-flat k-button-flat-primary k-selected"><span class="k-button-text">'+r(t)+"</span></button>"},linkTemplate:function(e){var t=e.ns,a=e.idx,i=e.text,n=e.title,s=e.tabindex;return'<button class="k-button '+e.size+' k-button-flat k-button-flat-primary" tabindex="'+s+'" href="#" data-'+t+'page="'+a+'" '+(""!==n?'title="'+n+'"':"")+'><span class="k-button-text">'+r(i)+"</span></button>"},numericSelectItemTemplate:function(e){var t=e.idx,a=e.selected,i=e.text;return'<option value="'+t+'" '+(a?'selected="selected"':"")+">"+r(i)+"</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",numbersSelectLabel:"Page select",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(k,t._refreshHandler),t.dataSource=t.options.dataSource=e,e.bind(k,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 i=this;switch(e){case 0:return i._toggleButtons(t,a);case 1:return i._toggleRefresh(t,a);case 2:return i._togglePagerInfo(t,a);case 3:return i._toggleInputSizesLabel(t,a);case 4:return i._togglePageSizesLabel(t,a);case 5:return i._togglePageSizesDropDown(t,a);case 6:return i._togglePageInputs(t,a)}},_calculateNeededWidth:function(){var t=0,a=parseInt(this.element.css("gap"));return this.element.children().each((function(){var i=e(this),n=i.hasClass("k-pager-info");n&&i.removeClass("k-pager-info k-label"),t+=i.is(":visible")?i.width():0,t+=a,n&&i.addClass("k-pager-info k-label")})),t},_resize:function(e){var t=this;if(t._lastWidth&&t.options.responsive){if(t._lastWidth<e.width)for(var a=6;a>=0;a--){var i=t._calculateNeededWidth();if(e.width<i)break;if(t._adaptiveStep(a,!1,e.width-i))break}else if(t._lastWidth>e.width)for(var n=0;n<7&&!(e.width>t._calculateNeededWidth());n++)t._adaptiveStep(n,!0);t._lastWidth=e.width}},_toggleButtons:function(e,t){this._numericWrap&&this.list&&this._numericSelect&&(e?(this._numericSelect.show(),this.list.hide()):t&&this.list.width()-this._numericSelect.width()<t&&(this._numericSelect.hide(),this.list.show()))},_toggleRefresh:function(e,t){if(this.options.refresh){var a=this.element.find(".k-pager-refresh");if(e)a.hide();else{if(!(t&&a.width()<t))return!0;a.show()}}},_togglePagerInfo:function(e,t){if(this.options.info){var 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.options.input){var a=this.element.find(".k-pager-input").children(),i=a.eq(0).add(a.eq(2));if(e)i.hide();else{if(!(t&&a.eq(0).width()+a.eq(2).width()<t))return!0;i.show()}}},_togglePageSizesLabel:function(e,t){if(this.options.pageSizes){var a=this.element.find(".k-pager-sizes").children().eq(1);if(e)a.hide();else{if(!(t&&a.width()<t))return!0;a.show()}}},_togglePageSizesDropDown:function(e,t){if(this.options.pageSizes){var a=this.element.find(".k-pager-sizes .k-picker");if(e)a.hide();else{if(!(t&&a.width()<t))return!0;a.show()}}},_togglePageInputs:function(e,t){if(this.options.input&&this._numericSelect)if(e)this._numericSelect.hide();else{if(!(t&&this._numericSelect.width()<t)||this.list.is(":visible"))return!0;this._numericSelect.show()}},_createDataSource:function(e){this.dataSource=a.data.DataSource.create(e.dataSource)},refresh:function(t){var i,n,s,l=this,o=1,p=l.page(),u="",d="",c=l.options,g=l.pageSize(),m=l._collapsedTotal(),f=l.dataSource._isGroupPaged()?l.dataSource.groupsTotal(!0):l.dataSource.total(),h=l.totalPages(),k=l.linkTemplate,b=c.navigatable,_=l.numericSelectItemTemplate,S=c.size?a.getValidCssClass("k-button-","size",c.size):"",x=c.buttonCount;if(!t||"itemchange"!=t.action){if(c.numeric){for(p>x&&(o=0===(s=p%x)?p-x+1:p-s+1),n=Math.min(o+x-1,h),o>1&&(u+=w({template:k,navigatable:b,size:S,idx:o-1,text:"...",numeric:!1,title:c.messages.morePages}),d+=z(_,o-1,c.messages.morePages)),i=o;i<=n;i++)u+=w({template:i==p?l.selectTemplate:k,navigatable:b,idx:i,text:i,size:S,numeric:!0,title:a.format(c.messages.pageButtonLabel,i)}),d+=z(_,i,i,i==p);n<h&&(u+=w({template:k,navigatable:b,idx:i,size:S,text:"...",numeric:_,title:c.messages.morePages}),d+=z(_,i,c.messages.morePages)),""===u&&(u=l.selectTemplate({text:0,size:S,tabindex:b?0:-1,navigatable:b,title:a.format(c.messages.pageButtonLabel,0)}),d=e("<option value='0' />")),l.list.html(u),l._numericSelect.html(d)}if(c.info&&(u=f>0?a.format(c.messages.display,l.dataSource.options.endless?1:Math.min((p-1)*(l.dataSource.pageSize()||0)+1,m),Math.min(p*g,m),f):c.messages.empty,l.element.find(".k-pager-info").html(u)),c.input&&l.element.find(".k-pager-input").html("<span>"+r(l.options.messages.page)+'</span><span class="k-textbox k-input k-input-md k-rounded-md k-input-solid"><input class="k-input-inner" aria-label="'+l.options.messages.page+" "+p+'"></span><span>'+r(a.format(c.messages.of,h))+"</span>").find("input").val(p).attr("disabled",f<1).attr("aria-disabled",f<1).toggleClass("k-disabled",f<1),c.previousNext&&(T(l.element,p),P(l.element,p),y(l.element,p,h),W(l.element,p,h)),c.pageSizes){var C=g;l.element.find(".k-pager-sizes option[value='all']").length>0&&(g===this.dataSource.total()||g==v)&&(g="all",C=c.messages.allPages),l.element.find(".k-pager-sizes select").val(g).filter("["+a.attr("role")+"=dropdownlist]").kendoDropDownList("value",g).kendoDropDownList("text",C)}l._restoreFocus(o,n,h),l._excludeChildrenFromTab(),l._updateAria(),h?(l._lastWidth=a._outerWidth(l.element)+12,l.resize(!0)):l._lastWidth&&(l._lastWidth=a._outerWidth(l.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 i=this;i.options.navigatable&&(i._focusSelected&&(i.element.find(".k-selected").trigger("focus"),i._focusSelected=null),null!==i._focusMore&&(t<a&&i._focusMore&&i.list.find("li").last().find("a").trigger("focus"),!i._focusMore&&e>1&&i.list.find("li").first().find("a").trigger("focus"),i._focusMore=null))},_restoreTabIndexes:function(){this.element.find("[tabindex='-1']:not(.k-disabled)").attr("tabindex",0)},_collapsedTotal:function(){return this.dataSource.total()},_keydown:function(e){if(e.keyCode===a.keys.ENTER){var t=this.element.find(".k-pager-input").find("input"),i=parseInt(t.val(),10);(isNaN(i)||i<1||i>this.totalPages())&&(i=this.page()),t.val(i),this.page(i)}},_refreshClick:function(e){e.preventDefault(),this.dataSource.read()},_change:function(e){var a=e.currentTarget.value,i=parseInt(a,10),n=this.dataSource;isNaN(i)?"all"==(a+"").toLowerCase()&&(n._pageSize=t,n._take=t,n._skip=0,n.fetch()):n.pageSize(i)},_template:function(){this._ariaTemplate=l(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,i,n=this,r=e(t.target),l=!1;r[0]===n.element[0]&&t.keyCode==s.ENTER&&(n._restoreTabIndexes(),n.element.find(h).first().trigger("focus"),l=!0),r[0]!==n.element[0]&&t.keyCode==s.ESC&&(n.element.trigger("focus"),l=!0),r[0]===n.element[0]&&t.keyCode==s.HOME&&(n.page(1),l=!0),r[0]===n.element[0]&&t.keyCode==s.END&&(n.page(n.totalPages()),l=!0),r[0]!==n.element[0]||t.keyCode!=(S?s.LEFT:s.RIGHT)&&t.keyCode!=s.PAGEDOWN||(n.page(n.page()+1),l=!0),r[0]!==n.element[0]||t.keyCode!=(S?s.RIGHT:s.LEFT)&&t.keyCode!=s.PAGEUP||(n.page(n.page()-1||1),l=!0),r[0]!==n.element[0]&&t.keyCode==s.TAB&&(i=(a=n.element.find(h)).index(r),t.shiftKey?i-1<0?a.last().trigger("focus"):a.eq(i-1).trigger("focus"):i+1<a.length?a.eq(i+1).trigger("focus"):a.first().trigger("focus"),l=!0),l&&(t.preventDefault(),t.stopPropagation())},_numericSelectChange:function(e){var t=e.currentTarget,a=t.value,i=parseInt(a,10);t.blur(),this.page(i)},_click:function(t){var i=e(t.currentTarget);t.preventDefault(),this.options.navigatable&&(i.attr("title")==this.options.messages.morePages?this._focusMore=i.parent().index():i.hasClass("k-pager-refresh")||i.hasClass("k-pager-nav")||(this._focusSelected=!0)),i.is(".k-disabled")||this.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(k,{index:e}))}});i.plugin(D)}(window.kendo.jQuery),kendo}));
//# sourceMappingURL=kendo.pager.min.js.map