!function(t,e,i){function n(t,i){var n=e(t);n.data(r,this),this._container=n,this.data=[],this.fields=[],this._editingRow=null,this._sortField=null,this._sortOrder=o,this._firstDisplayingPage=1,this._init(i),this.render()}var r="JSGrid",a="JSGridItem",s="JSGridEditRow",o="asc",l=function(t,i){return e.isFunction(t)?t.apply(i,e.makeArray(arguments).slice(2)):t},d=function(t){var i=e.Deferred();return t&&t.then?t.then(function(){i.resolve.apply(i,arguments)},function(){i.reject.apply(i,arguments)}):i.resolve(t),i.promise()},u={loadData:e.noop,insertItem:e.noop,updateItem:e.noop,deleteItem:e.noop};n.prototype={width:"auto",height:"auto",updateOnResize:!0,rowClass:e.noop,rowRenderer:null,rowClick:function(t){this.editing&&this.editItem(e(t.event.target).closest("tr"))},rowDoubleClick:e.noop,noDataContent:"Not found",noDataRowClass:"jsgrid-nodata-row",heading:!0,headerRowRenderer:null,headerRowClass:"jsgrid-header-row",headerCellClass:"jsgrid-header-cell",filtering:!1,filterRowRenderer:null,filterRowClass:"jsgrid-filter-row",inserting:!1,insertRowRenderer:null,insertRowClass:"jsgrid-insert-row",editing:!1,editRowRenderer:null,editRowClass:"jsgrid-edit-row",confirmDeleting:!0,deleteConfirm:"Are you sure?",selecting:!0,selectedRowClass:"jsgrid-selected-row",oddRowClass:"jsgrid-row",evenRowClass:"jsgrid-alt-row",cellClass:"jsgrid-cell",sorting:!1,sortableClass:"jsgrid-header-sortable",sortAscClass:"jsgrid-header-sort jsgrid-header-sort-asc",sortDescClass:"jsgrid-header-sort jsgrid-header-sort-desc",paging:!1,pagerContainer:null,pageIndex:1,pageSize:20,pageButtonCount:15,pagerFormat:"Pages: {first} {prev} {pages} {next} {last} {pageIndex} of {pageCount}",pagePrevText:"Prev",pageNextText:"Next",pageFirstText:"First",pageLastText:"Last",pageNavigatorNextText:"...",pageNavigatorPrevText:"...",pagerContainerClass:"jsgrid-pager-container",pagerClass:"jsgrid-pager",pagerNavButtonClass:"jsgrid-pager-nav-button",pagerNavButtonInactiveClass:"jsgrid-pager-nav-inactive-button",pageClass:"jsgrid-pager-page",currentPageClass:"jsgrid-pager-current-page",customLoading:!1,pageLoading:!1,autoload:!1,controller:u,loadIndication:!0,loadIndicationDelay:500,loadMessage:"Please, wait...",loadShading:!0,invalidMessage:"Invalid data entered!",invalidNotify:function(i){var n=e.map(i.errors,function(t){return t.message||null});t.alert([this.invalidMessage].concat(n).join("\n"))},onInit:e.noop,onRefreshing:e.noop,onRefreshed:e.noop,onPageChanged:e.noop,onItemDeleting:e.noop,onItemDeleted:e.noop,onItemInserting:e.noop,onItemInserted:e.noop,onItemEditing:e.noop,onItemUpdating:e.noop,onItemUpdated:e.noop,onItemInvalid:e.noop,onDataLoading:e.noop,onDataLoaded:e.noop,onOptionChanging:e.noop,onOptionChanged:e.noop,onError:e.noop,invalidClass:"jsgrid-invalid",containerClass:"jsgrid",tableClass:"jsgrid-table",gridHeaderClass:"jsgrid-grid-header",gridBodyClass:"jsgrid-grid-body",_init:function(t){e.extend(this,t),this._initLoadStrategy(),this._initController(),this._initFields(),this._attachWindowLoadResize(),this._attachWindowResizeCallback(),this._callEventHandler(this.onInit)},loadStrategy:function(){return this.pageLoading?new jsGrid.loadStrategies.PageLoadingStrategy(this):new jsGrid.loadStrategies.DirectLoadingStrategy(this)},_initLoadStrategy:function(){this._loadStrategy=l(this.loadStrategy,this)},_initController:function(){this._controller=e.extend({},u,l(this.controller,this))},renderTemplate:function(t,e,n){args=[];for(var r in n)args.push(n[r]);return args.unshift(t,e),(t=l.apply(null,args))===i||null===t?"":t},loadIndicator:function(t){return new jsGrid.LoadIndicator(t)},validation:function(t){return jsGrid.Validation&&new jsGrid.Validation(t)},_initFields:function(){var t=this;t.fields=e.map(t.fields,function(i){return e.isPlainObject(i)&&(i=new(i.type&&jsGrid.fields[i.type]||jsGrid.Field)(i)),i._grid=t,i})},_attachWindowLoadResize:function(){e(t).on("load",e.proxy(this._refreshSize,this))},_attachWindowResizeCallback:function(){this.updateOnResize&&e(t).on("resize",e.proxy(this._refreshSize,this))},_detachWindowResizeCallback:function(){e(t).off("resize",this._refreshSize)},option:function(t,e){var i,n;return 1===arguments.length?this[t]:(i={option:t,oldValue:this[t],newValue:e},this._callEventHandler(this.onOptionChanging,i),this._handleOptionChange(i.option,i.newValue),n={option:i.option,value:i.newValue},void this._callEventHandler(this.onOptionChanged,n))},fieldOption:function(t,e,i){return t=this._normalizeField(t),2===arguments.length?t[e]:(t[e]=i,void this._renderGrid())},_handleOptionChange:function(t,e){switch(this[t]=e,t){case"width":case"height":this._refreshSize();break;case"rowClass":case"rowRenderer":case"rowClick":case"rowDoubleClick":case"noDataRowClass":case"noDataContent":case"selecting":case"selectedRowClass":case"oddRowClass":case"evenRowClass":this._refreshContent();break;case"pageButtonCount":case"pagerFormat":case"pagePrevText":case"pageNextText":case"pageFirstText":case"pageLastText":case"pageNavigatorNextText":case"pageNavigatorPrevText":case"pagerClass":case"pagerNavButtonClass":case"pageClass":case"currentPageClass":case"pagerRenderer":this._refreshPager();break;case"fields":this._initFields(),this.render();break;case"data":case"editing":case"heading":case"filtering":case"inserting":case"paging":this.refresh();break;case"loadStrategy":case"pageLoading":this._initLoadStrategy(),this.search();break;case"pageIndex":this.openPage(e);break;case"pageSize":this.refresh(),this.search();break;case"editRowRenderer":case"editRowClass":this.cancelEdit();break;case"updateOnResize":this._detachWindowResizeCallback(),this._attachWindowResizeCallback();break;case"invalidNotify":case"invalidMessage":break;default:this.render()}},destroy:function(){this._detachWindowResizeCallback(),this._clear(),this._container.removeData(r)},render:function(){return this._renderGrid(),this.autoload?this.loadData():e.Deferred().resolve().promise()},_renderGrid:function(){this._clear(),this._container.addClass(this.containerClass).css("position","relative").append(this._createHeader()).append(this._createBody()),this._pagerContainer=this._createPagerContainer(),this._loadIndicator=this._createLoadIndicator(),this._validation=this._createValidation(),this.refresh()},_createLoadIndicator:function(){return l(this.loadIndicator,this,{message:this.loadMessage,shading:this.loadShading,container:this._container})},_createValidation:function(){return l(this.validation,this)},_clear:function(){this.cancelEdit(),clearTimeout(this._loadingTimer),this._pagerContainer&&this._pagerContainer.empty(),this._container.empty().css({position:"",width:"",height:""})},_createHeader:function(){var t=this._headerRow=this._createHeaderRow(),i=this._filterRow=this._createFilterRow(),n=this._insertRow=this._createInsertRow(),r=this._headerGrid=e("
",i,"headercss",this.headerCellClass).append(this.renderTemplate(i.headerTemplate,i)).appendTo(t);this.sorting&&i.sorting&&r.addClass(this.sortableClass).on("click",e.proxy(function(){this.sort(n)},this))}),t},_prepareCell:function(t,i,n,r){return e(t).css("width",i.width).addClass(r||this.cellClass).addClass(n&&i[n]||i.css).addClass(i.align?"jsgrid-align-"+i.align:"")},_createFilterRow:function(){if(e.isFunction(this.filterRowRenderer))return e(this.renderTemplate(this.filterRowRenderer,this));var t=e(" |
---|
",e,"filtercss").append(this.renderTemplate(e.filterTemplate,e)).appendTo(t)}),t},_createInsertRow:function(){if(e.isFunction(this.insertRowRenderer))return e(this.renderTemplate(this.insertRowRenderer,this));var t=e(" |
",e,"insertcss").append(this.renderTemplate(e.insertTemplate,e)).appendTo(t)}),t},_callEventHandler:function(t,i){return t.call(this,e.extend(i,{grid:this})),i},reset:function(){return this._resetSorting(),this._resetPager(),this._loadStrategy.reset()},_resetPager:function(){this._firstDisplayingPage=1,this._setPage(1)},_resetSorting:function(){this._sortField=null,this._sortOrder=o,this._clearSortingCss()},refresh:function(){this._callEventHandler(this.onRefreshing),this.cancelEdit(),this._refreshHeading(),this._refreshFiltering(),this._refreshInserting(),this._refreshContent(),this._refreshPager(),this._refreshSize(),this._callEventHandler(this.onRefreshed)},_refreshHeading:function(){this._headerRow.toggle(this.heading)},_refreshFiltering:function(){this._filterRow.toggle(this.filtering)},_refreshInserting:function(){this._insertRow.toggle(this.inserting)},_refreshContent:function(){var t=this._content;if(t.empty(),!this.data.length)return t.append(this._createNoDataRow()),this;for(var e=this._loadStrategy.firstDisplayIndex(),i=this._loadStrategy.lastDisplayIndex(),n=e;i>n;n++){var r=this.data[n];t.append(this._createRow(r,n))}},_createNoDataRow:function(){var t=0;return this._eachField(function(){t++}),e(" |
").addClass(this.cellClass).attr("colspan",t).append(this.renderTemplate(this.noDataContent,this)))},_createRow:function(t,i){var n;return e.isFunction(this.rowRenderer)?n=this.renderTemplate(this.rowRenderer,this,{item:t,itemIndex:i}):(n=e(" |
").append(this.renderTemplate(i.itemTemplate||r,i,a)),this._prepareCell(n,i)},_getItemFieldValue:function(t,e){for(var i=e.name.split("."),n=t[i.shift()];n&&i.length;)n=n[i.shift()];return n},_setItemFieldValue:function(t,e,i){for(var n=e.name.split("."),r=t,a=n[0];r&&n.length;)t=r,a=n.shift(),r=t[a];if(!r)for(;n.length;)t=t[a]={},a=n.shift();t[a]=i},sort:function(t,i){return e.isPlainObject(t)&&(i=t.order,t=t.field),this._clearSortingCss(),this._setSortingParams(t,i),this._setSortingCss(),this._loadStrategy.sort()},_clearSortingCss:function(){this._headerRow.find("th").removeClass(this.sortAscClass).removeClass(this.sortDescClass)},_setSortingParams:function(t,e){t=this._normalizeField(t),e=e||(this._sortField===t?this._reversedSortOrder(this._sortOrder):o),this._sortField=t,this._sortOrder=e},_normalizeField:function(t){return e.isNumeric(t)?this.fields[t]:"string"==typeof t?e.grep(this.fields,function(e){return e.name===t})[0]:t},_reversedSortOrder:function(t){return t===o?"desc":o},_setSortingCss:function(){var t=this._visibleFieldIndex(this._sortField);this._headerRow.find("th").eq(t).addClass(this._sortOrder===o?this.sortAscClass:this.sortDescClass)},_visibleFieldIndex:function(t){return e.inArray(t,e.grep(this.fields,function(t){return t.visible}))},_sortData:function(){var t=this._sortFactor(),e=this._sortField;e&&this.data.sort(function(i,n){return t*e.sortingFunc(i[e.name],n[e.name])})},_sortFactor:function(){return this._sortOrder===o?1:-1},_itemsCount:function(){return this._loadStrategy.itemsCount()},_pagesCount:function(){var t=this._itemsCount(),e=this.pageSize;return Math.floor(t/e)+(t%e?1:0)},_refreshPager:function(){var t=this._pagerContainer;t.empty(),this.paging&&t.append(this._createPager());var e=this.paging&&this._pagesCount()>1;t.toggle(e)},_createPager:function(){var t;return(t=e.isFunction(this.pagerRenderer)?e(this.pagerRenderer({pageIndex:this.pageIndex,pageCount:this._pagesCount()})):e(" |