(function(addon){var component;if(window.UIkit){component=addon(UIkit)}if(typeof define=="function"&&define.amd){define("uikit-pagination",["uikit"],function(){return component||addon(UIkit)})}})(function(UI){"use strict";UI.component("pagination",{defaults:{items:1,itemsOnPage:1,pages:0,displayedPages:3,edges:3,currentPage:1,lblPrev:false,lblNext:false,onSelectPage:function(){}},boot:function(){UI.ready(function(context){UI.$("[data-uk-pagination]",context).each(function(){var ele=UI.$(this);if(!ele.data("pagination")){var obj=UI.pagination(ele,UI.Utils.options(ele.attr("data-uk-pagination")))}})})},init:function(){var $this=this;this.pages=this.options.pages?this.options.pages:Math.ceil(this.options.items/this.options.itemsOnPage)?Math.ceil(this.options.items/this.options.itemsOnPage):1;this.currentPage=this.options.currentPage-1;this.halfDisplayed=this.options.displayedPages/2;this.on("click","a[data-page]",function(e){e.preventDefault();$this.selectPage(UI.$(this).data("page"))});this._render()},_getInterval:function(){return{start:Math.ceil(this.currentPage>this.halfDisplayed?Math.max(Math.min(this.currentPage-this.halfDisplayed,this.pages-this.options.displayedPages),0):0),end:Math.ceil(this.currentPage>this.halfDisplayed?Math.min(this.currentPage+this.halfDisplayed,this.pages):Math.min(this.options.displayedPages,this.pages))}},render:function(pages){this.pages=pages?pages:this.pages;this._render()},selectPage:function(pageIndex,pages){this.currentPage=pageIndex;this.render(pages);this.options.onSelectPage.apply(this,[pageIndex]);this.trigger("select.uk.pagination",[pageIndex,this])},_render:function(){var o=this.options,interval=this._getInterval(),i;this.element.empty();if(o.lblPrev)this._append(o.currentPage-1,{text:o.lblPrev});if(interval.start>0&&o.edges>0){var end=Math.min(o.edges,interval.start);for(i=0;i<end;i++)this._append(i);if(o.edges<interval.start&&interval.start-o.edges!=1){this.element.append("<li><span>...</span></li>")}else if(interval.start-o.edges==1){this._append(o.edges)}}for(i=interval.start;i<interval.end;i++)this._append(i);if(interval.end<this.pages&&o.edges>0){if(this.pages-o.edges>interval.end&&this.pages-o.edges-interval.end!=1){this.element.append("<li><span>...</span></li>")}else if(this.pages-o.edges-interval.end==1){this._append(interval.end++)}var begin=Math.max(this.pages-o.edges,interval.end);for(i=begin;i<this.pages;i++)this._append(i)}if(o.lblNext)this._append(o.currentPage+1,{text:o.lblNext})},_append:function(pageIndex,opts){var $this=this,item,link,options;pageIndex=pageIndex<0?0:pageIndex<this.pages?pageIndex:this.pages-1;options=UI.$.extend({text:pageIndex+1},opts);item=pageIndex==this.currentPage?'<li class="uk-active"><span>'+options.text+"</span></li>":'<li><a href="#page-'+(pageIndex+1)+'" data-page="'+pageIndex+'">'+options.text+"</a></li>";this.element.append(item)}});return UI.pagination});