UNPKG

@progress/kendo-ui

Version:

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

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